[U-Boot] [PATCH 4/4] armv7: fix relocation skip

Andreas Bießmann andreas.devel at googlemail.com
Wed Dec 1 00:58:36 CET 2010


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 at 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



More information about the U-Boot mailing list