forked from Mirror/GodMode9
57 lines
1.0 KiB
ArmAsm
57 lines
1.0 KiB
ArmAsm
#ifdef EXEC_GATEWAY
|
|
|
|
.section .text.start
|
|
.global _start
|
|
.align 4
|
|
.arm
|
|
|
|
_vectors:
|
|
ldr pc, =InfiniteLoop
|
|
.pool
|
|
ldr pc, =InfiniteLoop
|
|
.pool
|
|
ldr pc, =InfiniteLoop
|
|
.pool
|
|
ldr pc, =InfiniteLoop
|
|
.pool
|
|
ldr pc, =InfiniteLoop
|
|
.pool
|
|
ldr pc, =InfiniteLoop
|
|
.pool
|
|
|
|
_start:
|
|
ldr sp,=0x22140000
|
|
|
|
@@wait for the arm11 kernel threads to be ready
|
|
ldr r1, =0x10000
|
|
waitLoop9:
|
|
sub r1, #1
|
|
|
|
cmp r1, #0
|
|
bgt waitLoop9
|
|
|
|
ldr r1, =0x10000
|
|
waitLoop92:
|
|
sub r1, #1
|
|
|
|
cmp r1, #0
|
|
bgt waitLoop92
|
|
|
|
@ Enable caches
|
|
mrc p15, 0, r4, c1, c0, 0 @ read control register
|
|
orr r4, r4, #(1<<18) @ - itcm enable
|
|
orr r4, r4, #(1<<12) @ - instruction cache enable
|
|
orr r4, r4, #(1<<2) @ - data cache enable
|
|
orr r4, r4, #(1<<0) @ - mpu enable
|
|
mcr p15, 0, r4, c1, c0, 0 @ write control register
|
|
|
|
ldr sp,=0x22160000
|
|
ldr r3, =main
|
|
blx r3
|
|
.pool
|
|
|
|
InfiniteLoop:
|
|
b InfiniteLoop
|
|
|
|
#endif // EXEC_GATEWAY
|