Jump to content

DSDT - Vanilla Speedstep - Generic Scope (_PR)


FKA
 Share

1,949 posts in this topic

Recommended Posts

Hi there,

 

Because I cannot create new topic this info goes here:

 

This is intended for programmers.

 

Hacking around c-states on my netbook (Asus 1001HA) I've found something interesting in ICH7 documentation. LPC in this chipset has timer register to measure C3/C4 state residency (C3_RES - pmbase + 0x54). It also conveniently provides timer register that counts all the time, as long as pc is awake (PM1_TMR - pmbase + 0x08). Both timers are 24 bit length. Using these I've created simple tool (kext + cmd line tool to be exact) to show percentage cpu C4 state residency.

 

This is the excerpt from my kext:

void
c4stat_user_client::event(void)
{
mTimer->setTimeoutMS(2000);

UInt32 tmr = mPciDev->ioRead32(mPMBase + 0x08);
UInt32 tmrO = tmr;
if (tmr < mLastTmr)
	tmr += 0x1000000;
UInt32 c3r = mPciDev->ioRead32(mPMBase + 0x54);
UInt32 c3rO = c3r;
if (c3r < mLastC3R)
	c3r += 0x1000000;
mAvgC3R = (UInt8) ((UInt32) (c3r - mLastC3R) * 100 / (tmr - mLastTmr));
mLastTmr = tmrO;
mLastC3R = c3rO;
}

 

There, hope you'll find it useful.

Link to comment
Share on other sites

Please use chameleon 2 RC5 to generate P and C states.

 

D

 

Only use Chameleon 2 RC5 ? no need edit in DSDT ? Can you give me that Chameleon 2 RC5 Vesion .. because it have too many versions ! thanks

Link to comment
Share on other sites

Only use Chameleon 2 RC5 ? no need edit in DSDT ? Can you give me that Chameleon 2 RC5 Vesion .. because it have too many versions ! thanks

 

Yep - no need to edit DSDT anymore :)

 

Please use search to find RC5 thread

 

D

Link to comment
Share on other sites

But be warned on OCed systems. Own (DSDT) P-States may be better (VID bit higher) than the autogenerated Cham RC5 ones. You may get KP. Buts great for non OCed or very less OCed (<=10%+ MHz) systems.

here is where AnVal comes into play :)

Link to comment
Share on other sites

But be warned on OCed systems. Own (DSDT) P-States may be better (VID bit higher) than the autogenerated Cham RC5 ones. You may get KP. Buts great for non OCed or very less OCed (<=10%+ MHz) systems.

 

I actually get slightly higher ViD for lowest multi with chameleon generated values.

 

Read from P-statechanger

 

0820

071B

0616

 

From Chameleon

 

0820

071D

0618

 

 

EDIT - both sets taken with CPU OC'd from 266 > 400

 

Cheers

D

Link to comment
Share on other sites

Yep, that can also be. Depends how low you set the DSDT VIDs.

i Have 14, 1A, 1E, 22 for example (in DSDT) - in my case chameleon is 2-3 VIDs lower.

 

AnVal helps out for the OC user which need higher VIDs :)

PS: In the actual AnVal version (5.0.1) at least an new Key for minimal Volts can be set to overwrite the autogenerated VIDs (RC5). That helps avoid KPs. Even better would be an VID+ key which adds some VID steps (1...5) to each autogenerated Pstate VID.

 

Link to comment
Share on other sites

Yep, that can also be. Depends how low you set the DSDT VIDs.

i Have 14, 1A, 1E, 22 for example (in DSDT) - in my case chameleon is 2-3 VIDs lower.

 

AnVal helps out for the OC user which need higher VIDs :)

PS: In the actual AnVal version (5.0.1) at least an new Key for minimal Volts can be set to overwrite the autogenerated VIDs (RC5). That helps avoid KPs. Even better would be an VID+ key which adds some VID steps (1...5) to each autogenerated Pstate VID.

 

as I answered u elsewhere, Yes, this should be a feature to implement asap. But, I still need to know things, e.g. : the mV limits. what do u think should be the most conformable values (min-max) without harm? Sure it is doable but in two ways:

1) injecting the extra vid applies to each step

2) or to selected steps only

what do u think ?

Link to comment
Share on other sites

I found out that my speedstep - was working before - doesnt work anymore since 10.6.5 update :)

C2D CPU + GA-EP35

Doenst matter if i use handmade DSDT or valv (GREAT) bootloader/RC5 autogen.

LPC+SMC loaded as before.

 

Anyone else have that problem (please check that with MSRTool or other way to get real MHz changes shown).

I only get knowledge about that by testing new autogen feature - nit working speedstep. Then back to handmade dsdt - ALSO not working!

 

No changes in MHZ (doesnt matter dsdt/autogen Pstates) - worked with OS C versions before!

Can anyonecheck if its speedstap stays working with 10.6.5 ?

Bildschirmfoto_2010_11_22_um_10.06.10.jpg

Link to comment
Share on other sites

