armv8: layerscape: don't initialize GIC in SPL
authorMichael Walle <michael@walle.cc>
Wed, 18 Nov 2020 16:45:59 +0000 (17:45 +0100)
committerTom Rini <trini@konsulko.com>
Fri, 4 Dec 2020 21:09:06 +0000 (16:09 -0500)
The BL31 expects the GIC to be uninitialized. Thus, if we are loading
the BL31 by the SPL we must not initialize it. If u-boot is loaded by
the SPL directly, it will initialize the GIC again (in the same
lowlevel_init()).

This was tested on a custom board with SPL loading the BL31 and jumping
to u-boot as BL33 as well as loading u-boot directly by the SPL. In case
the ATF BL1/BL2 is used, this patch won't change anything, because no
SPL is used at all.

Signed-off-by: Michael Walle <michael@walle.cc>
arch/arm/cpu/armv8/fsl-layerscape/lowlevel.S

index a519f6e..d880373 100644 (file)
@@ -192,6 +192,7 @@ ENTRY(lowlevel_init)
 #endif
 
        /* Initialize GIC Secure Bank Status */
+#if !defined(CONFIG_SPL_BUILD)
 #if defined(CONFIG_GICV2) || defined(CONFIG_GICV3)
        branch_if_slave x0, 1f
        bl      get_gic_offset
@@ -205,6 +206,7 @@ ENTRY(lowlevel_init)
        bl      gic_init_secure_percpu
 #endif
 #endif
+#endif
 
 100:
        branch_if_master x0, x1, 2f