Jump to content

DSDT fixes for Gigabyte boards


iSoprano
 Share

1,909 posts in this topic

Recommended Posts

hi, happy that you had finally solved your problem

 

but know that you can also set this value with your dsdt file

 

just add "Name (_UID, One)" for pciroot=1 or Name (_UID, Zero) in the PCI0 device:

 

Device (PCI0)
	{
		Name (_HID, EisaId ("PNP0A08"))
		Name (_CID, EisaId ("PNP0A03"))
		Name (_ADR, Zero)
		Name (_UID, One) // the pciroot value
		.
		.
		.

 

cparm,

Thanks for the tip.

However it does not work on my DSDT which is slightly different from your Device (PCI0)

 

Device (PCI0)

{

Name (_HID, EisaId ("PNP0A03"))

Name (_ADR, Zero)

Name (_UID, One)

Name (_BBN, Zero)

.

.[/code]

 

Not sure why the difference.

May be this is the reason for Name (_UID, One) not working.

 

blackosx,

Can you try out the above tip on your DSDT to see whether it work on your system.

Pls share result with us.

 

Sk!nhead,

You reported that its not working in your case.

What does your DSDT showing under Device (PCI0) ?

 

TQ all & have a nice day.

Merry X'mas to all InsanelyMac Forum members.

Link to comment
Share on other sites

I have this in my P35C-DS3R DSDT:

 

    Method (_PTS, 1, NotSerialized)
   {
       If (LEqual (Arg0, 0x05))
       {
           Store (0x07, SLPT)
           Store (One, SLPE)
           Store (One, \_SB.PCI0.LPCB.AG3E)
       }
       Else
       {
           \_SB.PCI0.SBUS.DISB ()
           \_SB.PCI0.LPCB.SPTS ()
           Store (Arg0, ASSB)
       }
   }

 

    OperationRegion (PM1C, SystemIO, 0x0804, 0x04)
   Field (PM1C, ByteAcc, NoLock, Preserve)
   {
           ,   10, 
       SLPT,   3, 
       SLPE,   1
   }

 

Can you please show me what to change? And what about restart? I know you have discovered how to patch DSDT to get it without any other kext. Please show me how. In my EP45-UD3L I`m using this code (yours):

 

    Method (_PTS, 1, NotSerialized)
   {
       Or (Arg0, 0xF0, Local0)
	    Store (Local0, DBG1)
	Store (Zero, \_SB.PCI0.LPCB.AG3E)
       If (LEqual (Arg0, 0x05))
       {
           Store (Zero, SLPE)
           Sleep(0x10)
       }
   }

 

If you have a working example then how about just copying that code to your other box.

Link to comment
Share on other sites

MasterChief,

 

I haven't seen anyone else comment on this but for me your Method (MCID) isn't working. When I use the following code the device ID is shown in SystemProfiler "correctly" as in it's modified by my DSDT.

 

                Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x34, 0x3a, 0x00, 0x00
                           }
                       }, Local0)
                   MCDP (Arg2, RefOf (Local0))
                   Return (Local0)
               }

 

When I use your MCID code (copied your DSDT for UHCx) SystemProfiler reports the actual device id - your code doesn't work. For example -

 

                Method (_DSM, 4, NotSerialized)                // Device Specific Method (ACPIspec30a.pdf / 9.15.1 / page 321).
               {
                   Return (MCID (Arg2, 0x3A35))
               }

 

does not cause my USB device ID to match the ICH10 as attempted. I'm using version 1.4 of your code copied out of your DSDT v3.2.

 

Thanks,

SMF

Link to comment
Share on other sites

Thanks blackosx for your compilation - very usefull

Glad you found it useful. :(

 

blackosx,

Can you try out the above tip on your DSDT to see whether it work on your system.

Pls share result with us.

Hi helob, Changing Name (_UID, One) to Zero in Device (PCI0) works for me, yes.

Link to comment
Share on other sites

mm67, where do I add this in DSDT?

 

OperationRegion (PMRS, SystemIO, 0x0430, 0x1)
Field (PMRS, ByteAcc, NoLock, Preserve)
{
, 4,
SLPE, 1
}

 

Anywhere in scope /, I have it just above method PTS, that might be a good place.

Link to comment
Share on other sites

ICH10 datasheet, page 475.

 

What do you think of this code will be achieved universality?

 

		OperationRegion (PMBA, SystemIO, 0x40, 0x03)
	Field (PMBA, ByteAcc, NoLock, Preserve)
	{
		,		7, 
		BA,		9
	}
	Method (SMRA, 1, NotSerialized)
	{
		Store (BA, Local0)
		Add (Local0, Arg0, Local0) // 0x30
		Return (Local0)
	}
	OperationRegion (PMRS, SystemIO, SMRA(0x30), 0x1)
	Field (PMRS, ByteAcc, NoLock, Preserve)
	{
			,   4,
		SLPE,   1
	}

Link to comment
Share on other sites

What do you think of this code will be achieved universality?

 

		OperationRegion (PMBA, SystemIO, 0x40, 0x03)
	Field (PMBA, ByteAcc, NoLock, Preserve)
	{
		,		7, 
		BA,		9
	}
	Method (SMRA, 1, NotSerialized)
	{
		Store (BA, Local0)
		Add (Local0, Arg0, Local0) // 0x30
		Return (Local0)
	}
	OperationRegion (PMRS, SystemIO, SMRA(0x30), 0x1)
	Field (PMRS, ByteAcc, NoLock, Preserve)
	{
			,   4,
		SLPE,   1
	}

 

Maybe if you put PMBA and SMRA under device LPCB, I assume you are trying to use register from ICH10 datasheet page 392. But then again everybody can easily check PMBASE address from FACP table or from this line in dsdt:

Processor (CPU0, 0x00, 0x00000410, 0x06)

where 0x410 is referring to PMBASE+10h

Link to comment
Share on other sites

Maybe if you put PMBA and SMRA under device LPCB, I assume you are trying to use register from ICH10 datasheet page 392. But then again everybody can easily check PMBASE address from FACP table or from this line in dsdt:

Processor (CPU0, 0x00, 0x00000410, 0x06)

where 0x410 is referring to PMBASE+10h

 

Thank you for your reply

Link to comment
Share on other sites

Glad you found it useful. :)

 

 

Hi helob, Changing Name (_UID, One) to Zero in Device (PCI0) works for me, yes.

 

Hi blackosx,

TQ for the good news. I have confirmed that it work by changing One to zero.

However its rather confusing. PciRoot=1 required (_UID, Zero) & vice versa.

I will stay with putting PciRoot=1 in com.apple.boot.plist and leave (_UID, One) unchanged.

TQ

Link to comment
Share on other sites

Just to give some users a heads-up - I was able to use iSoprano's #6 DSDT with a GIGABYTE GA-EX38-DS4 motherboard / Realtek ALC889a and ICH9. I just had to change Device (HDEF) from ALC888 to ALC889a. I have a full working system. Restart, Sleep and Shutdown work fine...

 

I big major thanks goes out to blackosx with his excellent guide and Master Chief and mm67 for their superb DSDT work. I'm sure there are many other people to thank!

 

Was able to fix the sound by building a DSDT using the GA-EX38-DS4 bios (F3) via Windows and Patcher and replaced iSpoprano's Device (HDEF) (Realtek ALC888) info with my bios Device (HDEF) (Realtek ALC889a) info. Was successful with this along with LegacyHDA.kext (ALC889a) ( http://www.insanelymac.com/forum/index.php...st&id=63899 ) in the Extra/Extensions folder.

 

 

iSpoprano's Device (HDEF) (Realtek ALC888):

 

Device (HDEF)
           {
               Name (_ADR, 0x001B0000)
               OperationRegion (HDCS, PCI_Config, 0x54, 0x04)
               Field (HDCS, DWordAcc, NoLock, Preserve)
               {
                       ,   15, 
                   PMES,   1
               }

               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x0D, 
                       0x06
                   })
               }

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x0A)
                       {
                           "built-in", 
                           Buffer (One)
                           {
                               0x01
                           }, 

                           "codec-id", 
                           Buffer (0x04)
                           {
                               0x88, 0x08, 0xEC, 0x10
                           }, 

                           "layout-id", 
                           Buffer (0x04)
                           {
                               0x78, 0x03, 0x00, 0x00
                           }, 

                           "device-type", 
                           Buffer (0x10)
                           {
                               "Realtek ALC888"
                           }, 

                           "PinConfigurations", 
                           Buffer (0x28)
                           {
                               /* 0000 */    0x10, 0x90, 0xA1, 0x01, 0x20, 0x90, 0xA1, 0x02, 
                               /* 0008 */    0x80, 0x30, 0x81, 0x01, 0x90, 0x40, 0x21, 0x02, 
                               /* 0010 */    0x30, 0x40, 0x11, 0x01, 0x40, 0x40, 0x01, 0x01, 
                               /* 0018 */    0x50, 0x60, 0x01, 0x01, 0x60, 0x20, 0x01, 0x01, 
                               /* 0020 */    0x70, 0x61, 0x4B, 0x01, 0xA0, 0x01, 0xCB, 0x01

 

 

 

Replaced the above with GA-EX38-DS4 Device (HDEF) (Realtek ALC889a) info:

 

Device (HDEF)
           {
               Name (_ADR, 0x001B0000)
               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x0D, 
                       0x05
                   })
               }

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x08)
                       {
                           "codec-id", 
                           Buffer (0x04)
                           {
                               0x89, 0x08, 0xEC, 0x10
                           }, 

                           "layout-id", 
                           /**** Is ResourceTemplate, but EndTag not at buffer end ****/ Buffer (0x04)
                           {
                               0x79, 0x03, 0x00, 0x00
                           }, 

                           "device-type", 
                           Buffer (0x10)
                           {
                               "Realtek ALC889a"
                           }, 

                           "PinConfigurations", 
                           Buffer (0x18)
                           {
                               /* 0000 */    0x10, 0x44, 0x11, 0x01, 0x20, 0x14, 0x01, 0x01, 
                               /* 0008 */    0x40, 0x4C, 0x21, 0x02, 0x50, 0x34, 0x81, 0x01, 
                               /* 0010 */    0x60, 0x9C, 0xA1, 0x02, 0xF0, 0x61, 0x4B, 0x01

 

 

I do have a question with ICH9. System profiler reported as "Intel ESB2 AHCI". Is this the correct name? Actually my bios' DSDT doesn't have SATA info but instead JMICRON... or at least that's what DSDT SE's ACPI search in tells me.

 

 

John

Link to comment
Share on other sites

MasterChief,

 

I haven't seen anyone else comment on this but for me your Method (MCID) isn't working...

That's probably because it works. What OS X version are you using?

 

p.s. Please add a signature.

 

 

...

 

I do have a question with ICH9. System profiler reported as "Intel ESB2 AHCI". Is this the correct name?

Yes it is – the "ESB2" part here is the result of a changed device-id (to fix the yellow drive icons).

 

p.s. I can't help you with the DSDT SE related question, simply because I never used it.

Link to comment
Share on other sites

Master Chief,

 

I've been following this thread with great interest even though I have an Asus X58 Rampage II Gene mobo. I've tried every combo I know to get Duvel's great restart fix going but for some reason my board won't have it. I know you managed it on your Asus P5Q mobo, could you shine any light on why it might not be working? If you look at the facp.aml from my bios (attached)you can see the reset flag is natively set to 1, but in the FACP extracted from ioreg it appears as 0. Any pointers would be great!

 

Thanks everyone for all your work on this...

facporiginal.dsl.zip

osxfacp.dsl.zip

Link to comment
Share on other sites

Master Chief,

 

I've been following this thread with great interest even though I have an Asus X58 Rampage II Gene mobo. I've tried every combo I know to get Duvel's great restart fix going but for some reason my board won't have it. I know you managed it on your Asus P5Q mobo, could you shine any light on why it might not be working? If you look at the facp.aml from my bios (attached)you can see the reset flag is natively set to 1, but in the FACP extracted from ioreg it appears as 0. Any pointers would be great!

 

Thanks everyone for all your work on this...

Please paste the output of: lspci -d 8086:2916 -xxxvvv (with the correct device-id). And here's mine:

00:1f.0 ISA bridge: Intel Corporation 82801IR (ICH9R) [color="#0000FF"]LPC Interface Controller[/color] (rev 02)
Subsystem: ASUSTeK Computer Inc. Unknown device 8277
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Capabilities: [e0] Vendor Specific Information <?>
00: 86 80 16 29 07 00 10 02 02 00 01 06 00 00 80 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 77 82
30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00
40: 01 08 00 00 80 00 00 00 81 04 00 00 10 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 0b 0a 05 04 d0 00 00 00 80 03 0f 07 f8 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 0e 14 95 02 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 28 06 00 00 39 00 00 00 13 00 00 00 [b][color="#FF0000"]00 03 00 40[/color][/b]
b0: 00 00 f0 00 00 00 00 00 00 00 02 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 33 22 11 00 67 45 00 00 c0 c0 00 00 00 00 00 00
e0: 09 00 0c 10 00 00 c4 00 60 00 00 00 00 00 00 00
f0: 01 c0 d1 fe 44 e2 18 00 86 0f 02 00 00 00 00 00

Note the bold/red value. You probably have a different value there. Right?

Link to comment
Share on other sites

Please paste the output of: lspci -d 8086:2916 -xxxvvv (with the correct device-id). And here's mine:

00:1f.0 ISA bridge: Intel Corporation 82801IR (ICH9R) [color="#0000FF"]LPC Interface Controller[/color] (rev 02)
Subsystem: ASUSTeK Computer Inc. Unknown device 8277
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Capabilities: [e0] Vendor Specific Information <?>
00: 86 80 16 29 07 00 10 02 02 00 01 06 00 00 80 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 77 82
30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00
40: 01 08 00 00 80 00 00 00 81 04 00 00 10 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 0b 0a 05 04 d0 00 00 00 80 03 0f 07 f8 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 0e 14 95 02 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 28 06 00 00 39 00 00 00 13 00 00 00 [b][color="#FF0000"]00 03 00 40[/color][/b]
b0: 00 00 f0 00 00 00 00 00 00 00 02 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 33 22 11 00 67 45 00 00 c0 c0 00 00 00 00 00 00
e0: 09 00 0c 10 00 00 c4 00 60 00 00 00 00 00 00 00
f0: 01 c0 d1 fe 44 e2 18 00 86 0f 02 00 00 00 00 00

Note the bold/red value. You probably have a different value there. Right?

 

Hi MC

 

Thanks for replying!

 

Heres the output:

00:1f.0 ISA bridge: Intel Corporation 82801JIR (ICH10R) LPC Interface Controller
Subsystem: ASUSTeK Computer Inc. Unknown device 82d4
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Capabilities: [e0] Vendor Specific Information <?>
00: 86 80 16 3a 07 00 10 02 00 00 01 06 00 00 80 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 d4 82
30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00
40: 01 08 00 00 80 00 00 00 01 05 00 00 10 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 0f 05 0b 0a d0 00 00 00 0e 03 07 04 f8 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 0f 14 95 02 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: e4 06 00 00 38 00 00 00 13 1c 0a 24 00 03 00 40
b0: 00 00 f0 00 00 00 00 00 04 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 33 22 11 00 67 45 00 00 c0 f0 00 00 00 00 00 00
e0: 09 00 0c 10 01 00 c4 02 64 02 00 00 00 00 00 00
f0: 01 c0 d1 fe 00 00 00 00 86 0f 00 00 00 00 00 00

 

I think I have the same value as you. Are the 2 things connected (LPC and FACP)?

Link to comment
Share on other sites

Hi MC

 

Thanks for replying! Heres the output:...

I think I have the same value as you. Are the 2 things connected (LPC and FACP)?

You are welcome. And for this specific register (0xAC) it is (CFG Global Reset). But this one is not "it". I haven looked at the provided tables, but now I will. I'll report back to when I think to have found something.

 

p.s. OSXRestart and Duvel300's load patch (the previous method) are both working for you?

 

MasterChief,

 

Signature added - I'm currently on 10.5.8. Working DSDT before I move to SL.

 

Regards,

SMF

I was afraid you would reply with this answer, because it doesn't work with 10.5.8 Written for a later version of ACPI CA – which is what Apple is using. Sorry. No cookie for you.

 

And thank you for adding a signature (we all should have one BTW) and note the ICH part in mine :rolleyes:

Link to comment
Share on other sites

Yes it is – the "ESB2" part here is the result of a changed device-id (to fix the yellow drive icons).

 

p.s. I can't help you with the DSDT SE related question, simply because I never used it.

 

Thanks Master Chief!

 

Guess my question is - Should I really be messing with anything since Snow Leopard is working 100%? Sure my motherboard's stock DSDT doesn't have SATA data (that I could find or DSDT SE) only JMICRON (though I think that's for RAID only) and I could work on that, but all 5 internal hard drives are working and usb devices mount and dismount with no issues. Hardware Growler reports everything accurately. I thought I was going to have to do more work since I started with iSoprano's DSDT built for his Gigabyte EP35-DS3 motherboard. Though I'm not complaining...

Link to comment
Share on other sites

You are welcome. And for this specific register (0xAC) it is (CFG Global Reset). But this one is not "it". I haven looked at the provided tables, but now I will. I'll report back to when I think to have found something.

 

p.s. OSXRestart and Duvel300's load patch (the previous method) are both working for you?

 

OSXRestart was working great, no joy with load patch (the important hex values in FACP related to the reset register never seem to be changed)

Link to comment
Share on other sites

Thanks Master Chief!

 

Guess my question is - Should I really be messing with anything since Snow Leopard is working 100%? Sure my motherboard's stock DSDT doesn't have SATA data only JMICRON (though I think that's for RAID) and I could work on that, but all 5 internal hard drives are working and usb devices mount and dismount with no issues. Hardware Growler reports everything accurately. I thought I was going to have to do more work since I started with iSoprano's DSDT built for his Gigabyte EP35-DS3 motherboard. Though I'm not complaining...

 

All I can say is that a smaller file (DSDT.aml) takes less time to load, and that you can always go back to a working copy. That is if you keep making backups. It is also a fun to learn new stuff. No?

 

TO ALL

I received what appears to be the first USB 2.0 dongle with a real SMC chip in it NOT TRUE! It arrived per mail today, from China. It costs $250 and now I do not need FakeSMC.kext anymore. My boot time is reduced to 2 seconds (without audio) and five seconds with audio.

 

I agreed to not hack / dismantle it, and thus I won't. I asked if making pictures was alright, but it's just another USB memory stick at the outside. No problem. I mean my wife works in the local hospital, and I just happen to have an appointment there tomorrow, for my back. I guess that on one picture, I will be a lot smaller all of a sudden LOL

 

Their plan I'm told is to offer this "USB stick" (looks like a regular SanDisk at the outside, but without any print on it) for a lower price when more orders flow in. The problem is that they don't even have a website (legal issues). Waiting for their reply.

 

p.s. I paid for an SMC chip solution, not another EFI clone and that is why I want to verify their claim. It also works with 10.8 But if this is what I think it is, another EFI clone, then I will get my money back (thanks to the CC company of course).

 

Edit: I dumped the SMC keys in Ubuntu Linux, and they are all there. This freaking thing appears to be real!

 

Edit 2: There's nothing I can find with ioreg or IORegistryExplorer. Not even on the port I plugged it in. It doesn't mount when I plug it in...

 

Edit 3: We found the boot partition, and the code on it. This is just another EFI clone, but a lot smarter. That is to fool you (me in this case). What an {censored}s. They must have written this Linux program because they knew that people are going to check it. Smart, but not smart enough. Hello Visa... I'm glad that I did not pay for it with my own, personal Visa card. I mean with this kind of people... you'll never know.

 

This will most likely pop up in a few weeks from now, as the next great thing, and thus YOU ARE WARNED!

Link to comment
Share on other sites

All I can say is that a smaller file (DSDT.aml) takes less time to load, and that you can always go back to a working copy. That is if you keep making backups. It is also a fun to learn new stuff. No?

 

Yes a big part of me is disappointed that I didn't learn enough this time... and it was hoot playing with the DSDT and the other files.

Link to comment
Share on other sites

I was afraid you would reply with this answer, because it doesn't work with 10.5.8 Written for a later version of ACPI CA �" which is what Apple is using. Sorry. No cookie for you.

 

And thank you for adding a signature (we all should have one BTW) and note the ICH part in mine :(

 

MasterChief,

 

No problem. I'm still learning and trying to absorb what you and others have revealed. I'll move to SL soon and I can make the device ID's work with your other methods.

 

Signature updated .... ;)

 

Regards,

SMF

Link to comment
Share on other sites

 Share

×
×
  • Create New...