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

Hi,

 

First of all Thank You for your work!

 

I have j-micron on both desktop and my lappie, the problem comes from my lappie, on desktop works just fine...

So here is my problem, maybe you can fix it with new j-micron.kext:

 

First my lspci -nn:

THe-KiNG:~ theking$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub [8086:2a00] (rev 03)
00:01.0 PCI bridge [0604]: Intel Corporation Mobile PM965/GM965/GL960 PCI Express Root Port [8086:2a01] (rev 03)
00:1a.0 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 [8086:2834] (rev 03)
00:1a.1 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 [8086:2835] (rev 03)
00:1a.7 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 [8086:283a] (rev 03)
00:1b.0 Audio device [0403]: Intel Corporation 82801H (ICH8 Family) HD Audio Controller [8086:284b] (rev 03)
00:1c.0 PCI bridge [0604]: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 [8086:283f] (rev 03)
00:1c.2 PCI bridge [0604]: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 [8086:2843] (rev 03)
00:1c.3 PCI bridge [0604]: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4 [8086:2845] (rev 03)
00:1c.4 PCI bridge [0604]: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 [8086:2847] (rev 03)
00:1c.5 PCI bridge [0604]: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 [8086:2849] (rev 03)
00:1d.0 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 [8086:2830] (rev 03)
00:1d.1 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 [8086:2831] (rev 03)
00:1d.2 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 [8086:2832] (rev 03)
00:1d.7 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 [8086:2836] (rev 03)
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev f3)
00:1f.0 ISA bridge [0601]: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller [8086:2815] (rev 03)
00:1f.1 IDE interface [0101]: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller [8086:2850] (rev 03)
00:1f.2 SATA controller [0106]: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller [8086:2829] (rev 03)
01:00.0 VGA compatible controller [0300]: nVidia Corporation GeForce 9500M GS [10de:0405] (rev a1)
02:00.0 Ethernet controller [0200]: Marvell Technology Group Ltd. 88E8055 PCI-E Gigabit Ethernet Controller [11ab:4363] (rev 13)
06:00.0 IDE interface [0101]: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller [197b:2360] (rev 02)
07:00.0 Network controller [0280]: Atheros Communications Inc. AR5418 802.11abgn Wireless PCI Express Adapter [168c:0024] (rev 01)
08:01.0 FireWire (IEEE 1394) [0c00]: Ricoh Co Ltd R5C832 IEEE 1394 Controller [1180:0832] (rev 05)
08:01.1 SD Host controller [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter [1180:0822] (rev 22)
08:01.2 System peripheral [0880]: Ricoh Co Ltd R5C843 MMC Host Controller [1180:0843] (rev 12)
08:01.3 System peripheral [0880]: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter [1180:0592] (rev 12)
08:01.4 System peripheral [0880]: Ricoh Co Ltd xD-Picture Card Controller [1180:0852] (rev 12)

 

As you can see my eSATA port is 06:00.0 IDE interface [0101]: JMicron Technologies, Inc. JMicron 20360/20363 AHCI Controller [197b:2360] (rev 02), and is displayed as IDE device...and not working B)

This is what I tried to make it working, no luck so far:

1. Added dev id on default j-micronata.kext, all I got is on boot: JMicronATA Unsupported hardware!

That's because the driver checks dev id again, and it not listed. I read something on the forums, and it seems that your dev id might work with AppleVIAATA.kext (add the dev id to it)

2. Added dev id on AppleAhciPort.kext, I got info on system profiler but no drive...

I read something on the forums, and it seems that your dev id might work with AppleVIAATA.kext (add the dev id to it and to AppleAHCIPort.kext). Try looking up in the forums if it doesn't work. I don't think adding your dev id to the jmicron driver will work just fine. If u can't find any solution, i could try this later.

3. Tried latest kext from jmicron ftp(with dev id added since it isnt in default plist) same error on boot as ^^

4. Tried your debug j-micronata.kext w/o touching it, nothing, no wonder since my dev id it isn't in plist(0x2361197b 0x2363197b 0x2365197b 0x2366197b 0x2368197b) mine is 0x2360197b

 

Can you help me with this pls?

 

L.E. I forgot to tell you that there is just only one option to set in BIOS Enhanced/Compatible but that seems to affect only ICH8M connection AHCI/IDE, no option for j-micron one :(

Tested today in XP SP3, both install/boot from eSATA and hotplug using internal hdd as main works

On device manager j-micron is displayed as JRAID, that mean is set by BIOS as RAID, and that cause all my problems?

Thanks

Link to comment
Share on other sites

Hi,

 

Aded dev id in your debug jmicron kext, kext is loaded but still dosent work ;)

Going to try on VIAATA

 

L.E It works with viaata :angel:

But... there is no hotplug, have to boot with hdd connected...

Well it works, and i have 4gb of ram on my lappie...just need to figure out how to enable ahci/hotplug, or better maybe u can add support for me on jmicronata.

Thats it for now, will report back after more tests...

Link to comment
Share on other sites

Hi slashack,

 

Just wanted to say thanks for your great nForceATA driver......I previously had to run with maxmem=3027 to avoid KPs but with Voodoo Beta 2C kernel and your kext, I have been running about 10 hours so far without a kernel panic using 6GB RAM

 

6GB_Slashack_NForceATA_MEMTEST.tiff

 

Mysticus C* is incorporating it in a convenient installer & 10.5.5 Combo updater patch...... :)

Link to comment
Share on other sites

Hi,

 

Aded dev id in your debug jmicron kext, kext is loaded but still dosent work :thumbsup_anim:

Going to try on VIAATA

 

L.E It works with viaata :rolleyes:

But... there is no hotplug, have to boot with hdd connected...

Well it works, and i have 4gb of ram on my lappie...just need to figure out how to enable ahci/hotplug, or better maybe u can add support for me on jmicronata.

Thats it for now, will report back after more tests...

I can think of two solutions to your problem. I don't know how hotplug works in osx, but we can try this:

1 - Boot with your hdd unplugged.

2- Plug in your hdd.

3- Open a terminal and run:

sudo kextload -t /System/Library/Extensions/AppleVIAATA.kext

4- Now check if hdd is there or if something happened.

 

The other thing we can try is to add support for your dev id to JMicronATA.kext (i have to add it to the Info.plist and to the driver itself). But I cannot confirm that this might work at all. And if it works, we should pray to some god for the original JMicronATA.kext to support hotplug. Try the first and tell me what happened, if that doesn't work, then we'll try the praying and all that stuff.

Link to comment
Share on other sites

kextload: extension /System/Library/Extensions/AppleVIAATA.kext appears to be loadable
kextload: extension /System/Library/Extensions/AppleVIAATA.kext is already loaded

And nothing happen....

Maybe second choice will work.

 

Thanks

Link to comment
Share on other sites

The other thing we can try is to add support for your dev id to JMicronATA.kext (i have to add it to the Info.plist and to the driver itself). But I cannot confirm that this might work at all. And if it works, we should pray to some god for the original JMicronATA.kext to support hotplug. Try the first and tell me what happened, if that doesn't work, then we'll try the praying and all that stuff.

So any chance to try a new j-micronata.kext?

 

Thanks

Link to comment
Share on other sites

I have not been adding posts to threads for one simple reason, it clouds up the expert advice/solutions with endless dribble to sift through when seeking answers, BUT... I HAVE TO REPLY TO THIS!!!

 

I have a Gigabyte GA-MA770-S3 (AMD X2 4600+ with 2x800mhz 1gb Sticks and 2x1066mhz 2gb Sticks with a GeForce 8800GTS 320mb, using LawlessPPC 10.5.4 install) and was having significant troubles gaining system stability after upgrading to 6gb memory. I have been reading through MANY posts over the last week or so and have had many MANY kernel panics...

 

