MSR overwrite fix

Hello,
  This patch fixes the MSR overwrite in the start.S when moving out of
  the last 4K page.

Signed-off-by: Sughosh Ganu <urwithsughosh@gmail.com>
This commit is contained in:
urwithsughosh@gmail.com 2007-09-24 13:36:01 -04:00 committed by Andrew Fleming-AFLEMING
parent 5c7ea64bb7
commit 1e701e7013

View file

@ -218,6 +218,8 @@ _start_e500:
bdnz 0b bdnz 0b
/* Clear and set up some registers. */ /* Clear and set up some registers. */
li r0,0
mtmsr r0
li r0,0x0000 li r0,0x0000
lis r1,0xffff lis r1,0xffff
mtspr DEC,r0 /* prevent dec exceptions */ mtspr DEC,r0 /* prevent dec exceptions */
@ -277,7 +279,6 @@ _start_e500:
/* Jump out the last 4K page and continue to 'normal' start */ /* Jump out the last 4K page and continue to 'normal' start */
#ifdef CFG_RAMBOOT #ifdef CFG_RAMBOOT
bl 3f
b _start_cont b _start_cont
#else #else
/* Calculate absolute address in FLASH and jump there */ /* Calculate absolute address in FLASH and jump there */
@ -286,15 +287,9 @@ _start_e500:
ori r3,r3,CFG_MONITOR_BASE@l ori r3,r3,CFG_MONITOR_BASE@l
addi r3,r3,_start_cont - _start + _START_OFFSET addi r3,r3,_start_cont - _start + _START_OFFSET
mtlr r3 mtlr r3
blr
#endif #endif
3: li r0,0
mtspr SRR1,r0 /* Keep things disabled for now */
mflr r1
mtspr SRR0,r1
rfi
isync
.text .text
.globl _start .globl _start
_start: _start: