Jump to content

DSDT fixes for Gigabyte boards


iSoprano
 Share

1,909 posts in this topic

Recommended Posts

if i got all information for my cpu, i mean this

 

								Package (0x06) { 0x0C5E, 0x40, 0x0A, 0x0A, 0x4922, 0x4922 },
							Package (0x06) { 0x0BB5, 0x3B, 0x0A, 0x0A, 0x0920, 0x0920 },
							Package (0x06) { 0x0B0F, 0x37, 0x0A, 0x0A, 0x481F, 0x481F },
							Package (0x06) { 0x0A68, 0x32, 0x0A, 0x0A, 0x081D, 0x081D },
							Package (0x06) { 0x09C2, 0x2E, 0x0A, 0x0A, 0x471C, 0x471C },
							Package (0x06) { 0x091B, 0x2A, 0x0A, 0x0A, 0x071A, 0x071A },
							Package (0x06) { 0x0875, 0x26, 0x0A, 0x0A, 0x4618, 0x4618 },
							Package (0x06) { 0x07CE, 0x22, 0x0A, 0x0A, 0x0616, 0x0616 }

 

is it safe to use them ?

 

Hi cparm, would you like to share your dsdt? Since we share almost the same hardware I think yours can be a big help for comparison.

Thanks.

Link to comment
Share on other sites

mm67

 

I've sort of worked out why your code hasn't worked for me - there is an issue with Device HUB0 (or PCIB).

 

With your latest dsdt stepping wouldn't work for me.

Also do you have your Firewire Bus showing under system profiler?

 

Both of these have been fixed and I'll attach my dsdt when I get a chance to incorporate MC's optimisations into it.

Link to comment
Share on other sites

mm67

 

I've sort of worked out why your code hasn't worked for me - there is an issue with Device HUB0 (or PCIB).

 

With your latest dsdt stepping wouldn't work for me.

Also do you have your Firewire Bus showing under system profiler?

 

Both of these have been fixed and I'll attach my dsdt when I get a chance to incorporate MC's optimisations into it.

 

Both PCIB and Firewire work as you can see, Firewire is also visible in System Profiler. And I know that Firewire works since I usually have a WD external HD connected to it.

post-375259-1256816868_thumb.png

Link to comment
Share on other sites

