Jump to content

No ICH7 SATA Controller displayed in 'System Profiler'


MacKonsti
 Share

16 posts in this topic

Recommended Posts

I have been battling to solve this on my own while searching here and other forums, but no luck. I would really appreciate your help and ideas.

 

I have a working 10.6.4 vanilla setup (since 10.6.0) on my Shuttle XPC SG31G2 V2 with almost no kexts in /E/E with minor DSDT tweaking. Specs report Intel SG31 & ICH7 chipsets, while lspci -nn reports:

00:1f.2 IDE interface [0101]: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller [8086:27c0]

The last thing I would like to solve is to make System Profiler properly display the section on SATA Devices, as my Intel SATA controller 0x27c0 is not recognised at all (by name/model).

 

89634995667087725733.png

 

The system boots, don't get me wrong; it's just that 'System Profiler' does not report the controller at all, despite being there in IORegistryExplorer and having attached my 2 HDDs (on first channel) and DVD-R (on second channel). Please note it's not any variant of the ICH7 IDE controller; no ICH7R or ICH7M. It's good old plain ICH7, with only 3 SATA connectors on the motherboard.

 

43897830427063276350.png

 

I have so far done the following to perhaps solve this, but no luck:

 

1. I introduced in Device (SATA) in DSDT.aml the device-id of the controller, with the hope it does some good:

	 Device (SATA)
 {
	  Name (_ADR, 0x001F0002)
	  Method (_DSM, 4, NotSerialized)
	  {
		   Return (MCID (Arg2, 0x27C08086))  // Intel ICH7 Family SATA IDE Controller [8086:27c0]
	  }
	  ...etc...

Please note that I am past using DTGP and moved on to MasterChief's MCDP and MCID methods.

 

2. I used an edited legacy kext in /E/E named SerialATAPortInjector.kext with correct IOPCIPrimaryMatch values, hoping it would help:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleIdentifier</key>
<string>com.shuttle.plist.sATAPortInjector</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Serial ATA Chipset Injector</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.1.2</string>
<key>IOKitPersonalities</key>
<dict>
	<key>ICH7 ATA/100</key>
	<dict>
		<key>CFBundleIdentifier</key>
		<string>com.apple.driver.AppleIntelPIIXATA</string>
		<key>Controller Name</key>
		<string>ICH7 ATA/100</string>
		<key>IOClass</key>
		<string>AppleIntelPIIXATARoot</string>
		<key>IOPCIPrimaryMatch</key>
		<string>0x27df8086</string>
		<key>IOProbeScore</key>
		<integer>2000</integer>
		<key>IOProviderClass</key>
		<string>IOPCIDevice</string>
		<key>Supported Transfer Modes</key>
		<string>0x3f061d</string>
	</dict>
	<key>ICH7 Serial ATA</key>
	<dict>
		<key>CFBundleIdentifier</key>
		<string>com.apple.driver.AppleIntelPIIXATA</string>
		<key>Controller Name</key>
		<string>ICH7 SATA</string>
		<key>IOClass</key>
		<string>AppleIntelPIIXATARoot</string>
		<key>IOPCIPrimaryMatch</key>
		<string>0x27c08086</string>
		<key>IOProbeScore</key>
		<integer>2000</integer>
		<key>IOProviderClass</key>
		<string>IOPCIDevice</string>
		<key>Serial ATA</key>
		<true/>
		<key>Supported Transfer Modes</key>
		<string>0x3f061d</string>
	</dict>
</dict>
<key>OSBundleRequired</key>
<string>Root</string>
</dict>
</plist>

3. I introduced "name", "model" and other parameters in Device (SATA) in DSDT.aml:

	 Device (SATA)
 {
	  Name (_ADR, 0x001F0002)  
	  Method (_DSM, 4, NotSerialized)
	  {
		   Store (Package (0x0A)
		   {
				"AAPL,slot-name",
					 Buffer (0x09) {"Built In"},
				"built-in",
					 Buffer (0x01) {Zero},
				"device_type",
					 Buffer (0x10) {"AHCI Controller"},
				"model",
					 Buffer (0x1A) {"ICH7 SATA/AHCI Controller"},
				"name",
					 Buffer (0x1A) {"ICH7 SATA/AHCI Controller"},
				"device-id",
					 Buffer (0x04) {0xC0, 0x27, 0x00, 0x00}  // ICH7 SATA Controller [8086:27c0]
				}, Local0)
				MCDP (Arg2, RefOf (Local0))
				Return (Local0)
		   }
	  }
	  ...etc...

4. I tried to edit the contents of System Profiler's reporters (as per the Leopard 10.5.x patch for displaying proper CPU) but could not find anything relevant.

 

5. Heck, I even went so far and introduced a supposedly AHCI fix in DSDT.aml as per this ProjectOSX thread!

	 Method (\PINI, 0, NotSerialized)  // Added method needed for the SATA AHCI patch
 {
	  Store (0x40, \_SB.PCI0.SATA.AHCI)  // Force SATA in AHCI mode
 }

 Method (\_WAK, 1, NotSerialized)
 {
	  PINI()  // Force SATA in AHCI mode
	  ...etc...
 }

 Method (\_SB.PCI0._INI, 0, NotSerialized)
 {
	  PINI()  // Force SATA in AHCI mode 
	  ...etc...
 }

 Device (SATA)
 {
	  Name (_ADR, 0x001F0002)
	  OperationRegion (SAHC, PCI_Config, 0x90, 0x08)
	  Field (SAHC, ByteAcc, NoLock, Preserve)
	  {
		   AHCI, 8
	  }
	  ...etc...

 

Can anyone really give a hint as to what I could do? I am sure there are people like me with the same problem...

 

Thanks in advance. I will be updating this post often with more attempts...

Link to comment
Share on other sites

  • 3 weeks later...
  • 5 months later...
  • 2 months later...
  • 5 weeks later...
  • 1 month later...

I have the exact same issue on my Gigabyte GA-G31M-ES2L. I have been wanting to enable TRIM on my Kingston SSD and it won't work. I have a feeling (although I am not completely sure) that this lack of system profiler information is leading to the TRIM problem. I would appreciate any help. Thanks!

Link to comment
Share on other sites

  • 1 month later...
AHCIPortInjector.kext?

No, dear Gringo Vermelho, not even that. I tried the injector. Remember that our machines do not support AHCI. Their SATA works via IOATAFamily.kext that I confirm via kextstat.

 

I also tried editing the actual Info.plist of the kext itself. However, this is crazy; the AppleIntelPIIXATA.kext (plugin of IOATAFamily.kext) included the controller 27c0 that was already there. Even tried to inject new values, such as Chipset Name and Vendor Name but nothing appears in System Profiler, unfortunately.

 

		<key>ICH7 Serial ATA</key>
	<dict>
		<key>CFBundleIdentifier</key>
		<string>com.apple.driver.AppleIntelPIIXATA</string>
		<key>Chipset Name</key>
		<string>ICH7 SATA</string>
		<key>Controller Name</key>
		<string>ICH7 SATA</string>
		<key>IOClass</key>
		<string>AppleIntelPIIXATARoot</string>
		<key>IOPCIPrimaryMatch</key>
		<string>0x27c08086</string>
		<key>IOProbeScore</key>
		<integer>2000</integer>
		<key>IOProviderClass</key>
		<string>IOPCIDevice</string>
		<key>Serial ATA</key>
		<true/>
		<key>Supported Transfer Modes</key>
		<string>0x3f061d</string>
		<key>Vendor Name</key>
		<string>Intel</string>
	</dict>

I think the binary itself must be modified. I cannot do this as my knowledge is too limited. Where can we seek help? Who is such a guru that can provide a modified binary, you think?

 

Cheers.

Link to comment
Share on other sites

Oops, I meant to say ATAPortInjector.kext. But you probably tried that too.

Didn't bother trying it as I also tried editing the actual Info.plist of the kext itself, but it already included the controller 27c0. Still, nothing appears in System Profiler. Do you know how we can check what System Profiler needs to read, so we can inject it? I tried IORegistryExplorer but to no avail...

Link to comment
Share on other sites

  • 11 months later...

Hello,

 

I know this topic is too old but...

 

I have Asus P5L 1394 motherboard

 

Chipset :

Northbridge Intel MCH 954P

Southbridge Intel ICH7

 

Storage:

Intel ICH7 Southbridge supports:

- 1 x Ultra DMA 100/66 hard disk drivers

- 4 x Serial ATA 3.0 Gb/s hard disk drivers

JMicron JMB 360 Serial ATA controller supports:

- 1 x External SATA 3.0 Gb/s port (SATA On-the Go)

 

More informations about SATA controler:

Device Description Intel 82801GB ICH7 - SATA Controller [A-1]

Bus Type PCI

Bus / Device / Function 0 / 31 / 2

Device ID
8086-27C0

Subsystem ID 1043-2601

Device Class 0101 (IDE Controller)

Revision 01

 

and I have the same problem (No ICH7 SATA Controller displayed in 'System Profiler')

 

But when I boot from "Hazard 10.6.6i" distro, after choosing language I go to tools then system profiler and I can see Serial ATA controler displayed as it should be.

 

I don't know if it's a kext loaded at boot that resolve the problem or a moded kernel that make it possible.

Link to comment
Share on other sites

  • 3 weeks later...

Distribution "Hazard 10.6.6i" using a patched legacy_kernel identifying ICH7 SATA controller as a standard SATA controller. Additionally uses a patched version of the driver kext IOATAFamily.kext (this kext does not solve the problem of System Profiler), an injector AHCI and ATA.

 

I am attaching the legacy_kernel to try it yourself in a Snow Leopard 10.6.0. In version 10.6.8 gives a Kernel Panic.

 

I think you can solve the problem of ICH7 patching the kernel, but it would be necessary to review the source code legacy_kernel patched. Perhaps there is a ppf patch that can be applied in a vanilla kernel

 

 

Additional Note: You can change the appearance of the "Serial-ATA" in the "System Profiler" by modifying the file "/System/Library/SystemProfiler/SPSerialATAReporter.spreporter/Contents/Resources/SPProperties.plist".

 

You should change:

 

<key> _name </ key>
<dict>
<key> _isColumn </ key>
<string> YES </ string>
<key> _isOutlineColumn </ key>
<string> YES </ string>
<key> _order </ key>
<string> 0 </ string>
</ dict>

 

by ...

 

<key> _name </ key>
<dict>
<key> _isColumn </ key>
<string> NO </ string>
<key> _isOutlineColumn </ key>
<string> YES </ string>
<key> _order </ key>
<string> 0 </ string>
</ dict>

 

This does not solve the problem of detection ICH7, but offers another view of the SATA controller. :-)

legacy_kernel_hazard.zip

Link to comment
Share on other sites

  • 1 year later...
  • 2 weeks later...
 Share

×
×
  • Create New...