Core N>0 disable seems to be working correctly; documentation
authorAlyssa Rosenzweig <alyssa@backtick.town>
Thu, 25 Aug 2016 01:56:08 +0000 (18:56 -0700)
committerAlyssa Rosenzweig <alyssa@backtick.town>
Thu, 25 Aug 2016 01:56:08 +0000 (18:56 -0700)
arm_chainloader/main.c
arm_chainloader/start.s
trap.c

index 4106fdd..c82b445 100644 (file)
@@ -33,11 +33,10 @@ static void heap_init() {
 void main() {\r
        logf("Started on ARM, continuing boot from here ...\n", __FUNCTION__);\r
 \r
 void main() {\r
        logf("Started on ARM, continuing boot from here ...\n", __FUNCTION__);\r
 \r
-       heap_init();\r
+        heap_init();\r
 \r
        /* c++ runtime */\r
        cxx_init();\r
 \r
        /* c++ runtime */\r
        cxx_init();\r
-\r
        panic("Nothing else to do!");\r
 \r
 #if 0\r
        panic("Nothing else to do!");\r
 \r
 #if 0\r
@@ -47,4 +46,4 @@ void main() {
                udelay(1000000);\r
        }\r
 #endif\r
                udelay(1000000);\r
        }\r
 #endif\r
-}
\ No newline at end of file
+}\r
index db929dd..afe5b3c 100644 (file)
@@ -16,7 +16,9 @@ FILE DESCRIPTION
 ARM entry point.\r
 \r
 This is where all cores start. For RPi1, only one core starts so we can jump\r
 ARM entry point.\r
 \r
 This is where all cores start. For RPi1, only one core starts so we can jump\r
-straight to the main bootloader. For later models,\r
+straight to the main bootloader. For later models, the first core jumps to the\r
+bootloader. The other cores wait until SMP is enabled by the kernel later in\r
+the boot process.\r
 \r
 =============================================================================*/\r
 \r
 \r
 =============================================================================*/\r
 \r
@@ -42,7 +44,7 @@ _start:
 L_all_cores_start:\r
         /* check CPU id */\r
         mrc p15, 0, r0, c0, c0, 5\r
 L_all_cores_start:\r
         /* check CPU id */\r
         mrc p15, 0, r0, c0, c0, 5\r
-        ands r0, #0x03\r
+        ands r0, r0, #0x03\r
         bne L_deadloop\r
 \r
 L_core0:\r
         bne L_deadloop\r
 \r
 L_core0:\r
diff --git a/trap.c b/trap.c
index 0f3d5ba..1a8d169 100644 (file)
--- a/trap.c
+++ b/trap.c
@@ -85,4 +85,4 @@ void sleh_fatal(vc4_saved_state_t* pcb, uint32_t n) {
 \r
 void sleh_irq(vc4_saved_state_t* pcb) {\r
        panic("interrupt at 0x%X!", pcb->pc);\r
 \r
 void sleh_irq(vc4_saved_state_t* pcb) {\r
        panic("interrupt at 0x%X!", pcb->pc);\r
-}
\ No newline at end of file
+}\r
This page took 0.025686 seconds and 4 git commands to generate.