Jump to content
ApexDE

[SOLVED] JMicron SATA/IDE PCIe Card eSATA problem

43 posts in this topic

Recommended Posts

@ THe KiNG, all the credits is yours if I succeeded in installing Mac OS X in my lappy. Be sure, I'm patiently waiting the new guide. With my regards. :rolleyes:

Hello THe KiNG you could compile my DSDT I have the same PCI-Express controller has 2 SATA ports and one IDE port JMB363, my motherboard its asus p5k has built-in that controls the IDE port and two eSATA .

its lsci

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

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

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

my dsdt.aml

thx in advance.

Share this post


Link to post
Share on other sites
Advertisement

Stop with offtopic stuff.

@mamadou i don't need any credits, no need to spam this topic, so I will delete offtopic stuff, do the same kthx.

@Tristano set up your controller in BIOS first, then learn how to compile your DSDT.

 

Thanks ApexDE for sharing the info, I'm out of here before someone else will not ask for God knows what else...

Share this post


Link to post
Share on other sites

Would be helpful to show a bit of surrounding dsdt code above / below that eSATA dsdt stuff (Codebox ? / dsdt_part.zip) . Makes clearer where excat to include in the SATA part.

Share this post


Link to post
Share on other sites

great! the DSDT fix helped me to solve this: http://www.insanelymac.com/forum/index.php...t&p=1309387

 

though after system sleep/wake i have this kernel log message:

kernel[0]: pci restore waited for pci197b,2360 (8366) fail

 

however esata device keeps working well.

so does this message have any effect?

 

 

UPDATE:

i was too oblivious and didn't notice the solution is right above. disabling PATA port was the trick ;)

Share this post


Link to post
Share on other sites

well, did some research.

in my case i have my esata working only after sleep/wake, so i compared registers before and after sleep.

 

before:

40: 11 11 02 20 00 00 7f 75 30 00 00 3f 00 00 00 00

 

after:

40: 11 f1 02 20 00 00 ff f0 30 00 00 3f 00 00 00 00

 

then i applied the following fix:

			 			OperationRegion (BAR0, PCI_Config, 0x40, 0x04)
					 Field (BAR0, WordAcc, NoLock, Preserve)
					 {
							 Offset (0x01),
						 M1, 8
					 }

					 Method (_INI, 0, NotSerialized)
					 {
						 Store (0xF1, M1)
					 }

 

and now esata works right after system start and there is no pata port i have to disable.

Share this post


Link to post
Share on other sites

ApexDE

 

I bow to your genius :)

 

Using DSDT on my Intel DP45SG board has been flakey at best compared to my Gigabyte board, but your solution nailed it.

 

Thank you!

Share this post


Link to post
Share on other sites

Here's my experience with the onboard JMicron SATA on the 939DUAL-SATA2 motherboard.

 

Kernel panic on boot, culprit is AppleAHCIPort - panic goes away once I reset the bios.

 

Next, SATA controller shows up as IDE controller in lspci - use lcpci to set registers 0x40, 0x41, 0x42 as suggested and it shows up as SATA. Have to reconnect drive to see it.

 

Next, try DSDT patch. Panic again on reboot. Look at linux drivers/pci/quirks.c and realize 0x40-0x44 is some kind of configuration register. Finally get a working DSDT patch very similar to sergest's post above:

 

OperationRegion (BAR0, PCI_Config, 0x40, 0x04)
Field (BAR0, WordAcc, NoLock, Preserve)
{
Offset (0x01),
M1, 8
}

Method (_INI, 0, NotSerialized)
{
Store (0xA1, M1)
}

 

Now I have SATA drives appearing on bootup, without crashing. Disk tests in Xbench seem much lower than they should be, 66MB/s read 25MB/s write on a 500gb Seagate Barracuda SATA.

Share this post


Link to post
Share on other sites

Hi folks, first sorry for my English. Ok, this is my problem:

I have a p5q deluxe and all works. The only problem is the eSata port on this mobo. In bios is set to AHCI, the disk connected to the eSata port (all disks that i have try) are seen in bios, they are seen by chameleon but not are seen by Snow.

 

schermata20100316a01342.png

 

