diff --git a/source/arm11/start.s b/source/arm11/start.s index 95a41dd..5f3eb69 100644 --- a/source/arm11/start.s +++ b/source/arm11/start.s @@ -32,6 +32,7 @@ .type _start %function .type stubExceptionVectors %function .type clearMem %function +.type copyBoot11 %function .type setupVfp %function .type _init %function .type deinitCpu %function @@ -124,6 +125,10 @@ cmp r4, #0 bne _start_skip_bss_init_array + ldr r0, =BOOT11_BASE + 0x8000 + ldr r1, [r0] + cmp r1, #0 + blne copyBoot11 @ Clear bss section ldr r0, =__bss_start__ ldr r1, =__bss_end__ @@ -209,6 +214,20 @@ .pool +copyBoot11: + ldr r0, =BOOT11_BASE + ldr r1, =VRAM_BASE + VRAM_SIZE - 0x10000 + mov r2, #0x10000 + copyBoot11_lp: + ldmia r0!, {r3-r6} + stmia r1!, {r3-r6} + subs r2, r2, #16 + bne copyBoot11_lp + bx lr + +.pool + + .align 2 setupVfp: mov r0, #0