[PATCH 0/2] semihosting/uaccess: Swap bytes based on runtime-configurable endianness

Martin Kröning via posted 2 patches 4 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260106-semihosting-cpu-tswap-v1-0-646576c25f56@eonerc.rwth-aachen.de
Maintainers: "Alex Bennée" <alex.bennee@linaro.org>
include/exec/tswap.h          | 30 ++++++++++++++++++++++++++++++
include/semihosting/uaccess.h |  8 ++++----
2 files changed, 34 insertions(+), 4 deletions(-)
[PATCH 0/2] semihosting/uaccess: Swap bytes based on runtime-configurable endianness
Posted by Martin Kröning via 4 weeks ago
Hi all,

This series adds cpu_tswap() functions and then uses them in semihosting
to properly swap bytes based on the runtime-configurable endianness.

The semihosting ABI [1] states:
> Multi-byte values in memory must be formatted as pure little-endian or pure
> big-endian to match the endianness mapping configuration of the processor.

This series ensures that semihosting data is properly byte-swapped if
the guest's CPU is currently in a different runtime-configurable
endianness than the host's CPU.

This is my first series submitted to QEMU, so please tell me if I have
overlooked anything or should squash the two commits.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3258
Buglink: https://github.com/taiki-e/semihosting/issues/18

[1]: https://github.com/ARM-software/abi-aa/blob/2025Q1/semihosting/semihosting.rst#the-semihosting-interface

Thanks for your work!
Martin Kröning

Signed-off-by: Martin Kröning <martin.kroening@eonerc.rwth-aachen.de>
---
Martin Kröning (2):
      include/exec: Provide the cpu_tswap() functions
      semihosting/uaccess: Use the cpu_tswap() functions

 include/exec/tswap.h          | 30 ++++++++++++++++++++++++++++++
 include/semihosting/uaccess.h |  8 ++++----
 2 files changed, 34 insertions(+), 4 deletions(-)
---
base-commit: 0fc482b73d8e085d1375b4e17b0647fd2e6fe8f0
change-id: 20260106-semihosting-cpu-tswap-b47debe274e2

Best regards,
-- 
Martin Kröning <martin.kroening@eonerc.rwth-aachen.de>