Jump to content
InsanelyMac Forum
Andy Vandijck

AppleNForceATA 1.0.4 optimized for SL 32/64bit

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...

Share this post


Link to post
Share on other sites
Advertisement
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).

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Not working on the following system:

NForce 680i, SATA HDD, SATA DVDRW, 10.6.2

 

Stuck at "Waiting for boot device"

Share this post


Link to post
Share on other sites

does this support Nforce 410/6100 amd sempron?

 

 

 

and does it work in leopard?

 

 

 

i cant get snow leopard to work

 

 

 

if you know a snow distro that would work for this computer please tell me!

Share this post


Link to post
Share on other sites
and does it work in leopard?

 

I was curious about the same, so I just tried it out. It's a no go on Leopard. It won't even load. I have yet to try to get SL up and running, but will hopefully have a chance to this weekend.

Share this post


Link to post
Share on other sites

Hello Andy, Your kext does not load in full 64bit mode on my Inpsiron 531, when i tired to load it, it failed to see my sata said something about ActivateAppleNForceDMAEngine.

Share this post


Link to post
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.

Share this post


Link to post
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.••••••••••••

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites
Working nforce MCP79 chipset ?

;)

 

 

 

 

Not working on the following system:

NForce MCP79 , SATA HDD, SATA DVDRW, 10.6.4

 

Stuck at "Waiting for boot device"

Share this post


Link to post
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........

Share this post


Link to post
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).

Share this post


Link to post
Share on other sites

If you are using the legacy kernel from this thread, then 64-bit will not work. That kernel is 32-bit only. It will also only run 32-bit applications and not 64-bit applications.

Share this post


Link to post
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.

Use this kernel and boot with arch=x86_64 Picture of this kernel booted into 64bit.

Share this post


Link to post
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?

Share this post


Link to post
Share on other sites
Use this kernel and boot with arch=x86_64 Picture of this kernel booted into 64bit.

 

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)

Share this post


Link to post
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.

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.



×