Jump to content

DSDT fixes for Gigabyte boards


iSoprano
 Share

1,908 posts in this topic

Recommended Posts

I know this has been asked before but can't recall a definitive answer:

How does one know if all supported C-states are working?

 

For example,

kdawg has a processor that supports C1E.

So he enters the required info into dsdt and gets a temp reduction to around 40 degrees and his p-states work, voltage multiplier etc. He gets a value of 1240105.

 

I have a processor that supports C1E C2E & C4E. My temps are about the same and p-states work as expected. I also get a value of 1240105.

 

But how do I know if all 3 c-states are working? Some have noticed a voltage drop below the lowest multiplier - I havent, but then I don't use dropssdt in my p.list.

 

So at this point I can say that I get at least to C1 but I'm not certain that I get C2 and C4......

 

In the words of Whitney Houston....

"How will I know......"

Link to comment
Share on other sites

I hope you figure it out. If you do, please enlighten me!
Alright after hours of trying to narrow down the auto-sleep culprit I'm going to take a stab at guessing. I did notice one difference between my two installs. Somehow I managed to overlook the fact that at one time I used Realtek's network driver. This I think may be the problem. I've restored the vanilla IONetworkingFamily.kext and deleted the networking preferences but I still can't get my old install to sleep. For those who don't know Realtek's installer will delete the old AppleRTL8169Ethernet.kext found within the IONetworkingFamily plug-ins so hopefully you guys have a backup. Otherwise I believe you can download Apple's combo 10.6.2 updater and extract if from there.

 

The one weird benefit to having Realtek's kext installed is the ability to WOL (wake on LAN). I've lost it on the new install. Although Realtek's kext should have no effect on WOL what so ever because it doesn't get loaded. It's all very strange. Maybe this helps someone track down their sleep issues. The DSDT in my signature should allow auto-sleep for GA-EP45-UD3P users. So if it isn't working it's something else. For me I'm giving up the search and just going with the new install.

Link to comment
Share on other sites

Alright after hours of trying to narrow down the auto-sleep culprit I'm going to take a stab at guessing. I did notice one difference between my two installs. Somehow I managed to overlook the fact that at one time I used Realtek's network driver. This I think may be the problem. I've restored the vanilla IONetworkingFamily.kext and deleted the networking preferences but I still can't get my old install to sleep. For those who don't know Realtek's installer will delete the old AppleRTL8169Ethernet.kext found within the IONetworkingFamily plug-ins so hopefully you guys have a backup. Otherwise I believe you can download Apple's combo 10.6.2 updater and extract if from there.

 

The one weird benefit to having Realtek's kext installed is the ability to WOL (wake on LAN). I've lost it on the new install. Although Realtek's kext should have no effect on WOL what so ever because it doesn't get loaded. It's all very strange. Maybe this helps someone track down their sleep issues. The DSDT in my signature should allow auto-sleep for GA-EP45-UD3P users. So if it isn't working it's something else. For me I'm giving up the search and just going with the new install.

 

 

 

I guess you tried deleting /Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist

and pressing reset defaults twice in energy saving prefs? (check a new uuid is generated)

 

Turn off all sharing as well and make sure you are not running any fancy stuff in safari etc

(you often see entries in system.log about web objects preventing sleep)

 

Turn off wake from BT if you have it

 

I've been using the various 32 bit and 64 bit Realtek lexts in /S/L/E for ages without issue (and Bonjour always worked

without any fiddling also) but never caused any sleep issues for me.

 

I used to get the black screen on wake, kernel panics with web forms on safari post wake etc but since I went native apple PM it just worked perfect

Link to comment
Share on other sites

I know this has been asked before but can't recall a definitive answer:

How does one know if all supported C-states are working?

 

For example,

kdawg has a processor that supports C1E.

So he enters the required info into dsdt and gets a temp reduction to around 40 degrees and his p-states work, voltage multiplier etc. He gets a value of 1240105.

 

I have a processor that supports C1E C2E & C4E. My temps are about the same and p-states work as expected. I also get a value of 1240105.

 

But how do I know if all 3 c-states are working? Some have noticed a voltage drop below the lowest multiplier - I havent, but then I don't use dropssdt in my p.list.

 

So at this point I can say that I get at least to C1 but I'm not certain that I get C2 and C4......

 

In the words of Whitney Houston....

"How will I know......"

 

It's actually easy to check if C4 works, run this : sudo setpci -s 0:1f.0 0xa6.b

 

If bit 7 of result is set then CPU has gone to a C-state deeper than C2 at least once. My result with working C4 is 80

More information about that register can be found on ICH10 datasheet page 455.

Link to comment
Share on other sites

I guess you tried deleting /Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist

and pressing reset defaults twice in energy saving prefs? (check a new uuid is generated)

 

Turn off all sharing as well and make sure you are not running any fancy stuff in safari etc

(you often see entries in system.log about web objects preventing sleep)

 

Turn off wake from BT if you have it

 

I've been using the various 32 bit and 64 bit Realtek lexts in /S/L/E for ages without issue (and Bonjour always worked

without any fiddling also) but never caused any sleep issues for me.

 

