MSR overwrite fix
authorurwithsughosh@gmail.com <urwithsughosh@gmail.com>
Mon, 24 Sep 2007 17:36:01 +0000 (13:36 -0400)
committerAndrew Fleming-AFLEMING <afleming@freescale.com>
Fri, 19 Oct 2007 18:13:27 +0000 (13:13 -0500)
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>
cpu/mpc85xx/start.S

index e5cabcac054899535389f958669d14490f42fdcc..ada6ea505fbf12f297023bae71772bf448aab0fe 100644 (file)
@@ -218,6 +218,8 @@ _start_e500:
        bdnz    0b
 
        /* Clear and set up some registers. */
+       li      r0,0
+       mtmsr   r0
        li      r0,0x0000
        lis     r1,0xffff
        mtspr   DEC,r0                  /* prevent dec exceptions */
@@ -277,7 +279,6 @@ _start_e500:
 
        /* 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           */
@@ -286,15 +287,9 @@ _start_e500:
        ori     r3,r3,CFG_MONITOR_BASE@l
        addi    r3,r3,_start_cont - _start + _START_OFFSET
        mtlr    r3
+       blr
 #endif
 
-3:     li      r0,0
-       mtspr   SRR1,r0         /* Keep things disabled for now */
-       mflr    r1
-       mtspr   SRR0,r1
-       rfi
-       isync
-
        .text
        .globl  _start
 _start: