- Joined
- Oct 22, 2013
- Messages
- 197
- Motherboard
- hm77
- CPU
- 4790k
- Graphics
- hd4000
Though my chipset supports it, Dell didn't provide a BIOS option for AHCI; I'm stuck on legacy IDE.
I've been doing research, and the Intel Datasheet states that my chipset fully supports AHCI. In that case, it seems possible to enable AHCI with a DSDT patch.
To confirm support, if I issue this command in OSX's Terminal, I can switch to the AHCI controller, but the OS quickly locks up the first time anything tries to read from the disk (obviously).
so it should be possible to get this machine to boot in AHCI mode.
On page 509 of the IHC7 datasheet, section 12.1.33, one can find the necessary information to enable AHCI:
To enable this in the DSDT, I created an OperationRegion under device SATA with an offset of 0x90 with a size of 0x08, that contains an 8bit field named AHCI.
To set this field, I created a method called PINI a the root of the DSDT:
To execute this method on boot, I created a method _INI for device PCI
To execute this method on wake, I added this to _WAK:
With these changes in place, booting without the cache, I get a "still waiting for root device" error on boot. It would seem it's not loading the AppleAHCI driver.
What am I doing wrong?
From the Datasheet, it says that the controller must have map value set to non-combined mode. Given that it came from the factory in combined, I'd likely have to set this value too. How would i go about doing that?
Attached is my DSDT.
Code:
00:1f.2 IDE interface [0101]: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller [8086:27c4] (rev 02)
To confirm support, if I issue this command in OSX's Terminal, I can switch to the AHCI controller, but the OS quickly locks up the first time anything tries to read from the disk (obviously).
Code:
$ setpci -s 00:1f.2 90.b=40
$ lspci -nn
$ 00:1f.2 SATA controller [0106]: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller [8086:27c5] (rev 02)
so it should be possible to get this machine to boot in AHCI mode.
On page 509 of the IHC7 datasheet, section 12.1.33, one can find the necessary information to enable AHCI:
To enable this in the DSDT, I created an OperationRegion under device SATA with an offset of 0x90 with a size of 0x08, that contains an 8bit field named AHCI.
Code:
Device (SATA)
{
Name (_ADR, 0x001F0002) // _ADR: Address[B]
OperationRegion (SAHC, PCI_Config, 0x90, 0x08) // AHCI
Field (SAHC, ByteAcc, NoLock, Preserve)
{
AHCI, 8
}[/B]
OperationRegion (SACS, PCI_Config, 0x40, 0xC0)
<<< REST OF DEVICE SATA >>>
To set this field, I created a method called PINI a the root of the DSDT:
Code:
Method (PINI, 0, NotSerialized) // For PCI0/Wake INI
{
Store (0x40, \_SB.PCI0.SATA.AHCI) // Force SATA in 4-Port AHCI mode
}
To execute this method on boot, I created a method _INI for device PCI
Code:
Method (_INI, 0, NotSerialized)
{
PINI ()
}
To execute this method on wake, I added this to _WAK:
Code:
Method (_WAK, 1, NotSerialized) // _WAK: Wake
{
[B]PINI ()[/B]
P8XH (Zero, 0xAB)
<<< REST OF method _WAK >>>
With these changes in place, booting without the cache, I get a "still waiting for root device" error on boot. It would seem it's not loading the AppleAHCI driver.
What am I doing wrong?
From the Datasheet, it says that the controller must have map value set to non-combined mode. Given that it came from the factory in combined, I'd likely have to set this value too. How would i go about doing that?
Attached is my DSDT.