]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - arch/powerpc/cpu/ppc4xx/start.S
PowerPC: Add support for -msingle-pic-base
[karo-tx-uboot.git] / arch / powerpc / cpu / ppc4xx / start.S
index b43e22c8f04d772f52e9d99123b0258828cd5cbf..aa03d9a770c17513170e32e81f8c655dd2b9c2a3 100644 (file)
        bl      reconfig_tlb0
 #endif
        GET_GOT
+#if defined(__pic__) && __pic__ == 1
+       /* Needed for upcoming -msingle-pic-base */
+       bl      _GLOBAL_OFFSET_TABLE_@local-4
+       mflr    r30
+#endif
        bl      cpu_init_f      /* run low-level CPU init code     (from Flash) */
        bl      board_init_f
        /* NOTREACHED - board_init_f() does not return */
@@ -799,7 +804,11 @@ _start:
        ori     r0,r0, RESET_VECTOR@l
        stwu    r1,-8(r1)               /* Save back chain and move SP */
        stw     r0,+12(r1)              /* Save return addr (underflow vect) */
-
+#if defined(__pic__) && __pic__ == 1
+       /* Needed for upcoming -msingle-pic-base */
+       bl      _GLOBAL_OFFSET_TABLE_@local-4
+       mflr    r30
+#endif
 #ifdef CONFIG_NAND_SPL
        bl      nand_boot_common        /* will not return */
 #else
@@ -914,7 +923,11 @@ _start:
        stwu    r0, -4(r1)              /* stack backtraces terminate cleanly   */
 
        GET_GOT                 /* initialize GOT access                        */
-
+#if defined(__pic__) && __pic__ == 1
+       /* Needed for upcoming -msingle-pic-base */
+       bl      _GLOBAL_OFFSET_TABLE_@local-4
+       mflr    r30
+#endif
        bl      board_init_f    /* run first part of init code (from Flash)     */
        /* NOTREACHED - board_init_f() does not return */
 
@@ -1179,6 +1192,11 @@ _start:
        stw     r0, +12(r1)             /* Save return addr (underflow vect) */
 #endif /* CONFIG_SYS_INIT_DCACHE_CS */
 
+#if defined(__pic__) && __pic__ == 1
+       /* Needed for upcoming -msingle-pic-base */
+       bl      _GLOBAL_OFFSET_TABLE_@local-4
+       mflr    r30
+#endif
 #ifdef CONFIG_NAND_SPL
        bl      nand_boot_common        /* will not return */
 #else