Jump to content

AppleVIAATA over 4gb RAM bug solved (at least i believe so)! JMicron and AppleNForceATA at development


slashack
 Share

568 posts in this topic

Recommended Posts

Ok, so this panic is because you have more than 2/3/4 gb of ram and the driver does not support them. Do you have this panic with the modified AppleVIAATA?

 

The panic happens when ever the OS uses more than 3.22 GB of memory. I have a tiny python script that just leaks memory and I watch activity monitor. It consistently crashes at 3.22. So I set maxmem in com.apple.Boot.plist to 3325 (or something like that).

 

With your kext, the OS didn't even boot, so it never even got a chance to crash. That was the "Still waiting for root device" error.

 

In looking for the information you wanted, I came across a post where you said the Info.plist should be the same from the old one to yours. It wasn't for me, so I copied the plist over, installed the new kext, fixed permissions, removed the mkext cache and rebooted.

 

And it worked. I ran my script and used up about 5.7 GB out of 6 with no crash.

 

Thank you! This has been a thorn in my side for a year.

Link to comment
Share on other sites

Hello,

 

Thanks for your great job!

 

My board is a P6T deluxe with i7 920, 6gb RAM.

Because my DVD is IDE I need the AppleVIAATA.kext working in my custom made Boot132 iso.

I went here after reading a little about the bug with 32 bits code, I downloaded your modded AppleVIAATA.kext and added it to my boot132 iso, but it won't work, any ideas? could it be something related with Info.plist?

 

I'm still stuck in the install part, for now I will use the maxmem trick.

thanks

iComputer

Link to comment
Share on other sites

Ok, sorry!

My System run for 1-2 hours very fine.

After this time the PC freezes with this Screenshot and i have to hardreset it.

post-234087-1246371752_thumb.jpg

 

 

Boot with -v debug=0x100.

What happens when u try modified kext from darwin-ata?

Link to comment
Share on other sites

Hi slashack,

 

Me again...this time with a new problem :D

 

Well I got a new board that drive me nuts...its an ASUS P6T6 WS Revolution.

It has as "extra" 2 SAS and 2 eSATA powered by 2 Marvell chips both RAID capable.

The problem is I cant get any of them to work on OS X.

Tried to use appleviaata.kext with dev id's added..still no go.

Also tried some(almost all) HighPoint drivers(that use marvell chips)

Most cases:

Jun 28 23:03:11 localhost kernel[0]: Adapter (11ab:6440) at PCI 7:0:0
Jun 28 23:03:11 localhost kernel[0]: Not supported controller. VenderID=11ab,DeviceID=6440
Jun 28 23:03:11 localhost kernel[0]: Adapter (11ab:6121) at PCI 8:0:0
Jun 28 23:03:11 localhost kernel[0]: Not supported controller. VenderID=11ab,DeviceID=6121

or panics..

When I tried to remove the id's check from binary on those with unsupported mesg panics.

Best result I got was "unable to map pci adresses"

 

So I'm kind of stuck :)

Any idea/help?

 

Here is the lspci from linux:

 

07:00.0 RAID bus controller [0104]: Marvell Technology Group Ltd. Device [11ab:6440] (rev 02)
Subsystem: ASUSTeK Computer Inc. Device [1043:82e4]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR+ <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 15
Region 2: I/O ports at bc00 [size=128]
Region 4: Memory at fbbff000 (64-bit, non-prefetchable) [size=4K]
Expansion ROM at fbb80000 [disabled] [size=256K]
Capabilities: [48] Power Management version 2
	Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA PME(D0+,D1+,D2-,D3hot+,D3cold-)
	Status: D0 PME-Enable- DSel=0 DScale=1 PME-
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
	Address: 0000000000000000  Data: 0000
Capabilities: [e0] Express (v1) Legacy Endpoint, MSI 00
	DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
		ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
	DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
		RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
		MaxPayload 128 bytes, MaxReadReq 512 bytes
	DevSta:	CorrErr+ UncorrErr+ FatalErr- UnsuppReq+ AuxPwr- TransPend-
	LnkCap:	Port #0, Speed 2.5GT/s, Width x4, ASPM L0s, Latency L0 <256ns, L1 unlimited
		ClockPM- Suprise- LLActRep- BwNot-
	LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
		ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
	LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
