Hi, RehabMan.
In order to provide details as much as possible, I did it once again from scratch. Here was what I did this time.
Machine: Gigabyte GA-Z97X-UD3H + i5 4690 + NVMe Samsung Pro 960 SSD
USB Bootable Drive:
Clover Version: v2.4k r4045 EFI bootloader
- Determining the ACPI path of your NVMe device(s)
\_SB.PCI0.RP01.PXSX
Please see the attachment.
- Creating SSDT_NVMe-Pcc.aml
// Inject bogus class-code for NVMe SSD to prevent IONVMeFamily.kext from loading
DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0)
{
External(_SB.PCI0.RP01.PXSX, DeviceObj)
Method(_SB.PCI0.RP01.PXSX._DSM, 4)
{
If (!Arg2) { Return (Buffer() { 0x03 } ) }
Return(Package()
{
"class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },
"built-in", Buffer() { 0 },
})
}
}
//EOF
Compiled with MaciASL (downloaded from your link at
https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/) and saved as SSDT_NVMe-Pcc.aml with ACPI Machine Language Binary. Please see the attachment.
Copied SSDT_NVMe-Pcc.aml to EFI/Clover/ACPI/patched/SSDT_NVMe-Pcc.aml on my USB Bootable Drive.
I am not using config.plist/ACPI/SortedOrder.
- Examples with incomplete ACPI identities
Skipped since Samsung Pro 960 has complete ACPI identities.
- Special injections required for 10.11.x and Samsung 960 EVO (or other 144d:a804 NVMe device)
Skipped since either the SSD or the OS applies.
- Existing _DSM methods
Did it anyway even though I started from scratch with a clean drive.
I don't have a statically patched DSDT.aml in ACPI/patched.
- Creating HackrNVMeFamily*.kext with the spoofed class-code
./patch_nvme.sh --spoof
Determined patch automatically from vanilla IONVMeFamily: 10_12_6
Creating patched HackrNVMeFamily-10_12_6.kext from /System/Library/Extensions/IONVMeFamily.kext
Vanilla MD5 matches expected MD5 entry (c506f1fc40026c0262a736f0be318223)
Patched MD5 matches expected MD5 entry (ff9c55bf11e522dd86e3dc5b2df7ff24)
Copied to EFI/Clover/kexts/Other.
Please see the attachments as well. Thank you for your time.