Jump to content

Is it possible to get all four ICH9 SATA ports working?


Skitals
 Share

81 posts in this topic

Recommended Posts

I know this has been discussed before, but all discussion goes nowhere. It seems some people are able to use all four ports. I'm personally using a Gigabyte GA-P35-DS3L which has four yellow ICH9 SATA ports.With AHCI enabled, Ports 0 and 1 work fine, but nothing on ports 2 and 3. With AHCI, the two working ports are labeled "Generic AHCI" in system profiler, so therefore using AppheAHCIPort.kext for a driver.

 

I was able to catch the dev id's for all my controllers during the boot sequence, and here's what I found:

 

0x29218086 is labeled "IDE Cntrlr"

0x29268086 is labeled "Native IDE Cntrlr"

 

I did a good search for these, and found that they are officially labeled:

 

2921: 82801IB (ICH9) 2 port SATA IDE Controller

2926: 82801I (ICH9 Family) 2 port SATA IDE Controller

 

So while I thought all four SATA ports were on a single ICH9 controller, it looks like there are two (different) 2 port controllers!With this knowledge, first thing I checked was ApplePIIXATA.kext. Sure enough, under "ICH9 2 Port Serial ATA", these are the two ID's that are listed?! So why does it only work w/ AHCI? And why only two of the four ports?I decided since the Generic AHCI driver is working for at least two of the ports, I would add both IDs to that kext. Neither one of my two controllers are under GenericAHCI. Instead, there is only one JMicron AHCI controller ID listed (which I don't have). I tried adding my two SATA controller IDs, but it didn't do anything.

 

I imagine to get the second set of ports working, I'll need to ditch AHCI. The problem is it looks like it should work, given the sata controller are listed where they should be... but it doesn't. Does anyone have any insight?

 

Thanks.

 