I use a modded version of Appleviaata (in attached), i have try ALL Appleviaata and only the ide connector internal work, only, the eSata managed from the same controller Marvell 88SE6121 SATA II Controller [11ab:6121] don't work

 

schermata20100316a01484.png

 

In attached there are my two dsdt (original and modded), i have do some try but nothing. I don't understand if is possible make same changes that i read in this threads on this Marvell controller or simply if there is a possibility to resolve my problem.

 

Someone can help me, please?

 

dsdt_original.dsl.zip

dsdt_modded.dsl.zip

AppleVIAATA.kext.zip

Share this post


Link to post
Share on other sites

Solved for half:

 

in bios, for me, is need set the xpert drive to normal mode, so the eSata works, but don't the Hot Plug.

 

So the last problem is only the hot plug

Share this post


Link to post
Share on other sites

Is it possible set definitively the register value to 0106 for Marvell controller without to lost the ide "component"?

Share this post


Link to post
Share on other sites
Now to complete this hack, how to disable the PATA port :P

 

Add a new device like in this example:

                Device (EPTA)
               {
                   Name (_ADR, One)
                   OperationRegion (BAR0, PCI_Config, 0x40, 0x04)
                   Field (BAR0, WordAcc, NoLock, Preserve)
                   {
                           Offset (0x00),
                       M1, 8,
                           Offset (0x01),
                       M2, 8,
                           Offset (0x02),
                       M3, 8
                   }

                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Zero, M1)
                       Store (Zero, M2)
                       Store (Zero, M3)
                       Return (Zero)
                   }
               }

Compile, reboot and then look on lspci/ioreg the PATA is gone! :rolleyes:

 

@pharillion

Try to add this 2 device instead of yours:

                Device (EATA)
               {
                   Name (_ADR, Zero)
                   OperationRegion (BAR0, PCI_Config, 0x40, 0x04)
                   Field (BAR0, WordAcc, NoLock, Preserve)
                   {
                           Offset (0x00),
                       M1, 8,
                           Offset (0x01),
                       M2, 8,
                           Offset (0x02),
                       M3, 8
                   }

                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (0xb3, M1)
                       Store (0xa1, M2)
                       Store (0xc2, M3)
                       Store (Package (0x02)
                           {
                               "name", 
                               Buffer (0x16)
                               {
                                   "J-Micron JMB36x eSATA"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }

               Device (EPTA)
               {
                   Name (_ADR, One)
                   OperationRegion (BAR0, PCI_Config, 0x40, 0x04)
                   Field (BAR0, WordAcc, NoLock, Preserve)
                   {
                           Offset (0x00),
                       M1, 8,
                           Offset (0x01),
                       M2, 8,
                           Offset (0x02),
                       M3, 8
                   }

                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Zero, M1)
                       Store (Zero, M2)
                       Store (Zero, M3)
                       Return (Zero)
                   }
               }

If you don't want the PATA to be disabled just remove the second device(with what is in brackets)

 

Thanks ApexDE for opening my eyes on this, now the hack is complete :angel:

 

Thx ApexDE and theKing it works like a charm

 

I had the same problem as Pharillion cause my dsdt has 2 JMB IDE device so I removed them and added the 2 devices as proposed and that's it :)

cheers

Share this post


Link to post
Share on other sites

Anyone know where to find the MAc drivers for the JMB363? It just lists as an unknown AHCI controller for me. (Mac Pro using a no-name esata card with the jMicron chip on it. OSX 10.6.6)

Share this post


Link to post
Share on other sites

Hello all, hope this topic is still active :(

 

I have a Jmicron eSATA Card showing up with lspci like this:

03:00.0 RAID bus controller: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 03)

If I do

 

sudo setpci -s 03:0.0 40.b=b3 41.b=a1 42.b=c2

 

 

everything is fine, Volume is mounting and accessable

 

But the DSDT-Patching I just don´t get it done

Maybe someone can get a look at my DSDT-File and help me make the necessary changes

 

Thx 4 help!

DSDT.aml.zip

Share this post


Link to post
Share on other sites

Any ideas on how to get the Jmicron SATA/IDE controller on an X58 board work reliably on Sierra? With or without the DSDT patch (from page 1), the drive likes to disconnect often. I've turned off "Put HDD to sleep".

 

Thanks

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.

×