Jump to content

DSDT - Vanilla Speedstep - Generic Scope (_PR)


FKA
 Share

1,949 posts in this topic

Recommended Posts

Try this .. sorry I cant complie for you I'm at work on XP machine and don't have a decent complier..

Thanks a lot again. Unfortunately it still does not work. I am always running @3GHz. In all cases P-states show up correctly in IOReg. AppleLPC.kext also loads automatically.

 

##EDIT## you don't need dropSSDT with this!

I've tried with dropSSDT=n, dropSSDT=y, and without the options - always the same result :)

 

 

Regards,

mcsmart

Link to comment
Share on other sites

EDIT: The error kernel panic is:

 

"Unable to find driver for this platform: \"ACPI\".\n"@/SourceCache/xnu/xnu-1456.1.25/iokit/kernel/IOPlatformExpert.cpp:I389

 

The kp happens exactly just starts to load, 1 second post the chameleon boot loader...

Ciao :(

Link to comment
Share on other sites

EDIT: The error kernel panic is:

 

"Unable to find driver for this platform: \"ACPI\".\n"@/SourceCache/xnu/xnu-1456.1.25/iokit/kernel/IOPlatformExpert.cpp:I389

 

The kp happens exactly just starts to load, 1 second post the chameleon boot loader...

Ciao :(

 

Try to start in 32Bit KernelMode if Snow Leo ! 32 Bit Kernelmode isnt really bad !!!

-arch=i386

Link to comment
Share on other sites

@ mcsmart: CPU-X just shows the factory speed of the CPU. You need to use VoodooMonitor or MSRTools if you want to see if it's switching states.

 

Hi Beerkex'd,

Could you please help me to modify your dsdt? I have P5Q-E but my cpu is Q9450 core2 quad... I don't understand all this very much, so I can just copy-paste things to dsdt.dsl and compile it....

 

What I did was take the Processor scope Master Chief is currently using (P5K Pro thread) delete the two cores that I don't have and insert my own P-State data.

 

Because you have a quad-core CPU as well, you should be able to use his processor scope as-is, but with your own P-states inserted.

 

Don't forget to change PNOT at the end of the DSDT too. I deleted the two cores I don't have from there as well. Download his DSDT and compare it to mine and you will know what to do.

 

I still have to make C-states work.

Link to comment
Share on other sites

..o change PNOT at the end of the DSDT...

Some have PNOT dsdt code in theit dsdt but with // PNOT() , so not called anymore after an try without //.

I cant see any differences using PNOT() or not :) - sleep (my only prob) didnt work.

Or is PNOT() for other things made as only sleep ?

Thanks fi someone make an "short remember PNOT() - was it should /could do" summary here;)

 

Here my PNOT(), used on GA-EP35-DS3 +C2D, called in _WAK, i cant see any difference using it or not (at least no KPs :D )

   Method ([b]PNOT[/b], 0, Serialized)
   {
       If (And (PDC0, 0x08))
       {
           Notify (\_PR.CPU0, 0x80)
           If (And (PDC0, 0x18))
           {
               Sleep (0x64)
               Notify (\_PR.CPU0, 0x81)
           }
       }
       If (And (PDC1, 0x08))
       {
           Notify (\_PR.CPU1, 0x80)
           If (And (PDC1, 0x18))
           {
               Sleep (0x64)
               Notify (\_PR.CPU1, 0x81)
           }
       }

       If (And (PDC2, 0x08))
       {
           Notify (\_PR.CPU2, 0x80)
           If (And (PDC2, 0x18))
           {
               Sleep (0x64)
               Notify (\_PR.CPU2, 0x81)
           }
       }

       If (And (PDC3, 0x08))
       {
           Notify (\_PR.CPU3, 0x80)
           If (And (PDC3, 0x18))
           {
               Sleep (0x64)
               Notify (\_PR.CPU3, 0x81)
           }
       }
   }
   Method (_PTS, 1, NotSerialized)
   {
       Or (Arg0, 0xF0, Local0)
       Store (Local0, DBG1)
        Store (0x57, SCP)
       If (LEqual (Arg0, 0x05))
       {
           Store (ESMI, Local0)
           And (Local0, 0xFB, Local0)
           Store (Local0, ESMI)
       }
       If (LEqual (Arg0, 0x04))
       {
                Sleep (0x64)    
       }
       Store (Arg0, \_SB.PCI0.LPCB.EC.ECSS)
       G3HT ()
       \_SB.PCI0.SBUS.DISB ()
   }
