Jump to content
d00d

GA-EX58 and GA-X58A DSDT native power management modifications

1,718 posts in this topic

Recommended Posts

Manual sleep functionality (Power button and Apple:Sleep) works for me at any clock.

Automatic sleep only works for me using PenntNeu-script.

Removing the IRQ from RTC prevents sleep from functioning, make sure that the IRQs are only removed from PIC and TMR.

 

Sleep still functions on stock clocks though. I'll check my DSDT though.

 

Just checked and those sections look like this:

 

				Device (PIC)
			{
				Name (_HID, EisaId ("PNP0000"))
				Name (_CRS, ResourceTemplate ()
				{
					IO (Decode16,
						0x0020,			 // Range Minimum
						0x0020,			 // Range Maximum
						0x01,			   // Alignment
						0x02,			   // Length
						)
					IO (Decode16,
						0x00A0,			 // Range Minimum
						0x00A0,			 // Range Maximum
						0x01,			   // Alignment
						0x02,			   // Length
						)
				})
			}

			Device (TMR)
			{
				Name (_HID, EisaId ("PNP0100"))
				Name (ATT5, ResourceTemplate ()
				{
					IO (Decode16,
						0x0040,			 // Range Minimum
						0x0040,			 // Range Maximum
						0x00,			   // Alignment
						0x04,			   // Length
						)
				})
				Name (ATT6, ResourceTemplate ()
				{
					IO (Decode16,
						0x0040,			 // Range Minimum
						0x0040,			 // Range Maximum
						0x00,			   // Alignment
						0x04,			   // Length
						)
				})
				Method (_CRS, 0, NotSerialized)
				{
					If (LGreaterEqual (OSFX, 0x03))
					{
						If (HPTF)
						{
							Return (ATT6)
						}
						Else
						{
							Return (ATT5)
						}
					}
					Else
					{
						Return (ATT5)
					}
				}
			}

 

RTC section:

 

				Device (RTC)
			{
				Name (_HID, EisaId ("PNP0B00"))
				Name (ATT0, ResourceTemplate ()
				{
					IO (Decode16,
						0x0070,			 // Range Minimum
						0x0070,			 // Range Maximum
						0x00,			   // Alignment
						0x02,			   // Length
						)
				})
				Name (ATT1, ResourceTemplate ()
				{
					IO (Decode16,
						0x0070,			 // Range Minimum
						0x0070,			 // Range Maximum
						0x00,			   // Alignment
						0x02,			   // Length
						)
				})
				Method (_CRS, 0, NotSerialized)
				{
					If (LGreaterEqual (OSFX, 0x03))
					{
						If (HPTF)
						{
							Return (ATT1)
						}
						Else
						{
							Return (ATT0)
						}
					}
					Else
					{
						Return (ATT0)
					}
				}
			}

 

Oh, and here's my current DSDT if you want to have a look.

 

http://dl.dropbox.com/u/790162/DSDT.dsl

Share this post


Link to post
Share on other sites
Advertisement
Sleep still functions on stock clocks though. I'll check my DSDT though.

 

Just checked and those sections look like this:

 

...

 

Oh, and here's my current DSDT if you want to have a look.

 

http://dl.dropbox.com/u/790162/DSDT.dsl

You are missing the IRQ in RTC, put it back and sleep will function.

Did you use fassl's DSDT Patcher that removes the IRQ from RTC?

Better to use iasl or DSDTSE and make manual edits.

Here's the original code that includes the IRQ (with CMOS fix);

                Device (RTC)
               {
                   Name (_HID, EisaId ("PNP0B00"))
                   Name (ATT0, ResourceTemplate ()
                   {
                       IO (Decode16,
                           0x0070,             // Range Minimum
                           0x0070,             // Range Maximum
                           0x00,               // Alignment
                           0x02,               // Length
                           )
                       IRQNoFlags ()
                           {8}
                   })
                   Name (ATT1, ResourceTemplate ()
                   {
                       IO (Decode16,
                           0x0070,             // Range Minimum
                           0x0070,             // Range Maximum
                           0x00,               // Alignment
                           0x02,               // Length
                           )
                   })
                   Method (_CRS, 0, NotSerialized)
                   {
                       If (LGreaterEqual (OSFX, 0x03))
                       {
                           If (HPTF)
                           {
                               Return (ATT1)
                           }
                           Else
                           {
                               Return (ATT0)
                           }
                       }
                       Else
                       {
                           Return (ATT0)
                       }
                   }
               }