I *just* stabilized my system by downloading your fixed AppleVIAATA (I utilized the boot flag -v debug=0x100 to make certain which kext was causing the KP first**) and after one mishap (just loaded it and rebooted) I learned that I must add my Device ID into the info.plist and after doing so I booted with your fix to find a STABLE SYSTEM.

 

To test my system I opened up many applications (Adobe Illustrator, Flash, AE, MS Word, Vuse, iTunes, Mozilla (5 saved tabs - from researching this solution), Adium, Logic Pro (and even recored 2 tracks of simple chords & scales), and could only get my computer to hit ~2.6gb used... this was not enough for me to believe in the stability even though I had previously seen panics after breaking only 2.1gb used. I went into After Effects and dropped a 30sec video in twice, staggered them on the timeline, removed any built-in resource restrictions and slammed the render button and watched my memory usage climb all the way to 5.99gb used and maintained fluid graphics on the Dock as well as flawless and responsive application switching during the render.

 

You, sir, are an absolute genious and I thank you for your awesome work!

Link to comment
Share on other sites

mine has a fascinating problem. if I install the kext while OS X is running, the drives appear and I can even boot Windows form an IDE drive within VMware (it automagically shows up as Boot Camp!). The only thing that didn't work was burning CDs. the machine was up for 3 days seemingly without issue, but once I restarted it would kernel panic. If I remove the kext and reboot again, it starts as normal.

 

what did I do wrong?

Link to comment
Share on other sites

I see that in the code of JM V0.6 date 16.10.2008 your DEV ID is already included (use that not the modded APPLEVIAATA)!

http://code.google.com/p/darwin-ata/source...ronATAPCIRoot.h

So try that and perhaps check also if its in the .plist.

Tried latest driver from jmicron ftp, added dev id in plist still no luck, that was the reason to ask for this one, plus I have 4GB of ram on my lappie...

Dunno what source used slashack...

I will wait for him to come back

Link to comment
Share on other sites

Tried latest driver from jmicron ftp, added dev id in plist still no luck, that was the reason to ask for this one, plus I have 4GB of ram on my lappie...

Dunno what source used slashack...

I will wait for him to come back

 

Sorry for the delay, i had a busy week.

Here it is:

JMicronATA.kext (JMB360)

 

Try it, be carefull, remove AppleVIAATA.kext or any other driver u are using that matches 0x2360197b devid

 

I'll be waiting for your answer...

 

mine has a fascinating problem. if I install the kext while OS X is running, the drives appear and I can even boot Windows form an IDE drive within VMware (it automagically shows up as Boot Camp!). The only thing that didn't work was burning CDs. the machine was up for 3 days seemingly without issue, but once I restarted it would kernel panic. If I remove the kext and reboot again, it starts as normal.

 

what did I do wrong?

 

What kext? What device do you have? More info? Any dump?

Link to comment
Share on other sites

Sorry for the delay, i had a busy week.

Here it is:

JMicronATA.kext (JMB360)

 

Try it, be carefull, remove AppleVIAATA.kext or any other driver u are using that matches 0x2360197b devid

 

I'll be waiting for your answer...

Hi,

 

New driver you posted works as appleviaata, w/o hotplug, seems that my problem is BIOS since I can't set j-micron in ahci mode(from what I seen on windows is set as raid -JRAID, dunno why it works on win..maybe its the win driver, it detect if u boot from it and set it as internal and as external if its used as extra hdd dunno...) and hotplug is an ahci feature...

Anyway it works with j-micron ;)

I will try to mess with BIOS and see if I can do something..

Will keep you informed abut progress...

 

Thanks again!

 

L.E. I forgot to tell you that with j-micron works as ATA and not as SATA like with appleviaata...maybe you can do something about that.

From system.log:

