Jump to content

DSDT - Vanilla Speedstep - Generic Scope (_PR)


FKA
 Share

1,949 posts in this topic

Recommended Posts

Can someone explain what that code below does (FormerlyKnownAs) ? I cant find it in my CPU part.

Also if it needs to be configed for cpu (like the _PSS values).

 

            Method (_PSD, 0, NotSerialized)  // i dont have    ( until i know i need   )
           {
               Return (Package (0x05)
               {
                   0x05,
                   0x00,
                   0x00,
                   0xFC,
                   0x04
               })
           }

 

Also my PR_CPU1 -...3 looks a bit less code (maybe better to add yours?)

 

 Scope (_PR.CPU1)
   {
      Method (_CST, 0, NotSerialized)   /  you have also[b] _PSS[/b], [b]_PSD[/b] added for each cpu
       {
           Return (^^CPU0._CST ())
       }

     }

 

Perhaps i will / must do next an dsdt from the scratch (orig.) again - so much added / removed /"optimzed" - perhaps

an grave of errors to ?

Over the time we all forget what we added and why we added, i think ;) If i where not an semihero with dsdt/compter things, i am sure i got lost with my dsdt adding/sliming/editing... Amazing that my PC even runs with that dsdt changes ;)

 

Has someone did such an "new from the scratch" with orig > slim+new dsdt and may share that here ?

I mean an dsdt which ist not "all you can add" dsdt version , more an "all you really need" dsdt version !

Link to comment
Share on other sites

Can someone explain what that code below does (FormerlyKnownAs) ? I cant find it in my CPU part.

Also if it needs to be configed for cpu (like the _PSS values).

 

            Method (_PSD, 0, NotSerialized)  // i dont have    ( until i know i need   )
           {
               Return (Package (0x05)
               {
                   0x05,
                   0x00,
                   0x00,
                   0xFC,
                   0x04
               })
           }

Hi Mitch

 

All I can tell you is what I read from the APCIspec40.pdf.

 

8.4.4.5 _PSD (P-State Dependency)

This optional object provides P-state control cross logical processor dependency information to OSPM. The _PSD object evaluates to a package that identifies a dependency domain number for the logical processor’s P-states, the coordination type, and the number of logical processors belonging to the domain.

 

Arguments: None

Return Value: A Package containing P-state dependency information as described below

Return Value Information:

Package {

NumEntries // Integer

Revision // Integer (BYTE)

Domain // Integer (DWORD)

CoordType // Integer (DWORD)

NumProcessors // Integer (DWORD)

}

 

I added it to my DSDT only because MasterChief added it to his. Maybe this is foolish of me, but as he is on top of this subject and knows what he's doing then I try to understand what he adds and if I think it might be relevant then I add it too to test it. You can read more on page 328 of the ACPIspec40.pdf.

Link to comment
Share on other sites

Guys what do you think about my speedstep?

The multiplier column in CPU-i changes every time (x6, x7, x8 and x9). When I open an application (or CPU is used) the multiplier is x9. The CPU doesn't stay much at x7 and x8. Is this normal?

 

BTW, PStateChanger provides more accurate information than Voodoomonitor?

Link to comment
Share on other sites

Guys what do you think about my speedstep?

The multiplier column in CPU-i changes every time (x6, x7, x8 and x9). When I open an application (or CPU is used) the multiplier is x9. The CPU doesn't stay much at x7 and x8. Is this normal?

I can tell you that PStateChanger and VoodooMonitor both show my system at the P4 (in my case x6) most of time when I am just working on the internet. Then if I load Photoshop and start doing some image processing then it will jump to P0 (in my case x10). I do see states P1-P3 (x7-x9) but mostly I see the highest & lowest states.

Link to comment
Share on other sites

Dear FormerlyKnownAs

 

You wrote on your first post:

 

I was very lucky as there is already p-state example for my CPU on the net but this is also a very good guide to calculate FiD and Vid values for _PSS tables. Can be found here .

 

Runs your Q9450 on 3104 Mhz?

 

