Initialize MMU if we are executing from DDR
This commit is contained in:
parent
43621ab9ed
commit
527036b1f5
|
@ -111,37 +111,38 @@ reset:
|
||||||
ldmia r0!, {r2-r8, r10}
|
ldmia r0!, {r2-r8, r10}
|
||||||
stmia r1!, {r2-r8, r10}
|
stmia r1!, {r2-r8, r10}
|
||||||
|
|
||||||
/* Initial system clock, ddr add uart */
|
/* Initial system clock, ddr and uart */
|
||||||
bl sys_clock_init
|
bl sys_clock_init
|
||||||
bl sys_dram_init
|
|
||||||
bl sys_uart_init
|
bl sys_uart_init
|
||||||
|
|
||||||
/* Boot speed up, leave slower sram */
|
/* Check if we are already running from dram */
|
||||||
adr r0, _start
|
adr r0, _start
|
||||||
ldr r1, =_start
|
ldr r1, =_start
|
||||||
cmp r0, r1
|
cmp r0, r1
|
||||||
beq _speedup
|
beq _init_mmu
|
||||||
|
|
||||||
|
/* Init dram if not running from dram */
|
||||||
|
bl sys_dram_init
|
||||||
|
|
||||||
|
/* Copy bootloader to faster dram (sram is slower) */
|
||||||
ldr r0, =0x81f80000
|
ldr r0, =0x81f80000
|
||||||
adr r1, _start
|
adr r1, _start
|
||||||
mov r2, #0x4000
|
mov r2, #0x4000
|
||||||
bl memcpy
|
bl memcpy
|
||||||
ldr r0, =_speedup
|
ldr r0, =_copy_self
|
||||||
ldr r1, =_start
|
ldr r1, =_start
|
||||||
sub r0, r0, r1
|
sub r0, r0, r1
|
||||||
ldr r1, =0x81f80000
|
ldr r1, =0x81f80000
|
||||||
add r0, r0, r1
|
add r0, r0, r1
|
||||||
mov pc, r0
|
mov pc, r0
|
||||||
_speedup:
|
_init_mmu:
|
||||||
nop
|
bl sys_mmu_init
|
||||||
|
b 1f
|
||||||
|
_copy_self:
|
||||||
/* Copyself to link address */
|
/* Copyself to link address */
|
||||||
adr r0, _start
|
|
||||||
ldr r1, =_start
|
|
||||||
cmp r0, r1
|
|
||||||
beq 1f
|
|
||||||
bl sys_copyself
|
bl sys_copyself
|
||||||
1: nop
|
|
||||||
|
|
||||||
|
1: nop
|
||||||
/* Initialize stacks */
|
/* Initialize stacks */
|
||||||
mrs r0, cpsr
|
mrs r0, cpsr
|
||||||
bic r0, r0, #0x1f
|
bic r0, r0, #0x1f
|
||||||
|
|
Loading…
Reference in New Issue