41 lines
651 B
ArmAsm
Raw Normal View History

2017-07-26 21:39:30 +02:00
.section .text.boot
2017-08-21 21:01:18 -03:00
.align 4
2017-07-26 21:39:30 +02:00
2017-08-08 23:04:17 -03:00
#include <arm.h>
2017-07-26 21:39:30 +02:00
.global __boot
__boot:
cpsid aif, #SR_SVC_MODE
2017-07-26 21:39:30 +02:00
mov r0, #0
mcr p15, 0, r0, c7, c7, 0
mcr p15, 0, r0, c7, c14, 0
mcr p15, 0, r0, c7, c10, 4
ldr sp, =_stack_top
2017-07-26 21:39:30 +02:00
@ Reset values
ldr r0, =0x00054078
ldr r1, =0x0000000F
ldr r2, =0x00000000
mcr p15, 0, r0, c1, c0, 0
mcr p15, 0, r1, c1, c0, 1
mcr p15, 0, r2, c1, c0, 2
ldr r0, =__bss_start
ldr r1, =__bss_end
mov r2, #0
.Lclearbss:
cmp r0, r1
strlt r2, [r0], #4
blt .Lclearbss
2017-07-26 21:39:30 +02:00
bl main
b __boot
.section .bss.stack
.align 3
.space (8192 * 4)
_stack_top: