Jump to content

Darwin nForce4 ATA/SATA controller


Guest bikedude880
 Share

1,033 posts in this topic

Recommended Posts

is there a pata only version?

 

i can see my sata drive but i have the io kit blocking error {censored}

 

i really need a pata only. i got it to see only pata but now it reports it as only 128gb while its really 250gb

Link to comment
Share on other sites

I think MeDevil is already working on a driver. Correct me if I'm wrong. I really would like to know how far development has grown.. :)

 

Yes, i'm working on the driver and trying to figure out what is causing the "device block bus error".

Currently i've made those assumptions:

 

- Only one drive for channel (actual code expects two drives on the same channel, typical for ide)

- Some irq are not related to our channel.

- No hotplug support (also related to irq's).

- Sata doesn't use timings, pata does.

- Error conditions should reset the phy on the sata (but not on the pata)

 

Tomorrow I'll start working completely on the sata driver (since i have no other things to work on) and, maybe, we can expect a gift under the tree this christmas :)

 

(sorry for my bad english)

 

Best regards, Domenico.

Link to comment
Share on other sites

since I got leopard 10.5.1; i've numerous filesystem problems with the driver on my AMD. most of the time I've B-tree errors and fsck can't repair it.

 

I'm using the driver in amd dvd from zephyroth. If anyone can point me another driver version to try…hopefully I've an image of the partition, very handy to try out or debug purposes.

Link to comment
Share on other sites

if i have darwin/osx compiliant libata there should be no problem to figure completely working driver using nforces freeBsd drivers... in that source code is other solved. timings, detection etc...

 

Actually, the osx ata part is called "IOATAFamily", and is really, really, really different from the bsd (or linux) ata library.

Both of them share the same logic, but it's implemented (in all the three os) in very different form.

You can't do a simply "copy & paste" of the code. You should adapt it to the osx IOATA logic.

This is THE real problem.

 

And, just as a note, stop bothering with "timings, detection, ecc" they:

a) don't belong to sata part (timings)

:wacko: don't need to be solved, since already works (detection)

c) don't depend from the chipset (ecc) [aka: the problem isn't the chipset, but the IOATA framework!]

 

PS: Don't take this as a personal attack. It's just my point of view.

 

Regards, Domenico.

Link to comment
Share on other sites

Sounds good, MeDevil. Does this mean we'll get working 430 support? :(

 

We'll get support for almost all the nForce chipsets.

The currently supported chipset by the version in the first topic are: nForce 1, 2 & 2 Pro, 3 & 3 Pro, MCP04, CK8-04.

Then, when i'll discover where the error is, the kext will be compatible with: nForce MCP51, MCP55, MCP61, MCP65 (partially).

 

MCP65 has some AHCI sata ports and some legacy ports:

LEGACY: 0x045c10de - 0x045d10de -0x045e10de - 0x045f10de

AHCI: 0x044c10de - 0x044d10de - 0x044e10de - 0x044f10de

 

Following, a (partial) list of chipset vendor/device id that works in AHCI mode and should be supported by the ahci kext (they will probabily not work with the current & next version of the nforce ata kext, except for the pata part):

MCP65: 0x044c10de - 0x044d10de - 0x044e10de - 0x044f10de

MCP67: 0x055010de - 0x055110de - 0x055210de - 0x055310de

MCP68: 0x055410de - 0x058410de

 

Regards, Domenico.

Link to comment
Share on other sites

i am seeing that this is being used in ToH RC2 Leopard release for AMD.

 

The only problem is that it can't write to any drives, and in Tiger install from Tubgirl, the partitions are greyed out, no options available at all.

 

I have read in this thread that some people did get it working on their SATA drives.

I have tried formatting with the diskpart method, NTFS, FAT32, and some Linux formats as well, none are willing to respond in the install. Only the HDD is detected, and cannot be partitioned either due to a freeze.

 

Some stats:

 

Dell Dimension E521 (Hackintosh impossible PC)

AMD Athlon X2 3800+ 2.00 GHz