Actually, you only need to change the voltages in the p-states specified, to simulate the voltage your CPU is running on now (when OC'd). mm67 has the same CPU as you, so the p-states are otherwise fine. Use eg. p-state calculator to generate the values you need.

 

It's this last bit you need to change (for each p-state):

				Package (0x06) { 0, 0, 10, 10, [color="#FF0000"]0x616[/color], 5 }

 

PS. I see you've got the UD3R, it needs a little device-id modification for LPC to run correctly, I've added it here to 'Device (LPCB)', see attachment. Other changes from mm67's DSDT is that I removed Device (PEGP), didn't work for me, and edited Device (HDEF) so it works again. Check the Q9550 stock P-state values from mm67's DSDT, I've entered values for my Q8400. If you don't want to use PSS at all, you can just leave it be, because it's commented out.

 

This should enable you to use the DSDT without any modifications, right experts? Just make sure to use the new Legacy kexts required because Devices SBUS and EC have been added. [LegacyACPI_SMC_PP.kext and LegacyAPGM.kext. Edit LegacyACPI if you don't use MacPro3,1 as identifier. Add your gfx-device id to LegacyAGPM.kext if it's not there.]

 

Please correct me if I said something funny, but hope this helped.

 

PPS. How are you OC'ing atm? FSB, multi? vcore? Air? Temps?

 

 

WoW!

Thanks for the answer.

 

My system is running very stable.

I´m using DSDT to fix sound, enable "builtin" USB, fix RTC reset and I think something related to ICH10, but useless now because I´m running my OS X on the Gigabyte GGB36X ports.

Of course would be nice to have a more MAC like Hackintosh and DSDT is the path.

 

My OC is running 471 x 8.5 but I don't remember the voltages now. Will check later when in home. My idle temperature is running about 37°C.

Link to comment
Share on other sites

Hello,

I have just stumbled upon this thread. I have done a few DSDT changes but still find the whole thing confusing. I want a perfect DSDT that runs on any EP35-DS3L regardless of video card difference or CPU difference, but with the P-state/C-state stuff. Is that possible? I downloaded your latest DSDT update and stripped the 9600 part from it, and everything works well except when I put machine to sleep, it cold boots on wake. I imagine this is a simple fix. Some help would be great! Thanks.

 

Edit:

Oops I forgot to select "Start up automatically after a power failure." and now it works. My other question still stands, can I use this DSDT for a Q9300 and a E5200, for example? Thanks!

Link to comment
Share on other sites

Kinda stuck again,

 

I've attached two folders:

 

One contains a shortened dsdt with MC's additions but for some reason doesnt work yet on my system.

 

Problem one: "Unable to list firewire devices" in red text appears in System Profiler under Firewire but appears OK in Ioreg.

Problem two: P-States dont step, temps around 45 degrees.

Problem three: Grab doesnt show anything (hence why I cant attach screenshots)

 

The other folder contains a working dsdt which fixes problems 1&2 above but is based on my original dsdt and is very long. Problem 3 remains.

 

I suspect the problem is based around Device PCIB. Whenever I remove the LNKA etc blocks of code then that causes the issues. Everything else is the same between the two.

 

My only other alternative is to go back to my pre SMBus dsdt which works fine.

Keeza.zip

Link to comment
Share on other sites

When I use LegacyACPI_SMC_PP.kext and LegacyAGPM.kext the GUI seems sluggish and I get static in audio after sleep if I hold down right arrow key in Terminal. That is my test. LegacyAGPM.kext already has 0622 for my 9600GT in MacPro3,1. Anyone else get these? Great work, I'll be following. Thank you.

Link to comment
Share on other sites

Hi cparm, would you like to share your dsdt? Since we share almost the same hardware I think yours can be a big help for comparison.

Thanks.

sure,

 

but do not copy/paste this dsdt, otherwise it surely don't works,

 

try to understand it :(

 

 

note that i need to have chud package installed when i use vanilla speedstep (w/o nullcpuPM and sleepenabler), to have a proper sleep/wake function, you can find this package on the apple dev website or with the devtools on the 10.6 DVD

Link to comment
Share on other sites

sure,

 

but do not copy/paste this dsdt, otherwise it surely don't works,

 

try to understand it :D

 

 

note that i need to have chud package installed when i use vanilla speedstep (w/o nullcpuPM and sleepenabler), to have a proper sleep/wake function, you can find this package on the apple dev website or with the devtools on the 10.6 DVD

 

Thanks cparm. I will try to understand (although it's hard to grasp this magic). But guess using your aml file should work with only using audio and ieee, since that are the differences between our board.

Why need chud package? I remember some time ago, this package helped in properly shutting down the first core and so fixing restart/shutdown.

Link to comment
Share on other sites

When I use LegacyACPI_SMC_PP.kext and LegacyAGPM.kext the GUI seems sluggish and I get static in audio after sleep if I hold down right arrow key in Terminal. That is my test. LegacyAGPM.kext already has 0622 for my 9600GT in MacPro3,1. Anyone else get these? Great work, I'll be following. Thank you.

 

Hi Nathan7

 

If you using MacPro3,1 you don't need the Legacy SMC kext.

 

You can use mm67's last incarnation of Scope (PR) but you will need to add your own Fid and Vid values (highlighted in red.) that can be found with voodoopower. Please see the vanilla speedstep thread. here

 

    Scope (_PR)
   {
       Processor (CPU0, 0x00, 0x00000410, 0x06) {}
       Processor (CPU1, 0x01, 0x00000410, 0x06) {}
       Processor (CPU2, 0x02, 0x00000410, 0x06) {}
       Processor (CPU3, 0x03, 0x00000410, 0x06) {}
   }

   Scope (_PR.CPU0)
   {
    Method (_PSS, 0, NotSerialized)
	{
		Return (Package(0x06)
		{
			Package (0x06) { 0, 0, 10, 10, [color="#ff0000"]0x4820[/color], 0 },
			Package (0x06) { 0, 0, 10, 10, [color="#ff0000"]0x081E,[/color] 1 },
			Package (0x06) { 0, 0, 10, 10, [color="#ff0000"]0x471C[/color], 2 },
			Package (0x06) { 0, 0, 10, 10, [color="#ff0000"]0x071A[/color], 3 },
			Package (0x06) { 0, 0, 10, 10, [color="#ff0000"]0x4618[/color], 4 },
			Package (0x06) { 0, 0, 10, 10, [color="#ff0000"]0x0616,[/color] 5 }
		})
	}
       Method (_CST, 0, NotSerialized)
       {
		Return (Package (0x02)
		{
			One, 
			Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x1, 0x2, 0x0, 0x1,)},0x01,0x9D,0x3E8}
		})
       }
   }
   Scope (_PR.CPU1)
   {
       Method (_CST, 0, NotSerialized)
       {
           Return (Package (0x04)
           {
               0x03, 
               Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x01, 0x02, 0x000, ,)},0x01,0x00,0x3E8}, 
               Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x08, 0x00, 0x414, ,)},0x02,0x01,0x1F4}, 
               Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x08, 0x00, 0x415, ,)},0x03,0x55,0x0FA} 
           })
       }
   }

   Scope (_PR.CPU2)
   {
       Method (_CST, 0, NotSerialized)
       {
               Return (^^CPU1._CST ())
       }
   }
   Scope (_PR.CPU3)
   {
       Method (_CST, 0, NotSerialized)
       {
               Return (^^CPU1._CST ())
       }
   }

 

