From: Yang Zhang <yang.z.zh...@intel.com> Some VBIOSs and drivers assume the IGD BDF (bus:device:function) is always 00:02.0, so this patch reserves 00:02.0 for assigned IGD in guest.
The original patch is from Weidong Han <weidong....@intel.com> Signed-off-by: Yang Zhang <yang.z.zh...@intel.com> Cc: Weidong Han <weidong....@intel.com> --- hw/pci/pci.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 4e0701d..e81816e 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -808,6 +808,12 @@ static PCIDevice *do_pci_register_device(PCIDevice *pci_dev, PCIBus *bus, if (devfn < 0) { for(devfn = bus->devfn_min ; devfn < ARRAY_SIZE(bus->devices); devfn += PCI_FUNC_MAX) { +#if defined(CONFIG_XEN_PCI_PASSTHROUGH) + /* If gfx_passthru is in use, reserve 00:02.* for the IGD */ + if (gfx_passthru && devfn == 0x10) { + continue; + } +#endif if (!bus->devices[devfn]) goto found; } -- 1.7.1