]> git.sur5r.net Git - u-boot/blobdiff - cpu/mips/start.S
Prepare for SoC rework of ARM code:
[u-boot] / cpu / mips / start.S
index 86a8407f61afc4e2d82324aa26f053671166c162..ff105a418401c953cd817ef8b1e42eeec30c7d23 100644 (file)
@@ -65,7 +65,7 @@ _start:
        RVECENT(romReserved,14)
        RVECENT(romReserved,15)
        RVECENT(romReserved,16)
-       RVECENT(romReserved,17) 
+       RVECENT(romReserved,17)
        RVECENT(romReserved,18)
        RVECENT(romReserved,19)
        RVECENT(romReserved,20)
@@ -111,7 +111,7 @@ _start:
        RVECENT(romReserved,60)
        RVECENT(romReserved,61)
        RVECENT(romReserved,62)
-       RVECENT(romReserved,63) 
+       RVECENT(romReserved,63)
        XVECENT(romExcHandle,0x200)     /* bfc00200: R4000 tlbmiss vector */
        RVECENT(romReserved,65)
        RVECENT(romReserved,66)
@@ -127,7 +127,7 @@ _start:
        RVECENT(romReserved,76)
        RVECENT(romReserved,77)
        RVECENT(romReserved,78)
-       RVECENT(romReserved,79) 
+       RVECENT(romReserved,79)
        XVECENT(romExcHandle,0x280)     /* bfc00280: R4000 xtlbmiss vector */
        RVECENT(romReserved,81)
        RVECENT(romReserved,82)
@@ -143,7 +143,7 @@ _start:
        RVECENT(romReserved,92)
        RVECENT(romReserved,93)
        RVECENT(romReserved,94)
-       RVECENT(romReserved,95) 
+       RVECENT(romReserved,95)
        XVECENT(romExcHandle,0x300)     /* bfc00300: R4000 cache vector */
        RVECENT(romReserved,97)
        RVECENT(romReserved,98)
@@ -176,7 +176,7 @@ _start:
        RVECENT(romReserved,125)
        RVECENT(romReserved,126)
        RVECENT(romReserved,127)
-   
+
        /* We hope there are no more reserved vectors!
         * 128 * 8 == 1024 == 0x400
         * so this is address R_VEC+0x400 == 0xbfc00400
@@ -214,7 +214,11 @@ reset:
        mtc0    zero, CP0_WATCHHI
 
        /* STATUS register */
+#ifdef  CONFIG_TB0229
+       li      k0, ST0_CU0
+#else
        mfc0    k0, CP0_STATUS
+#endif
        li      k1, ~ST0_IE
        and     k0, k1
        mtc0    k0, CP0_STATUS
@@ -237,9 +241,9 @@ reset:
        nop
 #endif
 
-       /* Initialize any external memory. 
+       /* Initialize any external memory.
         */
-       bal     memsetup
+       bal     lowlevel_init
        nop
 
        /* Initialize caches...
@@ -291,6 +295,11 @@ reset:
 relocate_code:
        move    sp, a0          /* Set new stack pointer                */
 
+       li      t0, CFG_MONITOR_BASE
+       la      t3, in_ram
+       lw      t2, -12(t3)     /* t2 <-- uboot_end_data        */
+       move    t1, a2
+
        /*
         * Fix GOT pointer:
         *
@@ -300,10 +309,6 @@ relocate_code:
        sub     gp, CFG_MONITOR_BASE
        add     gp, a2                  /* gp now adjusted              */
        sub     t6, gp, t6              /* t6 <-- relocation offset     */
-       
-       li      t0, CFG_MONITOR_BASE
-       add     t2, t0, CFG_MONITOR_LEN
-       move    t1, a2
 
        /*
         * t0 = source address
@@ -362,14 +367,13 @@ in_ram:
 1:     addi    t1, 4
        bltl    t1, t2, 1b
        sw      zero, 0(t1)     /* delay slot                   */
-       
+
        move    a0, a1
        la      t9, board_init_r
        j       t9
        move    a1, a2          /* delay slot                   */
 
        .end    relocate_code
-       
 
 
        /* Exception handlers.
@@ -379,4 +383,3 @@ romReserved:
 
 romExcHandle:
        b romExcHandle
-