Using a mtmsr/blr means that you have to be executing at the
same virtual address once you enable translation.  This is
unnecessarily restrictive, and is not really how this is
usually done.  Change it to use the more common mtspr SRR0/SRR1
and rfi method.

Signed-off-by: Becky Bruce <[EMAIL PROTECTED]>
---
 cpu/mpc86xx/start.S |   19 ++++++++-----------
 1 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/cpu/mpc86xx/start.S b/cpu/mpc86xx/start.S
index 0d30e91..7e36801 100644
--- a/cpu/mpc86xx/start.S
+++ b/cpu/mpc86xx/start.S
@@ -244,9 +244,15 @@ in_flash:
         */
 
        /* enable address translation */
-       bl      enable_addr_trans
-       sync
+       mfmsr   r5
+       ori     r5, r5, (MSR_IR | MSR_DR)
+       lis     r3,[EMAIL PROTECTED]
+       ori     r3, r3, [EMAIL PROTECTED]
+       mtspr   SPRN_SRR0,r3
+       mtspr   SPRN_SRR1,r5
+       rfi
 
+addr_trans_enabled:
        /* enable and invalidate the data cache */
 /*     bl      l1dcache_enable */
        bl      dcache_enable
@@ -423,15 +429,6 @@ tlblp:
        blt tlblp
        blr
 
-       .globl enable_addr_trans
-enable_addr_trans:
-       /* enable address translation */
-       mfmsr   r5
-       ori     r5, r5, (MSR_IR | MSR_DR)
-       mtmsr   r5
-       isync
-       blr
-
        .globl disable_addr_trans
 disable_addr_trans:
        /* disable address translation */
-- 
1.5.5.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to