The PXB host bridge provides a way to have multiple PCI hierarchies (PCI root buses). This series is porting the PXB device to Q35 machines by: - removing the internal pci-bridge - make the PXB bus PCIe for Q35, while it remains PCI for i440fx.
This approach works because the Root Complexes are exposed to guest as regular (legacy) opaque PCI host bridges. Tested on Fedora and Windows guests with both Root Ports and PCIe Switches. v1 -> v2: Addressed Gerd Hoffmann comments: - Added x-enable-internal-bridge compat property to keep the PCI bridge for older machine to avoid breaking migration. Thanks, Marcel Marcel Apfelbaum (4): hw/pxb: remove the built-in pci bridge hw/acpi: merge pxb adjacent memory/IO ranges hw/pc: query both q35 and i440fx bus hw/pxb: add support for PCIe hw/i386/acpi-build.c | 126 +++++++++++++++++++++--------------- hw/i386/pc.c | 2 +- hw/pci-bridge/pci_expander_bridge.c | 45 ++++++++++--- hw/pci-host/q35.c | 8 +++ include/hw/compat.h | 4 ++ include/hw/i386/pc.h | 9 +++ 6 files changed, 133 insertions(+), 61 deletions(-) -- 2.1.0