I don't know where in the code this information should be encoded, so suggestions are welcome.
Signed-off-by: Eduardo Habkost <ehabk...@redhat.com> --- Changes series v1 -> v2: * (new patch added to series) --- hw/pci-host/q35.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c index d4e3109..29a5e39 100644 --- a/hw/pci-host/q35.c +++ b/hw/pci-host/q35.c @@ -52,6 +52,16 @@ static void q35_host_realize(DeviceState *dev, Error **errp) pci->bus = pci_bus_new(DEVICE(s), "pcie.0", s->mch.pci_address_space, s->mch.address_space_io, 0, TYPE_PCIE_BUS); + + { + /* The root PCIe bus is different, and also accepts legacy PCI devices */ + /*FIXME: we need to find a better plance to encode this information */ + strList *new = g_new0(strList, 1); + new->value = g_strdup(INTERFACE_LEGACY_PCI_DEVICE); + new->next = BUS(pci->bus)->accepted_device_types; + BUS(pci->bus)->accepted_device_types = new; + } + PC_MACHINE(qdev_get_machine())->bus = pci->bus; qdev_set_parent_bus(DEVICE(&s->mch), BUS(pci->bus)); qdev_init_nofail(DEVICE(&s->mch)); -- 2.7.4