[vfio-users] Radeon R9 290 passthrough to Win10 guest - bsod/reboot on driver install

Bob Dawes xochipilli4 at yahoo.com
Mon Apr 18 13:40:12 UTC 2016

This guy has got it exactly. Could hardly do any reboot related task 
without at least one bsod until I used an ioh3420 root port and both 
functions of the card together under the root port.

In the end I tracked it down to the registers and the root port having 
different link description registers after some reboots. Since they 
share the same physical link this could have unpredictable results plus 
I even caught the windows drivers making direct accesses to the root 
port registers during link setup. You are stuck with certain config 
parameters defined by the fake root port but they aren't important 
assuming your card can handle a minimal link payload.

I have a start up script that sorts out the registers and means I almost 
never have to hard reset, but suggest you try a simple set up first as 
it's not great practice to setpci your registers. The other thing I can 
recommend if you are having problems is to force all your pcie cards to 
have safe MaxPayload parameters by adding pci=pcie_bus_peer2peer to your 
kernel command line - as making those vary between root / both card 
functions is a guaranteed qemu boot BSOD for me. The problem we're 
having tends to emerge because the cards can't be fully reset and so 
tend to go out of line. Keeping them together in the client etc. really 
helps as does having minimal non-agressive parameters for things such as 

For the avoidance of doubt - I can do whatever the hell I want and it 
still works. I can even boot with fglrx and then rebind to vfio. I have 
to bind the root port to pci-stub if I put ASPM on the root port as the 
linux drivers start messing with stuff - but even that is manageable.

It's a bit different with PCI-e2 boards vs the 100 series board I have, 
but I suspect the principles hold regardless. Good luck!

On 18/04/16 01:47, Stewart Adam wrote:
> I faced similar issues with my R270, in my case *entirely removing* 
> the vmport=off option (its presence alone caused issues) and attaching 
> the GPU to a ioh3420 device instead of directly to the PCI bus fixed 
> the issue: 
> https://www.redhat.com/archives/vfio-users/2015-December/msg00211.html
> Like many of you mention, I tried several versions from both Catalyst 
> and Crimson and all failed without those two elements in my 
> configuration. Without them, I experienced all sorts of hangs and 
> BSODs on driver installation or boot-up. It's worked flawlessly, even 
> after several guest reboots, since adding them.
> This thread from January is also be relevant: 
> https://www.redhat.com/archives/vfio-users/2016-January/msg00191.html
> Regards,
> Stewart
> On 2016-04-17 6:15 PM, Ryan Flagler wrote:
>> I ran an R9 280 with only the reboot issue. I believe the most 
>> important settings for me were using the i440fx chipset and the uefi 
>> bios.

More information about the vfio-users mailing list