Jump to content

AppleNForceATA 1.0.4 optimized for SL 32/64bit


Andy Vandijck
 Share

30 posts in this topic

Recommended Posts

What about the

 

pps fixed "out of 32b" KP

 

in this thread

 

http://www.insanelymac.com/forum/index.php?showtopic=206494

 

sulphide didn't release his source of the patch.. so I could not patch myself, then add your "void AppleNForceATA::activateDMAEngine(void)" function

 

sulphide's does not support 64bit (because of the missing function), but it does not panic anymore on >3gb ram

Link to comment
Share on other sites

  • 9 months later...
Guest sincro77

So no 32b boundary fix -for over 4 gigs of ram with sata dvd working then?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

What about the

 

pps fixed "out of 32b" KP

 

in this thread

 

http://www.insanelymac.com/forum/index.php?showtopic=206494

 

sulphide didn't release his source of the patch.. so I could not patch myself, then add your "void AppleNForceATA::activateDMAEngine(void)" function

 

sulphide's does not support 64bit (because of the missing function), but it does not panic anymore on >3gb ram

Link to comment
Share on other sites

  • 2 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).

 

Thanks This is the only version I have found that works under Lion.. I was in the middle of trying to build it myself when i got the missing symbol message and found this post. Thanks for saving me the work and headscratching

Link to comment
Share on other sites

  • 2 weeks later...
Thanks This is the only version I have found that works under Lion.. I was in the middle of trying to build it myself when i got the missing symbol message and found this post. Thanks for saving me the work and headscratching

 

This works for me under Lion too. Glad I found it.

Link to comment
Share on other sites

  • 3 years later...
TEST ON OSX 10.7.5 Lion i386 kernel

 

AppleNForceATA_Test 1.0.3 by MeDevil

SATA DVD Works. But 32-bit Only. and No Source Release

 

103-DVD-02_zps6939b2e1.png

 

 

 

AppleNForceATA 1.0.4 SATA DVD No Works.

 

 

I use IORegistryExplorer Open View. There seems little difference.

 

AppleNForceATA_Test 1.0.3

 

IODVDBlockStorageDriver -> ASUS DRW-24D3ST Media -> IODVDMediaBSDClient

 

「DVD-ROM Name」Media Value:

 

Leaf   Boolean = True

Open   Boolean = False

 

103-dvd-01_zpse2c1f637.png

 

 

 

AppleNForceATA 1.0.4

 

IODVDBlockStorageDriver -> ASUS DRW-24D3ST Media -> IOGUIDPartitionScheme

 

「DVD-ROM Name」Media Value:

 

Leaf   Boolean = False

Open   Boolean = True

 

104-dvd_zps21867f78.png

 

 

 


this in Linux (Ubuntu) HW info

 




# dmesg | grep ATA


[    0.223632] ACPI: PCI Interrupt Link [LATA] (IRQs 20 21 22 23) *0, disabled.
[    1.445444] ata1: SATA max UDMA/133 cmd 0xd000 ctl 0xcc00 bmdma 0xc480 irq 21
[    1.445509] ata2: SATA max UDMA/133 cmd 0xc880 ctl 0xc800 bmdma 0xc488 irq 21
[    1.446225] ata3: SATA max UDMA/133 cmd 0xc400 ctl 0xc080 bmdma 0xb880 irq 20
[    1.446290] ata4: SATA max UDMA/133 cmd 0xc000 ctl 0xbc00 bmdma 0xb888 irq 20
[    1.447253] ata5: PATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0xffa0 irq 14
[    1.447318] ata6: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0xffa8 irq 15


[    1.927325] ata1.00: ATA-8: Hitachi HDS721050CLA660, JP2OA50E, max UDMA/133
[    1.943440] scsi 0:0:0:0: Direct-Access     ATA      Hitachi HDS72105 JP2O PQ: 0 ANSI: 5


[    2.739604] ata4.00: ATAPI: DRW-24D3ST, 1.01, max UDMA/133


[    1.918998] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    2.265446] ata2: SATA link down (SStatus 0 SControl 300)
[    1.777105] ata3: SATA link down (SStatus 0 SControl 300)
[    2.731510] ata4: SATA link up 1.5 Gbps (SStatus 113 SControl 300)




Link to comment
Share on other sites

 Share

×
×
  • Create New...