Merge remote branch 'origin/master' into next
[oweals/u-boot.git] / cpu / mpc5xxx / start.S
index 075a7dd836180216ec118b6f1fc235dcef0cf797..ba499442107168a4749f3b116f6031373df17b67 100644 (file)
@@ -56,7 +56,7 @@
 /*
  * Set up GOT: Global Offset Table
  *
- * Use r14 to access the GOT
+ * Use r12 to access the GOT
  */
        START_GOT
        GOT_ENTRY(_GOT2_TABLE_)
@@ -111,9 +111,6 @@ boot_warm:
 # if defined(CONFIG_SYS_RAMBOOT)
 #  error CONFIG_SYS_LOWBOOT is incompatible with CONFIG_SYS_RAMBOOT
 # endif /* CONFIG_SYS_RAMBOOT */
-# if defined(CONFIG_MGT5100)
-#  error CONFIG_SYS_LOWBOOT is incompatible with MGT5100
-# endif /* CONFIG_MGT5100 */
        lis     r4, CONFIG_SYS_DEFAULT_MBAR@h
        lis     r3,     START_REG(CONFIG_SYS_BOOTCS_START)@h
        ori     r3, r3, START_REG(CONFIG_SYS_BOOTCS_START)@l
@@ -145,14 +142,9 @@ lowboot_reentry:
 #if defined(CONFIG_SYS_DEFAULT_MBAR) && !defined(CONFIG_SYS_RAMBOOT)
        lis     r3, CONFIG_SYS_MBAR@h
        ori     r3, r3, CONFIG_SYS_MBAR@l
-#if defined(CONFIG_MPC5200)
        /* MBAR is mirrored into the MBAR SPR */
        mtspr   MBAR,r3
        rlwinm  r3, r3, 16, 16, 31
-#endif
-#if defined(CONFIG_MGT5100)
-       rlwinm  r3, r3, 17, 15, 31
-#endif
        lis     r4, CONFIG_SYS_DEFAULT_MBAR@h
        stw     r3, 0(r4)
 #endif /* CONFIG_SYS_DEFAULT_MBAR */
@@ -567,6 +559,7 @@ relocate_code:
        mr      r9,  r4         /* Save copy of Global Data pointer     */
        mr      r10, r5         /* Save copy of Destination Address     */
 
+       GET_GOT
        mr      r3,  r5                         /* Destination Address  */
        lis     r4, CONFIG_SYS_MONITOR_BASE@h           /* Source      Address  */
        ori     r4, r4, CONFIG_SYS_MONITOR_BASE@l
@@ -584,7 +577,7 @@ relocate_code:
        sub     r15, r10, r4
 
        /* First our own GOT */
-       add     r14, r14, r15
+       add     r12, r12, r15
        /* then the one used by the C code */
        add     r30, r30, r15
 
@@ -657,7 +650,7 @@ relocate_code:
 in_ram:
 
        /*
-        * Relocation Function, r14 point to got2+0x8000
+        * Relocation Function, r12 point to got2+0x8000
         *
         * Adjust got2 pointers, no need to check for 0, this code
         * already puts a few entries in the table.
@@ -722,6 +715,8 @@ clear_bss:
         */
        .globl  trap_init
 trap_init:
+       mflr    r4                      /* save link register           */
+       GET_GOT
        lwz     r7, GOT(_start)
        lwz     r8, GOT(_end_of_vectors)
 
@@ -729,8 +724,6 @@ trap_init:
 
        cmplw   0, r7, r8
        bgelr                           /* return if r7>=r8 - just in case */
-
-       mflr    r4                      /* save link register           */
 1:
        lwz     r0, 0(r7)
        stw     r0, 0(r9)