Oct 31 06:58:20 localhost kernel[0]: JMicronATA: JMB360 (CMD 0xc800, CTR 0xc480, IRQ 16, BM 0xc408)
Oct 31 06:58:20 localhost kernel[0]: JMicronATA: JMB360 (CMD 0xcc00, CTR 0xc880, IRQ 16, BM 0xc400)

JMB360ATA.jpg

 

Weird, before I use this kext(or via one) I got on boot the msg: "AppleIntelPIIXPATA: Secondary PCI IDE channel is disabled", now the messg is gone... :(

Link to comment
Share on other sites

Hi,

 

New driver you posted works as appleviaata, w/o hotplug, seems that my problem is BIOS since I can't set j-micron in ahci mode(from what I seen on windows is set as raid -JRAID, dunno why it works on win..maybe its the win driver, it detect if u boot from it and set it as internal and as external if its used as extra hdd dunno...) and hotplug is an ahci feature...

Anyway it works with j-micron :D

I will try to mess with BIOS and see if I can do something..

Will keep you informed abut progress...

 

Thanks again!

 

L.E. I forgot to tell you that with j-micron works as ATA and not as SATA like with appleviaata...maybe you can do something about that.

Why not going back to AppleVIAATA? I don't understand. You have two drives, one SATA and one ATA. With JMicronATA.kext, both appears as ATA? and with AppleVIAATA.kext one as SATA and one as ATA?

From system.log:

Oct 31 06:58:20 localhost kernel[0]: JMicronATA: JMB360 (CMD 0xc800, CTR 0xc480, IRQ 16, BM 0xc408)
Oct 31 06:58:20 localhost kernel[0]: JMicronATA: JMB360 (CMD 0xcc00, CTR 0xc880, IRQ 16, BM 0xc400)

JMB360ATA.jpg

 

Weird, before I use this kext(or via one) I got on boot the msg: "AppleIntelPIIXPATA: Secondary PCI IDE channel is disabled", now the messg is gone... :)

Link to comment
Share on other sites

Why not going back to AppleVIAATA? I don't understand. You have two drives, one SATA and one ATA. With JMicronATA.kext, both appears as ATA? and with AppleVIAATA.kext one as SATA and one as ATA?

Hi,

I Use AHCI for the internal one:

Intel ICH8-M AHCI:

Vendor: Intel

Product: ICH8-M AHCI

Speed: 3 Gigabit

Description: AHCI Version 1.10 Supported

On ATA Bus is just my DVDRW:

ATA Bus:

HL-DT-ST DVDRAM GSA-T20L:

Model: HL-DT-ST DVDRAM GSA-T20L

When I put your latest j-micronata two new ATA Bus are showed in system profiler, one of them populate with my EATA hdd, and the warning "AppleIntelPIIXPATA: Secondary PCI IDE channel is disabled" is gone, but I got another one "JMicronATA 4 bytes not aligned"

With appleviaata I got a new entry on Serial-ATA section with my EATA hdd on it.

 

Dunno if helps but here is my EATA entry from DSDT:

                Device (EATA)
               {
                   Name (_ADR, Zero)
                   OperationRegion (SATE, PCI_Config, Zero, 0xF0)
                   Field (SATE, DWordAcc, NoLock, Preserve)
                   {
                               Offset (0x2C), 
                       SA2C,   32, 
                               Offset (0x43), 
                       SA43,   8, 
                               Offset (0xD3), 
                       SAD3,   8
                   }

                   Method (_INI, 0, NotSerialized)
                   {
                   }

                   Method (ESAT, 0, NotSerialized)
                   {
                       Notify (P0P6, Zero)
                       And (SAD3, 0x7F, SAD3)
                       Or (SA43, 0x40, SA43)
                       Store (0x13481043, SA2C)
                       And (SA43, 0xBF, SA43)
                   }

                   Method (ESID, 0, NotSerialized)
                   {
                       Return (SA2C)
                   }
               }
           }

