Hello Cédric, On 2/27/25 16:28, Cédric Le Goater wrote: > Hello Tomita, > > +Corvin > > On 2/24/25 19:29, Tomita Moeko wrote: >> This patchset removes some legacy checks and converts the legacy mode >> implicitly enabled by BDF 00:02.0 into x-igd-* options, including: >> * Removing PCI ROM BAR and VGA IO/MMIO range check before applying quirk >> * Using unified x-igd-opregion option for OpRegion access. >> * Introducing new x-igd-lpc option for the LPC bridge / Host bridge ID >> quirk. Currently this is only supported on i440fx. >> * Extending quirk support when IGD is not assigned to BDF 00:02.0 >> >> The first 2 patches of this patchset was taken from a previous one, >> details can be found at: >> https://lore.kernel.org/all/20250124191245.12464-1-tomitamo...@gmail.com/ >> >> This patchest was mainly tested on Alder Lake UHD770, with Debian 12 >> (kernel 6.1), Windows 11 (driver 32.0.101.6458) and Intel GOP driver >> 17.0.1081. > > Did you try a Linux guest ? > > Could you provide the QEMU command line please ? I would like to > reproduce on the AlderLake-S GT1 system I have access to.
Ofcourse I did. The command line I used is: ./qemu-system-x86_64 --enable-kvm \ -cpu host -smp 4 -m 8G -nodefaults -serial mon:stdio \ -device vfio-pci,host=00:02.0,id=hostdev0,addr=0x2,x-igd-opregion=on \ -drive id=drive0,if=none,file=debian-vm.qcow2,format=qcow2 \ -netdev bridge,id=net0,br=br0 \ -device virtio-blk-pci,drive=drive0,id=virtio-blk-pci0,addr=0x3 \ -device virtio-net-pci,netdev=net0,addr=0x4 \ -usb -device usb-host,hostbus=1,hostaddr=5 \ -pflash /usr/share/OVMF/OVMF_CODE_4M.fd My guest is running Debian 11 with 6.1.0-31 kernel. Screenshot at https://imgur.com/a/gsHBpnn As there is no EFI GOP driver, display can only work after i915 driver initialized it. For Linux guest, x-igd-opregion=on is not a must as init_vbt_missing_defaults in i915 driver mocks one if VBT in OpRegion is not present. Looks like most desktop motherboards follows that intel default display output configuration. Note that currently IGD passthrough quirks only takes effect when IGD is exposed as VGA controller, that is to say, the primary GPU must be set to IGD in host BIOS. Btw, If your IGD device is exposed as Display Controller, you may also try the kernel patch at [1], and remove the vfio_is_vga check in qemu igd.c. I'm going to make a correspoding change in qemu side after that kernel patch gets merged. [1] https://lore.kernel.org/all/20250123163416.7653-1-tomitamo...@gmail.com/ If it is still not working, adding drm_debug=0x02 in kernel cmdline enables verbose log. Related options are "Bit 1 (0x02) will enable DRIVER messages (drm controller code)" and "Bit 2 (0x04) will enable KMS messages (modesetting code)", 0x06 for both of them. > Also, since you spent quite of lot time on IGD support, would you > mind adding a vfio-igd entry in the MAINTAINERS file and propose > your self as a maintainer ? The aim would be to keep you informed > of the proposed changes on the vfio-igd device, not to handle PRs. Sure, I'd be glad to be a maintainer. >> If the design is good to go, I will update the documentation also. > > yes please. I will add the documentation in v2. For now, let me wait for Alex comment first. Thanks, Moeko >> A open question is whether the old legacy mode behavior should be kept >> or not. Checking if all the condition of legacy mode were met and >> toggling correspoding options is more complicated then I expected :( >> Any ideas would be appreciated. > > I will let Alex comment, > > Thanks, > > C. > > >> Tomita Moeko (10): >> vfio/igd: Remove GTT write quirk in IO BAR 4 >> vfio/igd: Do not include GTT stolen size in etc/igd-bdsm-size >> vfio/igd: Remove rombar check for legacy mode >> vfio/igd: Remove implicit VGA access enabled by legacy mode >> vfio/pci: Make vfio_populate_vga static >> vfio/igd: Consolidate OpRegion initialization into a single function >> vfio/igd: Move LPC bridge initialization to a separate function >> vfio/pci: Add placeholder for device-specific config space quirks >> vfio/igd: Refactor vfio_probe_igd_bar4_quirk into pci config quirk >> vfio/igd: Replace legacy mode with options >> >> hw/vfio/igd.c | 476 ++++++++++++++----------------------------- >> hw/vfio/pci-quirks.c | 51 +---- >> hw/vfio/pci.c | 33 +-- >> hw/vfio/pci.h | 12 +- >> 4 files changed, 166 insertions(+), 406 deletions(-) >> >