qemu/target/loongarch
Tianrui Zhao d11681c94f target/loongarch: Implement kvm_arch_init_vcpu
Implement kvm_arch_init_vcpu interface for loongarch,
in this function, we register VM change state handler.
And when VM state changes to running, the counter value
should be put into kvm to keep consistent with kvm,
and when state change to stop, counter value should be
refreshed from kvm.

Signed-off-by: Tianrui Zhao <zhaotianrui@loongson.cn>
Signed-off-by: xianglai li <lixianglai@loongson.cn>
Reviewed-by: Song Gao <gaosong@loongson.cn>
Message-Id: <20240105075804.1228596-7-zhaotianrui@loongson.cn>
Signed-off-by: Song Gao <gaosong@loongson.cn>
2024-01-11 19:14:00 +08:00
..
kvm target/loongarch: Implement kvm_arch_init_vcpu 2024-01-11 19:14:00 +08:00
tcg system/cpus: rename qemu_mutex_lock_iothread() to bql_lock() 2024-01-08 10:45:43 -05: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: Implement kvm get/set registers 2024-01-11 19:14:00 +08:00
cpu.h target/loongarch: Implement kvm_arch_init_vcpu 2024-01-11 19:14:00 +08:00
disas.c target/loongarch: Add preldx instruction 2023-10-13 09:50:16 +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: Implement kvm get/set registers 2024-01-11 19:14:00 +08:00
Kconfig hw/loongarch: Add support loongson3 virt machine type. 2022-06-06 18:09:03 +00:00
loongarch-qmp-cmds.c target: Use generic cpu_model_from_type() 2024-01-05 16:20:14 +01:00
machine.c target/loongarch: Constify VMState in machine.c 2023-12-29 11:17:30 +11:00
meson.build target/loongarch: move translate modules to tcg/ 2024-01-06 10:18:52 +08:00
README docs/system/loongarch: Update the LoongArch document 2022-08-13 04:45:03 -07:00
trace-events target/loongarch: Implement kvm_arch_init_vcpu 2024-01-11 19:14:00 +08:00
trace.h target/loongarch: Implement kvm get/set registers 2024-01-11 19:14:00 +08: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

- 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/