Update:

I removed the IRQ from RTC and it didn't cause sleep problems in 10.6.2, but it did in 10.6.1.

Share this post


Link to post
Share on other sites

public utility topic ;):)

 

d00d, let me know, in idle and load what are your temps? Stock rad?

 

 

PS: Could you point me in the direction to get rid of the "x.x" in my smbios.plist?

 

 

capturedcran20091123170.th.jpg

 

 

PPS: Do you have more infos listed about your material in the system profiler?

 

 

capturedcran20091123173.th.jpg

 

 

TRD

Share this post


Link to post
Share on other sites
You are missing the IRQ in RTC, put it back and sleep will function.

Did you use fassl's DSDT Patcher that removes the IRQ from RTC?

Better to use iasl or DSDTSE and make manual edits.

Here's the original code that includes the IRQ (with CMOS fix);

                Device (RTC)
               {
                   Name (_HID, EisaId ("PNP0B00"))
                   Name (ATT0, ResourceTemplate ()
                   {
                       IO (Decode16,
                           0x0070,             // Range Minimum
                           0x0070,             // Range Maximum
                           0x00,               // Alignment
                           0x02,               // Length
                           )
                       IRQNoFlags ()
                           {8}
                   })
                   Name (ATT1, ResourceTemplate ()
                   {
                       IO (Decode16,
                           0x0070,             // Range Minimum
                           0x0070,             // Range Maximum
                           0x00,               // Alignment
                           0x02,               // Length
                           )
                   })
                   Method (_CRS, 0, NotSerialized)
                   {
                       If (LGreaterEqual (OSFX, 0x03))
                       {
                           If (HPTF)
                           {
                               Return (ATT1)
                           }
                           Else
                           {
                               Return (ATT0)
                           }
                       }
                       Else
                       {
                           Return (ATT0)
                       }
                   }
               }

 

I'm using a GUI version of iasl called iaslMe, you just drag the files and it compiles/decompiles it.

 

I just did the above and decompiled DSDT.aml again after compiling to check if the IRQ part still existed and it did, rebooted and tried sleep but it's not working still. The computer wakes, but I just hear a continual fan noise from my GPU and nothing happens.

 

My current clock is 4.0GHz (20x200) with turbo boost disabled and all custom voltages.

 

Any ideas? I'm really stuck on this...

 

Here's my current compiled DSDT if you want to take a look: http://dl.dropbox.com/u/790162/DSDT.aml

 

Thanks

Share this post


Link to post
Share on other sites
public utility topic :):)

 

d00d, let me know, in idle and load what are your temps? Stock rad?

 

PS: Could you point me in the direction to get rid of the "x.x" in my smbios.plist?

 

PPS: Do you have more infos listed about your material in the system profiler?

 

TRD

My idle is around 47C at 4.1 GHz and no turbo, and up around 95C running mprime, using a Noctua NH-U12P SE2.

I'm not sure why you have x.x if it's not defined that way in smbios.plist.

My System Profiler:Hardware screen shows the same fields as yours.

 

I'm using a GUI version of iasl called iaslMe, you just drag the files and it compiles/decompiles it.

 

I just did the above and decompiled DSDT.aml again after compiling to check if the IRQ part still existed and it did, rebooted and tried sleep but it's not working still. The computer wakes, but I just hear a continual fan noise from my GPU and nothing happens.

 

My current clock is 4.0GHz (20x200) with turbo boost disabled and all custom voltages.

 

Any ideas? I'm really stuck on this...

 

Here's my current compiled DSDT if you want to take a look: http://dl.dropbox.com/u/790162/DSDT.aml

 

Thanks

Your DSDT looks correct, but appears to be based on a BIOS older than F9e that has CPU8, 9 and A through F for future i9 support.

I couldn't get sleep to work correctly until I used F9e with Chameleon-2.0-RC3-r658-bin.tar.gz and netkas's boot_v10.5.zip as the bootloader.