Capabilities: [100] Advanced Error Reporting <?>

08:00.0 IDE interface [0101]: Marvell Technology Group Ltd. 88SE6121 SATA II Controller [11ab:6121] (rev b2)
(prog-if 8f [Master SecP SecO PriP PriO])
Subsystem: ASUSTeK Computer Inc. Device [1043:822f]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 19
Region 0: I/O ports at cc00 [size=8]
Region 1: I/O ports at c880 [size=4]
Region 2: I/O ports at c800 [size=8]
Region 3: I/O ports at c480 [size=4]
Region 4: I/O ports at c400 [size=16]
Region 5: Memory at fbcffc00 (32-bit, non-prefetchable) [size=1K]
Capabilities: [48] Power Management version 2
	Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA PME(D0+,D1+,D2-,D3hot+,D3cold-)
	Status: D0 PME-Enable- DSel=0 DScale=1 PME-
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-
	Address: 00000000  Data: 0000
Capabilities: [e0] Express (v1) Legacy Endpoint, MSI 00
	DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
		ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
	DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
		RlxdOrd- ExtTag- PhantFunc- AuxPwr+ NoSnoop-
		MaxPayload 128 bytes, MaxReadReq 512 bytes
	DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
	LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Latency L0 <256ns, L1 unlimited
		ClockPM- Suprise- LLActRep- BwNot-
	LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
		ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
	LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
Capabilities: [100] Advanced Error Reporting <?>
Kernel driver in use: pata_marvell

 

Thanks!

Link to comment
Share on other sites

The 6121 is reported to work with ahci driver in linux, though it has troubles with IDE ports being disabled or mapped incorrectly and not doing NCQ right or something similar, thats what I've read at least. If you have an option to switch modes in BIOS it may work with Apple's AHCI driver.

About the SAS I dont have a clue, do SAS controllers support IDE emulation? If they dont I doubt they will work with IDE-based drivers like AppleVIAATA...

Link to comment
Share on other sites

For 6121 i have only 2 options in BIOS: RAID or Legacy, tried both no luck.

I think the problem with viaata is the ISA Bridge Matching, not sure but looking on lspci with 6121 set as legacy:

08:00.0 IDE interface [0101]: Marvell Technology Group Ltd. 88SE6121 SATA II Controller [11ab:6121] (rev b2)

Maybe I should try to change it from 0x06010000&0xffff0000 to 0x01010000&0xffff0000 and give it a try...

I think AppleAHCIPort refuse to work for the same reason.

 

Hmn I set it on RAID and linux still say Pata_Marvell on it, guess no ahci for this one :)

 

08:00.0 RAID bus controller [0104]: Marvell Technology Group Ltd. 88SE6121 SATA II Controller [11ab:6121]
(rev b2) (prog-if 8f)
Subsystem: ASUSTeK Computer Inc. Device [1043:8212]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 19
Region 0: I/O ports at cc00 [size=8]
Region 1: I/O ports at c880 [size=4]
Region 2: I/O ports at c800 [size=8]
Region 3: I/O ports at c480 [size=4]
Region 4: I/O ports at c400 [size=16]
Region 5: Memory at fbcffc00 (32-bit, non-prefetchable) [size=1K]
Capabilities: <access denied>
Kernel driver in use: pata_marvell

 

About 6440 no other option in BIOS then Enable/Disable, but if I enable Boot ROM(damn long boot time :( ) it works as normal SATA II controller, in matter of fact I boot from it my Windows hdd and also I have on second port my ntfs storage, so for sure it works on windows.

 

Some hope for the SAS controller can be RocketRAID 2640X4 PCI-E SAS Controller driver. powered by Marvell 88SE6445 PCI Express controller chip, not so far(I hope) then my Marvell 88SE63xx/64xx SAS Controller(that is how is reported on Everest), looking on it with IDA eye maybe something can be done ;)

Still looking on my board chip pic it say 88SE6320..what a mess....take a look:

p6tws_marvell_6230.jpg

Link to comment
Share on other sites