I used to get the black screen on wake, kernel panics with web forms on safari post wake etc but since I went native apple PM it just worked perfect

I don't want to get too OT. Forgive me.

 

I've tried most of that yes. But, such a noob question, how do I check to see if a new UUID is generated after pressing reset energy preferences? I'll also post my pmset -g logs. The UUID might be something to look into!

 

I can also say that Dropbox prevents sleep. This is a fact!

 

pmsettings are the same for both machines:

Active Profiles:
AC Power		-1*
Currently in use:
hibernatemode	0
sleep		2
powerbutton	1
disksleep	10
hibernatefile	/var/vm/sleepimage
autorestart	1
ttyskeepawake	1
displaysleep	1

pmset_nonsleeping_.txtpmset_sleeping_.txt

Entries like this one prevents sleep, this would be Dropbox causing this one:

 * Domain: applicationresponse.slowresponse
- Message: PMConnection IPConfiguration com.apple.powermanagement.applicationresponse.slowresponse 7455 ms
- Time: 1/1/10 7:26:49 AM EST 
- Signature: IPConfiguration
- UUID: 19DFC80F-9377-4814-9C6D-4716ABC7A5B7
- Result: Noop
- Response time (ms): 7455

Link to comment
Share on other sites

kdawg, as xjasx noted Bonjour ifconfig fix broke idle/auto sleep for me; permiscuous mode likely prevents sleep as the machine assume all network traffic is regardless of MAC destination address is processed. I can't comment on realtekr1000.kext, but perhaps it behaves in a similar way (activating permiscuous mode to fix bonjour).

 

I have since switched to a GA311 GigE PCI card; it is plug and play, full bonjour support, auto-sleep compatible and available for about $15.

Link to comment
Share on other sites

I don't want to get too OT. Forgive me.

 

I've tried most of that yes. But, such a noob question, how do I check to see if a new UUID is generated after pressing reset energy preferences? I'll also post my pmset -g logs. The UUID might be something to look into!

 

I can also say that Dropbox prevents sleep. This is a fact!

 

pmsettings are the same for both machines:

Active Profiles:
AC Power		-1*
Currently in use:
hibernatemode	0
sleep		2
powerbutton	1
disksleep	10
hibernatefile	/var/vm/sleepimage
autorestart	1
ttyskeepawake	1
displaysleep	1

pmset_nonsleeping_.txtpmset_sleeping_.txt

Entries like this one prevents sleep, this would be Dropbox causing this one:

 * Domain: applicationresponse.slowresponse
- Message: PMConnection IPConfiguration com.apple.powermanagement.applicationresponse.slowresponse 7455 ms
- Time: 1/1/10 7:26:49 AM EST 
- Signature: IPConfiguration
- UUID: 19DFC80F-9377-4814-9C6D-4716ABC7A5B7
- Result: Noop
- Response time (ms): 7455

 

 

I took up your suggestion of dropbox, and I have noticed that my window manager died once , ie black screen on wake, there are refs to dropbox in system.log. However, 99.99% of times I can say it hasn't prevented sleep

This was unusual as I haven't had a black screen for ages

 

I have stealth mode on my OS X firewall by the way so maybe that prevents some sharing?

 

To see the uuid just look inside the power plist

 

I know wfBT prevents sleep for most, also some sharing (I suspect a lot of these 3rd party apps, eg LS which was

a real pain...)

 

Also my Pioneer DVD (Atapi) stops working after sleep now after fiddling with DSDT's (never used to) , but it doesn't cause a problem (in fact it makes less noise/vibration ;-)

 

EDIT: PS yes both S0 and S3 sleep work, but as this is a desktop I don't see the point of S3

post-383752-1262366470_thumb.png

Link to comment
Share on other sites

What this code do under Device (LPCB) ?

 

OperationRegion (LPC0, PCI_Config, 0xA4, 0x02)
Field (LPC0, ByteAcc, NoLock, Preserve)
{
AG3E,   1
}

 

There is no AG3E in the ACPI Specification. Thanks!

 

Why do you expect to find that data from Acpispec, get ICH9 datasheet, search device LPC and see what register 0xA4, bit 0 does.

Link to comment
Share on other sites

I searched for the "0xA4" address, but nothing...

 

I checked 3 dsdt files (kdawg, mm67, and aargh). Each file uses AG3E in LPCB.

I'm going to add AG3E. I think, it doesn't hurt in my case (EP35-DS3L).

 

ICH9 datasheet and page 492

Link to comment
Share on other sites

I've removed the following:

 

Method (^_INI, 0, NotSerialized)
{
   If (STRC (_OS, "Microsoft Windows"))
   {
       Store (0x56, SMIP)
   }
   Else
   {
       If (STRC (_OS, "Microsoft Windows NT"))
       {
           If (CondRefOf (\_OSI, Local0))
           {
               If (_OSI ("Windows 2001"))
               {
                   Store (0x59, SMIP)
                   Store (Zero, OSFL)
                   Store (0x03, OSFX)
               }
           }
           Else
           {
               Store (0x58, SMIP)
               Store (Zero, OSFL)
           }
       }
       Else
       {
           Store (0x57, SMIP)
           Store (0x02, OSFL)
       }
   }
}

 

