aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Bießmann <andreas.devel@googlemail.com>2010-12-01 00:58:36 +0100
committerWolfgang Denk <wd@denx.de>2010-12-09 11:01:16 +0100
commitb9c5081d7d6ebc3290813675ca8771f4471edb85 (patch)
treec914a55c317ff09cc358421413bb9670bb0b9f22
parent1f52d89f2b4b5ca8dde7aa1be02bb1c658e0aa13 (diff)
armv7: fix relocation skip
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.devel@googlemail.com>
-rw-r--r--arch/arm/cpu/armv7/start.S4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
index 02fdfc797..c71ef6cf9 100644
--- a/arch/arm/cpu/armv7/start.S
+++ b/arch/arm/cpu/armv7/start.S
@@ -166,9 +166,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