From: Thierry Reding Date: Thu, 20 Aug 2015 09:52:15 +0000 (+0200) Subject: armv8/gic: Fix GIC v2 initialization X-Git-Tag: v2015.10~25^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=b1964c72bdb9ca44de3a56d40927409b8cab2a76;p=u-boot armv8/gic: Fix GIC v2 initialization Initialize all GICD_IGROUPRn registers and set up GICC_CTLR to enable interrupts to the primary CPU. This fixes issues seen after booting a Linux kernel from U-Boot. Suggested-by: Marc Zyngier Suggested-by: Mark Rutland Cc: Albert Aribaud Cc: Mark Rutland Cc: Marc Zyngier Signed-off-by: Thierry Reding --- diff --git a/arch/arm/lib/gic_64.S b/arch/arm/lib/gic_64.S index a3e18f7713..62d0022408 100644 --- a/arch/arm/lib/gic_64.S +++ b/arch/arm/lib/gic_64.S @@ -46,11 +46,19 @@ ENTRY(gic_init_secure) ldr w9, [x0, GICD_TYPER] and w10, w9, #0x1f /* ITLinesNumber */ cbz w10, 1f /* No SPIs */ - add x11, x0, (GICD_IGROUPRn + 4) + add x11, x0, GICD_IGROUPRn mov w9, #~0 /* Config SPIs as Grp1 */ + str w9, [x11], #0x4 0: str w9, [x11], #0x4 sub w10, w10, #0x1 cbnz w10, 0b + + ldr x1, =GICC_BASE /* GICC_CTLR */ + mov w0, #3 /* EnableGrp0 | EnableGrp1 */ + str w0, [x1] + + mov w0, #1 << 7 /* allow NS access to GICC_PMR */ + str w0, [x1, #4] /* GICC_PMR */ #endif 1: ret