]> rtime.felk.cvut.cz Git - jailhouse.git/commitdiff
arm: Validate ARE-NS being enabled with GICv3
authorJan Kiszka <jan.kiszka@siemens.com>
Mon, 27 Jun 2016 06:37:38 +0000 (08:37 +0200)
committerJan Kiszka <jan.kiszka@siemens.com>
Mon, 27 Jun 2016 09:51:18 +0000 (11:51 +0200)
Linux does enable Affinity Routing, but better check because the code
depends on this.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
hypervisor/arch/arm/gic-v3.c

index ca989d0628b1668dc93a5aac54b97c748f459ecc..8d076f9759225612c2f89586f05c3817d894d587 100644 (file)
@@ -40,16 +40,16 @@ static unsigned int gicr_size;
 
 static int gic_init(void)
 {
-       int err;
+       /* TODO: need to validate more? */
+       if (!(mmio_read32(gicd_base + GICD_CTLR) & GICD_CTLR_ARE_NS))
+               return trace_error(-EIO);
 
        /* FIXME: parse a dt */
        gicr_base = GICR_BASE;
        gicr_size = GICR_SIZE;
 
        /* Let the per-cpu code access the redistributors */
-       err = arch_map_device(gicr_base, gicr_base, gicr_size);
-
-       return err;
+       return arch_map_device(gicr_base, gicr_base, gicr_size);
 }
 
 static void gic_clear_pending_irqs(void)