RehabMan, your guide is amazing!
Using your spoofed method, I have my x99 build booting off a new Samsung 960 Evo!
I have a question regarding using a second NVMe drive though. First let me detail a few things out.
Hardware:
x99eWS/USB3.1
5960x
GTX 960 in PCIe_3
Samsung 960 Evo in M.2 Slot
Intel P3500 in a PCIe riser card in PCIe_1
Booting (for now) from a SATA SSD.
Running 10.12.6.
Using the spoof kext + ssdt method, I had the system recognizing and booting great off the 960 Evo.
When I added the Intel P3500, the system would kernel panic midway through the apple logo load, so I switched back to a standard SSD with no ssdt associated with nvme patching. Once I did that, the system booted and automatically detected the P3500, although it was seen as an external drive. Then I did the following:
1) Use IOreg to find the ACPI path to the Intel P3500. This was tricky because of the PCI switch it is behind.
2) Craft a new nvme-ssdt to inject (code below).
3) Reboot.
However, when I do this, my Samsung 960 Evo goes back to working perfectly, but now the Intel P3500 doesn't show up as a block storage device. I'm confident that I created the nvme-ssdt properly, since the system no longer kernel panics on boot, and since IOreg seems to find both devices just fine. Have I done something wrong?
Code:
DefinitionBlock ("", "SSDT", 2, "hack", "NVMe-Pcc", 0x00000000)
{
External (_SB_.PCI0.BR1B.H000, DeviceObj) // (from opcode)
External (_SB_.PCI0.BR2A.H000, DeviceObj) // (from opcode)
Device (_SB.PCI0.BR2A.H000.PBR8)
{
Name (_ADR, 0x00080000) // _ADR: Address
Device (SSD0)
{
Name (_ADR, Zero) // _ADR: Address
}
}
Method (_SB.PCI0.BR2A.H000.PBR8.SSD0._DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
If (LNot (Arg2))
{
Return (Buffer (One)
{
0x03
})
}
Return (Package (0x04)
{
"class-code",
Buffer (0x04)
{
0xFF, 0x08, 0x01, 0x00
},
"built-in",
Buffer (One)
{
0x00
}
})
}
Method (_SB.PCI0.BR1B.H000._DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
If (LNot (Arg2))
{
Return (Buffer (One)
{
0x03
})
}
Return (Package (0x04)
{
"class-code",
Buffer (0x04)
{
0xFF, 0x08, 0x01, 0x00
},
"built-in",
Buffer (One)
{
0x00
}
})
}
}
View attachment 350912 View attachment 350913 View attachment 350914 View attachment 350915