I got eSATA working ;)

Marvell.jpg

weird that it works only on eSATA port 1 not on 0, does the same on windows...I suspect that the port is borked.

 

Also I got SAS displayed in system profiller under Parallel SCSI(SCSI Parallel Domain 0 and Initiator Identifier) but no hdd on diskutil even I created a new RAID 0 in BIOS :angel:

Seems something more have to be done, no clue what.

Link to comment
Share on other sites

You could also try driving the 6121 in RAID mode with AppleAHCI, not sure if it will work, with something like this as a legacy kext:

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleGetInfoString</key>
<string>AppleAHCIPort for Marvell 88SE6121</string>
<key>CFBundleIdentifier</key>
<string>com.tgwbd.driver.AppleAHCIPortMarvell88SE6121</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>AppleAHCIPortMarvell88SE6121</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>IOKitPersonalities</key>
<dict>
	<key>AppleAHCIPort Marvell 88SE6121</key>
	<dict>
		<key>CFBundleIdentifier</key>
		<string>com.apple.driver.AppleAHCIPort</string>
		<key>Chipset Name</key>
		<string>88SE6121 RAID</string>
		<key>IOClass</key>
		<string>AppleAHCI</string>
		<key>IOPCIClassMatch</key>
		<string>0x01040000&ffff0000</string>
		<key>IOPCIPrimaryMatch</key>
		<string>0x612111ab</string>
		<key>IOProbeScore</key>
		<integer>10000</integer>
		<key>IOProviderClass</key>
		<string>IOPCIDevice</string>
		<key>Vendor Name</key>
		<string>Marvell</string>
	</dict>
</dict>
<key>OSBundleLibraries</key>
<dict>
	<key>com.apple.iokit.IOAHCIFamily</key>
	<string>1.0.0</string>
	<key>com.apple.iokit.IOPCIFamily</key>
	<string>1.0.0</string>
	<key>com.apple.kpi.bsd</key>
	<string>8.0.0</string>
	<key>com.apple.kpi.iokit</key>
	<string>8.0.0</string>
	<key>com.apple.kpi.libkern</key>
	<string>8.0.0</string>
	<key>com.apple.kpi.mach</key>
	<string>8.0.0</string>
</dict>
<key>OSBundleRequired</key>
<string>Local-Root</string>
</dict>
</plist>

 

You could try something similar for the 6440, I doubt it will work, but if you say it behaves as a standard SATA controller with the BIOS on maybe there is a small chance.

Link to comment
Share on other sites

You could also try driving the 6121 in RAID mode with AppleAHCI, not sure if it will work, with something like this as a legacy kext:

.........

You could try something similar for the 6440, I doubt it will work, but if you say it behaves as a standard SATA controller with the BIOS on maybe there is a small chance.

Thanks for making me try again on AHCI, this time worked!

88SE6121_RAID_AHCI_OK.jpg

You wont believe what was the bug(why didnt worked when i tried with ahci first time, or worked with viaata random and only second port) the mainboard backplate is too fat and dosen't allow the esata jack to fit well, so i have to cut 2-3 mm from the esata jack plastic cover and now works just fine LOL

Still I don't get why there is 3 entry for eSATA I have only 2 :)

Also on IOREG:

eSATA_IOREG.jpg

Still no go for the SAS, if I try to use ahci on it panics and with binpatched highpoint kext still cant see/mount any hdd...

 

Thanks.

Link to comment
Share on other sites

OK. I'm a little perplexed. My registry dump says:

 

	
| |   |   |   |   "IOPCIClassMatch" = "0x01060100&0xffffff00"
| |   |   |   |   "Vendor Name" = "JMicron"
| |   |   |   |   "Chipset Name" = "JMB363 eSATA AHCI"
| |   |   |   |   "IOPCIPrimaryMatch" = "0x2360197b&0xfff0ffff"
| |   |   |   |   "IOClass" = "AppleAHCI"
| |   |   |   |   "AHCI-Built-In" = Yes
| |   |   |   |   "IOPolledInterface" = "AppleAHCIPolledAdapter is not seri$

 

