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

Upgraded today to 4GB ram and...

my rock solid retail 10.5.6 (munky's EFI method) started to Panic.

 

So I've installed the Jmicron kext and my Samsung DVD and Maxtor IDE drive started to

behave! Now Running Rember, encoding DVD and burning Cd's without a single glitch.

The only thing iI've done was to set the integrated controller back to IDE.

Activity monitor is showing now 3,69 GB of used memory.

 

 

Thanks a lot. Good work.

 

BTW:

You have the JMicron SATA ports in AHCI mode, thats probably why you are not booting with the 64-bit-fixed JMicron.kext, its wrongly attaching to the JMicron AHCI controller. Try this fixed JMicronATA I posted in this other thread. Its the same as slashack's but it works when running in AHCI mode.

Thread doesn't work.

Link to comment
Share on other sites

You have the JMicron SATA ports in AHCI mode, thats probably why you are not booting with the 64-bit-fixed JMicron.kext, its wrongly attaching to the JMicron AHCI controller. Try this fixed JMicronATA I posted in this other thread. Its the same as slashack's but it works when running in AHCI mode.

 

RIght on bro! Can you help me better understand why the kext you provided me worked, but the one that slashack provided did not?

 

What is the difference in the plist?

What is the difference in the driver binary?

 

What can I do to the kext that slashack provides to make it work?

 

 

Thanks for posting to help me.

Now, on to WIFI, LOL

Link to comment
Share on other sites

Its slashack's kext binary, I just changed a couples of lines in the plist, the rest is exactly the same as in the original one:

 

<key>JMicronATA PCI</key>

<dict>

<key>CFBundleIdentifier</key>

<string>com.jmicron.JMicronATA</string>

<key>Hardware Vendor</key>

<string>JMicron</string>

<key>IOClass</key>

<string>JMicronATAPCIRoot</string>

<key>IOPCIClassMatch</key>

<string>0x01010000&0xffff0000</string>

<key>IOPCIPrimaryMatch</key>

<string>0x2361197b 0x2363197b 0x2365197b 0x2366197b 0x2368197b</string>

<key>IOProbeScore</key>

<integer>10000</integer>

<key>IOProviderClass</key>

<string>IOPCIDevice</string>

 

I already explained whats the bug in some other thread but it didnt seem to pick up.

JMicron chipsets that have SATA ports can be run in different modes depending how you configure them in BIOS: IDE-mode, AHCI mode or RAID mode. But the controller behaves very different in any of these modes.

- If they are in IDE mode, the chipset works as 1 device, a standard IDE controller that aggregates the SATA & PATA ports into 2 standard IDE channels (using my mobo's JMB363 as an example but other chipset are the same):

 

03:00.0 IDE interface [0101]: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller [197b:2363] (rev 02).

 

- But if they are in AHCI mode the chipsets splits into 2 different devices, a standard IDE controller that aggregates only the PATA ports and a AHCI controller for the SATA ports:

 

03:00.0 SATA controller [0106]: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller [197b:2363] (rev 02)

03:00.1 IDE interface [0101]: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller [197b:2363] (rev 02)

 

- In RAID mode it works more or less the same as in AHCI mode but as a RAID controller:

 

03:00.0 RAID bus controller [0104]: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller [197b:2363] (rev 02)

03:00.1 IDE interface [0101]: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller [197b:2363] (rev 02)

 

As you can see, both IDE interface and SATA/RAID controllers have the same device id (197b:2363), even though they are very different types of controllers.

The problem is that JMicronATA.kext only supports IDE-compatibility mode, but its plist its written so the driver is loaded for any JMicron controller with device id 197b:2363, so if the JMicron its in AHCI/RAID mode it will find the SATA or RAID controllers and it will try to take control over them (because they match its list of device ids), but as it knows nothing about AHCI/RAID, it kernel panics or (at best) doesnt find the drives because its using IDE commands where it should be using AHCI commands.

The solution its just adding those 2 lines to the plist, what they do its just to avoid the JMicronATA.kext taking control of the JMicron SATA ports when they are in AHCI/RAID mode, so it will only be loaded for the PATA ports (always) and for the SATA ports (when they are in IDE-emulation mode).

The IOPCIClassMatch its just another match condition like the IOPCIPrimaryMatch but instead of matching device ids, it matches controller class id (0101: IDE controllers; 0106: AHCI controllers; 0104: RAID controllers)

By the way the AppleViaATA.kext also contains JMicron device ids and suffers from the same bug, I didnt bother to edit it because its better to be avoided and its not normally needed together (is there any motherboard with VIA & JMicron SATA ports?) but if present in a mobo with JMicron hardware will cause the same booting troubles.

 

Thread doesn't work.

 

Sorry, its this thread:

 

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

Link to comment
Share on other sites

Thanks for the reply. I did a diff on both plists prior to using your kext, and for some unknown reason, even though I added those two lines to slashacks kext, it still didnt work. I must have been in IDE mode at the time.

 

Anyways, question.

The first time I booted after using your fixed kext, the os did not show ALL my sata drives on the desktop, but I did another reboot, and then they appeared. Is this going to happen frequently?

Link to comment
Share on other sites

I dont know about that, I only have IDE drives plugged on the JMicron ports at the moment, and they are working fine.

If that happens again check on Disk Utility if the drive is being detected, drive icons could not appear on the desktop because of partitions not mounted for some reason, while the drive containing them is still detected fine.

Also note that in AHCI mode the JMicron SATA ports are handled by the AppleAHCIport.kext, NOT by the JMicronATA.kext. Maybe you have something else installed affecting that kext (SATA external drive icons fix?).

Link to comment
Share on other sites

Hello, new to this thread... when I built my hackintosh, I heard about this problem, and since I have an Abit IP35Pro motherboard that has the j/micron, and 8 GB of RAM, I just didn't get any IDE drives.

 

But all my SATA slots are full and I really need to add a new HD... if I got a IDE DVD burner it would free up a SATA slot... so if I just downloaded the jmicron kext in this thread, installed it with kexthelper, would I be able to use IDE safely?

Link to comment
Share on other sites

slashack, I just wanted to stop back and say thanks for your effort in the sata kext.

I have been playing with osx for a couple years and havent had success with it because of these lockups.

Its nice to know that the reason the whole time was because I was using > 4GB ram.

I now have a very stable system, with everything working. Part of the reason is from other people here, and part of the reason is because of you.

I dont know how you re-pay yourself for the effort other than reading everybodies thanks.

 

Cheers.

Link to comment
Share on other sites

Hello, new to this thread... when I built my hackintosh, I heard about this problem, and since I have an Abit IP35Pro motherboard that has the j/micron, and 8 GB of RAM, I just didn't get any IDE drives.

 

But all my SATA slots are full and I really need to add a new HD... if I got a IDE DVD burner it would free up a SATA slot... so if I just downloaded the jmicron kext in this thread, installed it with kexthelper, would I be able to use IDE safely?

 

That is the exact same motherboard I have and I had a few challenges with the JMicron controller in it, I finally got it working 100% and you may want to take a look at what I did and such. I am running my setup a little differently (Intel SATA controler is shut off when in OSX), but the scenario should be close to yours and this may help you get eSATA hot plug working on your system if you'd like to move one of those hard drives external.

 

http://www.insanelymac.com/forum/index.php...=149308&hl=

Link to comment
Share on other sites

That is the exact same motherboard I have and I had a few challenges with the JMicron controller in it, I finally got it working 100% and you may want to take a look at what I did and such. I am running my setup a little differently (Intel SATA controler is shut off when in OSX), but the scenario should be close to yours and this may help you get eSATA hot plug working on your system if you'd like to move one of those hard drives external.

 

http://www.insanelymac.com/forum/index.php...=149308&hl=

 

I wouldn't need to disable the SATAs would I? I need all 6! You mean if I followed your guide there I could use all 6 SATAs, plus the E-sata??

Link to comment
Share on other sites

Hi Everyone,

 

First of all, I'd like to thank all the comunity for taking time and helping us all have this awesome system working so flawlessly

 

But I still have this problem and I can't figure it out.

 

I have a 965p-ds3 (1.0) mobo from gigabyte

 

And used this fixed kext that works on AHCI.

I got 5Gb of ram running and rember still panics, the only way it don't is limiting to maxmem=3072

 

Can anyone help ?

I getting crazy!

Nightmares about those BSODs

 

(sorrie about my poor english, Im from Brazil)

 

 

EDIT: Forgot to say I'm using only SATA devices - two HDs - on the orange ones i got My backup drive and a sata DVDRW - and on the purple one there's the main HD, with all systems on it

Link to comment
Share on other sites

Hi Everyone,

 

First of all, I'd like to thank all the comunity for taking time and helping us all have this awesome system working so flawlessly

 

But I still have this problem and I can't figure it out.

 

I have a 965p-ds3 (1.0) mobo from gigabyte

 

And used this fixed kext that works on AHCI.

I got 5Gb of ram running and rember still panics, the only way it don't is limiting to maxmem=3072

 

Can anyone help ?

I getting crazy!

Nightmares about those BSODs

 

(sorrie about my poor english, Im from Brazil)

 

 

EDIT: Forgot to say I'm using only SATA devices - two HDs - on the orange ones i got My backup drive and a sata DVDRW - and on the purple one there's the main HD, with all systems on it

You might have some other kext that is not well behaved with 4 GB.

 

If you are using both intel and jmicron in ahci mode and you dont have IDE devices plugged in you dont need any jmicron or appleviaata or anything other kext because in ahci mode only appleahciport is used for all the sata ports and that one is considered 4 Gb safe; so try deleting all other jmicron, appleviaata, pcata or whatever ata kext you might have (keep backup copies just in case).

 

 

 

I have a Gigbayte EP35-DS3L board with 4GB RAM. The Pioneer IDE drive cause kernel panic.

Which kext I need to use to solve this problem ? only AppleVIAATA ?

That board surely has JMicron chipset, use JMicronATA, its more appropiate.

Link to comment
Share on other sites

Its slashack's kext binary, I just changed a couples of lines in the plist, the rest is exactly the same as in the original one:

 

<key>JMicronATA PCI</key>

<dict>

<key>CFBundleIdentifier</key>

<string>com.jmicron.JMicronATA</string>

<key>Hardware Vendor</key>

<string>JMicron</string>

<key>IOClass</key>

<string>JMicronATAPCIRoot</string>

<key>IOPCIClassMatch</key>

<string>0x01010000&0xffff0000</string>

<key>IOPCIPrimaryMatch</key>

<string>0x2361197b 0x2363197b 0x2365197b 0x2366197b 0x2368197b</string>

<key>IOProbeScore</key>

<integer>10000</integer>

<key>IOProviderClass</key>

<string>IOPCIDevice</string>

 

...

 

Thanks man!!! It works for me!!

I had recently crossflashed my mobo with the P5KR bios rom and now I have all my devices (3 Sata HDs and 2 ATAPI DVD drives) in AHCI working w/o kernel panics.

Once again, thanks!

Link to comment
Share on other sites

You might have some other kext that is not well behaved with 4 GB.

 

If you are using both intel and jmicron in ahci mode and you dont have IDE devices plugged in you dont need any jmicron or appleviaata or anything other kext because in ahci mode only appleahciport is used for all the sata ports and that one is considered 4 Gb safe; so try deleting all other jmicron, appleviaata, pcata or whatever ata kext you might have (keep backup copies just in case).

 

 

 

 

That board surely has JMicron chipset, use JMicronATA, its more appropiate.

 

It turns out that the purple ports were the problem.

I plugged everything in the orange ones and the problem ended....

 

But there is one more thing F12 doesnt work anymore to exect DVDs

 

Thanks!!!

Link to comment
Share on other sites

You the man.

 

I changed the appleViaata.kext and jKicronATA.kext using OSX86 tools. My computer has been stable for two days now.

 

I have been using U torrent constantly, I have been using VMware and installed windows 7 and windows server 2003 all working sweet. I have 4 gigs of ram. Its either because of this fix that its all stable or because I have stopped using Skype. But I think its the fix. Also I am running OSX of a IDE hard drive

 

Thanks man.

Link to comment
Share on other sites

  • 2 weeks later...

AHCI and Legacy/Native Mode doesnt affect PATA ports.

Check if you have some other kext being loaded instead of JMicronATA, sometimes AppleViaATA, it should work anyway but just in case...

Also check if you can see the ATA ports, maybe the drive is the problem.

Link to comment
Share on other sites

The drives work fine with the normal JMicron kext, but not the modded. In my extensions folder i have the following kexts with ATA in the name:

JMicronATA

AppleKuwaiATA

AppleKiwiATA

ApplePCCardATA

KeyLargoATA

ApplePCCard16ATA

ACard6280ATA

 

The most peculiar thing is that right now everything is working exepct i have to limit my ram. With the modded JMicron kext i can have 4gb but no ide drives, so its like it does nothing at all.

Link to comment
Share on other sites

Just want to say thank you so much. I bought myself 4GB of new RAM the other day and my Leopard has been complaining since then. After wasting the last 72 hrs of my life reinstalling leopard using so many different method and losing most of my data, I finally came across this thread. All I did was install your JMicron Kext and every seems fine now.

Link to comment
Share on other sites

 Share

×
×
  • Create New...