I was able to finally get mine working reliably, display will initialize and show content even after shutting down VM and rebooting the VM. Not unplugging / replugging of the HDMI cable necessary.
Using up to date arch with qemu and libvirt. Machine is booting in EFI. The QEMU command line is: qemu-system-x86_64 -monitor telnet:127.0.0.1:1234,server,nowait -enable-kvm -machine q35 -cpu host -smp 3 -nographic -vga none -m 2G -device vfio-pci,host=00:02.0,rombar=0 -device vfio-pci,host=00:0e.0 -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF_CODE.fd -drive if=pflash,format=raw,file=/home/admin/myvars.fd -net nic -drive file=/home/admin/kodi_drive.img,if=virtio,format=raw Hardware is an Odroid N2. CPU is Intel(R) Celeron(R) J4105 and GPU is UHD Graphics 605 [8086:3185]. The mkinitcpio.conf file needed to be changed in accordance with the Arch VFIO passthrough page. Kernel command line options: root=PARTLABEL=Arch_root quiet rw ipv6.disable=1 intel_iommu=on iommu=pt vfio-pci.ids=8086:3185,8086:3198 video=efifb:off,vesafb:off module_blacklist=i915,snd_hda_intel,snd No blacklisting files in /etc/modprobe.d Note that it did not work when the video= line had vesafb:off was before the efifb:off. Switching them to call efifb:off first made everything work like a charm. If other people are still having problems, one command I found very useful was to check iomem to find things that might still be binding the device: sudo cat /proc/iomem On Wed, Aug 26, 2020 at 10:03 AM Alex Williamson <alex.william...@redhat.com> wrote: > > On Wed, 26 Aug 2020 07:27:59 +0200 > daggs <da...@gmx.com> wrote: > > > Greetings Alex, > > > > > Sent: Wednesday, August 26, 2020 at 12:54 AM > > > From: "Alex Williamson" <alex.william...@redhat.com> > > > To: "daggs" <da...@gmx.com> > > > Cc: "Patrick O'Callaghan" <p...@usb.ve>, vfio-users@redhat.com > > > Subject: Re: [vfio-users] pci passthrough of Intel igp > > > > > > On Tue, 25 Aug 2020 23:34:48 +0200 > > > daggs <da...@gmx.com> wrote: > > > > > > > Greetings Alex, > > > > > > > > > Sent: Wednesday, August 12, 2020 at 8:04 PM > > > > > From: "Alex Williamson" <alex.william...@redhat.com> > > > > > To: "Patrick O'Callaghan" <p...@usb.ve> > > > > > Cc: vfio-users@redhat.com, "daggs" <da...@gmx.com> > > > > > Subject: Re: [vfio-users] pci passthrough of Intel igp > > > > > > > > > > On Wed, 12 Aug 2020 17:46:33 +0100 > > > > > "Patrick O'Callaghan" <p...@usb.ve> wrote: > > > > > > > > > > > On Wed, 2020-08-12 at 18:02 +0200, daggs wrote: > > > > > > > Greetings, > > > > > > > > > > > > > > I have a machine with an Intel igp of HD Graphics 610 [8086:5902]. > > > > > > > I found several discussions on the subject stating that it isn't possible but all of them are several years old. > > > > > > > so I wanted to know if it is possible to pass it to a vm? > > > > > > > I'm using kernel 5.4.43, libvirt-6.6.0 and qemu-5.0.0. > > > > > > > > > > > > If this is your only GPU, it doesn't make much sense. The idea of > > > > > > passthrough is to let the VM control an additional GPU, not the main > > > > > > one. > > > > > > > > > > There are plenty of people trying to assign their primary graphics > > > > > device, it makes perfect sense for someone that doesn't intend to run a > > > > > graphical environment on the host. Assigning the primary GPU can be > > > > > more challenging, but that doesn't mean it isn't done. > > > > > > > > > > For daggs, I can only say try it yourself, I don't know of any specific > > > > > reason it wouldn't work, but direct assignment of IGD is a fair bit of > > > > > luck anyway since the hardware is constantly changing and we don't > > > > > really keep up with it. You might need to play with the x-igd-gms > > > > > value on the vfio-pci device in QEMU, several people have found that > > > > > x-igd-gms=1 is necessary on some versions of hardware. Thanks, > > > > > > > > > > Alex > > > > > > > > > > > > > > > > > > I'm trying to boot the vm up with the igd pass-through, here is my xml: https://dpaste.com/CNDHRLNXC > > > > the boot ends up with no signal and this is visible in dmesg: > > > > [ 36.181635] DMAR: DRHD: handling fault status reg 3 > > > > [ 36.181641] DMAR: [DMA Read] Request device [00:02.0] PASID ffffffff fault addr c6000000 [fault reason 06] PTE Read access is not set > > > > [ 36.182298] DMAR: DRHD: handling fault status reg 3 > > > > [ 36.182304] DMAR: [DMA Read] Request device [00:02.0] PASID ffffffff fault addr c603d000 [fault reason 06] PTE Read access is not set > > > > [ 36.183459] DMAR: DRHD: handling fault status reg 3 > > > > [ 36.183464] DMAR: [DMA Read] Request device [00:02.0] PASID ffffffff fault addr c603e000 [fault reason 06] PTE Read access is not set > > > > [ 36.184614] DMAR: DRHD: handling fault status reg 3 > > > > [ 36.721979] vfio-pci 0000:00:02.0: vfio_ecap_init: hiding ecap 0x1b@0x100 > > > > > > > > I've dumped the rom, do I need to run the fixer on it? if so, what is the vid and did? > > > > than I need to place this <rom file='/home/streamer/vga.rom'/> in the hostdev section? > > > > I've noticed most of the reports say it works only on i440fx but they > > > > are all a few years old, is that still the case? > > > > > > > > as part of this contexts, I have this in the kernel cmdline: > > > > pcie_acs_override=id:8086:a170 does it means device 8086:a170 is > > > > "broken" out of the iommu table? > > > > > > If you dump the ROM and provide it via a <rom> tag in the xml, then yes > > > you need to fix the device ID and checksum, if QEMU loads it from the > > > device it will do this itself. You can find the vendor ID (vid) and > > > device ID (did) with 'lspci -nns 0000:00:02.0", they will be the > > > numbers in the last set of brackets, ex: [8086:a170]. They're also > > > available in sysfs under the device: > > > > > > $ cat /sys/bus/pci/devices/0000\:00\:02.0/vendor > > > $ cat /sys/bus/pci/devices/0000\:00\:02.0/device > > > > I'll try that and see what happens. > > > > > Legacy IGD assignment still requires 440FX due to Q35 placing it's own > > > device at a conflicting address to the one needed by IGD. > > > > duh, my question wasn't clear enough, figures, not the first time I do it. > > what I meant is do I need Legacy IGD assignment or running the an Q35 machine is enough? > > the host is booting in uefi mode if it matters to the issue on hand. > > "It depends". You're welcome to try Q35 and see if you can get it to > work, but the Legacy mode specifically depends on having an address > on the root bus free which is not available on Q35. The UPT/Universal > PassThrough mode is largely abandoned by Intel AFAICT. > > If your host is booting in UEFI mode then you may not have a BIOS mode > ROM available. If you're dumping the ROM, run the parser on it to see > if it has a BIOS section. If not, you might need to boot the host in > non-UEFI mode with a live image and see if you get a different ROM in > that mode. Legacy IGD mode also depends on SeaBIOS support. > > > > The ACS override patch should never be needed for IGD, though it probably tells > > > us the vendor and device IDs that you'd need to patch into the ROM. > > > IGD is always a single function device on the root complex and > > > therefore will always be in its own IOMMU group. Thanks, > > > > once again, my question wasn't clear enough... I'll try better next time. > > the question pver the ACS override patch is related to the sound card (which at the moment I'm not passing to the vm), > > the card is part of the following group: > > IOMMU Group 9 00:1f.0 ISA bridge [0601]: Intel Corporation H110 Chipset LPC/eSPI Controller [8086:a143] (rev 31) > > IOMMU Group 9 00:1f.2 Memory controller [0580]: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller [8086:a121] (rev 31) > > IOMMU Group 9 00:1f.3 Audio device [0403]: Intel Corporation 100 Series/C230 Series Chipset Family HD Audio Controller [8086:a170] (rev 31) > > IOMMU Group 9 00:1f.4 SMBus [0c05]: Intel Corporation 100 Series/C230 Series Chipset Family SMBus [8086:a123] (rev 31) > > > > when I tried to pass it to the vm, I got an error stating that I need > > to pass all of the devices in the group into the guest. the error > > persisted when I booted the system without that cmd line param. from > > what I understood (which might have been wrong), adding > > pcie_acs_override=id:8086:a170 to the command line params "breaks" > > the sound card away from the iommu group. is that the case? > > Sorry, the ACS override patch is not upstream, I don't get involved in > its usage, there are too many variants and possibilities that it's > broken. Thanks, > > Alex > > _______________________________________________ > vfio-users mailing list > vfio-users@redhat.com > https://www.redhat.com/mailman/listinfo/vfio-users
_______________________________________________ vfio-users mailing list vfio-users@redhat.com https://www.redhat.com/mailman/listinfo/vfio-users