I assumed v0.6 of JMicronATA v0.6 with JMB360 would work because my PrimaryMatch from my dump matched the info.plist included my device ID. However it didn't work. The other regular v.0.6 didn't work either. Currently I'm running a version of jmicron from elsewhere but I keep getting kernel panics displayed in the attachment.

 

I'm at a loss as to why I can't get it to work. If someone could help fill in the blanks I would appreciate it.

 

Dump:

mydump.txt

 

Debug Screenshot:

post-16858-1247530927_thumb.jpg

 

LSPCI:

lspci.txt

 

I have a GA-EP35-DS4 with 8GB of RAM. Ram passed an overnight memtest with no errors.

Link to comment
Share on other sites

OK. I'm a little perplexed. My registry dump says:

 

	
| |   |   |   |   "IOPCIClassMatch" = "0x01060100&0xffffff00"
| |   |   |   |   "Vendor Name" = "JMicron"
| |   |   |   |   "Chipset Name" = "JMB363 eSATA AHCI"
| |   |   |   |   "IOPCIPrimaryMatch" = "0x2360197b&0xfff0ffff"
| |   |   |   |   "IOClass" = "AppleAHCI"
| |   |   |   |   "AHCI-Built-In" = Yes
| |   |   |   |   "IOPolledInterface" = "AppleAHCIPolledAdapter is not seri$

 

I assumed v0.6 of JMicronATA v0.6 with JMB360 would work because my PrimaryMatch from my dump matched the info.plist included my device ID. However it didn't work. The other regular v.0.6 didn't work either. Currently I'm running a version of jmicron from elsewhere but I keep getting kernel panics displayed in the attachment.

 

I'm at a loss as to why I can't get it to work. If someone could help fill in the blanks I would appreciate it.

 

Dump:

mydump.txt

 

Debug Screenshot:

post-16858-1247530927_thumb.jpg

 

LSPCI:

lspci.txt

 

I have a GA-EP35-DS4 with 8GB of RAM. Ram passed an overnight memtest with no errors.

 

 

Check other ATA related kexts version (see my previous posts).

 

What do you mean with "It didn't worked"?

Link to comment
Share on other sites

Check other ATA related kexts version (see my previous posts).

 

What do you mean with "It didn't worked"?

 

So I tried the JB360 version:

http://darwin-ata.googlecode.com/files/JMi...ext(JMB360).zip

 

And also the regular version:

http://darwin-ata.googlecode.com/files/JMicronATA.kext.zip

 

Neither worked.

 

I'm only able to get my IDE drives working with a jmicron.kext I picked up from LS8's kext pack:

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

 

However I get kernel panics with heavy use of my IDE drives. I have 4 other SATA drives and 2 SATA DVD burners that work fine.

 

I'm going to try and install the kexts in my EFI partition and see if that works. One of the other posters said that worked for them.

Link to comment
Share on other sites

So I tried the JB360 version:

http://darwin-ata.googlecode.com/files/JMi...ext(JMB360).zip

 

And also the regular version:

http://darwin-ata.googlecode.com/files/JMicronATA.kext.zip

 

Neither worked.

 

I'm only able to get my IDE drives working with a jmicron.kext I picked up from LS8's kext pack:

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

 

However I get kernel panics with heavy use of my IDE drives. I have 4 other SATA drives and 2 SATA DVD burners that work fine.

 

I'm going to try and install the kexts in my EFI partition and see if that works. One of the other posters said that worked for them.

 

It seems you have the JMicron SATA in AHCI mode, see this thread for a posible solution.

 

Still I don't get why there is 3 entry for eSATA I have only 2 :)

Also on IOREG:

eSATA_IOREG.jpg

Still no go for the SAS, if I try to use ahci on it panics and with binpatched highpoint kext still cant see/mount any hdd...

 

Thanks.

 

The third port could be an IDE port handled by the Marvell? I think it merges all the ports (SATA or IDE) together when in AHCI mode (and probably the IDE wont work at all in AHCI mode then...).

About the SAS I guess AHCI doesnt mix with SAS at all. I dont know if you could use any available driver for that Marvell, for Linux I've read they needed to make a brand new driver just for them (see mv_sas).

Link to comment
Share on other sites

