[PATCH v20 00/13] Add LoongArch linux-user emulation support

Song Gao posted 13 patches 1 year, 9 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220624031049.1716097-1-gaosong@loongson.cn
Maintainers: Laurent Vivier <laurent@vivier.eu>, Song Gao <gaosong@loongson.cn>, Xiaojuan Yang <yangxiaojuan@loongson.cn>
There is a newer version of this series
configs/targets/loongarch64-linux-user.mak    |   3 +
linux-user/elfload.c                          |  91 +++++
linux-user/loongarch64/cpu_loop.c             |  96 ++++++
linux-user/loongarch64/signal.c               | 326 ++++++++++++++++++
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, 1135 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
[PATCH v20 00/13] Add LoongArch linux-user emulation support
Posted by Song Gao 1 year, 9 months ago
Hi All,

This series adds 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 patch:

  0002-linux-user-Add-LoongArch-signal-support.patch

V20:
  - Update signal.c, we should't set sc_extcontext[0] on
    setup_sigcontext;

V19:
  - Update signal.c, add fpu info, fpu_context and end info to
    target_rt_sigframe.

V18:
  - Update signal.c, add set fpu_context'magic, update parse_extcontext()
    and remove some cast.

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/20220623085526.1678168-1-gaosong@loongson.cn/

Test:
   make check  && make check-tcg  &&  run LoongArch bash

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               | 326 ++++++++++++++++++
 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, 1135 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
Re: [PATCH v20 00/13] Add LoongArch linux-user emulation support
Posted by gaosong 1 year, 9 months ago
Hi, Richard

On 2022/6/24 上午11:10, Song Gao wrote:
> Hi All,
>
> This series adds 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 patch:
>
>    0002-linux-user-Add-LoongArch-signal-support.patch
>
> V20:
>    - Update signal.c, we should't set sc_extcontext[0] on
>      setup_sigcontext;
>
> V19:
>    - Update signal.c, add fpu info, fpu_context and end info to
>      target_rt_sigframe.
>
> V18:
>    - Update signal.c, add set fpu_context'magic, update parse_extcontext()
>      and remove some cast.
>
> 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/20220623085526.1678168-1-gaosong@loongson.cn/
>
> Test:
>     make check  && make check-tcg  &&  run LoongArch bash
>
> 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

Sorry for disturbing you,   Should we need some changes or tests with 
this series?

Thanks.
Song Gao
>   configs/targets/loongarch64-linux-user.mak    |   3 +
>   linux-user/elfload.c                          |  91 +++++
>   linux-user/loongarch64/cpu_loop.c             |  96 ++++++
>   linux-user/loongarch64/signal.c               | 326 ++++++++++++++++++
>   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, 1135 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
>