Jump to content
  • Announcements

    • Allan

      Forum Rules   04/13/2018

      Hello folks! As some things are being fixed, we'll keep you updated. Per hour the Forum Rules don't have a dedicated "Tab", so here is the place that we have our Rules back. New Users Lounge > [READ] - InsanelyMac Forum Rules - The InsanelyMac Staff Team. 
rd8111

SATA Controller Details in System Profiler / System Information

9 posts in this topic

Recommended Posts

I found how to have your system's SATA controller information displayed correctly within the Serial-ATA section of the System Profiler / System Information pages. As long as you can obtain the Device ID and Vendor ID of what the system has, then it should be fairly simple.

 

Procedure:

1) Use a program like lspci or System Info to list the devices.

 

2) Find all SATA storage devices, making sure each unique combination is recorded.

 

3) Proceed to copy AppleAHCIPort.kext to your favorite working directory from /System/Library/Extensions, as well as copying the original version to a location separate from this working directory. You may need to put the original back into /System/Library/Extensions if there is a problem later.

 

4) Once in the Finder, open the kext with Show Package Contents and navigate to the Contents directory, expanding it to open the internal Info.plist.

 

5) Once editing Info.plist with your favorite xml editor, navigate to the IOKitPersonalities section and add the necessary details for each SATA controller. Start by copying an existing entry that closely resembles the details for the added controller. I used one that already has the IOPCIPrimaryMatch sub-key. After that, proceed to modify the main key for the controller you are adding. For example, my system has both a Marvell 88SE9172 and AMD SB950. I made the sub-keys immediately below IOKitPersonalities my own invention, following the pattern of the already existing ones. For example, I entered:

Marvell88SE9172AHCI

AMDSB9x0AHCI

 

6) The Chipset Name sub-key is modified to something meaningful. The vendor name sub-key is pre-pended in the Memory section, so it may as well be absent in this value string. For example, mine are:

88SE9172 SATA AHCI Controller

SB950 SATA AHCI Controller

 

7) Modify the IOPCIPrimaryMatch to match the Device ID and Vendor ID within your system. For example, mine are:

0x91721b4b

0x43911002

 

8) Finally, update the the Vendor Name to match the SATA Controller vendor within your system. For example, mine are:

Marvell

AMD

 

9) Save this working copy Info.plist to your working directory.

 

10) Copy this Info.plist into the AppleAHCIPort.kext | Contents directory within /System/Library/Extensions, replacing the Info.plist already there.

 

11) Answer the prompt for authenticating this replacement.

 

12) Use your favorite method to update the /System/Library/Extensions caches and permissions to be sure all is well. I use Kext Wizard, since I get tired of typing all of the commands within Terminal.

 

13) Reboot.

 

14) Inspect and confirm the new SATA controller details are now showing in the System Profiler / System Information | Hardware | Serial-ATA section.

 

Note that no binary files are affected by this addition to the AppleAHCIPort.kext | Contents | Info.plist.

Here is what the raw xml looks like inside Info.plist. The IOKitPersonalities and MCP79AHCI keys are shown for reference to assist understanding that the new controller entries have been placed alphabetically under the IOKitPersonalities key.

 

The entries I made look like:

AMD SB 950 SATA Controller Entry:

<key>IOKitPersonalities</key>
<dict>
<key>AMDSB9x0AHCI</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleAHCIPort</string>
<key>Chipset Name</key>
<string>SB950 SATA AHCI Controller</string>
<key>IOClass</key>
<string>AppleAHCI</string>
<key>IOPCIPrimaryMatch</key>
<string>0x43911002</string>
<key>IOProbeScore</key>
<integer>2000</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>Vendor Name</key>
<string>AMD</string>
</dict>
. . .
. . .

 

Marvell 88SE9172 SATA Controller Entry:

<key>Marvell88SE9172AHCI</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleAHCIPort</string>
<key>Chipset Name</key>
<string>88SE9172 SATA AHCI Controller</string>
<key>IOClass</key>
<string>AppleAHCI</string>
<key>IOPCIPrimaryMatch</key>
<string>0x91721b4b</string>
<key>IOProbeScore</key>
<integer>2000</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>Vendor Name</key>
<string>Marvell</string>
</dict>
<key>MCP79AHCI</key>
<dict>
. . .
. . .

 

I did this for both the retail Snow Leopard and Lion installations on my FX-8350 system.

Share this post


Link to post
Share on other sites

I think, but i might be wrong, that the benefits possibly exceed cosmetical changes: some apps could well be dependent of correct device reporting to work properly. As a proof of concept, can someone try to do the above workaround, including also the DVD-RW SATA device ID, and then try to open Apple's DVD player (Launchpad>Other>DVDPlayer.app)? I don't have a DVD-RW device in my AMD machine now, so i cannot test it myself.

 

Best regards.

Share this post


Link to post
Share on other sites

I think, but i might be wrong, that the benefits possibly exceed cosmetical changes: some apps could well be dependent of correct device reporting to work properly. As a proof of concept, can someone try to do the above workaround, including also the DVD-RW SATA device ID, and then try to open Apple's DVD player (Launchpad>Other>DVDPlayer.app)? I don't have a DVD-RW device in my AMD machine now, so i cannot test it myself.

 

Best regards.

 

I do not have a DVD device in my AMD system either. I am sharing my MacBook Pro DVD on my home network, but never have seen the Remote Disc device appear in the AMD Finder (Lion or SL). I have been moving files between the two Mac's Public Folders both before and after injecting the SATA controllers though.

Share this post


Link to post
Share on other sites

Tried, still empty, so reverted back the original kext. But I never had any functionality problem with it so don't really care if it's empty :)

Share this post


Link to post
Share on other sites

The problem I am encountering is TRIM option is not shown at all under SSD due to Sata controller empty.

 

How do I find the IOPCIPrimaryMatch value for G41M-combo (ICH7) when Sata controller section is empty in System Information?

Share this post


Link to post
Share on other sites

I managed to figure out the device id from lspci, and tried this. Unfortunately I still couldn't get the Sata controller recognized and displayed, and as a result it still doesn't show trim option under Sata for the SSD.

Share this post


Link to post
Share on other sites

I don't understand the problem.

Could be though that is because my SATA has always been reported correctly by System Information.

Might be though, because I use the AppleATIATA.kext in my /S/L/E folder. Got it from a OSX 10.5 installation, but I have also seen it floating around the 'net in different places.

 

May need to experiment with different ATA kexts like the one for nVidia chipsets (mine is ATI)

 

May not help though. My SATA drives have always been reported. My PATA drives didn't show up until I installed the AppleATIATA.kext. But it is something to consider.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×