AudiSport Posted November 13, 2009 Share Posted November 13, 2009 Is there anyone with a GB board here where shutdown works without OpenHaltRestart.kext or EvOreboot.kext? If not then we should work on this as it will likely get more important over time.Shutdown works for me most of the time without OHR or EvOreboot. It seems to not work the time after I try a restart but then does come back. I will do some more testing to be sure. Here is my current dsdt.dsl. dsdt.dsl.zip Link to comment Share on other sites More sharing options...
AudiSport Posted November 13, 2009 Share Posted November 13, 2009 I just did 10 shutdowns and 7 of them worked correctly. Link to comment Share on other sites More sharing options...
Master Chief Posted November 14, 2009 Share Posted November 14, 2009 I just did 10 shutdowns and 7 of them worked correctly. Thanks. I checked the _PTS and _WAK methods in your DTDT, for the obvious hint, but unfortunately didn't find anything new/different. Or I must have missed it. Thanks again. I am pretty certain shutdown works on my system without OHR or EvOreboot. But I am away from my hack now so unfortunately won't be able to double check until later tonight. But I am willing to help if i can. EDIT: So much for my earlier confidence.... After 28 tests and reboots I can reveal that shutdown doesn't work everytime and I can't isolate why. This needs plenty more testing to try and find a pattern. Maybe AudiSport's testing shows better results. Wow! You sure wasn't lazy. Something to think about for the other peeps here. Thanks! Link to comment Share on other sites More sharing options...
MacUser2525 Posted November 14, 2009 Share Posted November 14, 2009 Is there anyone with a GB board here where shutdown works without OpenHaltRestart.kext or EvOreboot.kext? If not then we should work on this as it will likely get more important over time. Anyone here willing to jump in and help? Sure 11 shutdowns out of 15 for me the DSDT.dsl and kextstat if that helps is attached runs on the hardware in the Test Machine in the sig of course.. DSDT.dsl.zip kextstat.txt.zip Link to comment Share on other sites More sharing options...
ƃuıʞ ǝɥʇ Posted November 14, 2009 Share Posted November 14, 2009 @Master Chief I've booted with original Apple DSDT(just my _PRT stuff and RTC to avoid CMOS reset) for test. What can I say shutdown works every time! Not even a single failure...we miss something... Does the same on all my hardware, only restart dosen't work. On desktop I used MacPro4,1 DSDT. On lappie I used MacBookPro4,1 DSDT On Atom I used MacMini1,1 DSDT, on this one even sleep/wake works LOL No idea yet what is missing... Link to comment Share on other sites More sharing options...
Master Chief Posted November 14, 2009 Share Posted November 14, 2009 @Master Chief I've booted with original Apple DSDT(just my _PRT stuff and RTC to avoid CMOS reset) for test.What can I say shutdown works every time! Not even a single failure...we miss something... Does the same on all my hardware, only restart dosen't work. On desktop I used MacPro4,1 DSDT. On lappie I used MacBookPro4,1 DSDT On Atom I used MacMini1,1 DSDT, on this one even sleep/wake works LOL No idea yet what is missing... Thank you for thinking 'out of the box'. And yes I too think that we are missing something, but what? Might be pretty obvious now that we know, thanks to you, that the original Apple DSDT's work. Update:: The following code snippet might be extremely important: OperationRegion (PRT0, SystemIO, 0x80, 0x04) Field (PRT0, DWordAcc, Lock, Preserve) { P80H, 32 } And I am using this for my Asus P5K Pro: Name (DP80, 0x80) OperationRegion (DEB0, SystemIO, DP80, 0x02) Field (DEB0, WordAcc, NoLock, Preserve) { DBG8, 16 } And shutdown works for me, so this is most certainly our first target to look into. Let's start by looking at method _PTS of a real MacPro4,1: Method (_PTS, 1, NotSerialized) { [color="#FF0000"] Store (0x00, P80D) P8XH (0x00, Arg0) [/color] Store (Arg0, \_SB.PCI0.LPCB.EC.ECSS) G3HT () If (OSDW ()) { \_SB.PCI0.SBUS.DISB () } } The lines I think to be important are marked red, but mostly the second line, which calls the following Method: Method (P8XH, 2, Serialized) { [color="#FF0000"] If (LEqual (Arg0, 0x00)) // This is the only part used! { Store (Or (And (P80D, 0xFFFFFF00), Arg1), P80D) }[/color] If (LEqual (Arg0, 0x01)) { Store (Or (And (P80D, 0xFFFF00FF), ShiftLeft (Arg1, 0x08) ), P80D) } If (LEqual (Arg0, 0x02)) { Store (Or (And (P80D, 0xFF00FFFF), ShiftLeft (Arg1, 0x10) ), P80D) } If (LEqual (Arg0, 0x03)) { Store (Or (And (P80D, 0x00FFFFFF), ShiftLeft (Arg1, 0x18) ), P80D) } [color="#006400"]Store (P80D, P80H)[/color] } And this method is called from both _PTS and _WAK for things like sleep, wakeup (the red lines). However, it all boils down to the very last line (green) which I think is key for shutdown, and thus using something like: Store (Arg0, P80H) in Method _PTS is probably enough. And the following line for Method _WAK: Store (Zero, P80H) But I cannot verify this myself (no GB board) so would you please be so kind to do this for me? We might however need to mask it, but that's something for a later time to decide. Note: People willing to test this with a GB DSDT need to use DBG1 instead of P80H (see example below). And here's Method _PTS from a usual GB DSDT: Method (_PTS, 1, NotSerialized) { [color="#FF0000"] Or (Arg0, 0xF0, Local0) Store (Local0, DBG1) If (LEqual (Arg0, 0x05)) // Shutdown (S5) { Store (ESMI, Local0) And (Local0, 0xFB, Local0) Store (Local0, ESMI) }[/color] Store (Arg0, \_SB.PCI0.LPCB.EC.ECSS) G3HT () \_SB.PCI0.SBUS.DISB () } The relevant lines as usual in red again, and it might be as simple as removing the first line. Which basically changes a sleep state (S3) from being 0x03 into 0xF3 and shutdown from 0x05 into 0xF5. But if you do this, then you might need to remove And (Local0, 0xFB, Local0) also, or change it the 0xFB into 0x0B. Not. Yeah, that might be it – neither Asus nor Apple makes use of it. Again, testing required first of course. work in progress... I'm a little slow, but having cornflakes with yogurt at the very same time – had a rough night with one of the kids being sick (: Well, that's it for now. Let me (us here) know what your findings are. And thanks for testing doing the dirty work Link to comment Share on other sites More sharing options...
ƃuıʞ ǝɥʇ Posted November 14, 2009 Share Posted November 14, 2009 I'll do more tests next week now is weekend need to relax a bit(and move my mind from this stuff) I will ditch Asus DSDT and use for now apple one on my desk adding only specific board stuff and removing what i don't have...but next week.. On lappie Asus EC implementation is so dirty, got a big headache trying to put things in place... Only success that i have for now is on my atom board that works pretty well with Apple DSDT LOL Link to comment Share on other sites More sharing options...
Master Chief Posted November 14, 2009 Share Posted November 14, 2009 I'll do more tests next week now is weekend need to relax a bit(and move my mind from this stuff)I will ditch Asus DSDT and use for now apple one on my desk adding only specific board stuff and removing what i don't have...but next week.. On lappie Asus EC implementation is so dirty, got a big headache trying to put things in place... Only success that i have for now is on my atom board that works pretty well with Apple DSDT LOL Sure thing. Get some rest. Enjoy your weekend. Any other people willing to give the proposed changes a try? Link to comment Share on other sites More sharing options...
kdawg Posted November 14, 2009 Share Posted November 14, 2009 Sure thing. Get some rest. Enjoy your weekend. Any other people willing to give the proposed changes a try? I'd be willing to give it a shot but not till the weekend is over like King. Got to relax a bit. So you guys think I'd be better to try MacPro4,1 rather than 3,1? Have people been seeing any difference in performance between the two if so what? Link to comment Share on other sites More sharing options...
ganxiao Posted November 14, 2009 Share Posted November 14, 2009 In recent BIOS updates, Gigabyte has removed ESMI already! Link to comment Share on other sites More sharing options...
Master Chief Posted November 14, 2009 Share Posted November 14, 2009 In recent BIOS updates, Gigabyte has removed ESMI already! Wonderful. Time to do some cleanups I guess. Thanks for the info. Link to comment Share on other sites More sharing options...
mitch_de Posted November 14, 2009 Share Posted November 14, 2009 In recent BIOS updates, Gigabyte has removed ESMI already! What does this mean ? I cant find any ESMI in my GA EP35 (also older ones) ? My GA-EP35 cant sleep - i tried all here . None working. System try to sleep but FANS stay on. here my dsdt. dsdt.dsl_9.zip Link to comment Share on other sites More sharing options...
the_accidental Posted November 14, 2009 Share Posted November 14, 2009 Anyone here on a g31 based board (es2l here) and got sleep working without sleepenabler? I ask as I have everything working great*..... except that occasionally I get a black screen on wake (and system is unresponsive over the network too). (*i have no vanilla speedstepping stuff in, but CPU-i installed which shows the CPU as stepping? between lowest and full speed anyhow, is that right?) Link to comment Share on other sites More sharing options...
harbri Posted November 14, 2009 Share Posted November 14, 2009 But I cannot verify this myself (no GB board) so would you please be so kind to do this for me? We might however need to mask it, but that's something for a later time to decide. I'm more then happy to test it but my _PTS method looks like this: Method (_PTS, 1, NotSerialized) { Or (Arg0, 0xF0, Local0) Store (Local0, DBG1) OSTP () If (LEqual (Arg0, One)) {} If (LEqual (Arg0, 0x03)) {} If (LEqual (Arg0, 0x05)) { Store (ESMI, Local0) And (Local0, 0xFB, Local0) Store (Local0, ESMI) } If (LEqual (Arg0, 0x04)) { If (LNot (PICF)) { Sleep (0x64) } } } So please let me know what to add/change and I'll give it a try. Link to comment Share on other sites More sharing options...
cparm Posted November 14, 2009 Share Posted November 14, 2009 Thank you for thinking 'out of the box'. And yes I too think that we are missing something, but what? Might be pretty obvious now that we know, thanks to you, that the original Apple DSDT's work. Update:: The following code snippet might be extremely important: OperationRegion (PRT0, SystemIO, 0x80, 0x04) Field (PRT0, DWordAcc, Lock, Preserve) { P80H, 32 } And I am using this for my Asus P5K Pro: Name (DP80, 0x80) OperationRegion (DEB0, SystemIO, DP80, 0x02) Field (DEB0, WordAcc, NoLock, Preserve) { DBG8, 16 } And shutdown works for me, so this is most certainly our first target to look into. Let's start by looking at method _PTS of a real MacPro4,1: Method (_PTS, 1, NotSerialized) { [color="#FF0000"] Store (0x00, P80D) P8XH (0x00, Arg0) [/color] Store (Arg0, \_SB.PCI0.LPCB.EC.ECSS) G3HT () If (OSDW ()) { \_SB.PCI0.SBUS.DISB () } } The lines I think to be important are marked red, but mostly the second line, which calls the following Method: Method (P8XH, 2, Serialized) { [color="#FF0000"] If (LEqual (Arg0, 0x00)) // This is the only part used! { Store (Or (And (P80D, 0xFFFFFF00), Arg1), P80D) }[/color] If (LEqual (Arg0, 0x01)) { Store (Or (And (P80D, 0xFFFF00FF), ShiftLeft (Arg1, 0x08) ), P80D) } If (LEqual (Arg0, 0x02)) { Store (Or (And (P80D, 0xFF00FFFF), ShiftLeft (Arg1, 0x10) ), P80D) } If (LEqual (Arg0, 0x03)) { Store (Or (And (P80D, 0x00FFFFFF), ShiftLeft (Arg1, 0x18) ), P80D) } [color="#006400"]Store (P80D, P80H)[/color] } And this method is called from both _PTS and _WAK for things like sleep, wakeup (the red lines). However, it all boils down to the very last line (green) which I think is key for shutdown, and thus using something like: Store (Arg0, P80H) in Method _PTS is probably enough. And the following line for Method _WAK: Store (Zero, P80H) But I cannot verify this myself (no GB board) so would you please be so kind to do this for me? We might however need to mask it, but that's something for a later time to decide. Note: People willing to test this with a GB DSDT need to use DBG1 instead of P80H (see example below). And here's Method _PTS from a usual GB DSDT: Method (_PTS, 1, NotSerialized) { [color="#FF0000"] Or (Arg0, 0xF0, Local0) Store (Local0, DBG1) If (LEqual (Arg0, 0x05)) // Shutdown (S5) { Store (ESMI, Local0) And (Local0, 0xFB, Local0) Store (Local0, ESMI) }[/color] Store (Arg0, \_SB.PCI0.LPCB.EC.ECSS) G3HT () \_SB.PCI0.SBUS.DISB () } The relevant lines as usual in red again, and it might be as simple as removing the first line. Which basically changes a sleep state (S3) from being 0x03 into 0xF3 and shutdown from 0x05 into 0xF5. But if you do this, then you might need to remove And (Local0, 0xFB, Local0) also, or change it the 0xFB into 0x0B. Not. Yeah, that might be it – neither Asus nor Apple makes use of it. Again, testing required first of course. work in progress... I'm a little slow, but having cornflakes with yogurt at the very same time – had a rough night with one of the kids being sick (: Well, that's it for now. Let me (us here) know what your findings are. And thanks for testing doing the dirty work i have tested it, with no chance, let me know if i done something wrong ps: since 10.6.2, shutdown don't work at all w/o OHR Link to comment Share on other sites More sharing options...
AudiSport Posted November 14, 2009 Share Posted November 14, 2009 Anyone here on a g31 based board (es2l here) and got sleep working without sleepenabler? I ask as I have everything working great*..... except that occasionally I get a black screen on wake (and system is unresponsive over the network too). (*i have no vanilla speedstepping stuff in, but CPU-i installed which shows the CPU as stepping? between lowest and full speed anyhow, is that right?) Sleep is working great on my ES2L without sleepenabler. I do have vanilla speedstep working with 10 p-states. I am not seeing a difference with these changes either. Sometime shutdown works and other times it doesn't. I am running 10.6.2 and shutdown does work occasionally without OHR or EvOReboot. Link to comment Share on other sites More sharing options...
mm67 Posted November 14, 2009 Share Posted November 14, 2009 Can't see modifying method PTS making any difference to shutdown. I can even remove the whole method and I still have perfectly working S3 sleep and wakeup and 50/50 chance of successful shutdown. Link to comment Share on other sites More sharing options...
the_accidental Posted November 14, 2009 Share Posted November 14, 2009 Sleep is working great on my ES2L without sleepenabler. I do have vanilla speedstep working with 10 p-states. That's great news. Any chance you could post up your DSDT for me to compare mine against, it'd be a great help? (just attach it in a zip file) You get your power button working for sleep BTW? Cos I know the fix for that, it's easy :-) change: Device (PWRB) { Name (_HID, EisaId ("PNP0C0C")) to: Device (PWRB) { Name (_CID, EisaId ("PNP0C0C")) Not seen that mentioned in this thread previously, might help folk (or maybe it's common knowledge!). EDIT: I'm blind, you posted it above! Link to comment Share on other sites More sharing options...
blackosx Posted November 15, 2009 Share Posted November 15, 2009 Can't see modifying method PTS making any difference to shutdown. I can even remove the whole method and I still have perfectly working S3 sleep and wakeup and 50/50 chance of successful shutdown. My machine sleeps & wakes up perfectly too with or without the _PTS method. With _PTS removed, I did some shutdown tests and it shutdown successfully 7 times in a row, until it finally failed - So no real progress with that. (If it's any use to anyone I dumped my ioreg to file before performing each shutdown to see if I could identify anything when it failed to shutdown). Link to comment Share on other sites More sharing options...
leslieking Posted November 15, 2009 Share Posted November 15, 2009 @iSoprano I have the same mobo, ep35-ds3l Your dsdt file has: Device (SATA) { Name (_ADR, 0x001F0002) Method (_DSM, 4, NotSerialized) { Store (Package (0x02) { "device-id", Buffer (0x04) { 0x81, 0x26, 0x00, 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } ?> I don't have Device (SATA), just IDE1 and IDE2. Strange, we have the same mobo Did you remove IDE1, IDE2 and added SATA? I would be grateful for any help. Thanks, mate! Link to comment Share on other sites More sharing options...
Master Chief Posted November 15, 2009 Share Posted November 15, 2009 @iSoprano I have the same mobo, ep35-ds3lYour dsdt file has: ... see post #521 I don't have Device (SATA), just IDE1 and IDE2. Strange, we have the same mobo Did you remove IDE1, IDE2 and added SATA? I would be grateful for any help. Thanks, mate! Search for 0x001F0002 because that's the one you are looking for – probably under a different name. Link to comment Share on other sites More sharing options...
leslieking Posted November 15, 2009 Share Posted November 15, 2009 0x001F0002 is IDE1. Thanks anyway! I don't understand why does he have SATA (same mobo). Link to comment Share on other sites More sharing options...
mm67 Posted November 15, 2009 Share Posted November 15, 2009 0x001F0002 is IDE1. Thanks anyway!I don't understand why does he have SATA (same mobo). You can use any name you want to as long as you follow these rules from Acpispec: -All names are a fixed 32 bits. -The first byte of a name is inclusive of: ‘A’–‘Z’, ‘_’, (0x41–0x5A, 0x5F). -The remaining three bytes of a name are inclusive of: ‘A’–‘Z’, ‘0’–‘9’, ‘_’, (0x41–0x5A, 0x30–0x39, 0x5F). Link to comment Share on other sites More sharing options...
leslieking Posted November 15, 2009 Share Posted November 15, 2009 Ok, thanks! Link to comment Share on other sites More sharing options...
Master Chief Posted November 15, 2009 Share Posted November 15, 2009 0x001F0002 is IDE1. Thanks anyway!I don't understand why does he have SATA (same mobo). That's because we rename devices, to match the Apple DSDT. Not to mention that SATA is the most logical name to use. Note: Certain devices cannot be change because Apple (OS X) expects specific device names! Link to comment Share on other sites More sharing options...
Recommended Posts