As i said in the valv (new bootloader thread) there were some changes in the ACPI_SMC_Plaltfrom.kext (within IOPlatformplugin.kext) which makes old wording LegancyPM not working anymore.

I now deleted LegancyPM (also no speedstep) and worked out an new modded iMac11,1 .plist.

Used orig. iMac11,1 and some parts out of MacPro3,1.plist (GPU parts! Imac has buildin GPU, complete different)

WORKING NOW MHZ + Volts changing again :thumbsup_anim:

Bildschirmfoto_2010_11_22_um_14.19.44.jpg

Link to comment
Share on other sites

Hi there!

Thanks for all of your posts!

Now I got SpeedStep enabled,and AppleLPC.kext is loaded, PStateChanger can detect the PStates, but VoodooMonitor can detect different and more PStates than PStateChanger does.

But what most unfortune is that my cpu is too hot even with PStates enabled, the temporate is normally 80C,and once upto 100C, it can cook eggs.

How can I cool my cpu?

thanks!

Link to comment
Share on other sites

  • 2 weeks later...

Always use MSR Tools (boot in 32 Bit to get MSR Tools working) to verify if your "working" PSates really work.

MSR Tools insted of others didnt add/change speedstep so you get what really exists.

PStates shown in IOREG + loaded LPC doesnt mean PStates really work - in meaning idle = less MHZ/less mVolts , load more MHz/more mVolts.

Sometimes you will see fixed (highest) MHZ even you tought Pstates are working.

Only way is to verify that with an tool that NOT also adds some stepping (beside showing MHz).

 

Sometimes also the MacModell does effect PStates working or not (same settings in DSDT, LPC loaded, all Pstates in IOREG).

WARING: You cant check/see if your vanilla Pstates are working if you use other speedstep software like Voodoomonitor or coolbook !

Be sure their .kext are not loaded (temporary or in /SL/E- remove them and remake mkext be deleting system cache folder).

 

MSR Tools (works only in 32 Bit Kernel Mode!, boot with arch=i386)

MSR_Tools.app.zip

Link to comment
Share on other sites

Always use MSR Tools (boot in 32 Bit to get MSR Tools working) to verify if your "working" PSates really work.

MSR Tools insted of others didnt add/change speedstep so you get what really exists.

PStates shown in IOREG + loaded LPC doesnt mean PStates really work - in meaning idle = less MHZ/less mVolts , load more MHz/more mVolts.

Sometimes you will see fixed (highest) MHZ even you tought Pstates are working.

Only way is to verify that with an tool that NOT also adds some stepping (beside showing MHz).

 

Sometimes also the MacModell does effect PStates working or not (same settings in DSDT, LPC loaded, all Pstates in IOREG).

WARING: You cant check/see if your vanilla Pstates are working if you use other speedstep software like Voodoomonitor or coolbook !

Be sure their .kext are not loaded (temporary or in /SL/E- remove them and remake mkext be deleting system cache folder).

 

MSR Tools (works only in 32 Bit Kernel Mode!, boot with arch=i386)

 

Thanks mitch_de

Link to comment
Share on other sites

Would someone be willing to help me out on what I'm pretty sure is a very simple fix?

 

I've managed to narrow my compile errors down to only 2, and they're both syntax (4096) that I have a feeling is something simple to fix... I just can't figure it out.

 

Below is my dsl, and I'm using DSDTSE...

dsdt.TheOriginalPol.zip

 

open a topic in the correct area

this topic is about speedstep

:D

Link to comment
Share on other sites

hi, i read the first post about editing the dsdt, but then i read a post (on page 89) that this isnt needed for the C and P-states anymore, i already have Chameleon RC5 r656 installed, but what i dont understand is what do i do after that? i.e. what is the next step?

if someone could plz help me i would be glad =)

Link to comment
Share on other sites

hi, i read the first post about editing the dsdt, but then i read a post (on page 89) that this isnt needed for the C and P-states anymore, i already have Chameleon RC5 r656 installed, but what i dont understand is what do i do after that? i.e. what is the next step?

if someone could plz help me i would be glad =)

 

add in boot.plist

<key>GeneratePStates</key>
<string>Yes</string>
<key>GenerateCStates</key>
<string>Yes</string>

 

kextstat | grep LPC

 

read it

http://www.insanelymac.com/forum/index.php...t&p=1514836

 

http://www.insanelymac.com/forum/index.php...t&p=1598438

 

Chameleon v2.0-RC5 r665(BootCamp Theme)

http://www.insanelymac.com/forum/index.php...st&id=82616

Link to comment
Share on other sites

yeah i turned those options on in Chameleon prefpanel.

 

do i need to have AppleIntelCPUPowerManagement.kext?

cuz i had deleted it from /S/L/E/, and dunno why i can't seem to reinstall it, when i put it back, i get some message saying something about backtrace and dependencies on boot, and then i remove it with terminal from the install dvd and it boots again :S

 

edit:

OMG! thanks for fixing my dsdt! =)

Link to comment
Share on other sites

 Share

×
×
  • Create New...