Lines Matching +full:firmware +full:- +full:based
1 Intel Graphics Device (IGD) assignment with vfio-pci
4 Using vfio-pci, we can passthrough Intel Graphics Device (IGD) to guest, either
16 (*-Required by)
19 |---------------------------------------------|-------|---------|-------|---------|
30 For #1, the "x-igd-opregion=on" option exposes a copy of host IGD OpRegion to
31 guest via fw_cfg, where guest firmware can set up guest OpRegion with it.
33 For #2, "x-igd-lpc=on" option copies the IDs of host LPC bridge and host bridge
42 For #5, "x-vga=on" enables guest access to standard VGA IO/MMIO ranges.
46 "Guest firmware" section.
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.
70 may generate faults and errors upon re-binding to an IGD device after it
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
79 blacklisting i915 or using pci-stub/vfio-pci to take ownership of IGD as a
83 a catch-all, video=vesafb:off,efifb:off. Error messages such as:
105 * x-igd-opregion=[*on*|off]
108 * x-igd-lpc=[on|*off*]
111 * x-igd-legacy-mode=[on|off|*auto*]
114 * x-igd-gms=[hex, default 0]
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_…
130 Guest firmware
132 Guest firmware is responsible for setting up OpRegion and Base of Data Stolen
134 fw_cfg requirements on the VM firmware:
136 1) "etc/igd-opregion"
141 to it. The dword based address of this reserved memory region must also
143 recommended that firmware should make use of this fw_cfg entry for any
147 2) "etc/igd-bdsm-size"
149 This fw_cfg file contains an 8-byte, little endian integer indicating
151 Firmware must allocate a reserved memory below 4GB with required 1MB
155 64-bit BDSM). As this support is related to running the IGD ROM, which
162 no need for guest firmware to allocate data stolen memory in guest address
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
194 When using OVMF as guest firmware, you may encounter the following warning:
195 warning: vfio_container_dma_map(0x55fab36ce610, 0x380010000000, 0x108000, 0x7fd336000000) = -22 (In…
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
233 environments. In QEMU, guest firmware (Seabios/OVMF) is responsible for
239 +-------------+ +-------------+ +-------------+
242 | | +-------------+ +-------------+
245 | | +------------>+-------------+<------->+-------------+<--Guest BDSM
247 DSMSIZE+-------------+ | with IOMMU | | Mapping | | Programmed by guest…
250 0+-------------+--+ | | | |
251 | +-------------+ | |
252 | | Data Stolen | +-------------+
254 +------------>+-------------+<--Host BDSM
255 Non- | | "real" one in HW
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