Do you have the `Start up automatically after a power failure' option checked in Energy Saver?

Share this post


Link to post
Share on other sites
My idle is around 47C at 4.1 GHz and no turbo, and up around 95C running mprime, using a Noctua NH-U12P SE2.

I'm not sure why you have x.x if it's not defined that way in smbios.plist.

My System Profiler:Hardware screen shows the same fields as yours.

 

Your DSDT looks correct, but appears to be based on a BIOS older than F9e that has CPU8, 9 and A through F for future i9 support.

I couldn't get sleep to work correctly until I used F9e with Chameleon-2.0-RC3-r658-bin.tar.gz and netkas's boot_v10.5.zip as the bootloader.

Do you have the `Start up automatically after a power failure' option checked in Energy Saver?

 

Probably a good time to note that I don't have the UD5, I have a UD3R - so it's a different BIOS. I'm using the latest BIOS available for my board (F6) available from here:

 

http://www.giga-byte.com/Products/Motherbo...?ProductID=2989

 

Is there a way those DSDT fixes can be modified specifically for this BIOS/board? And yes, I do have that option checked in prefs, the only power management function I have disabled is HDD sleep.

 

I'm also using PC-EFI 10.5

Share this post


Link to post
Share on other sites
Probably a good time to note that I don't have the UD5, I have a UD3R - so it's a different BIOS. I'm using the latest BIOS available for my board (F6) available from here:

 

http://www.giga-byte.com/Products/Motherbo...?ProductID=2989

 

Is there a way those DSDT fixes can be modified specifically for this BIOS/board? And yes, I do have that option checked in prefs, the only power management function I have disabled is HDD sleep.

 

I'm also using PC-EFI 10.5

The DSDT fixes should work on any GA-EX58 board including the UD3, except for the ALC889 modification, because you have an ALC888.

I'd suggest using a newer BIOS from http://forums.tweaktown.com/f69/gigabyte-latest-bios-28441/

Share this post


Link to post
Share on other sites

d00d,

 

I have trouble with sound. For some reason my sound outputs through black jack.

Would you add your modified ALC889a.kext to original post.

 

Thank you.

Share this post


Link to post
Share on other sites
d00d,

 

I have some trouble to get sound to work.

Would you add your modified ALC889a.kext to original post.

 

Thank you.

Unmodified there's three sound assertion messages, modified there's two.

Remove the following;

<key>BuiltInHDA</key>

<dict>

...

</dict>

Share this post


Link to post
Share on other sites
Unmodified there's three sound assertion messages, modified there's two.

Remove the following;

<key>BuiltInHDA</key>

<dict>

...

</dict>

 

Removed the following code, but sound still outputs from black jack only:

		<key>BuiltInHDA</key>
	 <dict>
		 <key>CFBundleIdentifier</key>
		 <string>com.apple.driver.AppleHDAController</string>
		 <key>CodecAddressFilterArray</key>
		 <array>
			 <dict>
				 <key>CodecAddressMask</key>
				 <data>AQAAAA==</data>
				 <key>LayoutID</key>
				 <integer>16392</integer>
			 </dict>

Share this post


Link to post
Share on other sites
Removed the following code, but sound still outputs only from black jack:

		<key>BuiltInHDA</key>
	 <dict>
		 <key>CFBundleIdentifier</key>
		 <string>com.apple.driver.AppleHDAController</string>
		 <key>CodecAddressFilterArray</key>
		 <array>
			 <dict>
				 <key>CodecAddressMask</key>
				 <data>AQAAAA==</data>
				 <key>LayoutID</key>
				 <integer>16392</integer>
			 </dict>

You didn't remove the whole section, remove all of BuiltinHDA up to the following line;

<key>HDA Platform Resource</key>

That doesn't solve any functional problem though, it just removes one of the three sound assertion messages.

Share this post


Link to post
Share on other sites
You didn't remove the whole section, remove all of BuiltinHDA up to the following line;

<key>HDA Platform Resource</key>

That doesn't solve any functional problem though, it just removes one of the three sound assertion messages.

 

Edited the kext properly this time. Thank you.

Also fixed black jack output issue, but as you said it was different problem.

 

Awesome setup.

 

With overclock @ 4.0GHz, Thermalright Ultra-120 Extreme cooler and following voltages I am getting 37C at idle:

- Core voltage: 1.336V

- CPU PLL: 1.88V

- QPI/VTT: 1.34V

- Dram Voltage: 1.6V

All power saving features and Intel Turbo Bust are disabled in BIOS.

Share this post


Link to post
Share on other sites

Same temperature here. Delta 42-48° Celcius @ 1.25 vcore and a third party rad with nullcpu..

 

