display works sortof
[rpikern] / src / startup.s
1         .extern main
2
3         .section .startup
4         .code 32
5
6 startup:
7         @ stop all but one of the cores
8         mrc p15, 0, r0, c0, c0, 5
9         ands r0, r0, #0xff
10         bne exit
11
12         @ setup stack
13         ldr sp, =_stacktop
14
15         @ clear bss
16         ldr r0, =_bss_start
17         ldr r1, =_bss_size
18         cmp r1, #0
19         beq 1f          @ 0-sized bss, skip clear
20         mov r2, #0
21 0:      str r2, [r0], #4
22         subs r1, #4
23         bne 0b
24 1:
25         blx main
26
27         .global exit
28 exit:   wfe
29         b exit
30
31 @ vi:set filetype=armasm: