So far, we limited semihosting support to 32-bit ARM, but it's also usable on ARM64 and even RISC-V. This series does the first step by making it compile for ARM64 and also adds DEBUG_LL and console drivers. Ahmad Fatoum (6): ARM: lib32: semihosting: prepare for more general use firmware: semihosting: add ARMv8-A semihosting support firmware: semihosting: don't return error code from writec/write0 firmware: semihosting: translate return values in wrappers ARM: semihosting: add DEBUG_LL implementation serial: add semihosting console arch/arm/Kconfig | 2 +- arch/arm/cpu/Makefile | 2 + .../semihosting-trap_32.S} | 2 +- arch/arm/cpu/semihosting-trap_64.S | 10 ++ arch/arm/include/asm/debug_ll.h | 4 + arch/arm/include/asm/semihosting.h | 47 ++++++--- arch/arm/lib32/Makefile | 1 - common/Kconfig.debug_ll | 13 +++ drivers/firmware/Kconfig | 4 + drivers/firmware/Makefile | 1 + .../lib32 => drivers/firmware}/semihosting.c | 99 ++++++++++--------- drivers/serial/Kconfig | 8 ++ drivers/serial/Makefile | 1 + drivers/serial/serial_semihosting.c | 44 +++++++++ fs/Kconfig | 2 +- fs/smhfs.c | 37 +++---- include/asm-generic/semihosting.h | 23 +++++ include/debug_ll/semihosting.h | 15 +++ 18 files changed, 227 insertions(+), 88 deletions(-) rename arch/arm/{lib32/semihosting-trap.S => cpu/semihosting-trap_32.S} (84%) create mode 100644 arch/arm/cpu/semihosting-trap_64.S rename {arch/arm/lib32 => drivers/firmware}/semihosting.c (64%) create mode 100644 drivers/serial/serial_semihosting.c create mode 100644 include/asm-generic/semihosting.h create mode 100644 include/debug_ll/semihosting.h -- 2.39.2