I doubt the stack_setup() was defective before:
 we load the current location of _start and compare against destination
 of relocate_code(). If we are already there we shoud skip the
 relocation and jump over to clear_bss. Before the clear_bss was also skipped.

Signed-off-by: Andreas Bießmann <andreas.de...@googlemail.com>
---
Dear Albert,
(or whoever works with armv7 currently)

However I doubt there is another issue when CONFIG_PRELOADER is not set!
Then the bss will never be setup, is that correct?

 arch/arm/cpu/armv7/start.S |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
index 5d79f34..7e31cc2 100644
--- a/arch/arm/cpu/armv7/start.S
+++ b/arch/arm/cpu/armv7/start.S
@@ -165,9 +165,9 @@ stack_setup:
        mov     sp, r4
 
        adr     r0, _start
-       cmp     r0, r6
 #ifndef CONFIG_PRELOADER
-       beq     jump_2_ram
+       cmp     r0, r6
+       beq     clear_bss               /* skip relocation */
 #endif
        mov     r1, r6                  /* r1 <- scratch for copy_loop */
        ldr     r2, _TEXT_BASE
-- 
1.7.3.2

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to