Jump to content

DSDT fixes for Gigabyte boards


iSoprano
 Share

1,909 posts in this topic

Recommended Posts

what's an Apple Pro keyboard? is it the older keyboard that comes with black keys packaged with the G3/G4 macs? i own a keyboard like this (pic) but dont know if it's a "Pro" :-)

 

anyways if yes then, only the aluminum's are the problem since it's mounting on USB high-speed instead on the regular USB Bus.

That's because the keyboard hub is a hi-speed USB hub (output from System Profiler):

 

Keyboard Hub:

 

Product ID: 0x1006

Vendor ID: 0x05ac (Apple Inc.)

Version: 96.15

Serial Number: 000000000000

Speed: Up to 480 Mb/sec

Manufacturer: Apple, Inc.

Location ID: 0xfa100000

Current Available (mA): 500

Current Required (mA): 300

Link to comment
Share on other sites

That's because the keyboard hub is a hi-speed USB hub (output from System Profiler):

 

Keyboard Hub:

 

Product ID: 0x1006

Vendor ID: 0x05ac (Apple Inc.)

Version: 96.15

Serial Number: 000000000000

Speed: Up to 480 Mb/sec

Manufacturer: Apple, Inc.

Location ID: 0xfa100000

Current Available (mA): 500

Current Required (mA): 300

Did anyone try disableing/removing AppleHIDKeyboard.kext or AppleUSBHIDKeyboard.kext to see if that fixed it?

 

 

 

Scope (_PR)

_PRT stuff, very important!

And my Devices if they dosen't fit with original.

That's all.

 

Warning! For anyone who want to try this kind of stuff, do not do this if you don't know what are you doing...

 

P.S. The board has to be on the same class, e.g Nehalem for MacPro4,1 and so on...

Finally got the MacPro4,1 dsdt working on my rig. I had to remove the SMC (Device), duh! Didn't get to test it much but what I can say is that restart didn't work. Still have to try shutdown.
Link to comment
Share on other sites

Try swapping values of EHCI & UHCI to emulate it being ICH10. Cause for EHCI and UHCI in the latest dsl from the first post it is like so, meaning it is still ICH9:

						{
						"device-id", 
						Buffer (0x04)
						{
							0x3A, 0x29, 0x00, 0x00
						}, 

						"AAPL,clock-id", 
						Buffer (One)
						{
							0x01
						}

 

 Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x04)
					{
						"device-id", 
						Buffer (0x04)
						{
							0x3C, 0x29, 0x00, 0x00
						}, 

						"AAPL,clock-id", 
						Buffer (One)
						{

 

Try setting:

 

0x3A 0x3A for EHCI

0x3C 0x3A for UHCI

 

I'd say should do the trick for High-Speed USB's:

Link to comment
Share on other sites

thanks mm67,

 

ah finally after a few tries it showed on my system profiler, what did the trick was changed from (0x00020000) to (0x00010000).. noob :P

 

screenshot20091113at322.png

 

any way to changed the "slot"? i want ethernet to changed as "PCI" only including the WPM300N to be uniform.

 

or like your screenshot posted

 

ethernet = PCI slot 1

WMP300N = PCI slot 2

 

using EthernetBuiltIn=Y on my LAN BTW.

 

I feel a complete idiot, how in the argh^'s name do you find out the address in ioreg?

 

Here is a screen of which I suppose I should be looking at:

post-39930-1258471038_thumb.png

 

This is what I added in DSDT:

			Device (WLAN)
			{
				Name (_ADR, 0x00020000)
				Name (_SUN, 0x3)
				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x08)
						{
							"device-id", 
							Buffer (0x04)
							{
								0x24, 0x00, 0x00, 0x00
							},
							"device_type", 
							"WLAN Controller",
							"model", 
							"D-Link DWA-556",
							"name", 
							"D-Link"
						}, Local0)
		MCDP (Arg2, RefOf (Local0))
					Return (Local0)
				}
			}

 