It seems you have the JMicron SATA in AHCI mode, see this thread for a possible solution.

The third port could be an IDE port handled by the Marvell? I think it merges all the ports (SATA or IDE) together when in AHCI mode (and probably the IDE wont work at all in AHCI mode then...).

 

I tried all three of your legacy kexts and I had a question. I know they work with the vanilla jmicron and AppleAHCIPort kexts, would they show up as loaded with kextstat? I'm not sure they're being loaded. The attachments are with only the LegacyJMicronATASATAIDEmode.kext installed.

 

Am I missing something?

 

kextstat.txt.

 

another screenshot.

post-16858-1247565511_thumb.jpg

Link to comment
Share on other sites

I tried all three of your legacy kexts and I had a question. I know they work with the vanilla jmicron and AppleAHCIPort kexts, would they show up as loaded with kextstat? I'm not sure they're being loaded. The attachments are with only the LegacyJMicronATASATAIDEmode.kext installed.

 

Am I missing something?

 

No, legacy kexts dont show up in kextstat, only the parent kext does. Only way to find out if they load is comparing the IORegistry entries manually, looking for some difference.

Anyway I think you should be using the LegacyJMicronAHCI kext plus the non-legacy JMicronATA v0.6 patched for AHCI-coexistance from that thread if you have 8 Gb of RAM as your sig states.

Also look for other Jmicron ATA kexts hidden in the usual places (/Extra, IOATAFamily plugins...) as already suggested by somebody else.

Link to comment
Share on other sites

I have the same problem, desktop freeze, and i decide to remove this kext. Now this problem is solved and I reinstall it.

 

Which kext did you remove ? With which other kext did you replace it ?

 

Guys.. i'm aa little bit confused here. ;)

 

I have a Gigabyte DS3L with 4gb ram and IDE hd, default OSX install. Constant kernels panics!!

...

 

1. Which kext should i replace / install ?

2. Which options do I enable in the Bios ? AHCI / port 0-1 native mode ?

 

...

Link to comment
Share on other sites

I am using a Gigabyte P35-DS3L. It appers to load the driver.. but no drives show up?

 

This is what's in the logs:

Jul 28 15:44:44 mac-pro kernel[0]: JMicronATA: JMB368 (CMD 0xb000, CTR 0xb100, IRQ 19, BM 0xb400)

Jul 28 15:44:44 mac-pro kernel[0]: JMicronATA: JMB368 (CMD 0xb200, CTR 0xb300, IRQ 19, BM 0xb408)

Jul 28 15:45:56 localhost kernel[0]: Extension "com.jmicron.JMicronATA" has no explicit kernel dependency; using version 6.0.

Jul 28 15:45:56 localhost kernel[0]: JMicronATA: JMB368 (CMD 0xb000, CTR 0xb100, IRQ 19, BM 0xb400)JMicronATA: JMB368 (CMD 0xb200, CTR 0xb300, IRQ 19, BM 0xb408)

 

 

 

Thanks!

Link to comment
Share on other sites

Just installed Jmicron 0.6 by overwritting the default one from kalyway with Kext Helper, thanks no more panic now !!

But my system seems really slower now.. Opening windows and accessing disk seem just a litttle bit jerky. Normal ??

 

For info here's what I have :

 

Gigabyte ep35-ds3l rev 1.0

4 gb of ram

OSX 10.5.4 installed on an IDE drive

AHCI enbaled

Port 0-1 enabled

 

 

Any way to speed this up ?

Link to comment
Share on other sites

Hi there. I have installed the JMicron v0.6 but my system appears to start up very slow now. Before install it was taking about 5 seconds on the Spinning Wheel APPLE, now it is taking about 20+ seconds.

 

I am still getting crashes in Photoshop while trying to Crop a big panorama.

 

I Installed JMicronv0.6 with Kext Helper.

 

My system is

GA-EP45-DS3R

Core2 Quad Q6600

2GB Ram (1x 1GB, 2x 512mb)

GeForce 7800

 

I'm pretty new to all of this and am not sure how to do that much.

Thank you.

Link to comment
Share on other sites

 Share

×
×
  • Create New...