qemu/target/loongarch
Bibo Mao db369c11c9 target/loongarch: Enable virtual extioi feature
Feature virtual extioi is loongArch virt machine property rather than
vCPU property in qemu side. However it is vCPU property in KVM kernel
side, here add loongArch virt machine property checking and enable virt
extioi feature when vCPU is created.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Reviewed-by: Bibo Mao <maobibo@loongson.cn>
2025-02-25 16:05:31 +08:00
..
kvm target/loongarch: Enable virtual extioi feature 2025-02-25 16:05:31 +08:00
tcg target/loongarch: Use VADDR_PRIx for logging pc_next 2025-02-18 08:28:54 -08:00
arch_dump.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
cpu-csr.h target/loongarch: Fix tlb huge page loading issue 2024-03-20 10:20:03 +08:00
cpu-param.h target/*: Remove TARGET_LONG_BITS from cpu-param.h 2025-02-08 12:41:33 -08:00
cpu-qom.h target: Move ArchCPUClass definition to 'cpu.h' 2023-11-07 13:08:48 +01:00
cpu.c target/loongarch: Move kvm specified vCPU property to kvm directory 2025-02-25 16:05:31 +08:00
cpu.h target/loongarch: Add kvm steal time feature detection 2025-02-25 16:05:31 +08:00
cpu_helper.c target/loongarch: Add page table walker support for debugger usage 2025-01-15 14:16:51 +08:00
csr.c target/loongarch: Dump all generic CSR registers 2025-01-24 14:49:24 +08:00
csr.h target/loongarch: Dump all generic CSR registers 2025-01-24 14:49:24 +08:00
disas.c target/loongarch: honour show_opcodes when disassembling 2024-03-06 12:35:51 +00:00
gdbstub.c target/loongarch/gdbstub: Fix gdbstub incorrectly handling some registers 2025-02-25 16:05:31 +08:00
helper.h target/loongarch: Only support 64bit pte width 2025-01-09 14:13:17 +08:00
insns.decode target/loongarch: Add preldx instruction 2023-10-13 09:50:16 +08:00
internals.h target/loongarch: Add page table walker support for debugger usage 2025-01-15 14:16:51 +08:00
Kconfig hw/loongarch: Add support loongson3 virt machine type. 2022-06-06 18:09:03 +00:00
loongarch-qmp-cmds.c target/loongarch: Add vCPU property for kvm steal time feature 2025-02-25 16:05:31 +08:00
machine.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
meson.build target/loongarch: Add common source file for CSR register 2025-01-24 14:49:24 +08:00
README docs/system/loongarch: Update the LoongArch document 2022-08-13 04:45:03 -07:00
trace-events target/loongarch: Implement set vcpu intr for kvm 2024-01-11 19:22:32 +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/