Also wanted to try the following fix from slice (aware this applies to a laptop) to check is wake works:

 Method (_L09, 0, NotSerialized)
	{
		Store (SMI (0xC6, Zero), Local0)
		If (And (Local0, One))
		{
			Store (One, \_SB.PCI0.RP01.PSP1)
			Notify (\_SB.PCI0.RP01.PXS1, 0x02)  // this is my LAN
		}

		If (And (Local0, 0x04))
		{
			Notify (\_SB.PCI0.RP05.PXS5, 0x02) // change to RP02.PXS2 which is my WiFi.
		}
	}

 

 

So I added the following to Metod _L09:

		Notify (\_SB.PCI0.PEX4.JMB0, 0x02)	
	Notify (\_SB.PCI0.PEX4.JMB1, 0x02)

 

But, since I don't know how to read IoRegistryEx. I'm stuck. Someone give a push here..

Link to comment
Share on other sites

I feel a complete idiot, how in the argh^'s name do you find out the address in ioreg?

 

Here is a screen of which I suppose I should be looking at:

post-39930-1258471038_thumb.png

 

This is what I added in DSDT:

			Device (WLAN)
			{
				Name (_ADR, 0x00020000)
				Name (_SUN, 0x3)
				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x08)
						{
							"device-id", 
							Buffer (0x04)
							{
								0x24, 0x00, 0x00, 0x00
							},
							"device_type", 
							"WLAN Controller",
							"model", 
							"D-Link DWA-556",
							"name", 
							"D-Link"
						}, Local0)
		MCDP (Arg2, RefOf (Local0))
					Return (Local0)
				}
			}

 

Also wanted to try the following fix from slice (aware this applies to a laptop) to check is wake works:

 Method (_L09, 0, NotSerialized)
	{
		Store (SMI (0xC6, Zero), Local0)
		If (And (Local0, One))
		{
			Store (One, \_SB.PCI0.RP01.PSP1)
			Notify (\_SB.PCI0.RP01.PXS1, 0x02)  // this is my LAN
		}

		If (And (Local0, 0x04))
		{
			Notify (\_SB.PCI0.RP05.PXS5, 0x02) // change to RP02.PXS2 which is my WiFi.
		}
	}

 

 

So I added the following to Metod _L09:

		Notify (\_SB.PCI0.PEX4.JMB0, 0x02)	
	Notify (\_SB.PCI0.PEX4.JMB1, 0x02)

 

But, since I don't know how to read IoRegistryEx. I'm stuck. Someone give a push here..

 

This goes under device PEX3 and address is 0x0

Link to comment
Share on other sites

Finally got the MacPro4,1 dsdt working on my rig. I had to remove the SMC (Device), duh! Didn't get to test it much but what I can say is that restart didn't work. Still have to try shutdown.

Ohh I forgot to tell u about SMC removal... shutdown works but restart...

Link to comment
Share on other sites

This goes under device PEX3 and address is 0x0

 

Like this?

			Device (PEX3)
		{
			Name (_ADR, 0x001C0003)
			Device (WLAN)
			{
				Name (_ADR, 0x00000000)
				Name (_SUN, 0x3)
				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x08)
						{
							"device-id",
							Buffer (0x04)
							{
								0x24, 0x00, 0x00, 0x00
							},
									"device_type",
										"WLAN Controller",
									"model",
										"D-Link DWA-556",
									"name",
										"D-Link"
						}, Local0)
					MCDP (Arg2, RefOf (Local0))
					Return (Local0)
				}
			}

			Method (_STA, 0, NotSerialized)
			{
				Return (0x0F)
			}

			Method (_PRW, 0, NotSerialized)
			{
				Return (Package (0x02)
				{
					0x09, 
					0x05
				})
			}

			Method (_PRT, 0, NotSerialized)
			{
				Return (Package (0x04)
				{
					Package (0x04)
					{
						0xFFFF, 
						Zero, 
						Zero, 
						0x13
					}, 

					Package (0x04)
					{
						0xFFFF, 
						One, 
						Zero, 
						0x10
					}, 

					Package (0x04)
					{
						0xFFFF, 
						0x02, 
						Zero, 
						0x11
					}, 

					Package (0x04)
					{
						0xFFFF, 
						0x03, 
						Zero, 
						0x12
					}
				})
			}
		}