##EDIT## How to find FId and Viod values using voodoo power http://www.superhai.com/forum/viewtopic.php?f=12&t=90

 

D.

Link to comment
Share on other sites

Hi Nathan7

 

If you using MacPro3,1 you don't need the Legacy SMC kext.

 

You can use mm67's last incarnation of Scope (PR) but you will need to add your own Fid and Vid values (highlighted in red.) that can be found with voodoopower. Please see the vanilla speedstep thread. here

 

    Scope (_PR)
   {
       Processor (CPU0, 0x00, 0x00000410, 0x06) {}
       Processor (CPU1, 0x01, 0x00000410, 0x06) {}
       Processor (CPU2, 0x02, 0x00000410, 0x06) {}
       Processor (CPU3, 0x03, 0x00000410, 0x06) {}
   }

   Scope (_PR.CPU0)
   {
    Method (_PSS, 0, NotSerialized)
	{
		Return (Package(0x06)
		{
			Package (0x06) { 0, 0, 10, 10, [color="#ff0000"]0x4820[/color], 0 },
			Package (0x06) { 0, 0, 10, 10, [color="#ff0000"]0x081E,[/color] 1 },
			Package (0x06) { 0, 0, 10, 10, [color="#ff0000"]0x471C[/color], 2 },
			Package (0x06) { 0, 0, 10, 10, [color="#ff0000"]0x071A[/color], 3 },
			Package (0x06) { 0, 0, 10, 10, [color="#ff0000"]0x4618[/color], 4 },
			Package (0x06) { 0, 0, 10, 10, [color="#ff0000"]0x0616,[/color] 5 }
		})
	}
       Method (_CST, 0, NotSerialized)
       {
		Return (Package (0x02)
		{
			One, 
			Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x1, 0x2, 0x0, 0x1,)},0x01,0x9ED,0x3E8}
		})
       }
   }
   Scope (_PR.CPU1)
   {
       Method (_CST, 0, NotSerialized)
       {
           Return (Package (0x04)
           {
               0x03, 
               Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x01, 0x02, 0x000, ,)},0x01,0x00,0x3E8}, 
               Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x08, 0x00, 0x414, ,)},0x02,0x01,0x1F4}, 
               Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x08, 0x00, 0x415, ,)},0x03,0x55,0x0FA} 
           })
       }
   }

   Scope (_PR.CPU2)
   {
       Method (_CST, 0, NotSerialized)
       {
               Return (^^CPU1._CST ())
       }
   }
   Scope (_PR.CPU3)
   {
       Method (_CST, 0, NotSerialized)
       {
               Return (^^CPU1._CST ())
       }
   }

 

