[U-Boot] [PATCH] BUGFIX: arm: armv7: data abort in get_bad_stack_swi

Tetsuyuki Kobayashi koba at kmckk.co.jp
Thu Apr 4 06:52:47 CEST 2013


When swi instruction is executed, it is expected to get message
"software interrupt" in console and dump registers and reboot, as
do_software_interrupt() in arch/arm/lib/interrupts.c.
Actually it causes data abort in get_bad_stack_swi macro in
arch/arm/cpu/v7/start.S.
This patch fixes this problem.

Signed-off-by: Tetsuyuki Kobayashi <koba at kmckk.co.jp>
---
Hello, I found this bug on KZM-A9-GT board (aka. kzm9g) on
v2013.04-rc2. And tested this patch on the board.
I found the same typo in arch/arm/cpu/{arm1136,arm1176,pxa}/start.S.

 arch/arm/cpu/armv7/start.S |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
index 36a4c3c..9bf950b 100644
--- a/arch/arm/cpu/armv7/start.S
+++ b/arch/arm/cpu/armv7/start.S
@@ -465,7 +465,7 @@ ENDPROC(cpu_init_crit)
 						@ spots for abort stack
 	str	lr, [r0]			@ save caller lr in position 0
 						@ of saved stack
-	mrs	r0, spsr			@ get the spsr
+	mrs	lr, spsr			@ get the spsr
 	str	lr, [r0, #4]			@ save spsr in position 1 of
 						@ saved stack
 	ldr	r0, [r13]			@ restore r0
-- 
1.7.9.5



More information about the U-Boot mailing list