Link to comment
Share on other sites

Like this?

			Device (PEX3)
		{
			Name (_ADR, 0x001C0003)
			Device (WLAN)
			{
				Name (_ADR, 0x00000000)
				Name (_SUN, 0x3)
				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x08)
						{
							"device-id",
							Buffer (0x04)
							{
								0x24, 0x00, 0x00, 0x00
							},
									"device_type",
										"WLAN Controller",
									"model",
										"D-Link DWA-556",
									"name",
										"D-Link"
						}, Local0)
					MCDP (Arg2, RefOf (Local0))
					Return (Local0)
				}
			}

			Method (_STA, 0, NotSerialized)
			{
				Return (0x0F)
			}

			Method (_PRW, 0, NotSerialized)
			{
				Return (Package (0x02)
				{
					0x09, 
					0x05
				})
			}

			Method (_PRT, 0, NotSerialized)
			{
				Return (Package (0x04)
				{
					Package (0x04)
					{
						0xFFFF, 
						Zero, 
						Zero, 
						0x13
					}, 

					Package (0x04)
					{
						0xFFFF, 
						One, 
						Zero, 
						0x10
					}, 

					Package (0x04)
					{
						0xFFFF, 
						0x02, 
						Zero, 
						0x11
					}, 

					Package (0x04)
					{
						0xFFFF, 
						0x03, 
						Zero, 
						0x12
					}
				})
			}
		}

 

Yes, but why won't you change the device-id. There is no point in doing device-id injection with original device-id. If you use 0x22, 0x00,0x00,0x00 your wlan will work with 64-bit kernel with vanilla kexts.

Link to comment
Share on other sites

Did anyone try disableing/removing AppleHIDKeyboard.kext or AppleUSBHIDKeyboard.kext to see if that fixed it?

 

tried removing AppleHIDKeyboard.kext but still the same (10.6.1/2)... havent tried AppleUSBHIDKeyboard.kext but will try a bit later on my other partition..

 

Try setting:

 

0x3A 0x3A for EHCI

0x3C 0x3A for UHCI

 

I'd say should do the trick for High-Speed USB's:

 

for what fix is this again? aluminum KB?

 

I feel a complete idiot, how in the argh^'s name do you find out the address in ioreg?

 

hahaha, you are not alone... ive read this thread a few times already including the speedstep and it's like reading english words but written in chinese :D ... special thanks to people who reply to my PM's (a long list so you know who you are) that's why im getting a hang of all the fixes here.

 

you'll get lots of helping hand here, im sure you'll sort it out after a few tries.. if it helps my LAN (realtek RTL8168c) addition is under PEX1 and WLAN (LinksysWMP300N) is after HUB0/PCIB.. also check AudiSport post a few page back so you can customize the slot names.

 

screenshot20091117at115.png

Link to comment
Share on other sites

Yes, but why won't you change the device-id. There is no point in doing device-id injection with original device-id. If you use 0x22, 0x00,0x00,0x00 your wlan will work with 64-bit kernel with vanilla kexts.

 

 

I believe you have to use 0x2A, 0x00, 0x00, 0x00 for 64-bit.

Link to comment
Share on other sites

for what fix is this again? aluminum KB?

Yeah, might be, i own one of those keyboards you've showed the pic before, so i'm not sure if this will affect this anyhow, but u could give it a try. Cause anyways we're using fake ICH10 USBs why not faking out EHCI & UHCI ...

My lspci currently looks like this: http://grab.by/CL1 not to forget it's a P35 board.

 

Without this your EHCI controller would not be recognized as Built-in.

http://grab.by/CNk

Link to comment
Share on other sites

Yeah, might be, i own one of those keyboards you've showed the pic before, so i'm not sure if this will affect this anyhow, but u could give it a try. Cause anyways we're using fake ICH10 USBs why not faking out EHCI & UHCI ...