Link to comment
Share on other sites

So fast answers here - so much thanks !

here that part also for others:

You may change CPU1...CPU4 to CPU0..CPU3, if your dsdt uses 0...3 index count for CPU cores.

 

  // Newly added – [b]Power Management Notifier.[/b]
   Method (PNOT, 0, Serialized)
   {
       Notify (\_PR.CPU1, 0x80) // Notify OSPM - this triggers a re-evaluation of our _PPC object (all states available).
       Sleep (0x64) // Let it sleep for 100us - giving it some time to response to our previous notification.
       Notify (\_PR.CPU1, 0x81) // Notify OSPM once more, this time to trigger a re-evaluation of our _CST object.

       Notify (\_PR.CPU2, 0x80)
       Sleep (0x64)
       Notify (\_PR.CPU2, 0x81)

       Notify (\_PR.CPU3, 0x80)
       Sleep (0x64)
       Notify (\_PR.CPU3, 0x81)

       Notify (\_PR.CPU4, 0x80)
       Sleep (0x64)
       Notify (\_PR.CPU4, 0x81)
   }

 

Your PNOT() looks much more slimed that others ! :)

I prefer always not so overlaoded changes - better to understand - less sideeffects.

 

Next challenge for the dsdt heros MUST! be an Mom_Iam_Busy() dsdt method to block "come eating! calls" from mom :D - bad in the heat of dsdt patching :)

Also an Not_SleepNow_Mom!() would be fine :P

Any hope for that ?!

Sometimes a bit :P is good if working sooo much with bits&bytes

Link to comment
Share on other sites

Next challenge for the dsdt heros MUST! be an MOM_IAM_BUSY() dsdt method to block "come eating! calls" from mom :D - bad in the heat of dsdt patching :)

Also an SLEEP_NOT_NOW_MOM() would be fine :P

Any hope for that ?!

Sometimes a bit :P is good if working sooo much with bits&bytes

Lol... yeah. Being disturbed in the middle of DSDT edits can be a right PITA :)

Link to comment
Share on other sites

@ mcsmart: CPU-X just shows the factory speed of the CPU. You need to use VoodooMonitor or MSRTools if you want to see if it's switching states.

LOL, ok. This is definitely good to know. According to MSRTools SpeedStep is working... I guess EIST was working all of the time :D

 

Thanks a lot for your help people!

 

The only thing that does not make sense to me is that cpu-x showed my CPU speed correctly when using VodooPower.kext (also displayed how the multiplier changed). Now with vanilla speedstep cpu-x always shows 3GHz, the sysctrl values also show 3 GHz (for min and max). Can somebody explain that?

 

 

Regards,

mcsmart

Link to comment
Share on other sites

That's news to me, I've never seen any activity in CPU-x. Maybe it only works with VoodooPower and not with AppleIntelCPUPM.

 

Do your multipliers look 'normal' in MSRTools? I see 36.5 when it's supposed to say 6.5.

 

sysctrl also shows my CPUs stock freq on both max- and min. here.

Link to comment
Share on other sites

The only thing that does not make sense to me is that cpu-x showed my CPU speed correctly when using VodooPower.kext (also displayed how the multiplier changed). Now with vanilla speedstep cpu-x always shows 3GHz, the sysctrl values also show 3 GHz (for min and max). Can somebody explain that?

Regards,

mcsmart

Yep. let my try:

cpu-x doesnt read out cpu-near (cpu registers, MSR) it read an kernel variable (sysctl -a shows all) to get the MHz.

Voodoopower based (most of them) kernel extensions do update that kernel variable on his PSstate changes!.

So cpu-x can show real Mhz , if that voodoobased .kext had update that extra kernel variable.

But not all voodoobased .kexts does set that kernel variable, so CPU-X is unsure. But i use it if i checked up/down MHz with MSR Tool.

 

MSR Tool do read out MSR register(=cpu near) and use that kernel variable = allways (normally) real MHz.

Link to comment
Share on other sites

Do your multipliers look 'normal' in MSRTools? I see 36.5 when it's supposed to say 6.5.

Not, they are weird. They are between 3.0 and 4.5 :)

 

@mitch_de: Thanks for explaining.

 

