[vfio-users] Question about integrated GPU passthrough and initialization

Micah Morton mortonm at chromium.org
Fri May 24 18:12:41 UTC 2019


I’ve been working with an Intel Chrome OS device to see if integrated
GPU passthrough works. The device is a 7th Generation (Kaby Lake)
Intel Core i5-7Y57 with HD Graphics 615. So no discrete GPU. I think
iGPU passthrough should work on this device.

Initializing the graphics hardware has proven to be the trickiest part
in all of this, and I have a question I thought someone on this list
might be able to answer:

Why does vfio enforce that I _need_ a VGA rom to be available in order
to boot the guest in legacy passthrough mode
(https://github.com/qemu/qemu/blob/master/hw/vfio/pci-quirks.c#L1616)?
The Intel device I’m working with normally doesn’t initialize the GPU
at all until the kernel is running, at which point the i915 driver
does the initialization. So there is never actually any VGA rom
anywhere on the system at any time for me to grab. I suppose I maybe
could get one for this hardware from Intel or the web somewhere, but
seems like if the device can normally initialize the GPU hardware from
the kernel driver then it wouldn’t be too unreasonable to pass through
the GPU and let the guest (with the same i915 driver) initialize the
GPU without using a VGA rom. Do you think it would be reasonable for
me to find a way to patch qemu/vfio/SeaBIOS to allow for this
scenario?

I’ve tried commenting out some blocks in this function
(https://github.com/qemu/qemu/blob/master/hw/vfio/pci-quirks.c#L1557)
and patching SeaBIOS to avoid doing any kind of graphics init stuff in
the guest, and am still working through the debugging, but was
wondering if this is a reasonable approach? Or something that has been
done before?

Thanks,
Micah




More information about the vfio-users mailing list