I’m currently building a new home server and experimenting with SATA passthrough on proxmox. This is still a work in progress, but I wanted to make a special mention to kiler129 on GitHub for making an excellent guide HERE on ensuring that the AHCI driver does not load on start. The proxmox Wiki does not cover this topic adequately, at least for onboard SATA controllers.
I can confirm so far it looks like his guide works fine for a MSI B450 Motherboard with a Ryzen 2700x.
I also found this old post HERE by Will Haley to be useful for determing which SATA controller my disks were actually on. Turns out my motherboard has two of them, which was confusing. I believe one is on the CPU and one on the chipset. I also had to enabled the IOMMU ACS hack (kernel command line: pcie_acs_override=downstream,multifunction) to be able to passthrough the SATA controller without also passing through a bunch of stuff that must be bound to the host, such as the Ethernet connection. The arch wiki has a good guide that is mostly compatible with Proxmox describing how these IOMMU groups work.