There is still one more problem I have: After a while my system becomes sort of unresponsive. It is noticable when moving around windows (Finder, Terminal, Safari, ...) - everything is some kind of stuttering a little. Music and Videos still play fluently so it's pretty hard to describe. Has anybody else noticed this? Without speedstep this does not happen. The actual CPU load stays low, so the CPU frequency does not scale up when moving around windows.

 

 

Regards,

mcsmart

Link to comment
Share on other sites

Not, they are weird. They are between 3.0 and 4.5 :(

 

@mitch_de: Thanks for explaining.

 

There is still one more problem I have: After a while my system becomes sort of unresponsive. It is noticable when moving around windows (Finder, Terminal, Safari, ...) - everything is some kind of stuttering a little. Music and Videos still play fluently so it's pretty hard to describe. Has anybody else noticed this? Without speedstep this does not happen. The actual CPU load stays low, so the CPU frequency does not scale up when moving around windows.

egards,

mcsmart

Does this happen only if you have MSR Tools also running beside speedstep ?

I belive that MSR Tool (plus it´s .kext) has some timing/communication problems (and/or interferences voodoopower) which does near freeze my system.

I can run speedstep for days, but MSR tools beside not more than a few minutes, than only mouse is moving, rest freeze.

 

I asked here and somewehre else who is the dev of MSR TOOLS (great, beside that freezeing) to share source for other to fix that, but nobody knows.

Link to comment
Share on other sites

I have 8 P-States (multiplier 9.5 - 6.0). But I don't think all of them are actually used.

 

can you give e a link to your dsdt.dsl to compare your PR scope with mine ?

it's link I can't have .5 multipliers

Barnum

Link to comment
Share on other sites

Good evening to all thread members, I'd like to make a couple of simple questions that may require a simple answer, hopefully... Digging in this forum I tried to find an answer (after making a successful DSDT.aml for my Shuttle XPC SG31G2 that runs x64 and sleeps well, no SleepEnabler or NullCPUManagement needed) to find out:

 

(1) what is the difference between the CPU scopes in all DSDT.aml found?

Processor (\_PR.CPU0, 0x00, 0x00000000, 0x00) {} etc.
and
Processor (\_PR.CPU0, 0x00, 0x00000410, 0x06) {} etc.

What is served if I place the numbers instead of zero's? I have a Q9550 processor. Are these model-related?

 

(2) I just need to solve the error regarding booting Snow Leopard 10.6.1 (and now 10.6.2):

ACPI_SMC_PlatformPlugin::pushCPU_CSTData - _CST evaluation failed

Is it safe to just add the code suggested by roisoft (post #70, here) in another thread? Is it safe and will NOT damage the CPU/mainboard? Does this code contain cpu-model-specific values? Dear roisoft, any reply?

 

Personally, I am not insterested in SpeedStepping and SSDTs since they require a lot of reading on time that I don't have free, anymore ;) Plus, I don't overclock the mobo...

 

Thank you all for your time and understanding, any reply is very welcome.

Link to comment
Share on other sites

Looks like something has changed with 10.6.2....

I was just about to post about this. But there's something urging to be addressed immediately first (I have only one CPU left in CPU-i)!!!!

 

WhatTheBEEP.png

 

 

1) IOPlatformThermalProfile is gone (empty).

2) Each model has it's own plist now under: /S*/L*/E*/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/

3) This is much easier to read, but requires some changes.

4) I copied MacPro3_1.plist to P5K PRO (my model identifier) and changed MacPro3,1 to P5K PRO and will do now a restart (report back later).

 

Update: CPU-i still reports CPU Count: 1 whereas it first said 4 But MSR Tools still shows two cores, and _p_States appears to be working. Still no stepper data visible in IORegistryExplorer (but we might no longer need it there). So is this limited to the old CPU-i or are other people using its replacement VoodooMonitor also seeing this?

Link to comment
Share on other sites

I was just about to post about this. But there's something urging to be addressed immediately first (I have only one CPU left in CPU-i)!!!!

 

WhatTheBEEP.png

 

 

1) IOPlatformThermalProfile is gone (empty).

2) Each model has it's own plist now under: /S*/L*/E*/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/

3) This is much easier to read, but requires some changes.

 

ACPI_SMC_PlatformPlugin is different now, looks like we have only C-states left. No problem with number of cpus :(

post-375259-1257814594_thumb.png

Link to comment
Share on other sites

 Share

×
×
  • Create New...