My lspci currently looks like this: http://grab.by/CL1 not to forget it's a P35 board.

 

Without this your EHCI controller would not be recognized as Built-in.

http://grab.by/CNk

 

wont work since i dont have another device to change them to, i mean my dsdt has only 4 USB (USB0-USB3 now UHCx) and USBE (now EHCI), i dont have have UHCI on my dsdt or same address to change/switch them to.

 

might just switch back to my old keyboard (what's on pic) but argh, im really used to this slim one already.. maybe ill just dream of that wake up feature to be fix someday hahaha.

 

BTW i dont have wakeup via mouse too since i use a WMM and the culprit is my $4 generic el cheapo BT dongle.. poor me, wake up only works via power button but it's ok since everything works (almost) :-)

 

29esjeo.jpg

Link to comment
Share on other sites

Thanks guys for the help.. It works as in: I see the card's name in profiler.

64bit needs to be tested when Geforce KP gets resolved. Booting 32bit only at the moment.

 

I think I finally will dump this Dlink wlan card and get me one of those linksys :)

 

have most things working by glueing bits and parts from dsdt's posted here. should need to walk everything trough, especially speedstepping (which seems to be a challenge even for the guru's here). hopefully, when time lets me I can ask you wizards to help.

Link to comment
Share on other sites

it's ok since everything works (almost) :-)

 

Are you on a ES2L rev 1 or 2? I ask as I'm on a rev 1, and occasionally wake from sleep results in power coming on, but blank screen (and no answer over the network either). Other folk report complete success with ES2Ls so I'm trying to work out what's different with mine (do you use sleep a lot? maybe that's the issue).

 

As yet I've not figured out a way to make waking fail, it seems to be fairly random. Though mostly after a fair bit of use. Hints and tips to diagnose it also appreciated.

 

I've uses pmset -g pslog to log more info, and it does sleep - it's the wake that fails it seems. My setup is:

 

ES2L, E5300, GeForce 9400gt, LegacyALC883.kext, OpenHaltRestart.kext,PlatformUUID.kext,fakesmc.kext, RTGMac_v2.0.3 lan driver

 

Speedstepping working fine. I've attached my dsdt in case it's anything obvious someone can spot, and detailed lspci output.

 

Is there a list anywhere of what functions in the DSDT are called when? If so I could start investigating data sheets etc with more success myself.

 

dsdt.dsl.zip

lspci.txt

Link to comment
Share on other sites

Something triggered my attention, and I would like people here to verify something for me. Please proceed with the steps below:

 

1) (re)boot hack – a must!

2) enter lspci -xxxvvv > lspci-before-sleep.txt

3) sleep hack from Apple menu.

4) enter lspci -xxxbbb > lspci-after-sleep.txt

5) enter diff -uw lspci-before-sleep.txt lspci-after-sleep.txt > lspci-before-after-sleep.txt

6) check diff for changes like:

 

- Capabilities: [50] Vendor Specific Information <?>

+ Capabilities: [50] PCIe advanced features <?>

 

-50: 09 00 06 20 00 00 00 00 00 00 00 00 00 00 00 00

+50: 13 00 06 03 00 00 00 00 00 00 00 00 00 00 00 00

 

Note: I have one for each UHCn port.

 

7) and when you do see something like this, then ZIP all three files and attach it here. Thank you.

 

p.s. You don't need to attach the file when you only see one or two of these:

 

-10: 00 00 00 00 00 00 00 00 00 01 01 00 c0 c0 00 20

+10: 00 00 00 00 00 00 00 00 00 01 01 00 c0 c0 00 00

 

Representing the master abort bit, which I don't think is important, but I am going to re-check this later today.

 

Note: I have two of these; one under 'Express PCI Express Root Port' and one under 'PCI Express Port 1'.

 

And there are more changes after sleep, like: EHCI, UHCI, SATA and LAN0 And because of this FireWire hot-plug only works after sleep, but there might be more that we are unaware of until now. I mean maybe your Apple keyboard can wake your hack after sleep.

 

