[PATCH 6/9] vfio/igd: Enable OpRegion by default

Tomita Moeko posted 9 patches 9 months, 2 weeks ago
There is a newer version of this series
[PATCH 6/9] vfio/igd: Enable OpRegion by default
Posted by Tomita Moeko 9 months, 2 weeks ago
As the presence of OpRegion is used to detect IGD device now, and
guest driver usually depends on OpRegion to work. Enable OpRegion
on IGD devices by default for out-of-the-box passthrough experience
(except pre-boot display output), especially for libvirt users.

Example of IGD passthrough with libvirt:
<hostdev mode="subsystem" type="pci" managed="yes">
  <source>
    <address domain="0x0000" bus="0x00" slot="0x02" function="0x0"/>
  </source>
  <rom file="/path/to/igd/rom"/>
  <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0"/>
 </hostdev>

Signed-off-by: Tomita Moeko <tomitamoeko@gmail.com>
---
 docs/igd-assign.txt | 4 ++--
 hw/vfio/pci.c       | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/docs/igd-assign.txt b/docs/igd-assign.txt
index 95beb76812..fc444503ff 100644
--- a/docs/igd-assign.txt
+++ b/docs/igd-assign.txt
@@ -102,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*]
@@ -124,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
diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index 05a7a62204..38ff231625 100644
--- a/hw/vfio/pci.c
+++ b/hw/vfio/pci.c
@@ -3361,7 +3361,7 @@ static const Property vfio_pci_dev_properties[] = {
     DEFINE_PROP_BIT("x-req", VFIOPCIDevice, features,
                     VFIO_FEATURE_ENABLE_REQ_BIT, true),
     DEFINE_PROP_BIT("x-igd-opregion", VFIOPCIDevice, features,
-                    VFIO_FEATURE_ENABLE_IGD_OPREGION_BIT, false),
+                    VFIO_FEATURE_ENABLE_IGD_OPREGION_BIT, true),
     DEFINE_PROP_BIT("x-igd-lpc", VFIOPCIDevice, features,
                     VFIO_FEATURE_ENABLE_IGD_LPC_BIT, false),
     DEFINE_PROP_ON_OFF_AUTO("x-igd-legacy-mode", VFIOPCIDevice,
-- 
2.47.2
Re: [PATCH 6/9] vfio/igd: Enable OpRegion by default
Posted by Corvin Köhne 9 months, 1 week ago
On Tue, 2025-04-29 at 00:10 +0800, Tomita Moeko wrote:
> CAUTION: External Email!!
> As the presence of OpRegion is used to detect IGD device now, and
> guest driver usually depends on OpRegion to work. Enable OpRegion
> on IGD devices by default for out-of-the-box passthrough experience
> (except pre-boot display output), especially for libvirt users.
> 
> Example of IGD passthrough with libvirt:
> <hostdev mode="subsystem" type="pci" managed="yes">
>   <source>
>     <address domain="0x0000" bus="0x00" slot="0x02" function="0x0"/>
>   </source>
>   <rom file="/path/to/igd/rom"/>
>   <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0"/>
>  </hostdev>
> 
> Signed-off-by: Tomita Moeko <tomitamoeko@gmail.com>
> ---
>  docs/igd-assign.txt | 4 ++--
>  hw/vfio/pci.c       | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/docs/igd-assign.txt b/docs/igd-assign.txt
> index 95beb76812..fc444503ff 100644
> --- a/docs/igd-assign.txt
> +++ b/docs/igd-assign.txt
> @@ -102,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*]
> @@ -124,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
> diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
> index 05a7a62204..38ff231625 100644
> --- a/hw/vfio/pci.c
> +++ b/hw/vfio/pci.c
> @@ -3361,7 +3361,7 @@ static const Property vfio_pci_dev_properties[] = {
>      DEFINE_PROP_BIT("x-req", VFIOPCIDevice, features,
>                      VFIO_FEATURE_ENABLE_REQ_BIT, true),
>      DEFINE_PROP_BIT("x-igd-opregion", VFIOPCIDevice, features,
> -                    VFIO_FEATURE_ENABLE_IGD_OPREGION_BIT, false),
> +                    VFIO_FEATURE_ENABLE_IGD_OPREGION_BIT, true),
>      DEFINE_PROP_BIT("x-igd-lpc", VFIOPCIDevice, features,
>                      VFIO_FEATURE_ENABLE_IGD_LPC_BIT, false),
>      DEFINE_PROP_ON_OFF_AUTO("x-igd-legacy-mode", VFIOPCIDevice,

Reviewed-by: Corvin Köhne <c.koehne@beckhoff.com>


-- 
Kind regards,
Corvin