(CC Alex, Gerd)
On 05/15/20 13:26, Olivier wrote:
I'm looking for some help to understand the boot process of a VM with OVMF.
I'm setting a iGPU passthrough on laptops:
- I got a success with an Acer Swift (Kabylake i5-7200U). The iGPU is passthrough and I have a display on the laptop screen eDP1 and HDMI
- I got half of a success on XPS 13 7390 (i7-10510U). The iGPU is passthrough and I get a display on HDMI but not on the laptop screen (eDP1) (black screen, not TTY or anything).
The screen is connected: "connected" in /sys/bus/pci/devices/0000:00:02.0/drm/card0/card0-eDP-1/status
But the screen is disabled: "disabled" in /sys/bus/pci/devices/0000:00:02.0/drm/card0/card0-eDP-1/enabled
When I shutdown the VM (boot with OVMF), the iGPU goes back to the host but the laptop screen stays black (no TTY or anything).
My hypothesis is that the iGPU is not "booted" correctly as QEMU uses a generic ROM/vBIOS, that would work for a Kabylake iGPU but not correctly for a Cometlake one (the iGPU passthrough still works though).
The vBIOS being part of the BIOS, my idea was to build OVMF with the Cometlake platform found at https://github.com/tianocore/edk2-platforms/tree/master/Platform/Intel.
However, I'm a bit lost now. I've built the platform following the instructions at https://github.com/tianocore/edk2-platforms/tree/master/Platform/Intel and I can build OVMF too. But is it possible to set the platform for OVMF as the Intel Cometlake platform? I haven't find anything about that in the wiki.
Does even my idea have a chance to resolve my issue? I have to say that I don't know at all this area of IT and I'm confused about how to solve this problem.
The integrated GPU on the laptop is not an actual, discrete PCI device,
therefore assigning it with VFIO takes horrible hacks, some of which are
guest firmware level hacks. There is no support for that in upstream
OVMF, and that's intentional. See for example
You can also find several discussions in the
> mailing list archive, and
posts in Alex's blog at <https://vfio.blogspot.com/