SATA HDD 250GB (i don't know what model HDD it is, it appears to me only as "ST325082 0AS SCSI Disk Device")

1GM DDR2 RAM

AMD Radeon x1300

nForce 430/410 Serial ATA Controller

 

~NUCLEaR

Link to comment
Share on other sites

I'm looking forward to MeDevil's new driver. I've been using ghakazian's PIO-only driver, and while it does what it should (usually), the performance isn't anything to write home about. Luckily, I don't do many huge file copies across volumes. And that's when the PIO mode is most noticeable. :unsure:

 

I'm also a MCP51 user, FWIW. And this is probably about the only driver I'm not willing to beta test. Too much can go wrong. :( But, I'll gladly give the driver a shot once it's released and people have tried it out! :) And hopefully, it will get rid of the diskarb "one-minute hang" during boot. :D

 

Please keep us in the loop MeDevil. There's not much worse than waiting in anticipation with no idea of the status! Thanks for your hard work! :D

Link to comment
Share on other sites

I'm looking forward to MeDevil's new driver. I've been using ghakazian's PIO-only driver, and while it does what it should (usually), the performance isn't anything to write home about. Luckily, I don't do many huge file copies across volumes. And that's when the PIO mode is most noticeable. :(

 

I'm also a MCP51 user, FWIW. And this is probably about the only driver I'm not willing to beta test. Too much can go wrong. :( But, I'll gladly give the driver a shot once it's released and people have tried it out! :D And hopefully, it will get rid of the diskarb "one-minute hang" during boot. :D

 

Please keep us in the loop MeDevil. There's not much worse than waiting in anticipation with no idea of the status! Thanks for your hard work! :D

 

Hi, i'm writing this just to let you know that i'm still working on the sata driver.

Currently i've almost rewrited the driver (a new one), and i'm resolving some bugs before testing the driver.

In the next days, i'll post the status of the project.

 

This new driver (called NForceSATA) will support only sata on a few chipsets that are know not to work: MCP51, MCP55, MCP61 and MCP65 (this one partially, because some port are ahci compliant).

The old driver (AppleNForceATA), instead, will handle pata part for all the nforce chipset and the sata part for other chipsets (nforce 2 pro & 3 pro, MCP04, CK8-04).

All the other chipset should already work because they're ahci compliant.

 

Hope it's all clear... if you have any question, please post it here (and not via pm) and i'll respond asap.

 

Regards,

Domenico.

Link to comment
Share on other sites

Thanks for the update! :D

 

I wanted to throw in my 2 cents: I really like the idea of the ATA and SATA drivers being separate. A lot. It allows improvements to either one without a chance of impacting the other. (Nevermind that it's probably easier for you!)

 

I'd offer you my coding luck until you got the driver done, but that's more of a hindrance than a help the past few days! :P So, hopefully your own will tide you over!

Link to comment
Share on other sites

I just want to say, as a Long time GNU Linux user, who jumped in head first into hopefully installing Leopard on my nforce 430 chipset (geforce 6150le) I really wish I came across the thread a lot sooner. Although I'm amazed at the level of active community and encouragement in helping everyone out. It's very difficult to know the right information for who ever you're helping it seems, although enough searching has finally lead me to trust the amazing people on this board.

 

Thanks again MeDevil, looking forward to your driver! I've got a lot of time this winter break :(. So take your time make sure you get it right.

Link to comment
Share on other sites

Hi, i'm writing this just to let you know that i'm still working on the sata driver.

Currently i've almost rewrited the driver (a new one), and i'm resolving some bugs before testing the driver.

In the next days, i'll post the status of the project.

 

This new driver (called NForceSATA) will support only sata on a few chipsets that are know not to work: MCP51, MCP55, MCP61 and MCP65 (this one partially, because some port are ahci compliant).

The old driver (AppleNForceATA), instead, will handle pata part for all the nforce chipset and the sata part for other chipsets (nforce 2 pro & 3 pro, MCP04, CK8-04).

All the other chipset should already work because they're ahci compliant.

 

Hope it's all clear... if you have any question, please post it here (and not via pm) and i'll respond asap.

 

Regards,

Domenico.

 

This is really great news, MeDevil. I'm very happy to see that you're still interested in this project! Thank you!

Once again, please use my system as your testbed, lol.

Link to comment
Share on other sites

Hi, i'm writing this just to let you know that i'm still working on the sata driver.

Currently i've almost rewrited the driver (a new one), and i'm resolving some bugs before testing the driver.

In the next days, i'll post the status of the project.

 

This new driver (called NForceSATA) will support only sata on a few chipsets that are know not to work: MCP51, MCP55, MCP61 and MCP65 (this one partially, because some port are ahci compliant).

The old driver (AppleNForceATA), instead, will handle pata part for all the nforce chipset and the sata part for other chipsets (nforce 2 pro & 3 pro, MCP04, CK8-04).

All the other chipset should already work because they're ahci compliant.

 

Hope it's all clear... if you have any question, please post it here (and not via pm) and i'll respond asap.

 

Regards,

Domenico.

Hi MeDevil, It actually makes a lot of sense to make separate drivers. That's the way Linux has them... am I right? Linux in one hand has pata_amd & amd74xx for PATA and on the other sata_nv for SATA.

My MOBOs MCP55 NForce5 SATA has been working fine with your nforce4 driver for reading only. I tried to make SATA work using appleviaata and the id 0x037f10de and it works very... very slow, it took almost 2Hrs to copy a backup of 25GB from my PATA HD to the SATA ... but I expected it, at least I can write to the SATA HD without having to reboot into my OpenSuSE's rescue disk!

To finish: I got to tell you that I've been trying to use Darwin since it first went out for the intel platform. I do respect Intel in that they've got a bunch of hardware working on this platform out there... but lets be honest THERE IS NOTHING LIKE AMD! it really rocks, and is stupid for some people... a few... perhaps a handful to keep Darwin halfway functioning, taking away files, hidding or not making documentation, and dropping the coin everytime they want to shout "Hey, that's in DMCwhatever violation!"; but they do not compare to the amount of people who really likes to have fun doing some megabyting.

Before I forget... does anyone knows about a VIA SATA controller with ID's 3249 1106? I know this should go somewhere else, but I would really appreciate some guidance since I've tried almost everything and nothing seems to make it work in Darwin. It shows up in Linux just fine, both SATA & PATA with the same via_sata.ko ...Weird... but in OSX I only get it to show this:

 

| | +-o IDE0@4 <class IOPCIDevice, registered, matched, active, busy 0, $

| | | +-o AppleOnboardPCATARoot <class AppleOnboardPCATARoot, !registere$

| | | +-o CHN0@0 <class AppleOnboardPCATAChannel, registered, matched,$

| | | | +-o AppleNVIDIAnForceATA <class AppleNVIDIAnForceATA, register$

| | | | +-o ATADeviceNub@0 <class ATADeviceNub, registered, matched,$

| | | | | +-o IOATABlockStorageDriver <class IOATABlockStorageDriver$

| | | | | +-o IOATABlockStorageDevice <class IOATABlockStorageDevi$

| | | | | +-o IOBlockStorageDriver <class IOBlockStorageDriver, $

| | | | | +-o IC35L060AVV207-0 Media <class IOMedia, registere$

| | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, regi$

| | | | | +-o IOFDiskPartitionScheme <class IOFDiskPartition$

| | | | | +-o Untitled 1@1 <class IOMedia, registered, mat$

| | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, $

| | | | +-o ATADeviceNub@1 <class ATADeviceNub, registered, matched,$

| | | | +-o IOATAPIProtocolTransport <class IOATAPIProtocolTranspo$

| | | | +-o IOSCSIPeripheralDeviceNub <class IOSCSIPeripheralDev$

| | | | +-o IOSCSIPeripheralDeviceType05 <class IOSCSIPeripher$

| | | | +-o IODVDServices <class IODVDServices, registered, $

| | | | +-o SCSITaskUserClientIniter <class SCSITaskUserCl$

| | | | +-o IODVDBlockStorageDriver <class IODVDBlockStora$

| | | | | +-o SONY DVD RW DW-Q120A Media <class IODVDMedia$

| | | | | +-o IODVDMediaBSDClient <class IODVDMediaBSDCl$

| | | | | +-o IOApplePartitionScheme <class IOAppleParti$

| | | | | +-o Apple@1 <class IOMedia, registered, matc$

| | | | | | +-o IOMediaBSDClient <class IOMediaBSDClie$

| | | | | +-o osx86dvd@3 <class IOMedia, registered, m$

| | | | | +-o IOMediaBSDClient <class IOMediaBSDClie$

| | | | +-o SCSITaskUserClient <class SCSITaskUserClient, $

| | | +-o CHN1@1 <class AppleOnboardPCATAChannel, registered, matched,$

| | +-o ATA0@5 <class IOPCIDevice, registered, matched, active, busy 0, $

| | | +-o AppleVIAATARoot <class AppleVIAATARoot, !registered, !matched,$

| | | +-o PRI0@0 <class AppleVIAATAChannel, registered, matched, activ$

| | | | +-o AppleVIAATADriver <class AppleVIAATADriver, registered, ma$

| | | | +-o ATADeviceNub@0 <class ATADeviceNub, registered, matched,$

| | | | +-o IOATABlockStorageDriver <class IOATABlockStorageDriver$

| | | | +-o IOATABlockStorageDevice <class IOATABlockStorageDevi$

| | | | +-o IOBlockStorageDriver <class IOBlockStorageDriver, $

| | | | +-o HDS728080PLA380 Media <class IOMedia, registered$

| | | | +-o IOMediaBSDClient <class IOMediaBSDClient, regi$

| | | | +-o IOFDiskPartitionScheme <class IOFDiskPartition$

| | | | +-o Untitled 1@1 <class IOMedia, registered, mat$

| | | | +-o IOMediaBSDClient <class IOMediaBSDClient, $

| | | +-o SEC0@1 <class AppleVIAATAChannel, registered, matched, activ$

| | +-o ATA1@5,1 <class IOPCIDevice, registered, matched, active, busy 0$

| | | +-o AppleVIAATARoot <class AppleVIAATARoot, !registered, !matched,$

| | | +-o PRI0@0 <class AppleVIAATAChannel, registered, matched, activ$

| | | +-o SEC0@1 <class AppleVIAATAChannel, registered, matched, activ$

| | +-o P0P1@6 <class IOPCIDevice, registered, matched, active, busy 0, $

| | | +-o IOPCI2PCIBridge <class IOPCI2PCIBridge, registered, matched, a$

| | | +-o ethernet@1 <class IOPCIDevice, registered, matched, active, $

| | | | +-o AirPort_Athr5424 <class AirPort_Athr5424, registered, matc$

| | | | +-o AtherosInterface <class AtherosInterface, registered, ma$

| | | | +-o IONetworkStack <class IONetworkStack, registered, matc$

| | | | +-o IONetworkStackUserClient <class IONetworkStackUserCl$

| | | +-o pci1106,3249@0 <class IOPCIDevice, registered, matched, acti$

| | | +-o AppleVIAATARoot <class AppleVIAATARoot, !registered, !matc$

| | | +-o CHN0@0 <class AppleVIAATAChannel, registered, matched, a$

| | | +-o CHN1@1 <class AppleVIAATAChannel, registered, matched, a$

| | | +-o AppleVIAATADriver <class AppleVIAATADriver, registered$

| | +-o HDAC@6,1 <class IOPCIDevice, registered, matched, active, busy 0$

| | | +-o AppleAzaliaController <class AppleAzaliaController, registered$

 

there is a cdrom plugged to the IDE 40pin port... but notin... it doesn't shows anything but the CHN@ if it is the SATA interface the one used... again... sorry about posting this here.

a final word for now: I can test ALMOST anything without breaking a sweat, I'm not a big fan of the programming side... but I can try to start by peeling it huh? hehehe... let me now if there is anything I can help you with.

Specs:

MOBO: MSI K9N Neo

HD: one PATA and one SATA

VGA: Flawless with NVinject 0.1.3 VRAMTotalSize 512MB

LAN: NForce4 driver ... working

WiFI: Atheros driver with ID 168c,13

Add-On: PCI SATA ID 3249 1106 (made by EQQUS) ... not working ;)

Link to comment
Share on other sites

 Share

×
×
  • Create New...