AMD RX570 4GB not posting when passed through

Hi there

I’m trying to passthrough my AMD RX470 4gb to my Windows 11 vm (libvirt). I’ve previously done this by passing through my 2080ti to the guest (worked fine), but I can’t even get this RX570 to post.

I’ve followed the Arch wiki (I’m running Arch; 5.16.2-arch1-1) and can’t tell what I’m missing - If I also add a display spice server I’m able to see the device with an error 43 status, but I’m surprised its not even posting before that. I’ve tried dumping and passing through the gpu rom and have vendor-reset set up (I assume correctly).

If anyone can point me in the right direction I’d be extremely grateful :slight_smile:

Below is my vm xml config:

win11 17a069ff-b8cd-47a6-adff-75616ebe1b96 17238016 17238016 20 hvm /usr/share/edk2-ovmf/x64/OVMF_CODE.secboot.fd /var/lib/libvirt/qemu/nvram/win11_VARS.fd destroy restart destroy /usr/bin/qemu-system-x86_64

I ideally wanted to attach my dmesg and vm xml but can’t post links, attach files and there’s a character limit in posts :smiley: Not sure what I can do to offer more information without it getting truncated?

Sounds like you need to use (Native!) Windows and GPU-Z to grab the vbios from the card. You would then adjust libvirt to load that to the card.

The issue is that the drivers leave the card in a non-functional state. This applies to basically anything Vega64 and older. When you boot the VM, it will load the BIOS onto the card and the card will re-initialize. There is also a patch for these cards as well.

I just tried and it said ‘BIOS reading not supported on this device’. I dumped it and passed it in linux (I assume I did that correctly!), so I’m not sure why I can’t do it in Windows :confused: