On Tue, 2025-04-22 at 00:31 +0800, Tomita Moeko wrote:
> CAUTION: External Email!!
> In previous commits, several changes were made to IGD passthrough:
> * Legacy mode now requires the IGD to be Gen6–Gen9.
> * OpRegion quirk is enabled by default.
> * "etc/igd-bdsm-size" is set to 0 when guest firmware does not need to
> allocate Data Stolen Memory and write BDSM register.
> Update the documentation to reflect these changes.
>
> Signed-off-by: Tomita Moeko <tomitamoeko@gmail.com>
> ---
> docs/igd-assign.txt | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/docs/igd-assign.txt b/docs/igd-assign.txt
> index 3aed7956d5..eac31ea3dd 100644
> --- a/docs/igd-assign.txt
> +++ b/docs/igd-assign.txt
> @@ -47,6 +47,7 @@ Intel document [1] shows how to dump VBIOS to file. For UEFI
> Option ROM, see
>
> QEMU also provides a "Legacy" mode that implicitly enables full functionality
> on IGD, it is automatically enabled when
> +* IGD generation is 6 to 9 (Sandy Bridge to Comet Lake)
> * Machine type is i440fx
> * IGD is assigned to guest BDF 00:02.0
> * ROM BAR or romfile is present
> @@ -101,7 +102,7 @@ digital formats work well.
>
> Options
> =======
> -* x-igd-opregion=[on|*off*]
> +* x-igd-opregion=[*on*|off]
> Copy host IGD OpRegion and expose it to guest with fw_cfg
>
> * x-igd-lpc=[on|*off*]
> @@ -123,7 +124,7 @@ Examples
>
> * Adding IGD with OpRegion and LPC ID hack, but without VGA ranges
> (For UEFI guests)
> - -device vfio-pci,host=00:02.0,id=hostdev0,addr=2.0,x-igd-legacy-mode=off,x-
> igd-opregion=on,x-igd-lpc=on,romfile=efi_oprom.rom
> + -device vfio-pci,host=00:02.0,id=hostdev0,addr=2.0,x-igd-legacy-mode=off,x-
> igd-lpc=on,romfile=efi_oprom.rom
>
>
> Guest firmware
> @@ -156,6 +157,12 @@ fw_cfg requirements on the VM firmware:
> it's expected that this fw_cfg file is only relevant to a single PCI
> class VGA device with Intel vendor ID, appearing at PCI bus address
> 00:02.0.
>
> + Starting from Meteor Lake, IGD devices access stolen memory via its MMIO
> + BAR2 (LMEMBAR) and removed the BDSM register in config space. There is
> + no need for guest firmware to allocate data stolen memory in guest address
> + space and write it to BDSM register. Value of this fw_cfg file is 0 in
> + such case.
> +
> Upstream Seabios has OpRegion and BDSM (pre-Gen11 device only) support.
> However, the support is not accepted by upstream EDK2/OVMF. A recommended
> solution is to create a virtual OpRom with following DXE drivers:
Not sure how upstream prefers handling documentation. Those are only small
changes, so I'd add them to the corresponding commits.
--
Kind regards,
Corvin