qemu/target/loongarch
Philippe Mathieu-Daudé 6ee45fac56 target: Unify QOM style
Enforce the style described by commit 067109a11c ("docs/devel:
mention the spacing requirement for QOM"):

  The first declaration of a storage or class structure should
  always be the parent and leave a visual space between that
  declaration and the new code. It is also useful to separate
  backing for properties (options driven by the user) and internal
  state to make navigation easier.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Message-Id: <20231013140116.255-2-philmd@linaro.org>
2023-11-07 12:13:27 +01:00
..
insn_trans linux-user/loongarch64: Use traps to track LSX/LASX usage 2023-11-03 14:13:18 +08:00
constant_timer.c target/loongarch: Add constant timer support 2022-06-06 18:09:03 +00:00
cpu-csr.h target/loongarch: Support LoongArch32 VPPN 2023-08-24 11:17:56 +08:00
cpu-param.h target/loongarch: Support 4K page size 2023-11-03 14:13:13 +08:00
cpu.c target/loongarch: Allow user enable/disable LSX/LASX features 2023-11-03 14:13:02 +08:00
cpu.h target: Unify QOM style 2023-11-07 12:13:27 +01:00
csr_helper.c target/loongarch: Fix the CSRRD CPUID instruction on big endian hosts 2023-07-24 18:44:48 +02:00
disas.c target/loongarch: Add preldx instruction 2023-10-13 09:50:16 +08:00
fpu_helper.c target/loongarch: Implement LSX fpu arith instructions 2023-05-06 11:19:48 +08:00
gdbstub.c target/loongarch: Add LASX data support 2023-09-20 11:43:11 +08:00
helper.h target/loongarch: Implement xvshuf xvperm{i} xvshuf4i 2023-09-20 14:33:42 +08:00
insns.decode target/loongarch: Add preldx instruction 2023-10-13 09:50:16 +08:00
internals.h target/loongarch: Add LASX data support 2023-09-20 11:43:11 +08:00
iocsr_helper.c target/helpers: Remove unnecessary 'qemu/main-loop.h' header 2023-08-31 19:47:43 +02:00
Kconfig hw/loongarch: Add support loongson3 virt machine type. 2022-06-06 18:09:03 +00:00
loongarch-qmp-cmds.c target/loongarch: Implement query-cpu-model-expansion 2023-11-03 14:13:07 +08:00
machine.c target/loongarch: Add LASX data support 2023-09-20 11:43:11 +08:00
meson.build meson: Rename target_softmmu_arch -> target_system_arch 2023-10-07 19:03:07 +02:00
op_helper.c target/helpers: Remove unnecessary 'qemu/main-loop.h' header 2023-08-31 19:47:43 +02:00
README docs/system/loongarch: Update the LoongArch document 2022-08-13 04:45:03 -07:00
tlb_helper.c target/loongarch: Support 4K page size 2023-11-03 14:13:13 +08:00
translate.c accel/tcg: Replace CPUState.env_ptr with cpu_env() 2023-10-04 11:03:54 -07:00
translate.h target/loongarch: Add avail_LASX to check LASX instructions 2023-09-20 11:43:11 +08:00
vec.h target/loongarch: Move simply DO_XX marcos togther 2023-09-20 14:33:43 +08:00
vec_helper.c target/loongarch: Move simply DO_XX marcos togther 2023-09-20 14:33:43 +08:00

- Introduction

  LoongArch is the general processor architecture of Loongson.

  The following versions of the LoongArch core are supported
    core: 3A5000
    https://github.com/loongson/LoongArch-Documentation/releases/download/2021.08.17/LoongArch-Vol1-v1.00-EN.pdf

  We can get the latest loongarch documents at https://github.com/loongson/LoongArch-Documentation/tags.


- System emulation

  You can reference docs/system/loongarch/loongson3.rst to get the information about system emulation of LoongArch.

- Linux-user emulation

  We already support Linux user emulation. We can use LoongArch cross-tools to build LoongArch executables on X86 machines,
  and We can also use qemu-loongarch64 to run LoongArch executables.

  1. Config cross-tools env.

     see System emulation.

  2. Test tests/tcg/multiarch.

     ./configure  --static  --prefix=/usr  --disable-werror --target-list="loongarch64-linux-user" --enable-debug

     cd build

     make && make check-tcg

  3. Run LoongArch system basic command with loongarch-clfs-system.

     - Config clfs env.

       wget https://github.com/loongson/build-tools/releases/download/2022.05.29/loongarch64-clfs-system-5.0.tar.bz2

       tar -vxf loongarch64-clfs-system-5.0.tar.bz2 -C /opt/clfs

       cp /opt/clfs/lib64/ld-linux-loongarch-lp64d.so.1  /lib64

       export LD_LIBRARY_PATH="/opt/clfs/lib64"

     - Run LoongArch system basic command.

       ./qemu-loongarch64  /opt/clfs/usr/bin/bash
       ./qemu-loongarch64  /opt/clfs/usr/bin/ls
       ./qemu-loongarch64  /opt/clfs/usr/bin/pwd

- Note.
  We can get the latest LoongArch documents or LoongArch tools at https://github.com/loongson/