summaryrefslogtreecommitdiff
path: root/arch/arm/boot/compressed/debug.S
diff options
context:
space:
mode:
authorNicolas Pitre <nicolas.pitre@linaro.org>2017-10-06 19:39:57 +0100
committerRussell King <rmk+kernel@armlinux.org.uk>2017-10-12 11:28:29 +0100
commitee3eaee6a1dafb7ed7213ec2fad22552b4d58ed1 (patch)
tree0f2d994489012bf0d0de415fa1895be32b808d39 /arch/arm/boot/compressed/debug.S
parent6042b8c7c08cad7a8bdc0456c619ae941962b40a (diff)
downloadlwn-ee3eaee6a1dafb7ed7213ec2fad22552b4d58ed1.tar.gz
lwn-ee3eaee6a1dafb7ed7213ec2fad22552b4d58ed1.zip
ARM: 8704/1: semihosting: use proper instruction on v7m processors
The svc instruction doesn't exist on v7m processors. Semihosting ops are invoked with the bkpt instruction instead. Signed-off-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'arch/arm/boot/compressed/debug.S')
-rw-r--r--arch/arm/boot/compressed/debug.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/boot/compressed/debug.S b/arch/arm/boot/compressed/debug.S
index 5392ee63338f..8f6e37177de1 100644
--- a/arch/arm/boot/compressed/debug.S
+++ b/arch/arm/boot/compressed/debug.S
@@ -23,7 +23,11 @@ ENTRY(putc)
strb r0, [r1]
mov r0, #0x03 @ SYS_WRITEC
ARM( svc #0x123456 )
+#ifdef CONFIG_CPU_V7M
+ THUMB( bkpt #0xab )
+#else
THUMB( svc #0xab )
+#endif
mov pc, lr
.align 2
1: .word _GLOBAL_OFFSET_TABLE_ - .