RISC-V doesn't support KVM yet, so we are forced to use TCG on x86 until that's working. Signed-off-by: Andrea Bolognani <abologna@xxxxxxxxxx> --- .../capabilities-xml/qemu-riscv64-domcaps.xml | 91 ++++++++++++++ tests/capabilities-xml/qemu-riscv64.xml | 113 ++++++++++++++++++ tests/clitest.py | 1 + tests/utils.py | 2 + 4 files changed, 207 insertions(+) create mode 100644 tests/capabilities-xml/qemu-riscv64-domcaps.xml create mode 100644 tests/capabilities-xml/qemu-riscv64.xml diff --git a/tests/capabilities-xml/qemu-riscv64-domcaps.xml b/tests/capabilities-xml/qemu-riscv64-domcaps.xml new file mode 100644 index 00000000..6b1a7498 --- /dev/null +++ b/tests/capabilities-xml/qemu-riscv64-domcaps.xml @@ -0,0 +1,91 @@ +<domainCapabilities> + + <!-- Generated on Fedora 29 with QEMU ~4.0.0 and libvirt ~5.3.0 --> + + <path>/usr/bin/qemu-system-riscv64</path> + <domain>qemu</domain> + <machine>spike_v1.10</machine> + <arch>riscv64</arch> + <vcpu max='1'/> + <iothreads supported='yes'/> + <os supported='yes'> + <loader supported='yes'> + <value>/usr/share/OVMF/OVMF_CODE.fd</value> + <value>/usr/share/OVMF/OVMF_CODE.secboot.fd</value> + <enum name='type'> + <value>rom</value> + <value>pflash</value> + </enum> + <enum name='readonly'> + <value>yes</value> + <value>no</value> + </enum> + </loader> + </os> + <cpu> + <mode name='host-passthrough' supported='no'/> + <mode name='host-model' supported='no'/> + <mode name='custom' supported='no'/> + </cpu> + <devices> + <disk supported='yes'> + <enum name='diskDevice'> + <value>disk</value> + <value>cdrom</value> + <value>floppy</value> + <value>lun</value> + </enum> + <enum name='bus'> + <value>fdc</value> + <value>scsi</value> + <value>virtio</value> + <value>usb</value> + <value>sata</value> + </enum> + <enum name='model'> + <value>virtio</value> + <value>virtio-transitional</value> + <value>virtio-non-transitional</value> + </enum> + </disk> + <graphics supported='yes'> + <enum name='type'> + <value>sdl</value> + <value>vnc</value> + <value>spice</value> + </enum> + </graphics> + <video supported='yes'> + <enum name='modelType'> + <value>vga</value> + <value>cirrus</value> + <value>vmvga</value> + <value>virtio</value> + </enum> + </video> + <hostdev supported='yes'> + <enum name='mode'> + <value>subsystem</value> + </enum> + <enum name='startupPolicy'> + <value>default</value> + <value>mandatory</value> + <value>requisite</value> + <value>optional</value> + </enum> + <enum name='subsysType'> + <value>usb</value> + <value>pci</value> + <value>scsi</value> + </enum> + <enum name='capsType'/> + <enum name='pciBackend'/> + </hostdev> + </devices> + <features> + <gic supported='no'/> + <vmcoreinfo supported='no'/> + <genid supported='no'/> + <sev supported='no'/> + </features> +</domainCapabilities> diff --git a/tests/capabilities-xml/qemu-riscv64.xml b/tests/capabilities-xml/qemu-riscv64.xml new file mode 100644 index 00000000..c8b69f15 --- /dev/null +++ b/tests/capabilities-xml/qemu-riscv64.xml @@ -0,0 +1,113 @@ +<capabilities> + + <!-- Generated on Fedora 29 with QEMU ~4.0.0 and libvirt ~5.3.0 --> + + <host> + <uuid>2b763ba8-82a1-44dd-a197-9132a8d520a2</uuid> + <cpu> + <arch>x86_64</arch> + <model>Skylake-Client-IBRS</model> + <vendor>Intel</vendor> + <microcode version='150'/> + <topology sockets='1' cores='4' threads='2'/> + <feature name='ds'/> + <feature name='acpi'/> + <feature name='ss'/> + <feature name='ht'/> + <feature name='tm'/> + <feature name='pbe'/> + <feature name='dtes64'/> + <feature name='monitor'/> + <feature name='ds_cpl'/> + <feature name='vmx'/> + <feature name='smx'/> + <feature name='est'/> + <feature name='tm2'/> + <feature name='xtpr'/> + <feature name='pdcm'/> + <feature name='osxsave'/> + <feature name='tsc_adjust'/> + <feature name='clflushopt'/> + <feature name='intel-pt'/> + <feature name='stibp'/> + <feature name='ssbd'/> + <feature name='xsaves'/> + <feature name='pdpe1gb'/> + <feature name='invtsc'/> + <pages unit='KiB' size='4'/> + <pages unit='KiB' size='2048'/> + <pages unit='KiB' size='1048576'/> + </cpu> + <power_management> + <suspend_mem/> + <suspend_disk/> + <suspend_hybrid/> + </power_management> + <iommu support='no'/> + <migration_features> + <live/> + <uri_transports> + <uri_transport>tcp</uri_transport> + <uri_transport>rdma</uri_transport> + </uri_transports> + </migration_features> + <topology> + <cells num='1'> + <cell id='0'> + <memory unit='KiB'>16298176</memory> + <pages unit='KiB' size='4'>4074544</pages> + <pages unit='KiB' size='2048'>0</pages> + <pages unit='KiB' size='1048576'>0</pages> + <distances> + <sibling id='0' value='10'/> + </distances> + <cpus num='8'> + <cpu id='0' socket_id='0' core_id='0' siblings='0,4'/> + <cpu id='1' socket_id='0' core_id='1' siblings='1,5'/> + <cpu id='2' socket_id='0' core_id='2' siblings='2,6'/> + <cpu id='3' socket_id='0' core_id='3' siblings='3,7'/> + <cpu id='4' socket_id='0' core_id='0' siblings='0,4'/> + <cpu id='5' socket_id='0' core_id='1' siblings='1,5'/> + <cpu id='6' socket_id='0' core_id='2' siblings='2,6'/> + <cpu id='7' socket_id='0' core_id='3' siblings='3,7'/> + </cpus> + </cell> + </cells> + </topology> + <cache> + <bank id='0' level='3' type='both' size='8' unit='MiB' cpus='0-7'/> + </cache> + <secmodel> + <model>selinux</model> + <doi>0</doi> + <baselabel type='kvm'>system_u:system_r:svirt_t:s0</baselabel> + <baselabel type='qemu'>system_u:system_r:svirt_tcg_t:s0</baselabel> + </secmodel> + <secmodel> + <model>dac</model> + <doi>0</doi> + <baselabel type='kvm'>+0:+0</baselabel> + <baselabel type='qemu'>+0:+0</baselabel> + </secmodel> + </host> + + <guest> + <os_type>hvm</os_type> + <arch name='riscv64'> + <wordsize>64</wordsize> + <emulator>/usr/bin/qemu-system-riscv64</emulator> + <machine maxCpus='1'>spike_v1.10</machine> + <machine maxCpus='8'>virt</machine> + <machine maxCpus='1'>sifive_u</machine> + <machine maxCpus='1'>sifive_e</machine> + <machine maxCpus='1'>spike_v1.9.1</machine> + <domain type='qemu'/> + </arch> + <features> + <cpuselection/> + <deviceboot/> + <disksnapshot default='on' toggle='no'/> + </features> + </guest> + +</capabilities> diff --git a/tests/clitest.py b/tests/clitest.py index d3bd6044..41f10cd6 100644 --- a/tests/clitest.py +++ b/tests/clitest.py @@ -65,6 +65,7 @@ test_files = { 'URI-KVM-AARCH64': utils.URIs.kvm_aarch64, 'URI-KVM-PPC64LE': utils.URIs.kvm_ppc64le, 'URI-KVM-S390X': utils.URIs.kvm_s390x, + 'URI-QEMU-RISCV64': utils.URIs.qemu_riscv64, 'NEWIMG1': "/dev/default-pool/new1.img", 'NEWIMG2': "/dev/default-pool/new2.img", diff --git a/tests/utils.py b/tests/utils.py index 14b9d75c..f8d5b2ad 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -74,6 +74,7 @@ class _URIs(object): _uri_kvm = _uri_qemu + _domcaps("kvm-x86_64-domcaps.xml") _uri_kvm_q35 = _uri_qemu + _domcaps("kvm-x86_64-domcaps-q35.xml") _uri_kvm_aarch64 = _uri_qemu + _domcaps("kvm-aarch64-domcaps.xml") + _uri_qemu_riscv64 = _uri_qemu + _domcaps("qemu-riscv64-domcaps.xml") self.kvm = _uri_kvm + _caps("kvm-x86_64.xml") self.kvm_remote = _uri_kvm + _caps("kvm-x86_64.xml") + ",remote" @@ -88,6 +89,7 @@ class _URIs(object): self.kvm_ppc64le = _uri_kvm + _caps("kvm-ppc64le.xml") self.kvm_s390x = _uri_kvm + _caps("kvm-s390x.xml") self.kvm_s390x_KVMIBM = _uri_kvm + _caps("kvm-s390x-KVMIBM.xml") + self.qemu_riscv64 = _uri_qemu_riscv64 + _caps("qemu-riscv64.xml") -- 2.20.1 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list