VFIO X570 Sata Controller Passthrough

I’m currently using a b350 board. I plan on upgrading to Ryzen 3000 soonish and plan on also getting a new motherboard to go with it. I currently pass the chipset asmedia controller to my VM so that I can have an SSD and a large HDD in windows. My worry is that I’ve been warned that passing other sata controllers besides ASmedia ones can be a crapshoot, and since X570 no longer uses ASmedia I might run into issues.

So has anyone here done chipset sata controller passthrough on X570 yet? I love to hear back to know if I need to go with X470 instead.

You dont need to send the sata controller through. Unless you have the ACS override patch you would need to pass through everything on the controller. You can just send your disk as a block device

<disk type='block' device='disk'> 
  <driver name='qemu' type='raw'/>
  <source dev='/dev/sdX'/>
  <target dev='vda' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
</disk>

if your disk doesnt always stay at /dev/sdX between boots you can put in the value from /dev/disk/by-is/

1 Like

Test shows that it is possible to pass the X570 SATA to windows and it works.
And whats better is that the X570 has 2 SATA controllers.
If I understand the chipset features correctly than there are 4 permanent SATA ports and 2 optional that can be instead used as PCIe lines.
Passing one of them to windows VM with esata connected disk worked.
Did not do any major testing as the disk contains BTRFS partition, but both the controller and the disk showed in VM.

I am currently sending my whole controller and I do use the ACS patch as I need it to pass other things anyway. I want to know if it will still work on X570 as well as it does on first and second gen chipsets.
I prefer to do controller passthrough as it reduces cpu overhead and is a better use of system resources. I use the system dual head so I want to minimize either guest or host usage affecting performance in the other.