Hi All, This series add support linux-user emulation. As the LoongArch kernel had merged into 5.19-rc1, you can see the latest kernel at https://kernel.org
Need review patches: 0002-linux-user-Add-LoongArch-signal-support.patch 0007-target-loongarch-remove-badaddr-from-CPULoongArch.patch 0008-target-loongarch-Fix-missing-update-CSR_BADV.patch 0009-target-loongarch-Fix-helper_asrtle_d-asrtgt_d-raise-.patch 0010-target-loongarch-remove-unused-include-hw-loader.h.patch 0011-target-loongarch-Adjust-functions-and-structure-to-s.patch V17: - Split v16 patch7 to patch7-11, and fix some bugs for system-mode; - Update signal.c, add parse_extcontext(); - Add get_elf_hwcap(), and ELF_PLATFORM. V16: - Update signal.c; - Update helper_rdtime_d(); - Update scripts/gensyscalls.sh, fixed a warning. v15: - Rebase; - Update README; - Adjust some functions and structure to support user-mode; - Update syscall; - Update target_sigcontext; Old series: - https://patchew.org/QEMU/20220614090536.1103616-1-gaos...@loongson.cn/ Test: - user-mode: make check && make check-tcg && run LoongArch bash - system-mode make check && make check-tcg Thanks. Song Gao Song Gao (13): linux-user: Add LoongArch generic header files linux-user: Add LoongArch signal support linux-user: Add LoongArch elf support linux-user: Add LoongArch syscall support linux-user: Add LoongArch cpu_loop support scripts: add loongarch64 binfmt config target/loongarch: remove badaddr from CPULoongArch target/loongarch: Fix missing update CSR_BADV target/loongarch: Fix helper_asrtle_d/asrtgt_d raise wrong exception target/loongarch: remove unused include hw/loader.h target/loongarch: Adjust functions and structure to support user-mode default-configs: Add loongarch linux-user support target/loongarch: Update README configs/targets/loongarch64-linux-user.mak | 3 + linux-user/elfload.c | 91 +++++ linux-user/loongarch64/cpu_loop.c | 96 ++++++ linux-user/loongarch64/signal.c | 312 ++++++++++++++++++ linux-user/loongarch64/sockbits.h | 11 + linux-user/loongarch64/syscall_nr.h | 312 ++++++++++++++++++ linux-user/loongarch64/target_cpu.h | 34 ++ linux-user/loongarch64/target_elf.h | 12 + linux-user/loongarch64/target_errno_defs.h | 12 + linux-user/loongarch64/target_fcntl.h | 11 + linux-user/loongarch64/target_prctl.h | 1 + linux-user/loongarch64/target_resource.h | 11 + linux-user/loongarch64/target_signal.h | 13 + linux-user/loongarch64/target_structs.h | 11 + linux-user/loongarch64/target_syscall.h | 48 +++ linux-user/loongarch64/termbits.h | 11 + linux-user/syscall_defs.h | 6 +- scripts/gensyscalls.sh | 2 + scripts/qemu-binfmt-conf.sh | 6 +- target/loongarch/README | 39 ++- target/loongarch/cpu.c | 34 +- target/loongarch/cpu.h | 8 +- target/loongarch/gdbstub.c | 2 +- target/loongarch/helper.h | 2 + .../insn_trans/trans_privileged.c.inc | 36 ++ target/loongarch/internals.h | 2 + target/loongarch/op_helper.c | 10 +- 27 files changed, 1121 insertions(+), 15 deletions(-) create mode 100644 configs/targets/loongarch64-linux-user.mak create mode 100644 linux-user/loongarch64/cpu_loop.c create mode 100644 linux-user/loongarch64/signal.c create mode 100644 linux-user/loongarch64/sockbits.h create mode 100644 linux-user/loongarch64/syscall_nr.h create mode 100644 linux-user/loongarch64/target_cpu.h create mode 100644 linux-user/loongarch64/target_elf.h create mode 100644 linux-user/loongarch64/target_errno_defs.h create mode 100644 linux-user/loongarch64/target_fcntl.h create mode 100644 linux-user/loongarch64/target_prctl.h create mode 100644 linux-user/loongarch64/target_resource.h create mode 100644 linux-user/loongarch64/target_signal.h create mode 100644 linux-user/loongarch64/target_structs.h create mode 100644 linux-user/loongarch64/target_syscall.h create mode 100644 linux-user/loongarch64/termbits.h -- 2.31.1