interrupts, timers, under construction
[rpikern] / src / startup.s
index d0b402f..587ab95 100644 (file)
@@ -3,11 +3,15 @@
        .section .startup
        .code 32
 
+       .global startup
 startup:
-       ldr sp, =_stacktop
+       @ stop all but one of the cores
+       mrc p15, 0, r0, c0, c0, 5
+       ands r0, r0, #0xff
+       bne exit
 
-       mov r0, #2
-       bl dbgled
+       @ setup stack
+       ldr sp, =_stacktop
 
        @ clear bss
        ldr r0, =_bss_start
@@ -19,28 +23,10 @@ startup:
        subs r1, #4
        bne 0b
 1:
-       bl main
-
-       mov r0, #0
-       bl dbgled
+       blx main
 
        .global exit
 exit:  wfe
        b exit
 
-       .global dbgled
-dbgled:
-       ldr r3, =0x3f200000     @ gpio base
-       ldr r2, =0x9000         @ gpio 24 and 25 -> output
-       str r2, [r3, #8]        @ store to GPFSEL2
-       ldr r2, =0x01000000     @ bit 24
-       tst r0, #1
-       strne r2, [r3, #0x1c]   @ GPSET0
-       streq r2, [r3, #0x28]   @ GPCLR0
-       lsl r2, #1
-       tst r0, #2
-       strne r2, [r3, #0x1c]   @ GPSET0
-       streq r2, [r3, #0x28]   @ GPCLR0
-       bx lr
-
 @ vi:set filetype=armasm: