Jump to content

AppleNForceATA 1.0.4 optimized for SL 32/64bit


Andy Vandijck
 Share

30 posts in this topic

Recommended Posts

Same as AppleATIATA I made...

It has no deprecation nor warnings and has correct dependencies for loading out in 32 and 64 bit mode.

If the other drivers didn't work for you in 64 bit mode, try this one...

 

Download including sources:

http://rapidshare.com/files/35627618...ceATA_Snow.zip

Built kext is under build/Release.

 

Enjoy...

Link to comment
Share on other sites

I would like to know this as well.

It should yes... it uses routines from AppleIntelPIIXATA (latest version, new style ATA driver coding).

I however have no nForce chipset mobo around so no way to test it...

I would say test it, it should work fine (I made this one for a friend).

Link to comment
Share on other sites

Many thanks Andy... tried several times in x64 does not work for me, got stuck in looking for boot device... but working in x32 and dvd drive still no working... :P

 

 

my spec: dell xps 730 with 2 x nivida 9800GX2, dual boot win7 and snow 1.6.2

Link to comment
Share on other sites

I just tried this out these out in 32bit mode, it won't load in 64bit mode. The OSX profiler in utilities lists the sata DVD drive correctly but when I put a dvd in a drive it never detects the disc. Sata hard drives seem to be working fine.

Link to comment
Share on other sites

Works just fine on my EVGA i680 based mobo under 10.6.2 in 32bit mode, now using this in place of the older 32bit only slash or anv driver i was using perviously. (All built in SATA Ports worked fine, performance was great)

 

I could not boot to 64bit mode (i have all 64bit kexts now) but i don't know that this driver is the cause of that issue or related (will plumb that later).

 

Have not tested my pata optical drive/burning (but it shows in my device lists), will test further and update this post later.

 

•••••••••••••Make sure you fix permissions/rebuilt your extensions mkext when testing before you post here about the driver not working for you, esp if your getting the root device error.••••••••••••

Link to comment
Share on other sites

  • 4 months later...

I have an EVGA 680i board (MCP55) and decided to test out this kext.

 

Upon booting, I noticed that it had an unresolved symbol for “__ZN14AppleNForceATA17activateDMAEngineEv”.

 

I took a look at the included source code and saw that AppleNForceATA::activateDMAEngine() did not exist.

 

This was a simple fix.

 

activateDMAEngine() comes from IOPCIATA, so I looked at Apple's source and simply copied their function:

 

void
AppleNForceATA::activateDMAEngine(void)
{
// clear error bit prior to starting.
*_bmStatusReg = (UInt8) mBMStatusError | mBMStatusInt | (_currentCommand->getUnit() == 0 ? mBMStatusDrv0 : mBMStatusDrv1);
OSSynchronizeIO();

// set the address pointer.
*_bmPRDAddresReg = OSSwapHostToLittleInt32((UInt32) _prdTablePhysical);
OSSynchronizeIO();

// activate the DMA engine.
UInt8 theCommand = (_currentCommand->getFlags() & mATAFlagIORead) ? mBMCmdStartInput : mBMCmdStartOutput;

*_bmCommandReg = theCommand;
OSSynchronizeIO();
}

 

I compiled it and it loaded with no problem and works just fine.

 

Darwin Ishimura.local 10.4.0 Darwin Kernel Version 10.4.0: Thu Jul 29 00:26:49 EDT 2010; dopefish:xnu-1504.7.4/BUILD/obj/RELEASE_X86_64 x86_64

 

I'm also using my own kernel based on the legacy patch, but without all the SSE3 emulation and rtclock stuff since I'm on a Core 2 Duo and don't need it.

 

Edit:

This likely doesn't fix SATA DVD drives. All I did was take AnV's driver above and make it load under 64-bit. Any chipset support or features would have been provided by him (or in the original MeDevil drivers).

AppleNForceATA_Snow.zip

  • Like 1
Link to comment
Share on other sites

Boots into 64bit kernal mode for me but DVD drives are not working. Nice work.

 

 

 

 

I compiled it and it loaded with no problem and works just fine.

 

 

I'm also using my own kernel based on the legacy patch, but without all the SSE3 emulation and rtclock stuff since I'm on a Core 2 Duo and don't need it.

Link to comment
Share on other sites

Not working on the following system:

NForce MCP79 , SATA HDD, SATA DVDRW, 10.6.4

 

Stuck at "Waiting for boot device"

 

This is because AFAIK the nForce MCP79 chipset is fully AHCI-compliant..........and so does not work with the AppleNForceATA.kext...........see post #1 in my Snow Leopard thread and post #2 in my Leopard Series nForce threads........

Link to comment
Share on other sites

Thanks a lot! It works! But how can I enable 64bit? I used "arch=x86_64" or "-force64", but still got "64-bit Kernel and Extensions: No". I am using legacy_kernel v4 and an AMD system.

I have an EVGA 680i board (MCP55) and decided to test out this kext.

 

Upon booting, I noticed that it had an unresolved symbol for “__ZN14AppleNForceATA17activateDMAEngineEv”.

 

I took a look at the included source code and saw that AppleNForceATA::activateDMAEngine() did not exist.

 

This was a simple fix.

 

activateDMAEngine() comes from IOPCIATA, so I looked at Apple's source and simply copied their function:

 

void
AppleNForceATA::activateDMAEngine(void)
{
// clear error bit prior to starting.
*_bmStatusReg = (UInt8) mBMStatusError | mBMStatusInt | (_currentCommand->getUnit() == 0 ? mBMStatusDrv0 : mBMStatusDrv1);
OSSynchronizeIO();

// set the address pointer.
*_bmPRDAddresReg = OSSwapHostToLittleInt32((UInt32) _prdTablePhysical);
OSSynchronizeIO();

// activate the DMA engine.
UInt8 theCommand = (_currentCommand->getFlags() & mATAFlagIORead) ? mBMCmdStartInput : mBMCmdStartOutput;

*_bmCommandReg = theCommand;
OSSynchronizeIO();
}

 

I compiled it and it loaded with no problem and works just fine.

 

Darwin Ishimura.local 10.4.0 Darwin Kernel Version 10.4.0: Thu Jul 29 00:26:49 EDT 2010; dopefish:xnu-1504.7.4/BUILD/obj/RELEASE_X86_64 x86_64

 

I'm also using my own kernel based on the legacy patch, but without all the SSE3 emulation and rtclock stuff since I'm on a Core 2 Duo and don't need it.

 

Edit:

This likely doesn't fix SATA DVD drives. All I did was take AnV's driver above and make it load under 64-bit. Any chipset support or features would have been provided by him (or in the original MeDevil drivers).

Link to comment
Share on other sites

This is because AFAIK the nForce MCP79 chipset is fully AHCI-compliant..........and so does not work with the AppleNForceATA.kext...........see post #1 in my Snow Leopard thread and post #2 in my Leopard Series nForce threads........

 

 

 

kext which works with MCP79? please

 

ime that has not detecting sata dvd?

Link to comment
Share on other sites

I'm trying to use this kernel but I can't get it to run 32bit apps, is it neccesary to install the system kext? I'm not using it now and it seems fine (32b)

In 64bit mode you can't run any 32bit apps, this is due to some incompatibility with amd's cpu instructions. Also System.kext from 10.6.4 is fine with darwin 10.3.

Link to comment
Share on other sites

 Share

×
×
  • Create New...