I have also the Q9450 on a Gigabyte EX-38-DS4 (ICH9). Which section can I copy direct from your DSDT09_08_09.dsl to my DSDT?

 

Thank you!

 

Daniel

Link to comment
Share on other sites

I added it to my DSDT only because MasterChief added it to his. Maybe this is foolish of me, but as he is on top of this subject and knows what he's doing then I try to understand what he adds and if I think it might be relevant then I add it too to test it. You can read more on page 328 of the ACPIspec40.pdf.

 

I followed like sheep also - but it does seem to make the transitions smoother - I'm seeing 7x multi a lot more

 

I removed SleepEnabler.kext and NullCPUPowerManagement.kext. Sleep works ;)

These are my P-states (obtained using Voodoomonitor + Voodoopstate-v4): http://dl.dropbox.com/u/1924024/speedstep.png

My CPU is Intel Q6600 2.4Ghz, No overclock!

 

I have the DSDT code from @FormerlyKnownAs:

 

Scope (_PR.CPU0)
   {
       Method (_PSS, 0, NotSerialized)
       {
           Return (Package (0x03)
           {
               Package (0x06)
               {
                   Zero, 
                   Zero, 
                   10, 
                   10, 
                   0x0928, 
                   Zero
               }, 

               Package (0x06)
               {
                   Zero, 
                   0, 
                   10,
                   10, 
                   0x0827, 
                   One
               }, 

               Package (0x06)
               {
                   Zero, 
                   Zero, 
                   10, 
                   10, 
                   0x0727, 
                   0x02
               }
})
}

           Method (_PSD, 0, NotSerialized)
           {
               Return (Package (0x05)
               {
                   0x05,
                   0x00,
                   0x00,
                   0xFC,
                   0x04
               })
           }

       Method (_CST, 0, NotSerialized)
       {
		Return (Package (0x02)
		{
			One, 
			Package (0x04) {ResourceTemplate () {Register (FFixedHW, 0x1, 0x2, 0x0, 0x1,)},0x01,0x9D,0x3E8}
		})
       }
   }

   Scope (_PR.CPU1)
   {
       Method (_PSS, 0, NotSerialized)
       {
               Return (^^CPU0._CST ())
       }

       Method (_PSD, 0, NotSerialized)
       {
               Return (^^CPU0._CST ())
       }

       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 (_PSS, 0, NotSerialized)
       {
               Return (^^CPU0._CST ())
       }

       Method (_PSD, 0, NotSerialized)
       {
               Return (^^CPU0._CST ())
       }

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

       Method (_PSD, 0, NotSerialized)
       {
               Return (^^CPU0._CST ())
       }

       Method (_CST, 0, NotSerialized)
       {
               Return (^^CPU1._CST ())
       }
   }

 

I hope everything is OK and my CPU doesn't burn up ;)

The multiplier column in CPU-i changes every time (x6, x7, x8 and x9). When I open an application (or CPU is used) the multiplier is x9. The CPU doesn't stay much at x7 and x8. Is this normal? Thanks!

 

Dude as I told you in PM you have only defined 3 p-states, where as you want 4. This could be your problem.

 

I have also the Q9450 on a Gigabyte EX-38-DS4 (ICH9). Which section can I copy direct from your DSDT09_08_09.dsl to my DSDT?

 

Thank you!

 

Daniel

 

Hi Daniel

 

Please read some more!

 

D.

Link to comment
Share on other sites

Dude as I told you in PM you have only defined 3 p-states, where as you want 4. This could be your problem.

 

I have added 0x928, 0x827, and 0x727.

Sorry for the stupid question. Is 0x626 the fourth state?

 

pstatenew.png

 

Ok. I've added the last p-state. Sleep works, but the computer is rebooted at wake-up. Any idea why does this happen?

Link to comment
Share on other sites

Now you mention it, I think I do see the other states more often with this method. It's hard to gauge it.

 

I did mention in post 798 that it make the transition smoother - but like you say it's hard to guage so I didn't like to say.

 