##EDIT## How to find FId and Viod values using voodoo power http://www.superhai.com/forum/viewtopic.php?f=12&t=90

 

D.

 

Please fix this:

Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x1, 0x2, 0x0, 0x1,)},0x01,0x9ED,0x3E8}

 

It should be this:

Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x1, 0x2, 0x0, 0x1,)},0x01,0x9D,0x3E8}

Link to comment
Share on other sites

Please fix this:

Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x1, 0x2, 0x0, 0x1,)},0x01,0x9ED,0x3E8}

 

It should be this:

Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x1, 0x2, 0x0, 0x1,)},0x01,0x9D,0x3E8}

Do I need to change mine too?

I copied the new code from your dsdt_test.dsl from here which has 0x9ED. Though I have since changed the _PSS Method for my CPU as you showed me.

Link to comment
Share on other sites

Do I need to change mine then?

I copied the new code from your dsdt_test.dsl from here which has 0x9ED. I have since changed my _PSS Method for my CPU though.

 

Yes, that is a typo. I'll fix the original if it is still like that.

 

/edit

Ok, now fixed. Just change that one line in your dsdt and recompile. That one extra letter makes a big difference.

Link to comment
Share on other sites

Yes, that is a typo. I'll fix the original if it is still like that.

 

/edit

Ok, now fixed. Just change that one line in your dsdt and recompile. That one extra letter makes a big difference.

Great thanks. Quick question, when using my current DSDT with the P-states, CPUi / VoodooMonitor shows the multiplier changing between x6 and x8 only, even though I now have 5 different P-states identified in _PSS Method. And is it right that we're only changing frequency with the SpeedStep and not voltage?

Link to comment
Share on other sites

Please fix this:

Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x1, 0x2, 0x0, 0x1,)},0x01,0x9ED,0x3E8}

 

It should be this:

Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x1, 0x2, 0x0, 0x1,)},0x01,0x9D,0x3E8}

 

Ooops .... Done!

 

Great thanks. Quick question, when using my current DSDT with the P-states, CPUi / VoodooMonitor shows the multiplier changing between x6 and x8 only, even though I now have 5 different P-states identified in _PSS Method. And is it right that we're only changing frequency with the SpeedStep and not voltage?

 

Hi Blackosx

 

You should be seeing switches through all 5 steps - if of course your CPU supports 5 states?

 

The value defined in the PSS table (in red above) is FId and Vid (frequency ID , voltage ID.) This can easely be found using the voodoopower kext. see http://www.superhai.com/forum/viewtopic.php?f=12&t=90

 

D.

Link to comment
Share on other sites

Great thanks. Quick question, when using my current DSDT with the P-states, CPUi / VoodooMonitor shows the multiplier changing between x6 and x8 only, even though I now have 5 different P-states identified in _PSS Method. And is it right that we're only changing frequency with the SpeedStep and not voltage?

 

On my system it's mainly the voltage that is changing, stepping goes most of the time from 6 to 8.5 but I do see other multipliers also.

Link to comment
Share on other sites

Hi Blackosx

 

You should be seeing switches through all 5 steps - if of course your CPU supports 5 states?

 

The value defined in the PSS table (in red above) is FId and Vid (frequency ID , voltage ID.) This can easely be found using the voodoopower kext. see http://www.superhai.com/forum/viewtopic.php?f=12&t=90

 

D.

Hi FormerlyKnownAs

 

Thanks. I am not at my hack right now so I will have to try this later this evening.

But with voodoopower running, typing those commands (the ioreg ones) will give me the FId and Vid values?

Will they be different to the VoodooMonitor results I posted here? and then allow me to have a different set of values to put in the PSS table as to what mm67 showed me in the following post? (Sorry for my noobness)..

 

On my system it's mainly the voltage that is changing, stepping goes most of the time from 6 to 8.5 but I do see other multipliers also.

As far as I remember I didn't see any reported voltage change by CPUi/VoodooMonitor, only frequency change. I will leave this for now and wait until I am on my hack so I can do more testing and accurately report back :D

 

