ping
> Hello, Everyone:
> This patch series adds libvirt support for loongarch.Although the bios
> path and name has not been officially integrated into qemu and we think
> there are still many shortcomings, we try to push a version of patch to
> the community according to the opinions of the community, hoping to
> listen to everyone's opinions. Anyway we have a version of libvirt that
> supports loongarch.
>
> You can also get libvirt's patch from the link below:
>
https://gitlab.com/lixianglai/libvirt
> branch: loongarch
>
> Since the patch associated with loongarch has not yet been submitted to
> the virt-manager community, we are providing a temporary patch with
> loongarch for the time being patch's virt-manager, the open source work
> of virt-manager adding loongarch will be followed up later or
> synchronized with the open source libvirt.
>
> You can get the virt-manager code with loongarch patch from the link below:
>
https://github.com/lixianglai/virt-manager
> branch: loongarch
>
> loongarch's virtual machine bios is not yet available in qemu,So you need to
compile
> loongarch UEFI yourself,
> you can refer to the following link to compile UEFI:
>
https://github.com/tianocore/edk2-platforms/blob/master/Platform/Loongson...
> Here we provide compiled UEFI for ease of testing,you can get it from the following
link:
>
https://github.com/lixianglai/LoongarchVirtFirmware
> (Note: You should clone the repository using git instead of downloading the file via
wget
> or you'll get xml)
> We named the bios QEMU_EFI.fd, QEMU_VARS.fd is used to store pflash images of
non-volatile
> variables.
> After installing qemu-system-loongarch64,You can install the loongarch bios by
executing
> the script
> install-loongarch-virt-firmware.sh
>
> Since there is no fedora operating system that supports the loongarch
> architecture, you can find an iso that supports loongarch at the link below for
testing
> purposes:
>
https://github.com/fedora-remix-loongarch/releases-info
> The operating system provided above may have minor problems of one kind or another,
> but you can also find out from the following link that openEuler's operating
system
> supports loongarch:
>
https://muug.ca/mirror/openeuler/openEuler-22.03-LTS/ISO/loongarch64/
>
> Well, if you have completed the above steps I think you can now install loongarch
> virtual machine,
> you can install it through the virt-manager graphical interface, or install it
through
> vrit-install,
> here is an example of installing it using virt-install:
> virt-install \
> --virt-type=qemu \
> --name loongarch-test \
> --memory 4096 \
> --vcpus=4 \
> --arch=loongarch64 \
> --boot cdrom \
> --disk device=cdrom,bus=scsi,path=/root/livecd-fedora-mate-4.loongarch64.iso \
> --disk
> path=/var/lib/libvirt/images/debian12-loongarch64.qcow2,size=10,format=qcow2,bus=scsi
\
> --network network=default \
> --osinfo archlinux \
> --video=virtio \
> --graphics=vnc,listen=0.0.0.0
>
> CHANGES
> V2->V3:
> 1.Delete redundant header files in cpu_loongarch.c
> 2.Fixed code formatting issues
> 3.Modify the commit message of [PATCH 2/4]
> 4.Remove useless test cases for loongarch,
> Rebuild loongarch's test case based on the latest code.
>
> V1->V2:
> 1.Modify the link addresses of virtu-manager and firmeware in the cover
> letter. Please obtain the code and firmware from the latest link
> address.
> 2.Rename the bios name. Delete the loongarch bios name from libvirt
> and use the json file to obtain the bios path.
> 3.Refer to riscv64 to simplify the implementation of loongarch cpu
> driver.And fix some code style errors.
> 4.Delete unnecessary or redundant device enablement.Such as USB NEC.
> 5.Add some test cases for loongarch.
>
> Xianglai Li (4):
> Add loongarch cpu support
> Support for loongarch64 in the QEMU driver
> Implement the method of getting host info for loongarch
> Add test script for loongarch
>
> src/conf/schemas/basictypes.rng | 1 +
> src/cpu/cpu.c | 2 +
> src/cpu/cpu_loongarch.c | 58 +
> src/cpu/cpu_loongarch.h | 25 +
> src/cpu/meson.build | 1 +
> src/qemu/qemu_capabilities.c | 16 +-
> src/qemu/qemu_command.c | 7 +-
> src/qemu/qemu_domain.c | 40 +-
> src/qemu/qemu_domain.h | 1 +
> src/qemu/qemu_validate.c | 1 +
> src/util/virarch.c | 13 +-
> src/util/virarch.h | 13 +-
> src/util/virhostcpu.c | 7 +-
> src/util/virsysinfo.c | 3 +-
> .../qemu_8.2.0-tcg-virt.loongarch64.xml | 163 +
> .../qemu_8.2.0-virt.loongarch64.xml | 167 +
> tests/domaincapstest.c | 4 +-
> .../caps_8.2.0_loongarch64.replies | 30121 ++++++++++++++++
> .../caps_8.2.0_loongarch64.xml | 175 +
> .../qemucaps2xmloutdata/caps.loongarch64.xml | 28 +
> ...o-type-loongarch64.loongarch64-latest.args | 34 +
> ...eo-type-loongarch64.loongarch64-latest.xml | 45 +
> .../default-video-type-loongarch64.xml | 18 +
> ...-models.loongarch64-latest.abi-update.args | 44 +
> ...t-models.loongarch64-latest.abi-update.xml | 79 +
> ...irt-default-models.loongarch64-latest.args | 44 +
> ...virt-default-models.loongarch64-latest.xml | 79 +
> .../loongarch64-virt-default-models.xml | 24 +
> ...ch64-virt-graphics.loongarch64-latest.args | 56 +
> ...rch64-virt-graphics.loongarch64-latest.xml | 116 +
> .../loongarch64-virt-graphics.xml | 48 +
> ...ch64-virt-headless.loongarch64-latest.args | 52 +
> ...rch64-virt-headless.loongarch64-latest.xml | 102 +
> .../loongarch64-virt-headless.xml | 42 +
> ...minimal.loongarch64-latest.abi-update.args | 31 +
> ...-minimal.loongarch64-latest.abi-update.xml | 26 +
> ...rch64-virt-minimal.loongarch64-latest.args | 31 +
> ...arch64-virt-minimal.loongarch64-latest.xml | 26 +
> .../loongarch64-virt-minimal.xml | 15 +
> tests/qemuxmlconftest.c | 7 +
> tests/testutilshostcpus.h | 10 +
> 41 files changed, 31749 insertions(+), 26 deletions(-)
> create mode 100644 src/cpu/cpu_loongarch.c
> create mode 100644 src/cpu/cpu_loongarch.h
> create mode 100644 tests/domaincapsdata/qemu_8.2.0-tcg-virt.loongarch64.xml
> create mode 100644 tests/domaincapsdata/qemu_8.2.0-virt.loongarch64.xml
> create mode 100644 tests/qemucapabilitiesdata/caps_8.2.0_loongarch64.replies
> create mode 100644 tests/qemucapabilitiesdata/caps_8.2.0_loongarch64.xml
> create mode 100644 tests/qemucaps2xmloutdata/caps.loongarch64.xml
> create mode 100644
> tests/qemuxmlconfdata/default-video-type-loongarch64.loongarch64-latest.args
> create mode 100644
> tests/qemuxmlconfdata/default-video-type-loongarch64.loongarch64-latest.xml
> create mode 100644 tests/qemuxmlconfdata/default-video-type-loongarch64.xml
> create mode 100644
>
tests/qemuxmlconfdata/loongarch64-virt-default-models.loongarch64-latest.abi-update.args
> create mode 100644
>
tests/qemuxmlconfdata/loongarch64-virt-default-models.loongarch64-latest.abi-update.xml
> create mode 100644
> tests/qemuxmlconfdata/loongarch64-virt-default-models.loongarch64-latest.args
> create mode 100644
> tests/qemuxmlconfdata/loongarch64-virt-default-models.loongarch64-latest.xml
> create mode 100644 tests/qemuxmlconfdata/loongarch64-virt-default-models.xml
> create mode 100644
> tests/qemuxmlconfdata/loongarch64-virt-graphics.loongarch64-latest.args
> create mode 100644
> tests/qemuxmlconfdata/loongarch64-virt-graphics.loongarch64-latest.xml
> create mode 100644 tests/qemuxmlconfdata/loongarch64-virt-graphics.xml
> create mode 100644
> tests/qemuxmlconfdata/loongarch64-virt-headless.loongarch64-latest.args
> create mode 100644
> tests/qemuxmlconfdata/loongarch64-virt-headless.loongarch64-latest.xml
> create mode 100644 tests/qemuxmlconfdata/loongarch64-virt-headless.xml
> create mode 100644
> tests/qemuxmlconfdata/loongarch64-virt-minimal.loongarch64-latest.abi-update.args
> create mode 100644
> tests/qemuxmlconfdata/loongarch64-virt-minimal.loongarch64-latest.abi-update.xml
> create mode 100644
> tests/qemuxmlconfdata/loongarch64-virt-minimal.loongarch64-latest.args
> create mode 100644
tests/qemuxmlconfdata/loongarch64-virt-minimal.loongarch64-latest.xml
> create mode 100644 tests/qemuxmlconfdata/loongarch64-virt-minimal.xml