Lines Matching +full:config +full:- +full:host

1 Intel Graphics Device (IGD) assignment with vfio-pci
4 Using vfio-pci, we can passthrough Intel Graphics Device (IGD) to guest, either
6 emulated primary graphics device, depending on the config and guest driver
16 (*-Required by)
19 |---------------------------------------------|-------|---------|-------|---------|
24 | #5 Host's VGA ranges are mapped to IGD | | | * | |
28 use the VBT copied from host OpRegion to prevent incorrect configuration.
30 For #1, the "x-igd-opregion=on" option exposes a copy of host IGD OpRegion to
33 For #2, "x-igd-lpc=on" option copies the IDs of host LPC bridge and host bridge
40 For #4, the primary display must be set to IGD in host BIOS.
42 For #5, "x-vga=on" enables guest access to standard VGA IO/MMIO ranges.
57 x-igd-opregion=on,x-igd-lpc=on,x-vga=on
60 "x-igd-legacy-mode=on" to force enabling legacy mode, this also checks if the
62 fail immediately. Users can also set "x-igd-legacy-mode=off" to disable legacy
66 graphics devices should be removed, this can be done using "-nographic" or
67 "-vga none" or "-nodefaults", along with adding the device using vfio-pci.
69 For either mode, depending on the host kernel, the i915 driver in the host
70 may generate faults and errors upon re-binding to an IGD device after it
72 such driver binding unless the host driver is known to work well for this.
73 There are numerous ways to do this, i915 can be blacklisted on the host,
74 the driver_override option can be used to ensure that only vfio-pci can bind
75 to the device on the host[2], virsh nodedev-detach can be used to bind the
77 re-binding to i915, etc. Also note that IGD is also typically the primary
78 graphics in the host and special options may be required beyond simply
79 blacklisting i915 or using pci-stub/vfio-pci to take ownership of IGD as a
82 video=efifb:off (depending on host BIOS/UEFI) or these can be combined to
83 a catch-all, video=vesafb:off,efifb:off. Error messages such as:
87 are a good indicator that such a problem exists. The host files /proc/iomem
105 * x-igd-opregion=[*on*|off]
106 Copy host IGD OpRegion and expose it to guest with fw_cfg
108 * x-igd-lpc=[on|*off*]
109 Creates a dummy LPC bridge at 00:1f:0 with host VID/DID (i440fx only)
111 * x-igd-legacy-mode=[on|off|*auto*]
114 * x-igd-gms=[hex, default 0]
115 Overriding DSM region size in GGC register, 0 means uses host value.
117 'DVMT Pre-Allocated' option in host BIOS.
123 -device vfio-pci,host=00:02.0,id=hostdev0,addr=2.0
127-device vfio-pci,host=00:02.0,id=hostdev0,addr=2.0,x-igd-legacy-mode=off,x-igd-lpc=on,romfile=efi_…
136 1) "etc/igd-opregion"
147 2) "etc/igd-bdsm-size"
149 This fw_cfg file contains an 8-byte, little endian integer indicating
153 reserved region must be written to the dword BDSM register in PCI config
155 64-bit BDSM). As this support is related to running the IGD ROM, which
161 BAR2 (LMEMBAR) and removed the BDSM register in config space. There is
166 Upstream Seabios has OpRegion and BDSM (pre-Gen11 device only) support.
171 * IntelGopDriver: Closed-source Intel GOP driver
183 customer, or you can try extracting it from your host firmware using
188 EfiRom -f 0x8086 -i <Device ID of your IGD> -o output.rom \
189 -e IgdAssignmentDxe.efi PlatformGOPPolicy.efi IntelGopDriver.efi
195 warning: vfio_container_dma_map(0x55fab36ce610, 0x380010000000, 0x108000, 0x7fd336000000) = -22 (In…
198 Set the host physical address bits to IOMMU address width using
199 -cpu host,host-phys-bits-limit=<IOMMU address width>
205 echo $(( ((0x$(cat /sys/devices/virtual/iommu/dmar0/intel-iommu/cap) & 0x3F0000) >> 16) + 1 ))
211 IGD has it own address space. To use system RAM as VRAM, a single-level page
214 the translation flow on IGD with 64-bit GTT PTEs.
216 (PTE_SIZE == 8) +-------------+---+
218 +-------------+---+
221 -----------------------> 0xd748| 0x42ba3e000 | 1 +------------------>
224 +-------------+---+
232 The Data Stolen Memory is reserved by firmware, and acts as the VRAM in pre-OS
238 IGD Addr Space Host Addr Space Guest Addr Space
239 +-------------+ +-------------+ +-------------+
242 | | +-------------+ +-------------+
245 | | +------------>+-------------+<------->+-------------+<--Guest BDSM
247 DSMSIZE+-------------+ | with IOMMU | | Mapping | | Programmed by guest…
250 0+-------------+--+ | | | |
251 | +-------------+ | |
252 | | Data Stolen | +-------------+
253 | | (Host) |
254 +------------>+-------------+<--Host BDSM
255 Non- | | "real" one in HW
256 Passthrough | | Programmed by host FW
257 +-------------+
261 …https://www.intel.com/content/www/us/en/docs/graphics-for-linux/developer-reference/1-0/dump-video
262 [2] # echo "vfio-pci" > /sys/bus/pci/devices/0000:00:02.0/driver_override
265 [4] https://eci.intel.com/docs/3.3/components/kvm-hypervisor.html, Patch 0001-0004
267 [6] https://winraid.level1techs.com/t/tool-guide-news-uefi-bios-updater-ubu/30357