ARM: fix address setup in start.S
authorDarius Augulis <augulis.darius@gmail.com>
Mon, 25 Oct 2010 10:45:35 +0000 (13:45 +0300)
committerWolfgang Denk <wd@denx.de>
Tue, 26 Oct 2010 19:11:58 +0000 (21:11 +0200)
Fix address setup bug for ARM.
This bug stops u-boot booting if
CONFIG_SKIP_RELOCATE_UBOOT is defined.

Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
arch/arm/cpu/arm1136/start.S
arch/arm/cpu/arm926ejs/start.S
arch/arm/cpu/armv7/start.S
arch/arm/cpu/pxa/start.S

index 07d0c859cb839a975ab44429f20ee706532c3ee5..e3e646ca6110939ec3ab7c1725ed0b6c322f343a 100644 (file)
@@ -297,8 +297,10 @@ _nand_boot_ofs
 jump_2_ram:
        ldr     r0, _board_init_r_ofs
        adr     r1, _start
-       add     r0, r0, r1
-       add     lr, r0, r9
+       add     lr, r0, r1
+#ifndef CONFIG_SKIP_RELOCATE_UBOOT
+       add     lr, lr, r9
+#endif
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
        mov     r1, r7          /* dest_addr */
index 69e1a33174f5d1c4970677b3ee4c6db0a43dfd12..7397882b59ea864874a6c2c27bbab42d3def4576 100644 (file)
@@ -286,8 +286,10 @@ _nand_boot_ofs:
 #else
        ldr     r0, _board_init_r_ofs
        adr     r1, _start
-       add     r0, r0, r1
-       add     lr, r0, r9
+       add     lr, r0, r1
+#ifndef CONFIG_SKIP_RELOCATE_UBOOT
+       add     lr, lr, r9
+#endif
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
        mov     r1, r7          /* dest_addr */
index b9eb0c9b586d10c781adcb1d063d8a8556531dea..bdf2fad3802f83659eaf11e3da955f2bab303333 100644 (file)
@@ -275,8 +275,10 @@ clbss_l:str        r2, [r0]                /* clear loop...                    */
 jump_2_ram:
        ldr     r0, _board_init_r_ofs
        adr     r1, _start
-       add     r0, r0, r1
-       add     lr, r0, r9
+       add     lr, r0, r1
+#ifndef CONFIG_SKIP_RELOCATE_UBOOT
+       add     lr, lr, r9
+#endif
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
        mov     r1, r7          /* dest_addr */
index b8065b70df5f4c8989d93481451bb61a004d7dcd..bf8510eb768a984cd42b2d88f186091f4451bf96 100644 (file)
@@ -331,8 +331,10 @@ _start_oneboot_ofs
 #else
        ldr     r0, _board_init_r_ofs
        adr     r1, _start
-       add     r0, r0, r1
-       add     lr, r0, r9
+       add     lr, r0, r1
+#ifndef CONFIG_SKIP_RELOCATE_UBOOT
+       add     lr, lr, r9
+#endif
        /* setup parameters for board_init_r */
        mov     r0, r5          /* gd_t */
        mov     r1, r7          /* dest_addr */