Thanks mm67 & FormerlyKnownAs

Link to comment
Share on other sites

Hi FormerlyKnownAs

 

Thanks. I am not at my hack right now so I will have to try this later this evening.

But with voodoopower running, typing those commands (the ioreg ones) will give me the FId and Vid values?

Will they be different to the VoodooMonitor results I posted here? and then allow me to have a different set of values to put in the PSS table as to what mm67 showed me in the following post? (Sorry for my noobness)..

 

 

Thanks mm67 & FormerlyKnownAs

 

I'd run voodoopower without any additions to Scope PR of DSDT, as any additions may well affect p-state values resulting from voodoopower.kext

 

The Fid Vid values can be read from VoodooMonitor or using commands in terminal.

 

D.

Link to comment
Share on other sites

Alright, I now have everything working as it should. Great.

 

Now, I'm using the onboard audio, ALC889a, with the LegacyHDA.kext. I used to have automatic heaphone detection, ie. the output changed from speakers -> headphones when connecting headphone [to front jack]. It's now gone.

 

Anyone with a working configuration, please post your DSDT, LegacyHDA.kext, so we can figure this last thing out.

 

My Extensions folder and current DSDT (DSDT_EP45-UD3R_29.10.09.dsl.zip) can be found here:

 

http://karvonen.biz/dsdt

 

I'm also using Chameleon 2, with the latest PC EFI 10.5 from netkas, if that can matter.

 

Thanks!

 

Edit: One more thing, as what device does the RAID-device of the UD3R show up in the DSDT?

Link to comment
Share on other sites

I'd run voodoopower without any additions to Scope PR of DSDT, as any additions may well affect p-state values resulting from voodoopower.kext

 

The Fid Vid values can be read from VoodooMonitor or using commands in terminal.

Thanks FormerlyKnownAs. I will also have a good read of your Vanilla SpeedStep thread :D

Link to comment
Share on other sites

I have an EP45-DS4P mobo which is different than most all Gigabyte owners in this thread and am wondering if I'd be able to copy the changes that most of you have made to get sleep to work for me.

 

The only 2 things I changed in my DSDT is fixing the CMOS reset bug, and the USB ports being integrated.

Using 10.6.1.

 

Strange thing is, before I swapped out my C2D E8500 CPU, my Hack would sleep, but when it woke I had garbled graphics. Now after I changed my CPU to a Q9550, the Hack goes to sleep, but when it wakes, graphics don't come back, system keeps trying to reboot and never gets to the boot screen. Can't even get into the BIOS. I have to remove the power cord, battery, let is sit for a few minutes, put battery back in, then put my own BIOS settings back.

 

I can post my DSDT if needed . . .

Link to comment
Share on other sites

I'd run voodoopower without any additions to Scope PR of DSDT, as any additions may well affect p-state values resulting from voodoopower.kext

 

The Fid Vid values can be read from VoodooMonitor or using commands in terminal.

 

D.

Just to update my findings.

I have done a test using VoodooPower and using a DSDT without any additions to Scope(_PR).

 

The FID & VID values, from VoodooMonitor & the terminal commands from Superhai's forum are the same as I had before which is good.

 

With this setup the status in VoodooPower shows the Multiplier using all frequencies (x6/x7/x8/x9/x10) and each voltage (1.132v / 1.148v / 1.164v) associated with each step. So at least I have seen it working how it should. My CPU temp is reported between 46 and 49 degrees while putting the system through a few tasks.

 

Now it's to try again using my latest DSDT with the new Scope(_PR)....

:)

Link to comment
Share on other sites

Just checked Your code again, what makes You think that it is better to have a fixed PSS table in dsdt for one specific processor. My method uses motherboard's own pss tables so they are dynamical. No matter if You change processor or overclock, speedstepping always works.

 

@mm67

 

I would like to take your CPU independent speedstep and replace the one in iSoprano's latest DSDT in the 1st post. I tried to do this but did not get good results. I don't understand which block I need to copy and which block to replace. Could you please tell me how I might do that? Thanks.

Link to comment
Share on other sites

 Share

×
×
  • Create New...