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:
|
2017-08-21 21:01:18 -03:00
|
|
|
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
|
|
|
|
|
2017-08-08 23:04:17 -03:00
|
|
|
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
|
|
|
|
|
2017-08-08 09:40:09 -03:00
|
|
|
ldr r0, =__bss_start
|
|
|
|
ldr r1, =__bss_end
|
|
|
|
mov r2, #0
|
|
|
|
.Lclearbss:
|
|
|
|
cmp r0, r1
|
2017-08-12 16:04:20 -03:00
|
|
|
strlt r2, [r0], #4
|
2017-08-08 09:40:09 -03:00
|
|
|
blt .Lclearbss
|
|
|
|
|
2017-07-26 21:39:30 +02:00
|
|
|
bl main
|
|
|
|
b __boot
|