Fid and Vid values can be found using/ taken from pstatechanger using voodoopstate.kext. If you wish to use this method please use bcc9's fixed voodoopstate.v4.zip

PStateChangerv1.0.3__1_.zip

credit bcc9 and hnak.

 

pstatechanger and fixed voodoopstste now linked in post 1!

 

 

 

I'm assuming you have your 0 volt problem with hnak's versions as well, or is it something I broke? I'm not seeing that problem, and my PMs indicate that it's working OK for others. That v4 version is the latest&greatest if you want to play with my changes. The 0 volt issue should be easy to debug from the source, please do ;)

 

pstatechanger is showing mV for me just fine.

 

Can somebody riddle this for me:

Pstatechanger and voodoopstate give me a slightly lower vid for my x7 and x6 multi so I've amended my PSS accordingly.

 

post-275122-1258382883_thumb.png

        Method (_PSS, 0, NotSerialized)
       {
           Return (Package (0x03)
           {
               Package (0x06)
               {
                   Zero, 
                   Zero, 
                   0x0A, 
                   0x0A, 
                   0x0820, 
                   Zero
               }, 

               Package (0x06)
               {
                   Zero, 
                   Zero, 
                   0x0A, 
                   0x0A, 
                   0x071B, 
                   One
               }, 

               Package (0x06)
               {
                   Zero, 
                   Zero, 
                   0x0A, 
                   0x0A, 
                   0x0616, 
                   0x02
               }
           })
       }

 

But voodoomonitor shows:

post-275122-1258383050_thumb.png

 

I've run this with and without _PSD method and with _PSD method using 0xFE (Hardware control) and get the same results.

 

post-275122-1258383169_thumb.png

 

Does this simply tally with the rounding involved with voodoopower's calculation?

 

D

 

Ok. I've added the last p-state. Sleep works, but the computer is rebooted at wake-up. Any idea why does this happen?

 

Zoliky - I only said in post 1 this method may help with sleep (now removed) - I was wrong it doesn't!

 

I'm currently using RIP application for auto sleep.

 

D.

Link to comment
Share on other sites

I did mention in post 798 that it make the transition smoother..

You did, yes, Sorry.

Can somebody riddle this for me:

Pstatechanger and voodoopstate give me a slightly lower vid for my x7 and x6 multi so I've amended my PSS accordingly.

......

But voodoomonitor shows:

.....

 

Does this simply tally with the rounding involved with voodoopower's calculation?

As you questioned, I would guess it's down to the rounding. I got the same with my figures. Voodoomonitor still shows the old values, even though _PSS has the new values shown by Pstatechanger.

Link to comment
Share on other sites

I checked "System preferences -> Energy Saver -> Start up automatically after a power failure" and sleep wakes up without reboot.

 

Well... Is this the solution to fix sleep ? :blink:

 

zoliky mate you're going OT, please post on one of the sleep threads with this problem.

Cheers

 

You did, yes, Sorry.

 

As you questioned, I would guess it's down to the rounding. I got the same with my figures. Voodoomonitor still shows the old values, even though _PSS has the new values shown by Pstatechanger.

 

recoded voodoomonitor anyone? :hysterical:

Link to comment
Share on other sites

No, this is not off-topic. As far as I know we don't need SleepEnabler for Vanilla Speedstep. BTW, sleep works for me. I don't need RIP application.

 

@blackosx thanks!

 

BTW, Voodoomonitor show higher temperatures without NullCPUPowerManagement.

x9 = 50C (without NullCPUPowerManagement), x9 = 43C (With NullCPUPowerManagement).

 

Strange :hysterical:

Link to comment
Share on other sites

Hello Ladies and Gents.

 

Thank you for this amazing guide and all the support people have offered.

 

I have a couple of noob questions.

 

let me start of by giving my info:

 

MB: P45-UD3L

CPU: Q9950

GFX: 9800 gtx+

OS: 10.6.2

 

My question:

 

1) to add the dropSSDT=y boot arg. I have place into com.apple.Boot.plist.