............................

   Scope (_GPE)
   {
       Method (_L01, 0, NotSerialized)
       {
           \_SB.PCI0.P0P6.JMCC ()
           If (LNotEqual (\_SB.PCI0.P0P6.EATA.ESID (), 0x13481043))
           {
               \_SB.PCI0.P0P6.EATA.ESAT ()
           }

           If (LNot (And (FDRT, 0x00040000)))
           {
               If (\_SB.PCI0.P0P4.HPCS)
               {
                   \_SB.PCI0.P0P4.HPHK ()
                   Notify (\_SB.PCI0.P0P4, Zero)
               }
           }
       }

 

Thanks again for your help!

 

BTW any chance to get those kexts in X86_X64?

Link to comment
Share on other sites

BTW any chance to get those kexts in X86_X64?

 

I do believe that is the entire point of his kexts. To address the fact that the 32bit ones were causing kernel panics at >3.xGB.

 

Just passing by to say your work with these kexts are impressive and works so damn fine.

Now I can keep my "hackintosh" working or sleeping for days and get no system freeze. :D

 

Yeah. It's wonderful isn't it?

post-169169-1225795453_thumb.png

(loads are high, because I'm running the Folding@Home client.)

Link to comment
Share on other sites

Hi,

I Use AHCI for the internal one:

 

On ATA Bus is just my DVDRW:

 

When I put your latest j-micronata two new ATA Bus are showed in system profiler, one of them populate with my EATA hdd, and the warning "AppleIntelPIIXPATA: Secondary PCI IDE channel is disabled" is gone, but I got another one "JMicronATA 4 bytes not aligned"

With appleviaata I got a new entry on Serial-ATA section with my EATA hdd on it.

 

Dunno if helps but here is my EATA entry from DSDT:

                Device (EATA)
               {
                   Name (_ADR, Zero)
                   OperationRegion (SATE, PCI_Config, Zero, 0xF0)
                   Field (SATE, DWordAcc, NoLock, Preserve)
                   {
                               Offset (0x2C), 
                       SA2C,   32, 
                               Offset (0x43), 
                       SA43,   8, 
                               Offset (0xD3), 
                       SAD3,   8
                   }

                   Method (_INI, 0, NotSerialized)
                   {
                   }

                   Method (ESAT, 0, NotSerialized)
                   {
                       Notify (P0P6, Zero)
                       And (SAD3, 0x7F, SAD3)
                       Or (SA43, 0x40, SA43)
                       Store (0x13481043, SA2C)
                       And (SA43, 0xBF, SA43)
                   }

                   Method (ESID, 0, NotSerialized)
                   {
                       Return (SA2C)
                   }
               }
           }

............................

   Scope (_GPE)
   {
       Method (_L01, 0, NotSerialized)
       {
           \_SB.PCI0.P0P6.JMCC ()
           If (LNotEqual (\_SB.PCI0.P0P6.EATA.ESID (), 0x13481043))
           {
               \_SB.PCI0.P0P6.EATA.ESAT ()
           }

           If (LNot (And (FDRT, 0x00040000)))
           {
               If (\_SB.PCI0.P0P4.HPCS)
               {
                   \_SB.PCI0.P0P4.HPHK ()
                   Notify (\_SB.PCI0.P0P4, Zero)
               }
           }
       }

 

Thanks again for your help!

 

BTW any chance to get those kexts in X86_X64?

 

I think that those AppleIntelPIIXPATA warnings aren't a problem. In fact "JMicronATA 4 bytes not aligned" is kind of an error. Maybe you should get back to AppleVIAATA.kext (And that would be better for u cause that's the one i'm using ;) ).

 

Do you meant x86_64? Well, that's the thing i've corrected. I managed to make DMA with 64 bit addresses to avoid kernel panic. I've not moved DMA to make sure 32 bits is enough to address and make DMA. So this is indeed, a kind of 64 bit address driver.

Link to comment
Share on other sites

 Share

×
×
  • Create New...