Просмотр исходного кода

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 Biemann <andreas.devel@googlemail.com>
Andreas Bießmann 14 лет назад
Родитель
Сommit
b9c5081d7d
1 измененных файлов с 2 добавлено и 2 удалено
  1. 2 2
      arch/arm/cpu/armv7/start.S

+ 2 - 2
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