Master Chief Posted November 17, 2009 Share Posted November 17, 2009 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 More sharing options...
kdawg Posted November 17, 2009 Share Posted November 17, 2009 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 More sharing options...
TimeWalker75a Posted November 17, 2009 Share Posted November 17, 2009 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 More sharing options...
relikwie Posted November 17, 2009 Share Posted November 17, 2009 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 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: 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 More sharing options...
mm67 Posted November 17, 2009 Share Posted November 17, 2009 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: 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 More sharing options...
THe KiNG Posted November 17, 2009 Share Posted November 17, 2009 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 More sharing options...
relikwie Posted November 17, 2009 Share Posted November 17, 2009 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 More sharing options...
FKA Posted November 17, 2009 Share Posted November 17, 2009 Ohh I forgot to tell u about SMC removal... shutdown works but restart... Glad to see you got your status back ! Link to comment Share on other sites More sharing options...
mm67 Posted November 17, 2009 Share Posted November 17, 2009 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 More sharing options...
sk1nhead Posted November 17, 2009 Share Posted November 17, 2009 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 ... 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. Link to comment Share on other sites More sharing options...
kdawg Posted November 17, 2009 Share Posted November 17, 2009 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 More sharing options...
mm67 Posted November 17, 2009 Share Posted November 17, 2009 I believe you have to use 0x2A, 0x00, 0x00, 0x00 for 64-bit. That's right, a stupid typo. Link to comment Share on other sites More sharing options...
TimeWalker75a Posted November 17, 2009 Share Posted November 17, 2009 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 More sharing options...
sk1nhead Posted November 17, 2009 Share Posted November 17, 2009 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) :-) Link to comment Share on other sites More sharing options...
relikwie Posted November 17, 2009 Share Posted November 17, 2009 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 More sharing options...
the_accidental Posted November 17, 2009 Share Posted November 17, 2009 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 More sharing options...
Master Chief Posted November 18, 2009 Share Posted November 18, 2009 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 More sharing options...
blackosx Posted November 18, 2009 Share Posted November 18, 2009 7) and when you do see something like this, then ZIP all three files and attach it here. Thank you. Here's mine. (I followed the procedure twice just to be sure). Hope it helps blackosx_before_after_sleep.zip Link to comment Share on other sites More sharing options...
the_accidental Posted November 18, 2009 Share Posted November 18, 2009 ICH7 board (see sig), but might help: lspci_before_after_sleep.zip Link to comment Share on other sites More sharing options...
the_accidental Posted November 18, 2009 Share Posted November 18, 2009 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 More sharing options...
kdawg Posted November 18, 2009 Share Posted November 18, 2009 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 More sharing options...
Master Chief Posted November 18, 2009 Share Posted November 18, 2009 Here's mine. (I followed the procedure twice just to be sure). Hope it helps Me too. Thanks! ICH7 board (see sig), but might help:lspci_before_after_sleep.zip Thanks! Link to comment Share on other sites More sharing options...
AudiSport Posted November 18, 2009 Share Posted November 18, 2009 Master Chief, Here is another ICH7 datapoint. lspci_before_after_sleep.txt.zip Link to comment Share on other sites More sharing options...
sk1nhead Posted November 18, 2009 Share Posted November 18, 2009 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 More sharing options...
Master Chief Posted November 18, 2009 Share Posted November 18, 2009 Master Chief, Here is another ICH7 datapoint. lspci_before_after_sleep.txt.zip Thanks. Lot's of work ahead of me now... trying to find the one clue we all are looking for. Edit: Here's something to think about: Blackosx's ICH10 (EHCI controller #1: Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) And this is what I have with my ICH9: Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+) And that on both EHCI controllers! Which would mean, if the data can be trusted, that you first have to do a sleep-wake cycle, and then wake from keyboard works, or that the lspci output can't be trusted. Is the source code of lspci for OS X available somewhere? You might want try this: OperationRegion (PMCR, PCI_Config, 0x52, One) Field (PMCR, WordAcc, NoLock, Preserve) { PWRC, 16 } Method (_INI, 0, NotSerialized) { Store (0xC9C2, PWRC) } Right above the first OperationRegion in the EHCI/UHCI devices. Edit: Or add it here: Scope (_SB) // System Bus scope (namespace) { Method (_INI, 0, NotSerialized) { Store (0xC9C2, \_SB.PCI0.EHCI.PWRC) Store (0xC9C2, \_SB.PCI0.UHCI.PWRC) } ... Which runs unconditionally, and before the other _INI methods, which might be a little too late. Link to comment Share on other sites More sharing options...
Recommended Posts