On Fri, May 16, 2014 at 06:53:40PM +0800, Tiejun Chen wrote: > Some VBIOSs and drivers assume the IGD BDF (bus:device:function) is > always 00:02.0, so we need to reserves 00:02.0 for assigned IGD in
reserve > guest. > > Signed-off-by: Tiejun Chen <tiejun.c...@intel.com> > Signed-off-by: Yang Zhang <yang.z.zh...@intel.com> > --- > v2: > > * Use a common way patch #2 introduce to reserve PCI devfn. > > hw/pci-host/piix.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c > index ffdc853..b6f49bd 100644 > --- a/hw/pci-host/piix.c > +++ b/hw/pci-host/piix.c > @@ -329,6 +329,14 @@ PCIBus *i440fx_init(PCII440FXState **pi440fx_state, > s = PCI_HOST_BRIDGE(dev); > b = pci_bus_new(dev, NULL, pci_address_space, > address_space_io, 0, TYPE_PCI_BUS); > + > + /* > + * Some video bioses and gfx drivers will assume the bdf of IGD is > 00:02.0. > + * So user need to set it to 00:02.0 in Xen configure file explicitly, > + * otherwise IGD will fail to work. > + */ > + pci_reserve_pci_devfn(b, PCI_DEVFN(2, 0)); > + And we do this without checking whether PCI passthrough is done. Should it be gated on that? Or is the reason you do it unconditionally because you want to be able to hot-plug an GFX in? > s->bus = b; > object_property_add_child(qdev_get_machine(), "i440fx", OBJECT(dev), > NULL); > qdev_init_nofail(dev); > -- > 1.9.1 > > > _______________________________________________ > Xen-devel mailing list > xen-de...@lists.xen.org > http://lists.xen.org/xen-devel