I asked about the sytem profiler because here, the person reffers two lines relating to the SMC.

 

 

 

Is there a way to fix the shutdown issues with the DSDT? I would like to give a try with the master chief re/start solution kext.

 

 

Thanks d00d

Share this post


Link to post
Share on other sites
Edited the kext properly this time. Thank you.

Also fixed black jack output issue, but as you said it was different problem.

 

Awesome setup.

 

With overclock @ 4.0GHz, Thermalright Ultra-120 Extreme cooler and following voltages I am getting 37C at idle:

- Core voltage: 1.336V

- CPU PLL: 1.88V

- QPI/VTT: 1.34V

- Dram Voltage: 1.6V

All power saving features and Intel Turbo Bust are disabled in BIOS.

That's running cooler than mine at 19C ambient, did you manually set voltages to be able to boot, to get lower temperatures, or both?

 

Same temperature here. Delta 42-48° Celcius @ 1.25 vcore and a third party rad with nullcpu..

 

I asked about the sytem profiler because here, the person reffers two lines relating to the SMC.

 

Is there a way to fix the shutdown issues with the DSDT? I would like to give a try with the master chief re/start solution kext.

 

Thanks d00d

The second SMC Version and Serial Number lines are for the Apple hardware processor tray.

The GB board doesn't have a two part MB, so one line for each is appropriate.

 

I don't have a shutdown issue, but I've been following that thread.

It appears that there's a problem with restart after sleep and wake, but I generally use shutdown instead so I didn't notice the problem.

 

Topic updated for speed step on 10.6.2;

 

You can also go further than how Apple intended the MacPro4,1 to work by using MP41SpeedStepFix.kext (10.6.0 and 10.6.1) or MacPro4_1.plist (10.6.2) to give your machine the speed step capability of reducing clock speed under idle conditions.

Replace /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/MacPro4_1.plist with the modified one.

The CPU will clock down to 60% with either solution.

It will clock up to 105% (x21) for MP41SpeedStepFix.kext or 110% (x22) for MacPro4_1.plist, if turbo is enabled in BIOS, or 100% if disabled.

...

THe KiNG's MP41SpeedStepFix.kext (10.6.0 and 10.6.1): google for the link

demong1's MacPro4_1.plist (10.6.2): located in the same forum site and topic as MP41SpeedStepFix.kext

Share this post


Link to post
Share on other sites

I updated my BIOS to the latest BETA available from Gigabyte's website and it solved the sleep issue. Thanks so much for the help, everything works amazingly.

 

Edit:

 

I do have two other small queries. Since this fresh install my secondary drive has been showing up in finder with an eject button next to it:

 

Screen%20shot%202009-11-24%20at%2016.04.23.png

 

I'm not really sure why this is happening because that drive (2 separate partitions) is plugged to the same ports as my main drive. The only reason I can think why the main drive doesn't have it is because it's the startup disk.

 

My other query is about my keyboard. I use Apple's bluetooth keyboard but after waking from sleep the keys are bound differently - what are normally the keys to adjust sound control dashboard etc. I can replug my USB bluetooth adapter but that's a bit annoying to have to do every time.

 

Thanks

Share this post


Link to post
Share on other sites
That's running cooler than mine at 19C ambient, did you manually set voltages to be able to boot, to get lower temperatures, or both?

 

I am using your DSDT and Kexts (replaced Device (PCI0) section in your DSDT to match my video card)

My Core i7 920 has D0 stepping.

Temperatures are displayed with latest Hardware Monitor application.

System is running in 64 bit mode.

 

My RAM and CPU Cooler info:

Mushkin Enhanced Redline (Model 998691): http://www.newegg.com/Product/Product.aspx...6-050-_-Product

Thermalright Ultra-120 Extreme: http://www.crazypc.com/products/ultra-120-1366-50985.html

 

Attached is my BIOS template.

GA_EX58_BIOS_F9e_template.zip

Share this post


Link to post
Share on other sites
I updated my BIOS to the latest BETA available from Gigabyte's website and it solved the sleep issue. Thanks so much for the help, everything works amazingly.

 

Edit:

 

I do have two other small queries. Since this fresh install my secondary drive has been showing up in finder with an eject button next to it:

 

Screen%20shot%202009-11-24%20at%2016.04.23.png

 

I'm not really sure why this is happening because that drive (2 separate partitions) is plugged to the same ports as my main drive. The only reason I can think why the main drive doesn't have it is because it's the startup disk.

 

