[PATCH master] ARM: semihosting: use svc instead of incorrect bkpt in DEBUG_LL

Ahmad Fatoum a.fatoum at pengutronix.de
Thu Aug 22 04:56:30 PDT 2024


The semihosting DEBUG_LL support was tested on ARM64. Trying it out on
ARM32 leads to a hanging system, because the DEBUG_LL handler used the
wrong instruction (breakpoint) instead of what the normal semihosting
implementation uses (supervisor call).

Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
 arch/arm/include/asm/semihosting.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/include/asm/semihosting.h b/arch/arm/include/asm/semihosting.h
index 2219e858d040..bdfe472eedc0 100644
--- a/arch/arm/include/asm/semihosting.h
+++ b/arch/arm/include/asm/semihosting.h
@@ -27,8 +27,8 @@ static inline void semihosting_putc(void *unused, int c)
 		"push {%0}\n"
 		"mov r1, sp\n"
 		"mov r0, #0x03\n"
-	 ARM(	"bkpt #0x123456\n")
-	 THUMB(	"bkpt #0xAB\n")
+	 ARM(	"svc #0x123456\n")
+	 THUMB(	"svc #0xAB\n")
 		"pop {%0}\n"
 		: /* No outputs */
 		: "r" (c)
-- 
2.39.2




More information about the barebox mailing list