After that, I have a kernel panic: http://dl.dropbox.com/u/1924024/panic.jpg

I have a separate (working) INI, added to the DSDT:

 

Method (_INI, 0, NotSerialized) // <--added for EHCI
{
   Store (One, ^PCI0.EHC1.WRTA)
   Store (0x19, ^PCI0.EHC1.PMES)
   Store (Zero, ^PCI0.EHC1.WRTA)
   Store (One, ^PCI0.EHC2.WRTA)
   Store (0x19, ^PCI0.EHC2.PMES)
   Store (Zero, ^PCI0.EHC2.WRTA)
}

 

In other words, I removed something related to windows and I get kernel panic ?! LOL

Link to comment
Share on other sites

I've removed the following:

 

Method (^_INI, 0, NotSerialized)
{
   If (STRC (_OS, "Microsoft Windows"))
   {
       Store (0x56, SMIP)
   }
   Else
   {
       If (STRC (_OS, "Microsoft Windows NT"))
       {
           If (CondRefOf (\_OSI, Local0))
           {
               If (_OSI ("Windows 2001"))
               {
                   Store (0x59, SMIP)
                   Store (Zero, OSFL)
                   Store (0x03, OSFX)
               }
           }
           Else
           {
               Store (0x58, SMIP)
               Store (Zero, OSFL)
           }
       }
       Else
       {
           Store (0x57, SMIP)
           Store (0x02, OSFL)
       }
   }
}

 

After that, I have a kernel panic: http://dl.dropbox.com/u/1924024/panic.jpg

I have a separate (working) INI, added to the DSDT:

 

Method (_INI, 0, NotSerialized) // <--added for EHCI
{
   Store (One, ^PCI0.EHC1.WRTA)
   Store (0x19, ^PCI0.EHC1.PMES)
   Store (Zero, ^PCI0.EHC1.WRTA)
   Store (One, ^PCI0.EHC2.WRTA)
   Store (0x19, ^PCI0.EHC2.PMES)
   Store (Zero, ^PCI0.EHC2.WRTA)
}

 

In other words, I removed something related to windows and I get kernel panic ?! LOL

 

You really should read the thread from start if you want to make your own dsdt. That way you will see what else has to be removed when you delete that method. And you will also find out what we use that AG3E for :(

Link to comment
Share on other sites

I think I solved the kernel panic.. I replaced:

 

OperationRegion (GPIO, SystemIO, 0x800, 0x05)
  {
 G001, 8,
  }

 

with:

 

OperationRegion (GPIO, SystemIO, 0x800, 0x06)
  {
 GP9, 1,
 G001, 8,
  }

 

Someone explains me why does this happened?

 

I've only seen GP9 used if you are using the GigE code in dsdt for ethernet - you need to add GP9. You have code in your dsdt for ethernet? If so are you using GIGE or LAN0, LAN 1 etc? If not then I'm unsure of its purpose.

Link to comment
Share on other sites

Kdawg, does your P35 board have options for C2 and C4 states ? Or do you know if any ICH9 boards have those options ?
It's like you said I have a processor that doesn't support C2 & C4 so I never saw those options. I used the same processor in both boards. The EP35-DS4 board is retired (anyone want to buy it?).

 

Update: I just flipped through the P35 manual and didn't see the C2 & C4 options. However I do see those options in my P45 manual. So I guess there's no support… that sucks. I wonder if they might have added it in a later BIOS update.

Link to comment
Share on other sites

It's like you said I have a processor that doesn't support C2 & C4 so I never saw those options. I used the same processor in both boards. The EP35-DS4 board is retired (anyone want to buy it?).

 

Update: I just flipped through the P35 manual and didn't see the C2 & C4 options. However I do see those options in my P45 manual. So I guess there's no support… that sucks. I wonder if they might have added it in a later BIOS update.

 

I have never before had reason to read ICH9 datasheet but earlier today I had to check one page number from it. While doing that I spotted something interesting on page 510, looks like only ICH9 mobile version has support for C3 and C4.

Link to comment
Share on other sites

I have "US31" between UHC4 and UHC5:

 

Device (US31)
{
   Name (_ADR, 0x001D0003)
   Method (_S3D, 0, NotSerialized)
   {
       If (LEqual (OSFL, 0x02))
       {
           Return (0x02)
       }

       Return (0x03)
   }

   Name (_PRW, Package (0x02)
   {
       0x0E, 
       0x03
   })
}

 

Is safe to remove this device from DSDT? Thanks guys!

Link to comment
Share on other sites

I have "US31" between UHC4 and UHC5:

 

Device (US31)
{
   Name (_ADR, 0x001D0003)
   Method (_S3D, 0, NotSerialized)
   {
       If (LEqual (OSFL, 0x02))
       {
           Return (0x02)
       }

       Return (0x03)
   }

   Name (_PRW, Package (0x02)
   {
       0x0E, 
       0x03
   })
}

 

Is safe to remove this device from DSDT? Thanks guys!

Yeah take it out.
Link to comment
Share on other sites

 Share

×
×
  • Create New...