My other query is about my keyboard. I use Apple's bluetooth keyboard but after waking from sleep the keys are bound differently - what are normally the keys to adjust sound control dashboard etc. I can replug my USB bluetooth adapter but that's a bit annoying to have to do every time.

 

Thanks

Good to see that it solved your sleep issue.

I was initially wary of using a beta BIOS, but if nobody else has a problem on that forum after a few days it's probably stable, and you can easily back out.

 

The drives have eject buttons because of the SATA hot plug functionality of the MB, and the one that has the active OS wouldn't have an eject button.

This is convenient when you want to be able to mount and unmount external eSATA drives connected through the PCI slot eSATA interface that's included with UD4 through UD7, if that's connected to one or two of the six SATA ICH10 MB ports.

UD7 also has two combination USB and powered eSATA ports at the back panel.

The non OS drives can be ejected in the Finder, and mounted again with Disk Utility or by unplug and plug.

It's correct functionality, but if you didn't want the eject capability, device-id `0x81, 0x26, 0x00, 0x00' can instead be set in the IDE1 section of the DSDT and you wouldn't need to use OrangeIconFix.kext either.

That would incorrectly show ESB2 instead of ICH10 in System Profiler:Hardware:Serial-ATA however.

 

I don't have an answer for the BT sleep issue, perhaps someone else has a solution.

Share this post


Link to post
Share on other sites

EDIT:

 

Ok, i have placed the demong1's plist in the right place but i don't get that part:

 

 

"use MacPro4,1 as model name.LPC-ICH10 in DSDT"

 

 

Please, could you explain this part in a clearer way? ;)

Share this post


Link to post
Share on other sites
About the speedstep, which kext from apple allow this? The AppleIntelCPUPowerManagement?

 

I already use the evOspeedstep.kext, did you compare this one with the MP41....? The X21 multiplier works great with an O/C and turbo enabled thus far. Considering i have disabled some power savers, EIST,C1E, etc,... i'm not sure the i7 could run at low voltage. The 42-48°C value in idle speak for itself i guess.

Speed step is directly related to ACPI_SMC_PlatformPlugin.kext.

In ioreg at IOService:/AppleACPIPlatformExpert/CPU0@0/AppleACPICPU/ACPI_SMC_PlatformPlugin you will see CPUPLimit with a value of 0x0, a different value if it's not activated, or not there at all if not enabled.

 

I haven't experimented with evospeedstep.kext because I can't locate the download link on their site.

Share this post


Link to post
Share on other sites
Ok, i have placed the demong1's plist in the right place but i don't get that part:

"use MacPro4,1 as model name.LPC-ICH10 in DSDT"

I assume it means to identify your machine as MacPro4,1 in smbios.plist, fix the DSDT's PX40 section so that AppleLPC.kext loads, and fix the IDE1 section to identify the controller as ICH10.

Share this post


Link to post
Share on other sites
I confirm i don't have a CPUPLimit value at the moment.

 

.. it's already fine for the smbios plist, but i'm a beginner with the dsdt edition and the PX40... it's chinese for me

 

Here is a screencap, does everything looks right for you?

 

d00d, you have patched your DSDT or the AppleLPC.kext?

Your PX40 shows no modifications, please read page 1.

Share this post


Link to post
Share on other sites

I think i got it know, your infos are helpful ;) I managed to patch my dsdt, LPC works fine now.

 

 

 

I see that you don't use a disabler, i just wonder how you managed this because i get a kp without it on startup. ;) (My AppleHPET loads)

 

 

A lot of question i know :)

 

 

TY

 

 

 

 

EDIT 25/11

 

 

Today , i removed the nullcpupowermanagement.kext to check if i got a kp at the load process. And no kp..

 

The only thing which is different, is my dsdt with the PX40 mod; checked the automatic restart after an electrical failure, that's all.

 

I confirm the LPC and HPET are loaded (sytem profiler) but still noCPULimit shown in my registry.

 

I probably have to mod the dsdt to include some p states to reach a vanilla speedstep at this stage.

 

I noticed as well, that my temperature didn't increase without a disabler this time. Before i get + 8°C. Perfs are the same.

 

 

capturedcran20091125152.th.jpg

 

 

capturedcran20091125155.th.jpg

 

 

capturedcran20091125155.th.jpg

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×