AHCI Controller Passthrough problem
First, I'll like to thank you for creating this wonderful DarwinKVM repo. I followed your instructions and had successfully created a Sequoia KVM in just a few hours. I'm now trying to pass-through a AHCI Controller to the macOS KVM, but it didn't work. Here are the details:
My PC config
- MSI Pro Z690-A WiFi DDR4
- Inte i7-12700K CPU
- Mobo's Built-in Intel Alder Lake-S PCH SATA Controller (AHCI Mode)
- Arch Linux Host
Details:
- vfio-pci driver is successfully bounded to the SATA/AHCI Controller
- tested with Windows 11 kvm and the AHCI controller and its attached HDDs are recognized and working
- now for macOS Sequoia kvm, there are many AHCI related error messages when booting up. Many of them are timeout messages resulting in 3-4 additional minutes to boot up. Once booted to macOS desktop, hackintool can discover the Intel AHCI controller, but its attached HDDs are missing.
Questions: Does passing Host PCI AHCI device work under macOS? Am I missing something in config.plist or kexts in order for it to work?
A bunch of controllers were dropped in Big Sur. CtlnaAHCIPort restores them - CorpNewt
Seems like the kext for its support was dropped sometime in Big Sur, you can try the following:
https://github.com/dortania/OpenCore-Install-Guide/blob/master/extra-files/CtlnaAHCIPort.kext.zip
EDIT: Thank you for the kind words, I just woke up and was in haste, worried about the issue at hand :P kekw
Thanks for the reply. I did try the CtlnaAHCIPort.kext kext, but it didn't help. BTW, my PC is configured as multi-boot and has been running macOS (currently Sequoia) in bare metal with no problem in SATA/AHCI controller.
I've tried another ASMedia ASM1062 AHCI Controller and also encountered the same problem in macOS KVM. I tried to search the net but couldn't find any success story in AHCI passthrough to macOS KVM. Just curious, have you tried AHCI passthrough before?
EDIT: I should also mentioned that GPU & NVMe passthrough are both working fine on macOS KVM, only problem is AHCI.
Interesting. I have not unfortunately, I only use NVMe's and GPUs, and the USB Controllers in the guest as I have no HDDs :/
EDIT: If it works on baremetal but not through QEMU with PCIe passthrough, then sounds like we've gotta figure out how we properly can pass it through. Can you send your IOMMU groups?
Here is the IOMMU group:
IOMMU Group 0:
00:02.0 Display controller [0380]: Intel Corporation AlderLake-S GT1 [8086:4680] (rev 0c)
IOMMU Group 1:
00:00.0 Host bridge [0600]: Intel Corporation 12th Gen Core Processor Host Bridge/DRAM Registers [8086:4668] (rev 02)
IOMMU Group 10:
00:1b.0 PCI bridge [0604]: Intel Corporation Device [8086:7ac0] (rev 11)
IOMMU Group 11:
00:1b.4 PCI bridge [0604]: Intel Corporation Alder Lake-S PCH PCI Express Root Port #21 [8086:7ac4] (rev 11)
IOMMU Group 12:
00:1c.0 PCI bridge [0604]: Intel Corporation Alder Lake-S PCH PCI Express Root Port #1 [8086:7ab8] (rev 11)
IOMMU Group 13:
00:1c.1 PCI bridge [0604]: Intel Corporation Alder Lake-S PCH PCI Express Root Port #2 [8086:7ab9] (rev 11)
IOMMU Group 14:
00:1c.2 PCI bridge [0604]: Intel Corporation Alder Lake-S PCH PCI Express Root Port #3 [8086:7aba] (rev 11)
IOMMU Group 15:
00:1d.0 PCI bridge [0604]: Intel Corporation Alder Lake-S PCH PCI Express Root Port #9 [8086:7ab0] (rev 11)
IOMMU Group 16:
00:1f.0 ISA bridge [0601]: Intel Corporation Z690 Chipset LPC/eSPI Controller [8086:7a84] (rev 11)
00:1f.3 Audio device [0403]: Intel Corporation Alder Lake-S HD Audio Controller [8086:7ad0] (rev 11)
00:1f.4 SMBus [0c05]: Intel Corporation Alder Lake-S PCH SMBus Controller [8086:7aa3] (rev 11)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Alder Lake-S PCH SPI Controller [8086:7aa4] (rev 11)
IOMMU Group 17:
01:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch [1002:1478] (rev c1)
IOMMU Group 18:
02:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch [1002:1479]
IOMMU Group 19:
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] [1002:73bf] (rev c1)
IOMMU Group 2:
00:01.0 PCI bridge [0604]: Intel Corporation 12th Gen Core Processor PCI Express x16 Controller #1 [8086:460d] (rev 02)
IOMMU Group 20:
03:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller [1002:ab28]
IOMMU Group 21:
04:00.0 Non-Volatile memory controller [0108]: Sandisk Corp WD PC SN810 / Black SN850 NVMe SSD [15b7:5011] (rev 01)
IOMMU Group 22:
06:00.0 Non-Volatile memory controller [0108]: Sandisk Corp WD PC SN810 / Black SN850 NVMe SSD [15b7:5011] (rev 01)
IOMMU Group 23:
08:00.0 SATA controller [0106]: ASMedia Technology Inc. ASM1061/ASM1062 Serial ATA Controller [1b21:0612] (rev 02)
IOMMU Group 24:
09:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller I225-V [8086:15f3] (rev 03)
IOMMU Group 25:
0a:00.0 Non-Volatile memory controller [0108]: Sandisk Corp SanDisk Extreme Pro / WD Black SN750 / PC SN730 / Red SN700 NVMe SSD [15b7:5006]
IOMMU Group 3:
00:06.0 PCI bridge [0604]: Intel Corporation 12th Gen Core Processor PCI Express x4 Controller #0 [8086:464d] (rev 02)
IOMMU Group 4:
00:08.0 System peripheral [0880]: Intel Corporation 12th Gen Core Processor Gaussian & Neural Accelerator [8086:464f] (rev 02)
IOMMU Group 5:
00:0a.0 Signal processing controller [1180]: Intel Corporation Platform Monitoring Technology [8086:467d] (rev 01)
IOMMU Group 6:
00:14.0 USB controller [0c03]: Intel Corporation Alder Lake-S PCH USB 3.2 Gen 2x2 XHCI Controller [8086:7ae0] (rev 11)
00:14.2 RAM memory [0500]: Intel Corporation Alder Lake-S PCH Shared SRAM [8086:7aa7] (rev 11)
IOMMU Group 7:
00:14.3 Network controller [0280]: Intel Corporation Alder Lake-S PCH CNVi WiFi [8086:7af0] (rev 11)
IOMMU Group 8:
00:16.0 Communication controller [0780]: Intel Corporation Alder Lake-S PCH HECI Controller #1 [8086:7ae8] (rev 11)
IOMMU Group 9:
00:17.0 SATA controller [0106]: Intel Corporation Alder Lake-S PCH SATA Controller [AHCI Mode] [8086:7ae2] (rev 11)
And lscpi for AHCI controllers:
00:17.0 SATA controller [0106]: Intel Corporation Alder Lake-S PCH SATA Controller [AHCI Mode] [8086:7ae2] (rev 11)
DeviceName: Onboard - SATA
Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:7d25]
Kernel driver in use: vfio-pci
Kernel modules: ahci
08:00.0 SATA controller [0106]: ASMedia Technology Inc. ASM1061/ASM1062 Serial ATA Controller [1b21:0612] (rev 02)
Subsystem: ASMedia Technology Inc. Device [1b21:1060]
Kernel driver in use: vfio-pci
Kernel modules: ahci
And macOS boot messages with AHCI errors/timeouts