]> git.sur5r.net Git - u-boot/blobdiff - arch/mips/cpu/mips32/start.S
Merge branch 'sandbox' of git://git.denx.de/u-boot-x86
[u-boot] / arch / mips / cpu / mips32 / start.S
index f5ebe79564cfe863fa404c2792a15a600955e3aa..384ea26022bcf5b907a8eaf541466bbb56a3612a 100644 (file)
@@ -51,7 +51,7 @@ _start:
         */
        .word CONFIG_SYS_XWAY_EBU_BOOTCFG
        .word 0x0
-#elif defined(CONFIG_QEMU_MALTA)
+#elif defined(CONFIG_MALTA)
        /*
         * Linux expects the Board ID here.
         */
@@ -136,10 +136,11 @@ reset:
 
        /* Set up temporary stack */
        li      sp, CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_INIT_SP_OFFSET
+       move    fp, sp
 
        la      t9, board_init_f
        jr      t9
-        nop
+        move   ra, zero
 
 /*
  * void relocate_code (addr_sp, gd, addr_moni)
@@ -155,6 +156,7 @@ reset:
        .ent    relocate_code
 relocate_code:
        move    sp, a0                  # set new stack pointer
+       move    fp, sp
 
        move    s0, a1                  # save gd in s0
        move    s2, a2                  # save destination address in s2
@@ -227,10 +229,10 @@ in_ram:
         addi   t1, 8
 
 1:
-       lw      t3, -4(t1)              # t3 <-- relocation info
+       lw      t8, -4(t1)              # t8 <-- relocation info
 
-       sub     t3, 3
-       bnez    t3, 2f                  # skip non R_MIPS_REL32 entries
+       li      t3, 3
+       bne     t8, t3, 2f              # skip non R_MIPS_REL32 entries
         nop
 
        lw      t3, -8(t1)              # t3 <-- location to fix up in FLASH
@@ -260,8 +262,9 @@ in_ram:
         addi   t1, 4
 
        move    a0, s0                  # a0 <-- gd
+       move    a1, s2
        la      t9, board_init_r
        jr      t9
-        move   a1, s2
+        move   ra, zero
 
        .end    relocate_code