<key>dropSSDT</key><string>Yes</string>

2) I cant seem to figure out what to do with the info.plist in apci_SMC_PLATFORMPLUGIN.kext, I replaced it with MacPro3,1.plist (from resource). Was this correct ?

3) I have made changes to appleLPC in dsdt but still cant sleep/restart/shut down. Is my patch correct ?

4) I dont see cst aml in everest. I have enable EIST and C1E in bios. is this Normal ?

5) I have P-states in cpu-i. but the cpu status stays at 2.83ghz 1.244 volts. Have only have 3 kext in e/e/ (Fakesmc, LegacyHDA, and PlatformUUID). how to correct this ?

6) Where can I find the KERNEL.log ?

 

I have attached my dsdt. thanks in Advance - Liquid_ic

liquid_ic_dsdt.dsl.zip

Link to comment
Share on other sites

"8.4.4.5 _PSD (P-State Dependency)

This optional object provides P-state control cross logical processor dependency information to OSPM. The _PSD object evaluates to a package that identifies a dependency domain number for the logical processor’s P-states, the coordination type, and the number of logical processors belonging to the domain.

Arguments: None

Return Value: A Package containing P-state dependency information as described below

Return Value Information:

Package {

NumEntries // Integer // 05 here vs 03 in pss ?

Revision // Integer (BYTE)

Domain // Integer (DWORD)

CoordType // Integer (DWORD)

NumProcessors // Integer (DWORD)

}

"

 

Thanks explaining the _PSD.

 

But in the posting #825 the count of pstates in PSS is 3=OK but in that Numentries _PSD is 05 ?!

Doesnt fit together.

Link to comment
Share on other sites

No, this is not off-topic. As far as I know we don't need SleepEnabler for Vanilla Speedstep. BTW, sleep works for me. I don't need RIP application.

 

@blackosx thanks!

 

BTW, Voodoomonitor show higher temperatures without NullCPUPowerManagement.

x9 = 50C (without NullCPUPowerManagement), x9 = 43C (With NullCPUPowerManagement).

 

Strange :P