This might just be dust (see page: 385 - bit 12: Function Level Reset Capabilities Structure Select) but I have to rule out the angel in front of dust – just trying to understand what is going on, which might eventually help me to fix something.

 

Here's what I see – includes references to the ICH9 Datasheet:

lspci_before_after_sleep.txt.zip

Link to comment
Share on other sites

OK in case it helps anyone I think i solved my failure to wake (occasionally) issue.

 

I've a rev 1 board, and was using the RTGMac_v203 realtek drivers.

 

they cause failures to wake from sleep

 

I finally tracked down black-screen on wake issues. It was a repeatable error whenever I was using more than 2 gig ram and network activity.

 

Specifically opening 20 avi off a server, and loading 80 tabs in safari would cause the failure every time.

 

I reverted to the built in snow leopard drivers* and no problems now (except no bonjour). If you do a bit of googling you'll find other people mentioning power management issues with the realtek drivers and SL, as the drivers were built for 10.4.

 

 

* the realtek installer/uninstall script has a serious problem! when it installs, it deletes the apple realtek driver kext, and when it uninstalls it removes the realtek one. So you're left with no driver at all.

 

So to restore, you need /system/library/extensions/IONetworkingFamily.kext from an untouched SL install/disk. Replace it, repair disk permissions, "sudo touch /System/Library/Extensions" wait a bit for the kexts to rebuild, and then reboot.

Link to comment
Share on other sites

OK in case it helps anyone I think i solved my failure to wake (occasionally) issue.

 

I've a rev 1 board, and was using the RTGMac_v203 realtek drivers.

 

they cause failures to wake from sleep

 

I finally tracked down black-screen on wake issues. It was a repeatable error whenever I was using more than 2 gig ram and network activity.

 

Specifically opening 20 avi off a server, and loading 80 tabs in safari would cause the failure every time.

 

I reverted to the built in snow leopard drivers* and no problems now (except no bonjour). If you do a bit of googling you'll find other people mentioning power management issues with the realtek drivers and SL, as the drivers were built for 10.4.

 

 

* the realtek installer/uninstall script has a serious problem! when it installs, it deletes the apple realtek driver kext, and when it uninstalls it removes the realtek one. So you're left with no driver at all.

 

So to restore, you need /system/library/extensions/IONetworkingFamily.kext from an untouched SL install/disk. Replace it, repair disk permissions, "sudo touch /System/Library/Extensions" wait a bit for the kexts to rebuild, and then reboot.

 

Try Bit Shoveler's driver here.

http://www.insanelymac.com/forum/index.php...p;#entry1311531

 

Not sure what the latest version is.

Link to comment
Share on other sites

Are you on a ES2L rev 1 or 2? I ask as I'm on a rev 1, and occasionally wake from sleep results in power coming on, but blank screen (and no answer over the network either). Other folk report complete success with ES2Ls so I'm trying to work out what's different with mine (do you use sleep a lot? maybe that's the issue).

 

As yet I've not figured out a way to make waking fail, it seems to be fairly random. Though mostly after a fair bit of use. Hints and tips to diagnose it also appreciated.

 

REV 1 F8 Bios, my system is almost perfect except issues already mention here like waking from aluminum KB (waiting for a miracle fix), wireless mighty mouse wake from sleep (needs a more compatible BT dongle) and automatic sleep ( stopped working since 10.5.7 but RIP or pleasesleep makes up for it).. i use sleep but not that much, but if i do my system wakes up 100% of the time using 9600GT before and now GTS250. Also i never experienced blue or blank screen except when i tried changing "display" on system profiler on my dsdt.. ow i have a jumpy mouse on this card too but i deleted upstream.kext and that fixed my problem..

 

i think that's about all the issue i have on this build.

 

for your network's bonjour, i dont have much experience on the built in LAN since i use wireless (linksys WMP300N v1) but as kdwag suggested try the new R1000 kext or the older method which is ifconfig. look for blackosx (the man when it comes to tutorial :-P) thread coz he covered all the available fixes from the release of snow up to this day.

 

HTH :-)

Link to comment
Share on other sites

 Share

×
×
  • Create New...