@W1SS @Fangio @mikeboss
Now I am curious,
@W1SS, you say you have a Marvell card that didn't work, and you mention that you had to install a 3rd party driver for it? I suppose that means your AHCI card isn't bootable either. I would suggest swapping it for one with built in OS X drivers.
What Marvell chip/card do you have? I may want to note this problem in the instructions.
And you say that you set a custom "com_apple_iokit_data_set_management" key on your 3rd party kext and modified its IOProbeScore. But how did you get the kernel to load that modified kext? Are you still running kext-dev-mode then, or did you actually sign your custom kext?
A bunch of questions, hehe, but I'm curious. If it turns out you're actually stuck with kext-dev-mode for your custom SATA card driver, then I *really* suggest buying the Rocket 640L instead (it's EFI-bootable too), or a similar card with natively supported chipset.
I have the Sonnet Tempo Pro SSD card with a Marvell 0x1b4b/0x9182 controller which works/boots flawlessly.
All AHCI compliant non-intel/nvidia based controllers are recognized by OSX as "Generic AHCI Controllers" due to the fact that Apple mainly uses a mix of intel/nvidia controllers in their hardware. While a compliant generic AHCI controller will be recognized/work in OSX with trim support, hard drives connected to generic controllers are identified as external drives and are thus assigned with the orange external drive icon. This can confuse users and often results in mistakenly ejecting the wrong drive which is why I created a custom kext specifically for Sonnet Temp Pro cards that correctly probes and identifies the card as a non-generic AHCI controller ie. Sonnet Temp Pro SSD so that any drive connected to the card would be recognized as an internal drive with a grey drive icon.
The issue here is that the ADSM kext together with the AppleAHCIPort kext only enables the 'new' TRIM on generic AHCI and intel/nvidia based controllers with a probe score of 800 or 2000 while the custom Sonnet kext I had devised had a probe score of 25000 and was not referencing the com_apple_iokit_data_set_management. Therefore, there was no way for OSX to correctly support trim with the custom kext I had created.
Enter the changes I made to the custom kext:
Added:
<key>com_apple_iokit_data_set_management</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.iokit.IOAHCIBlockStorage</string>
<key>Force Data Set Management</key>
<true/>
<key>IOClass</key>
<string>AppleAHCIDiskDriver</string>
<key>IOProbeScore</key>
<integer>5000</integer>
<key>IOProviderClass</key>
<string>IOAHCIDevice</string>
<key>Protocol Characteristics</key>
<dict>
<key>Physical Interconnect</key>
<string>SATA</string>
<key>Physical Interconnect Location</key>
<string>Internal</string>
</dict>
</dict>
Modified the probe score from 25000 to 2000 which Apple uses for their intel/nvidia based controllers:
<key>SonnetTempoProSSD</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleAHCIPort</string>
<key>Chipset Name</key>
<string>Tempo Pro SSD</string>
<key>IOClass</key>
<string>AppleAHCI</string>
<key>IOPCIClassMatch</key>
<string>0x01060100&0xffffff00</string>
<key>IOPCIPrimaryMatch</key>
<string>0x91821b4b</string>
<key>IOProbeScore</key>
<integer>2000</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>Vendor Name</key>
<string>Sonnet</string>
</dict>
A probe score of 800 which apple uses for identifying compliant AHCI controllers as 'Generic AHCI Controllers' resulted in a kernel panic with the custom kext.
I was only able to load the custom kext with kext signing disabled which works for me as I do not have to worry about installing another OS update with a modified 'Apple' kext - the dreaded grey error screen. In other words, if kext signing becomes enabled again due to PRAM reset or an OS update, the custom kext I had created gets disabled and the card would be recognized as a 'Generic AHCI Controller' with ADSM trim support but with external orange drive icons assigned instead. More importantly, my mac pro would continue to boot without any issues... I'll take that over modifying/breaking the signatures of Apple kexts any day.
As for 3rd-party SATA controller vendors- The new ADSM trim method, aka trimforce, shouldn't impact them just as long as their controllers are manufactured according to AHCI specs and pass compliance testing.
That's pretty much it.. Let me know if you need additional information or would like a copy of the custom kext.