qemu/target/loongarch
Bibo Mao be45144bee target/loongarch: Add timer information dump support
Timer emulation sometimes is problematic especially when vm is running in
kvm mode. This patch adds registers dump support relative with timer
hardware, so that it is easier to find the problems.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Reviewed-by: Song Gao <gaosong@loongson.cn>
Message-Id: <20231206081839.2290178-1-maobibo@loongson.cn>
Signed-off-by: Song Gao <gaosong@loongson.cn>
2023-12-21 16:07:47 +08: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-qom.h target: Move ArchCPUClass definition to 'cpu.h' 2023-11-07 13:08:48 +01:00
cpu.c target/loongarch: Add timer information dump support 2023-12-21 16:07:47 +08:00
cpu.h target/loongarch: Declare QOM definitions in 'cpu-qom.h' 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_helper.c target/loongarch: Move simply DO_XX marcos togther 2023-09-20 14:33:43 +08:00
vec.h 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/