Update: As per advice in another thread, I created a new "IHC9AHCI" key in AppleAHCIPort.kext. I used just my dev id's. The two working SATA ports are now labeled "Intel ICH9 AHCI", so it's definitely loading correctly for one of the two controller, but not the other :(

Link to comment
Share on other sites

Okay, I read one fix for the Asus P5K-SE (which has ich9 and identical ids for the sata controllers) is to use the AppleVIAATA driver by adding the ids and disabling AHCI. I got it to the point when I boot with -v, I see it loading the AppleVIAATA driver, but then I get the "still waiting for root device" error :D When I enable AHCI, it boots fine, but still using the Generic AHCI driver.

Link to comment
Share on other sites

Which OSX Distribution do you use? It depends on what you use and how you installed. Dont use a ICH7 or ICH8 patch with your installer. The XxX 10.4.10 Version works fine if you dont add additional ATA Patches. JaS 10.4.8 works. Others? Dont know. I tested one of those with ICH8 patches and the Board didnt recognize the IDE ports anymore. So check your installation, it should be the cause for our problems.

I have 2 GA-P35-DS3P, all 8 S-ATAs and the two IDEs work very fine.

Link to comment
Share on other sites

rhalls, I'm using Leopard (BrazilMac patch). I have read of success using podarok's drivers in Leopard, but I experience the "still waiting for root device" error when I try using AppleVIAATA for sata.

 

In tiger, which drivers are you using for sata for the DS3P? Does the DS3P have the same two controllers (2921 and 2926)?

Link to comment
Share on other sites

Yes you can get all the ports to work with the AppleVIAATA.kext. I found it on this forum but can't remember who posted it or where. I am even booting Leopard off of one of the ports that didn't work before, also none of my ports are using AHCI (cause of Asus) and are all working with IDE.

Link to comment
Share on other sites

Yes you can get all the ports to work with the AppleVIAATA.kext. I found it on this forum but can't remember who posted it or where. I am even booting Leopard off of one of the ports that didn't work before, also none of my ports are using AHCI (cause of Asus) and are all working with IDE.

 

Unless there is something more to it I'm missing, that's what I tried. I get "still waiting for root device" when I disable AHCI when trying to use AppleVIAATA.kext.

Link to comment
Share on other sites

Could you refresh my memory how to do the pci dump? Thanks!I think I figured it out.IOreg dump attached (GA-P35-DS3L)

 

U have to get dump with a command ioreg -c IOPCIDevice > pci_dump.txt

 

 

I just get pci id from Your dump for your IDE1 channel and make patch to my AppleVIAATA.kext

 

Try it and post bugs please

Link to comment
Share on other sites

Hmm, it's still not booting with AHCI disabled. And with AHCI, the Generic AHCI driver loads.

 

Could there be another sata related driver causing the problem? I'm considering out cleaning out my Extensions folder with a clean one, and just modifying the kexts I need.

 

What would you recommend I try?

Link to comment
Share on other sites

Okay, to verify it isn't other modified kexts interfering, I went to a bit of an extreme. I installed the efi patch, and deleted my entire extensions directory and boot cache. I installed all the original kexts from a retail Leopard DVD using Pacifist (install Extensions folder). After that, here are the only modifications I made:

 

remove:

AppleIntelCPUPowerManagement.kext

 

replace:

AppleSMBIOS.kext

 

add:

dsmos.kext

Natit.kext

 

And of course I replaced my kernel with the orignal unmodified "vanilla" kernel. After rebooting the make sure everything worked, I installed the 10.5.1 update from system update, and rebooted. Everything is still working perfect.

 

I then installed your AppleVIAATA.kext driver, rebooted, turned off AHCI, and it didn't make a difference. "Still waiting for root device." With AHCI enabled, it uses the generic AHCI driver.

 

So at least it seems I've ruled out other modified drivers interfering.

Link to comment
Share on other sites

I tried the new version, still "waiting for root device" when booting. Though I did catch the message on screen when the driver was loading. The boot screen stated:

 

AppleVIAATADriver: VIA ICH9 29238086 (CMD 0xdd00, CTR 0xde00, IRQ 19, BM 0xe100)

AppleVIAATADriver: VIA ICH9 29238086 (CMD 0xdf00, CTR 0xe00, IRQ 19, BM 0xe108)

AppleVIAATADriver: VIA ICH9 29238086 (CMD 0xd600, CTR 0xd700, IRQ 19, BM 0xda00)

 

There were no error messages or anything. It makes sense that there are three entries since I have 3 SATA drives connected. What confused me is why it was identified as "VIA ICH9 29238086" which is not one of my dev ids. I noticed why when I looked at the Info.plist in your driver, and all the entries are named these. I deleted all the ICH9 entries except for my two controllers (2921 and 2926) and named them accordingly so I can see they are BOTH being recognized and attempted to load. Sure enough with these changes, AppleVIAATADriver is listed 3 times at boot, twice for 2926, and one for 2921. This is exactly what I expected, because I have two drive conntected to the first controller, and one to the second. Yet I still get the dreaded waiting for root device error.

 

Since it seems the driver is properly identifying my hardware, the problem must be somewhere else. Does the driver have other dependencies which may be missing by default from Leopard? Perhaps I should look into broader "Still waiting for root device" errors and their causes.

 

I really appreciate your help and effort!

 

Also, I have no way of doing the PCI dump w/o AHCI since I can't boot the system without it enabled. It wont even boot into single user mode w/o giving me "Still waiting for root device."

Link to comment
Share on other sites

Okay, I tried using the AppleVIAATA driver under Tiger... and it works! I still can't get it working in Leopard. Either it is not compatible in leopard, or one or more other drivers need to be modified. I tried using the IOATAFamily.kext from the working Tiger install, but it didn't work. I also tried the hacked version from ToH RC2. Both give me "Still waiting for root device" in Leopard.

 

What other dependencies does AppleVIAATA have? Any suggestions what to try next?

Link to comment
Share on other sites

This keeps getting more interesting. Since I have all three of my drives working in Tiger now, I was able to do an ioreg pci dump (see attached).

 

As you can see, the first drive (Maxtor 6L200M0) isn't even using AppleVIAATA, only the second two. That first drive is my boot drive, and connected to port 1. The other two are connected to the second controller on ports 2 and 3. The first drive is instead using AppleGenericPCATA which is located inside IOATAFamily. AppleGenericPCATA isn't even included in Leopard's IOATAFamily. I tried using the Tiger GenericPCATA in Leopard, but no dice.

 

I just had two thoughts. First, I believe I have Sata ports 0+1 set to Native IDE mode in the bios, which would explain why it's using the ATA driver instead of SATA. I thought I had already tried with this setting both on and off, but I'm going to try again with the new changes I have made. The second thing I haven't tried is booting with my system drive hooked up to the second controller (port 3 or 4) since those drivers may very well be working correctly. I still wouldn't be able to boot since it's my system drive on the other controller.

pci_dump_tiger.txt

Link to comment
Share on other sites

Keep up the good work Skitals. I'm following this thread closely. I have a Foxconn G33M02 board with ICH9 device ID's 2920 and 2926, each with 2 SATA ports and I'm learning a lot from this thread. I, too, have tried a number of modifications without success. I only have the option of IDE or RAID in my BIOS, though, and both would give me the "waiting for root" message when trying to install. ToH RC2 finally installed correctly for me, probably because it offers some sort of ICH9 support, but it did only give me 2 of 4 ports, like you (recognized 2920 but not 2926, if I remember correctly).

Link to comment
Share on other sites

Keep up the good work Skitals. I'm following this thread closely. I have a Foxconn G33M02 board with ICH9 device ID's 2920 and 2926, each with 2 SATA ports and I'm learning a lot from this thread. I, too, have tried a number of modifications without success. I only have the option of IDE or RAID in my BIOS, though, and both would give me the "waiting for root" message when trying to install. ToH RC2 finally installed correctly for me, probably because it offers some sort of ICH9 support, but it did only give me 2 of 4 ports, like you (recognized 2920 but not 2926, if I remember correctly).

 

Quite frankly, I'm very surprised how quickly others have accepted defeat when it comes to two out of four sata ports not working :D It was never an issue for me before because I only had one SATA drive. Now that I have three, it wasn't that hard to get everything working in Tiger... Leopard is a whole different animal (pun intended). I feel like I am SOOO close. There are so many people with only 2 out of 4 sata ports this could benefit!

Link to comment
Share on other sites

 Share

×
×
  • Create New...