]> git.sur5r.net Git - u-boot/blobdiff - arch/arm/cpu/armv8/start.S
Merge branch 'master' of git://git.denx.de/u-boot-tegra
[u-boot] / arch / arm / cpu / armv8 / start.S
index 540a5db8438b782060b09005ff558046e762efcf..b4eab0b0f281869afddc9f8677f95b4ae585780a 100644 (file)
@@ -80,6 +80,7 @@ reset:
        /* Processor specific initialization */
        bl      lowlevel_init
 
+#ifdef CONFIG_ARMV8_MULTIENTRY
        branch_if_master x0, x1, master_cpu
 
        /*
@@ -91,11 +92,10 @@ slave_cpu:
        ldr     x0, [x1]
        cbz     x0, slave_cpu
        br      x0                      /* branch to the given address */
-
-       /*
-        * Master CPU
-        */
 master_cpu:
+       /* On the master CPU */
+#endif /* CONFIG_ARMV8_MULTIENTRY */
+
        bl      _main
 
 /*-----------------------------------------------------------------------*/
@@ -145,6 +145,15 @@ ENDPROC(apply_core_errata)
 WEAK(lowlevel_init)
        mov     x29, lr                 /* Save LR */
 
+#ifndef CONFIG_ARMV8_MULTIENTRY
+       /*
+        * For single-entry systems the lowlevel init is very simple.
+        */
+       ldr     x0, =GICD_BASE
+       bl      gic_init_secure
+
+#else /* CONFIG_ARMV8_MULTIENTRY is set */
+
 #if defined(CONFIG_GICV2) || defined(CONFIG_GICV3)
        branch_if_slave x0, 1f
        ldr     x0, =GICD_BASE
@@ -182,6 +191,8 @@ WEAK(lowlevel_init)
        bl      armv8_switch_to_el1
 #endif
 
+#endif /* CONFIG_ARMV8_MULTIENTRY */
+
 2:
        mov     lr, x29                 /* Restore LR */
        ret