Use an absolute address when jumping out of 4k boot page

On e500 when we leave the 4k boot page we should use an absolute address since
we don't know where the board code may want us to be really running at.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
Kumar Gala 2007-08-07 18:07:27 -05:00 committed by Andrew Fleming-AFLEMING
parent 39980c610c
commit 3db0bef59e
1 changed files with 27 additions and 32 deletions

View File

@ -260,32 +260,6 @@ _start_e500:
mtspr DBCR0,r0
#endif
/* Jump out the last 4K page and continue to 'normal' start */
bl 3f
b _start_cont
3: li r0,0
mtspr SRR1,r0 /* Keep things disabled for now */
mflr r1
mtspr SRR0,r1
rfi
isync
.text
.globl _start
_start:
.long 0x27051956 /* U-BOOT Magic Number */
.globl version_string
version_string:
.ascii U_BOOT_VERSION
.ascii " (", __DATE__, " - ", __TIME__, ")"
.ascii CONFIG_IDENT_STRING, "\0"
.align 4
.globl _start_cont
_start_cont:
/* L1 DCache is used for initial RAM */
/* Allocate Initial RAM in data cache.
@ -301,18 +275,39 @@ _start_cont:
addi r3,r3,32
bdnz 1b
#ifndef CFG_RAMBOOT
/* Jump out the last 4K page and continue to 'normal' start */
#ifdef CFG_RAMBOOT
bl 3f
b _start_cont
#else
/* Calculate absolute address in FLASH and jump there */
/*--------------------------------------------------------------*/
lis r3,CFG_MONITOR_BASE@h
ori r3,r3,CFG_MONITOR_BASE@l
addi r3,r3,in_flash - _start + _START_OFFSET
addi r3,r3,_start_cont - _start + _START_OFFSET
mtlr r3
blr
.global in_flash
in_flash:
#endif /* CFG_RAMBOOT */
#endif
3: li r0,0
mtspr SRR1,r0 /* Keep things disabled for now */
mflr r1
mtspr SRR0,r1
rfi
isync
.text
.globl _start
_start:
.long 0x27051956 /* U-BOOT Magic Number */
.globl version_string
version_string:
.ascii U_BOOT_VERSION
.ascii " (", __DATE__, " - ", __TIME__, ")"
.ascii CONFIG_IDENT_STRING, "\0"
.align 4
.globl _start_cont
_start_cont:
/* Setup the stack in initial RAM,could be L2-as-SRAM or L1 dcache*/
lis r1,CFG_INIT_RAM_ADDR@h
ori r1,r1,CFG_INIT_SP_OFFSET@l