Help with vga passthrough

I have posted previously in an attempted to get VGA passthrough working on my system. I have made incremental progress but still have been without success. I am running gentoo for my operating system and have read in detail instructions all of the web including but not limited to Archlinux and gentoo.

My MB is a gigabyte designare and have successfully been able to passthrough an nvme drive. I have identical radeon pro wx 3100 cards (what a pain using identical cards) but one is running the amdgpu and the other is loading vfio-pci for both it and the attached audio.

I have a win7 system which I can boot into under virt-manager, and it can see the card in the device manager, but it says that there are not enough resources for it.

I decided to simplify my setup and just try to get qemu system to post using the card but have failed. No signal is coming from the card. I am using the following command to test:

qemu-system-x86_64
-enable-kvm
-m 1024
-cpu host,kvm=off
-smp 2,sockets=1,cores=2,threads=1
-device vfio-pci,host=08:00.0,x-vga=on
-device vfio-pci,host=08:00.1
-drive if=pflash,format=raw,readonly,file=/usr/share/edk2-ovmf/OVMF_CODE.fd
-drive if=pflash,format=raw,file=/usr/share/edk2-ovmf/OVMF_VARS.fd
-vga none

If I get rid of the “vga none” I get the tiano core screen so I think everything else must be fine.

When I check my logs, after running the command I get the following:
Jul 1 20:57:24 threadripper kernel: vfio_ecap_init: 0000:08:00.0 hiding ecap 0x19@0x270
Jul 1 20:57:24 threadripper kernel: vfio_ecap_init: 0000:08:00.0 hiding ecap 0x1b@0x2d0
Jul 1 20:57:24 threadripper kernel: vfio_ecap_init: 0000:08:00.0 hiding ecap 0x1e@0x370

looking online, it seems like there should also be some sort of line saying that vfio is initializing.

I pass the following options to grub at boot “pcie_aspm=off amd_iommu=on iommu=pt”

The output of dmesg |grep AMD-Vi is
[ 0.359500] AMD-Vi: IOMMU performance counters supported
[ 0.359541] AMD-Vi: IOMMU performance counters supported
[ 0.367463] AMD-Vi: Found IOMMU at 0000:00:00.2 cap 0x40
[ 0.367465] AMD-Vi: Extended features (0xf77ef22294ada):
[ 0.367469] AMD-Vi: Found IOMMU at 0000:40:00.2 cap 0x40
[ 0.367471] AMD-Vi: Extended features (0xf77ef22294ada):
[ 0.367474] AMD-Vi: Interrupt remapping enabled
[ 0.367476] AMD-Vi: virtual APIC enabled
[ 0.367609] AMD-Vi: Lazy IO/TLB flushing enabled

Lastly, here is my iommu group info for the card with the vfio-pci driver

IOMMU Group 12 08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Lexa XT [Radeon PRO WX 3100] [1002:6985]
IOMMU Group 12 08:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:aae0]

nothing else is listed in group 12. lots of examples I have seen also have a PCI bridge listed in the same group as the card. I do not. No clue if that is an issue.

Anyway, I would love to get this running. Any thoughts?

Thanks

Do you see “tiano core screen” on output of GuestGPU?

No, I do not see the tiano core screen. The only way I see that is if I get rid of the “no vga” flag. I was testing to see if I could get to that screen but failed. Suggestions?

I was successfull with W7 & GTX1080Ti using libvirt with some changes of xml. With qemu+OPTS I wasn’t lucky. I’m on the road now, I’ll post libvirt xml later.
http://www.monitos.cz/tmp/libvirt_gfx_passthrough_win7.png

In my case, Guest GPU output shows Seabios message first.

Maybe your Guest GPU is missing its BIOS. (for GTX1080Ti I’m using patched BIOS)

For inspiration.

http://www.monitos.cz/tmp/win7_redited.xml