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(a)redhat.com>
---
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