Just a quick, basic, overview (Can someone correct me if I'm wrong)

 

When 10.5.8 was released Apple changed the way sleep worked in that the kernel required a value to be returned from AppleIntelCPUPowerManagement.kext. For anyone who had disabled AppleIntelCPUPowerManagement.kext (most users), sleep no longer worked.

 

The only workaround for sleep then was to run without disabling AppleIntelCPUPowerManagement.kext which resulted in higher CPU temps (which is fine if your system is built with an effective cooler), or use Superhai's VoodooPower or the information, similar to, or what's in this thread to enable speedstep, and in particular P-States. This then brings your CPU speed (also temps) down.

 

Pista7 since developed SleepEnabler which effectively sent the kernel the expected return value which should have come from AppleIntelCPUPowerManagement.kext allowing users to disable it again so they could run how they used to.

 

Thanks explaining the _PSD.

 

But in the posting #825 the count of pstates in PSS is 3=OK but in that Numentries _PSD is 05 ?!

Doesnt fit together.

You're right, it doesn't, but it should. Note: Zoliky - You need to change the number in your _PSD to 3

Here's my Scope (_PR)

 Scope (_PR) // For Core2Duo Processor with 2 x cores
   {
       Processor (CPU0, 0, 0x00000410, 6) {}
       Processor (CPU1, 1, 0x00000410, 6) {}
   }

   Scope (_PR.CPU0) // For Core 0, set P-states & C-States
   {
       Method (_PSS, 0, NotSerialized) // P-states
       {
           Return (Package(0x05)
           {
               Package (0x06) { 2670, 0, 10, 10, 0x0A1D, 0 },
               Package (0x06) { 2403, 0, 10, 10, 0x091D, 1 },
               Package (0x06) { 2136, 0, 10, 10, 0x081C, 2 },
               Package (0x06) { 1869, 0, 10, 10, 0x071B, 3 },
               Package (0x06) { 1602, 0, 10, 10, 0x061A, 4 }
           })
       }

       // Added from MasterChief's DSDT v3.1
       Method (_PSD, 0, NotSerialized)
       {
           Return (Package (0x05)
           {
               0x05,
               0x00,
               0x00,
               0xFC, // Double-checked the 0xFC value with ACPISpec v4.0 pdf
               0x02  // Number of Processors
           })
       }

       Method (_CST, 0, NotSerialized) // C-states
       {
           Return (Package (0x04)
           {
               0x03, 
               Package (0x04) {ResourceTemplate () {Register (FFixedHW, 1, 2, 0x000)},1,1,1000},
               Package (0x04) {ResourceTemplate () {Register (SystemIO, 8, 0, 0x414)},2,1,500},
               Package (0x04) {ResourceTemplate () {Register (SystemIO, 8, 0, 0x415)},3,17,250}
           })
       }
   }

Link to comment
Share on other sites

"8.4.4.5 _PSD (P-State Dependency)

This optional object provides P-state control cross logical processor dependency information to OSPM. The _PSD object evaluates to a package that identifies a dependency domain number for the logical processor’s P-states, the coordination type, and the number of logical processors belonging to the domain.

Arguments: None

Return Value: A Package containing P-state dependency information as described below

Return Value Information:

Package {

NumEntries // Integer // 05 here vs 03 in pss ?

Revision // Integer (BYTE)

Domain // Integer (DWORD)

CoordType // Integer (DWORD)

NumProcessors // Integer (DWORD)

}

"

 

Thanks explaining the _PSD.

 

But in the posting #825 the count of pstates in PSS is 3=OK but in that Numentries _PSD is 05 ?!

Doesnt fit together.

 

NumEntries Integer The number of entries in the PStateDependency package including this field. Current value is 5.

 

You have 5 entries: NumEntries,Revision,Domain,CoordType and NumProcessors.

Link to comment
Share on other sites

@blackosx thanks, your help is greatly appreciated!

 

// Added from MasterChief's DSDT v3.1
Method (_PSD, 0, NotSerialized)
{
Return (Package (0x05)
{
0x05,
0x00,
0x00,
0xFC, // Double-checked the 0xFC value with ACPISpec v4.0 pdf
0x02 // Number of Processors
})
}

 

I need to change the number of processors to 0x03 ? I have an Intel Q6600

Link to comment
Share on other sites

Hello Ladies and Gents.

 

Thank you for this amazing guide and all the support people have offered.

 

I have a couple of noob questions.

 

let me start of by giving my info:

 

MB: P45-UD3L

CPU: Q9950

GFX: 9800 gtx+

OS: 10.6.2

 

My question:

 

1) to add the dropSSDT=y boot arg. I have place into com.apple.Boot.plist.

<key>dropSSDT</key><string>Yes</string>

2) I cant seem to figure out what to do with the info.plist in apci_SMC_PLATFORMPLUGIN.kext, I replaced it with MacPro3,1.plist (from resource). Was this correct ?

3) I have made changes to appleLPC in dsdt but still cant sleep/restart/shut down. Is my patch correct ?

4) I dont see cst aml in everest. I have enable EIST and C1E in bios. is this Normal ?

5) I have P-states in cpu-i. but the cpu status stays at 2.83ghz 1.244 volts. Have only have 3 kext in e/e/ (Fakesmc, LegacyHDA, and PlatformUUID). how to correct this ?

6) Where can I find the KERNEL.log ?

 

I have attached my dsdt. thanks in Advance - Liquid_ic

 

 

Anyone :( ? :)

Link to comment
Share on other sites

@blackosx thanks, your help is greatly appreciated!

Thank mitch_de. He spotted it :)

 

I need to change the number of processors to 0x03 ? I have an Intel Q6600

You need it to read 0x04.

If in doubt, check MasterChief's DSDT v3.1 for reference.

http://www.insanelymac.com/forum/index.php...t&p=1280888 (check at bottom of the post)

Link to comment
Share on other sites

 Share

×
×
  • Create New...