virtio-mmio is still used by default, so if PCI is desired it's necessary to explicitly opt-in by adding an appropriate <address type='pci' domain='0x0000' ... /> element to the corresponding device. Signed-off-by: Andrea Bolognani <abologna@xxxxxxxxxx> --- src/qemu/qemu_capabilities.c | 4 +++- src/qemu/qemu_domain.c | 2 ++ src/qemu/qemu_domain_address.c | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index f504db7d05..6fe8693170 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1741,8 +1741,10 @@ bool virQEMUCapsHasPCIMultiBus(virQEMUCapsPtr qemuCaps, /* If ARM 'virt' supports PCI, it supports multibus. * No extra conditions here for simplicity. */ - if (qemuDomainIsARMVirt(def)) + if (qemuDomainIsARMVirt(def) || + qemuDomainIsRISCVVirt(def)) { return true; + } return false; } diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 5bfe4fe14e..0b8e6fa011 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -3380,6 +3380,8 @@ qemuDomainDefAddDefaultDevices(virDomainDefPtr def, case VIR_ARCH_RISCV32: case VIR_ARCH_RISCV64: addDefaultUSB = false; + if (qemuDomainIsRISCVVirt(def)) + addPCIeRoot = virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_GPEX); break; case VIR_ARCH_S390: diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index c376f3f897..c35ecd8585 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -2369,7 +2369,8 @@ qemuDomainSupportsPCI(virDomainDefPtr def, if (STREQ(def->os.machine, "versatilepb")) return true; - if (qemuDomainIsARMVirt(def) && + if ((qemuDomainIsARMVirt(def) || + qemuDomainIsRISCVVirt(def)) && virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_GPEX)) return true; -- 2.20.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list