[vfio-users] about vfio IGD host bridge

Alex Williamson alex.williamson at redhat.com
Fri Mar 29 19:58:23 UTC 2019


On Fri, 29 Mar 2019 10:52:10 +0800 (CST)
fulaiyang  <fulaiyang at 163.com> wrote:

> Hi Alex:
>     
>   In the 'vfio_pci_igd_host_init' func,we should stuff a few values
> into the host bridge such as BDSM、GMCH. And the resgister offset in
> the host bridge is defined in ‘the igd_host_bridge_infos’ structure.
> But I confuse that the offset is different from the  8th intel
> processor datasheet.  I wonder if it is a problem?

Probably, Intel seems to arbitrarily redesign IGD with little thought
to backwards compatibility.

> qemu/hw/pci-host/piix.c
> static const IGDHostInfo igd_host_bridge_infos[] = {
>     {0x08, 2},  /* revision id */
>     {0x2c, 2},  /* sybsystem vendor id */
>     {0x2e, 2},  /* sybsystem id */
>     {0x50, 2},  /* SNB: processor graphics control register */
>     {0x52, 2},  /* processor graphics control register */
>     {0xa4, 4},  /* SNB: graphics base of stolen memory */
>     {0xa8, 4},  /* SNB: base of GTT stolen memory */
> };

Note that this is not used for vfio IGD assignment, only for xen-based
IGD assignment, the igd_host_bridge_infos we use is:

hw/vfio/pci-quirks.c
static const IGDHostInfo igd_host_bridge_infos[] = {
    {PCI_REVISION_ID,         2},
    {PCI_SUBSYSTEM_VENDOR_ID, 2},
    {PCI_SUBSYSTEM_ID,        2},
};

GMCH and BDSM are setup in vfio_probe_igd_bar4_quirk() and BDSM is
rewritten by the BIOS in vfio_igd_quirk_data_write() based on the
memory allocated at VM boot time.

Kabylake came out well after direct assignment support was added and
TBH, I don't have the time or interest to keep up with Intel's changing
hardware (patches welcome!).  If you want to use something that Intel
somewhat tries to support, you might try GVT-g rather than direct
assignment.  Thanks,

Alex




More information about the vfio-users mailing list