Jump to content

DSDT - Vanilla Speedstep - Generic Scope (_PR)


FKA
 Share

1,949 posts in this topic

Recommended Posts

Hi just for info....

If AppleLPC.kext is loading, can reduce cpu temperature.....

if is not loading, you can check in lspci for example

00:1f.0 ISA bridge [0601]: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge [8086:27b8] (rev 01)

and add device id and vendor id in applelpc.kext/contents/info.plist for example

<string>AppleLPC</string>
		<key>IONameMatch</key>
		<array>
			<string>pci8086,27b8</string> //--this add vendor id
			<string>pci8086,2811</string>
			<string>pci8086,2815</string>
			<string>pci8086,27b9</string>
			<string>pci8086,27bd</string>
			<string>pci8086,2670</string>
			<string>pci8086,8119</string>
			<string>pci8086,2916</string>
			<string>pci8086,3a18</string>
			<string>pci10de,aac</string>
			<string>pci10de,aae</string>
			<string>pci10de,aaf</string>
		</array>

after Applelpc.kext is loading, you can check by ioregestryexplorer.app in ACPI_SMC_Platformplugin section, there is new info for CSTinfo for example CSTinfo 0x1140105

Link to comment
Share on other sites

Hi just for info....

If AppleLPC.kext is loading, can reduce cpu temperature.....

if is not loading, you can check in lspci for example

00:1f.0 ISA bridge [0601]: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge [8086:27b8] (rev 01)

and add device id and vendor id in applelpc.kext/contents/info.plist for example

<string>AppleLPC</string>
		 <key>IONameMatch</key>
		 <array>
			 <string>pci8086,27b8</string> //--this add vendor id
			 <string>pci8086,2811</string>
			 <string>pci8086,2815</string>
			 <string>pci8086,27b9</string>
			 <string>pci8086,27bd</string>
			 <string>pci8086,2670</string>
			 <string>pci8086,8119</string>
			 <string>pci8086,2916</string>
			 <string>pci8086,3a18</string>
			 <string>pci10de,aac</string>
			 <string>pci10de,aae</string>
			 <string>pci10de,aaf</string>
		 </array>

after Applelpc.kext is loading, you can check by ioregestryexplorer.app in ACPI_SMC_Platformplugin section, there is new info for CSTinfo for example CSTinfo 0x1140105

 

Hi jinnggoff

 

Thanks for this. It looks like Applelpc.kext is already loading for me and I have this > CSTinfo 0x1140105 in ioreg under ACPI_SMC.

 

I don't have any cst errors at boot ...

 

Cheers

D.

Link to comment
Share on other sites

wow, nice find. Thanks. AppleLPC.kext didn't have 3a16 (ICH10R on ASUS P5Q-E):

00:1f.0 ISA bridge [0601]: Intel Corporation 82801JIR (ICH10R) LPC Interface Controller [8086:3a16]

My E8500 @ stock 3.16GHz is now at 38 degrees Celsius with the cooler running at slowest possible RPM while writing this post.

(Still using VoodooPowerMini.kext though).

 

I really need to learn how to make plist-only "fake" kexts.

 

/EDIT

 

I've patched the LPC device ID in my DSDT using zhell's method. Vanilla AppleLPC.kext loads!

Link to comment
Share on other sites

Modifying AppleLPC.kext gave me the mythical "Automatically restart after power failure" checkbox in energy saver, that you're supposed to tick to fix sleep (AKA "Jan Bird fix" - http://www.insanelym...p...t&p=1004881 ). I've been chasing that one for more than six months, so seeing that checkbox is like finding lost treasure.

 

However, as Murphy's Law dictates, S3 sleep broke after doing this no matter if the box is ticked or not! :wacko:

 

On the other hand, I can now shut down properly without OpenHaltRestart.kext.

 

It will be interesting to see if sleep works again if I undo the modification to AppleLPC.kext.

 

/EDIT, yes, S3 sleep came back

 

Searching for AppleLPC.kext comes up with lots of good stuff, I never knew about this. Interesting. Oh and sorry about the minor threadjack.

 

/EDIT

S3 sleep is working now with AppleLPC.kext loaded. See this post and this.

Link to comment
Share on other sites

Very interesting, because my CPU is running pretty hot, but how do I enter 7.5 (example) as my Core Multiplier? That doesn't seem to work for me (:

 

BTW: AppleLPC.kext appears to be loading fine here:

00:1f.0 ISA bridge [0601]: Intel Corporation 82801IR (ICH9R) LPC Interface Controller [8086:2916] (rev 02)

 

Edit: I also found these two in kernel.log:

ACPI_SMC_PlatformPlugin::pushCPU_CSTData - _CST evaluation failed
ACPI_SMC_PlatformPlugin::registerLPCDriver - WARNING - LPC device initialization failed: C-state power management not initialized

Not good – booting Ubuntu Linux to gt the info I need. Update in my next post.

Link to comment
Share on other sites

Thanks FormerlyKnownAs for the tutorial. I got to input the proper p-states for my overclocked E6750 and use the smbios.plist w Chameleon to inject the MacPro3,1 value. CPU-i did show my setup throttling through my 3 p-states. I kept the ssdt tables unchanged as they seemed to be the same as for your mobo (I had fewer because only using a dual core cpu but did not remove those for the other cores). This is on a P35-DS4 rev 2.0 with an all vanilla OS X 10.5.8 + fakesmsc.kext, AHCIPortInjector, IOAHCIBlockStorageInjector and UUID.kext.

 

Unfortunately it brought in more problems then it solved:

For one I got a serious audio stutter

My dock animations and window dragging are less fluid

I lost the ability to sleep

 

Before tackling the c-states p-state stuff I had the uhci/ehci fix in my dsdt and also fixed my hdef audio using id 66 on an alc889a, + nic fix and gfx fix. The stutter for both audio and the dock animations seem related as moving my mouse wildly would lessen the amount of stutter. Is this the mouse lag problem? (It isn't my mouse that seems unresponsive). Sleep and wake from keyboard were working before adding the ssdt tables and p-states in my dsdt.

Link to comment
Share on other sites

Thanks FormerlyKnownAs for the tutorial. I got to input the proper p-states for my overclocked E6750 and use the smbios.plist w Chameleon to inject the MacPro3,1 value. CPU-i did show my setup throttling through my 3 p-states. I kept the ssdt tables unchanged as they seemed to be the same as for your mobo (I had fewer because only using a dual core cpu but did not remove those for the other cores). This is on a P35-DS4 rev 2.0 with an all vanilla OS X 10.5.8 + fakesmsc.kext, AHCIPortInjector, IOAHCIBlockStorageInjector and UUID.kext.

 

Unfortunately it brought in more problems then it solved:

For one I got a serious audio stutter

My dock animations and window dragging are less fluid

I lost the ability to sleep

 

Before tackling the c-states p-state stuff I had the uhci/ehci fix in my dsdt and also fixed my hdef audio using id 66 on an alc889a, + nic fix and gfx fix. The stutter for both audio and the dock animations seem related as moving my mouse wildly would lessen the amount of stutter. Is this the mouse lag problem? (It isn't my mouse that seems unresponsive). Sleep and wake from keyboard were working before adding the ssdt tables and p-states in my dsdt.

 

 

Hi

 

I'm not too sure what you've done here?

Have you just used my DSDT or have you copied bits from it?

 

You really need to use your own SSDT and you must adjust the PSS part to suite your CPU. Copying my p-states from a 4 core cpu and using on your 2 core is bound to cause problems.

 

D

 

Very interesting, because my CPU is running pretty hot, but how do I enter 7.5 (example) as my Core Multiplier? That doesn't seem to work for me (:

 

have to admit I've not tried fractions of mutil's yet I just know they are supported on my system.

 

can you enter fractions into BIOS?

 

D.

Link to comment
Share on other sites

Hi

 

I'm not too sure what you've done here?

Have you just used my DSDT or have you copied bits from it?

 

You really need to use your own SSDT and you must adjust the PSS part to suite your CPU. Copying my p-states from a 4 core cpu and using on your 2 core is bound to cause problems.

 

D

I only copied the scope part and modified SPSS and NPSS. I also checked in Everest what my ssdt tables were, and well they matched for the first 2 cores. I see we have the same mobo (P35-DS4). The only tables available to me in windows via Everest were the first 2 cores. I didn't see the need to remove those for the other cores.

 

Following is based on the p-states I got from my mobo via cpu-i, not the best voltages but I can figure that out later.

x8 3200 @ 1.372v

x7 2800 @ 1.308v

x6 2400 @ 1.212v

 

Is that right that the bus latency between NPSS and SPSS are different, 0xA0 and 0x0A?

The funny part is if I move my mouse fast I get rid of the audio stutter issue.

 

        Name (SPSS, Package (0x03)
       {
          	Package (0x06)  // P-state 1
               { 
                   0x0C80, 
                   0x0135BA, 
                   0xA0, 
                   0x0A, 
                   0x082A, 
                   0x082A
               },

               Package (0x06) // P-state 2
               {
                   0x0AF0, 
                   0x01025F, 
                   0xA0, 
                   0x0A, 
                   0x0726, 
                   0x0726
               }, 

               Package (0x06) // P-state 3
               {
                   0x0960, 
                   0x00CD35, 
                   0xA0, 
                   0x0A, 
                   0x0620, 
                   0x0620
               }
       })
       Name (NPSS, Package (0x03)
       {
           	Package (0x06)  // P-state 1
               { 
                   0x0C80, 
                   0x0135BA, 
                   0x0A, 
                   0x0A, 
                   0x082A, 
                   0x082A
               },

               Package (0x06) // P-state 2
               {
                   0x0AF0, 
                   0x01025F, 
                   0x0A, 
                   0x0A, 
                   0x0726, 
                   0x0726
               }, 

               Package (0x06) // P-state 3
               {
                   0x0960, 
                   0x00CD35, 
                   0x0A, 
                   0x0A, 
                   0x0620, 
                   0x0620
               }
       })

Link to comment
Share on other sites

...

have to admit I've not tried fractions of mutil's yet I just know they are supported on my system.

can you enter fractions into BIOS?

But of course! And the ratio can be anything from 6 to 9 on my Asus P5K PRO. I personally use a CPU ratio of 7.5 with a FSB speed of 400 (3GHz) so I have to figure out what to use (how to calculate) since the Intel documentation is anything but helpful (requires NDA). I can't be the only one having this problem, and in fact I got four PM's �€“ this week alone �€“ from other P5K PRO users asking for my help.

 

And here's a first update:

 

I booted into Ubuntu Linux and ran dmesg | grep ACPI which returned this (the most important bits only):

ACPI: SSDT CFF8E0D0, 01D2 (r1	AMI   CPU1PM		1 INTL 20060113)
ACPI: SSDT CFF8E2B0, 0143 (r1	AMI   CPU2PM		1 INTL 20060113)
ACPI: SSDT CFF8E400, 0143 (r1	AMI   CPU3PM		1 INTL 20060113)
ACPI: SSDT CFF8E550, 0143 (r1	AMI   CPU4PM		1 INTL 20060113)

Then I used acpidump like this:

acpidump -a 0xCFF8E0D0 -l 0x01D2 > cpu1pm
acpidump -a 0xCFF8E2B0 -l 0x0143 > cpu2pm
acpidump -a 0xCFF8E400 -l 0x0143 > cpu3pm
acpidump -a 0xCFF8E550 -l 0x0143 > cpu4pm

Then I decompiled the files with:

iasl -d cpu1pm
iasl -d cpu2pm
iasl -d cpu3pm
iasl -d cpu4pm

Giving me four files (see attachment) named cpuNpm.dsl – where N is a number from 1 to 4. Which is great, but there is no _CST in the ACPI 2.0 Object Table:

_PCT  Identifies location of I/O mapped MSRs for status and control
_PSS  Lists the possible processor frequency and voltage operating states
_PPC  Reflects the capabilities of the platform

And I have two different sets (SPSS and NPSS) in _PSS (see CPUxPM.zip) which I think can be of later use, if I only knew which one to use. There's also Method (_PSD, 0, NotSerialized) which I am still looking into; to see what it does.

 

Update: I found _PDC (Processor Driver Capabilities) on page 280 of ACPIspec30a.pdf – deprecated in ACPI 3.0 in favor of _OSC.

 

Then I tried to run CPU-I, which unfortunately failed to work (startup errors) and thus I recompiled both the kext and the application for Snow Leopard. It starts but doesn't show any P-State changes, making me wonder why not as it is already part of my BIOS. OS X needs C-States the get P-States working?

 

Update: We 'only' need a _CST() object to get the temperatures down, but the temperatures go sky high without _PDC so you should not remove it!

CPUxPM.zip

Link to comment
Share on other sites

I only copied the scope part and modified SPSS and NPSS. I also checked in Everest what my ssdt tables were, and well they matched for the first 2 cores. I see we have the same mobo (P35-DS4). The only tables available to me in windows via Everest were the first 2 cores. I didn't see the need to remove those for the other cores.

 

I'd remove the entried for the 2cores that you dont have.

 

And I have two different sets (SPSS and NPSS) in _PSS (see CPUxPM.zip) which I think can be of later use, if I only knew which one to use. There's also Method (_PSD, 0, NotSerialized) which I am still looking into; to see what it does.

 

Then I tried to run CPU-I, which unfortunately failed to work (startup errors) and thus I recompiled both the kext and the application for Snow Leopard. It starts but doesn't show any P-State changes, making me wonder why not as it is already part of my BIOS. OS X needs C-States the get P-States working?

 

Use the p-state calculator (in the first post!) to calculate vCore, freqency, power for each of your p-states (varying multi's - i.e. 7.5, 6, 5.5 etc .)

 

Have a look at the example on ZTEX (also linked in the first post.) Using the method decribed and the information gathered from p-state calculator you can get fid and vid data for each p-state.

 

Add this data to the SPSS and NPSS tables (only difference betwen NPSS and SPSS is the latancy value.)

 

As decribed IN THE FIRST POST - if you don't find c-states you can take them from MacPro3,1 or any other model you may be emulating in SMBIOS - This shouldn't affect speedstep though.

 

Read the guide and read through the links provided - the answer to most of what you are asking is already there.

 

D.

Link to comment
Share on other sites

Use the p-state calculator (in the first post!) to calculate vCore, freqency, power for each of your p-states (varying multi's - i.e. 7.5, 6, 5.5 etc .)

Since when is (400 * 7.5) 2800? Give it a go and enter 400 * 7.5 which results in 2800 instead of 3000 As in you have to change the CPU speed yourself when you use fractions, or people here (might) end up with the wrong values!!! That is what I was trying to address in my previous post. And you are aware that, according to Intel documentation, you can toast your CPU (no disclaimer) with the wrong values?

 

And I am not asking anything, but summing up what I did so that other P5K PRO users, like the four that PM'ed me this week, can reproduce it – other people might also find the information helpful. Now you say, but you asked: "OS X needs C-States the get P-States working?" And I did, but as in: "It works with Microsoft Windows and (Ubuntu) Linux, without any modifications, so why did Apple have to add something (again) that is not part of the specification?".

 

Update: _CST is part of the ACPI specification, but not wildly used – not in Windows or Ubuntu Linux anyway.

 

Also, would you mind changing acpi_smc_platformplugin.kext into ACPI_SMC_PlatformPlugin.kext because I just got another e-mail asking me where to locate it. Thanks.

 

Tip: Chameleon with DSDT override (link in first post) does not work with Snow Leopard!

Link to comment
Share on other sites

Well pruning the scope segment for just 2 cores didn't change anything, I still get the audio stutter. I'm going to reread what you have done as I found out some interesting stuff such as I can't just define one x8 pstate in NPSS and SPSS segments, I still get a x6 step at x8 voltages. Thanks for the suggestions so far, I think I'll table this for a bit as I have everything I want working without trying to enable vanilla speedstep.

Link to comment
Share on other sites

Since when is (400 * 7.5) 2800? Give it a go and enter 400 * 7.5 which results in 2800 instead of 3000 As in you have to change the CPU speed yourself when you use fractions, or people here (might) end up with the wrong values!!! That is what I was trying to address in my previous post. And you are aware that, according to Intel documentation, you can toast your CPU (no disclaimer) with the wrong values?

 

Somebody please correct me if I'm wrong but as far as I can tell only multiplier and and voltage values are taken from _PSS.

I have tried changing the power value up ad down and there is no increase/decrease in CPU temp as you would expect!

Also changing cpu freq value in _PSS has no effect.

 

I would hope people using this guide are smart enough not to over volt thier CPU!

NB - max vCore set in BIOS can ##EDIT## NOT ##EDIT## be increased on with a value entered in _PSS

 

Also, would you mind changing acpi_smc_platformplugin.kext into ACPI_SMC_PlatformPlugin.kext because I just got another e-mail asking me where to locate it. Thanks.

 

You should tell the people PMing you to use google http://www.google.co.uk/#hl=en&q=acpi_...6de100c80649ef3

 

D.

Link to comment
Share on other sites

Somebody please correct me if I'm wrong but as far as I can tell only multiplier and and voltage values are taken from _PSS.

Are you talking about the P-States calculator or the _PSS values used by the OS? I haven't looked into what this tool does, but _PSS lists the frequency and voltage (among others). Not the multiplier. And that is exactly why I added the ACPI object table in a previous post, which you seem to have missed.

 

Update: I just checked the P-States Calculator and it does not use the multiplier, other than to calculate the "Core Clock (MHz)".

 

I have tried changing the power value up ad down and there is no increase/decrease in CPU temp as you would expect!

Also changing cpu freq value in _PSS has no effect.

So why do you need these values, if it doesn't change anything? Let's have a look at the specification, which said what again? And yes I am asking you, because you – with your use of UPPERCASE – obviously thought that I can't read. Ha!

Link to comment
Share on other sites

No, it lists the frequency and voltage. Not the multiplier. And that is exactly why I added the ACPI object table in a previous post, which you seem to have missed.

 

 

So why do you need these values, if it doesn't change anything? Let's have a look at the specification, which said what again? And yes I am asking you, because you �" with your use of UPPERCASE �" obviously thought that I can't read. Ha!

 

Dude have you read and understood any of the thread?

 

Name (_PSS, Package (0x03)
       {
           Package (0x06)// P-State 0
           {
               3104, // f in MHz
               75000, // P in mW
               10, // Transition latency in us
               10, // Bus Master latency in us
               0x00000820, // value written to PERF_CTL; fid=8, vid=32
               0x00000820// value of PERF_STATE after successful transition; fid=8, vid=32

 

The important values being fid (mutiplier value i.e 7.5) and vid

UCpu = 800 mV + vid*12.5 mV

ergo vid = [vCore -800mV]/12.5mV

 

;)

Link to comment
Share on other sites

Dude have you read and understood any of the thread?

 

Let's be fair shall we? Let's read page 292 of the specification, which clearly states:

 

Each performance state entry contains six data fields as follows:

CoreFreq. Indicates the core CPU operating frequency (in MHz).

Power. Indicates the performance state��‚��„�s maximum power dissipation (in milliWatts).

TransitionLatency. Indicates the worst-case latency in microseconds that the CPU is unavailable

during a transition from any performance state to this performance state.

BusMasterLatency. Indicates the worst-case latency in microseconds that Bus Masters are prevented

from accessing memory during a transition from any performance state to this performance state.

Control. Indicates the value to be written to the Performance Control Register (PERF_CTRL) in order

to initiate a transition to the performance state.

Status. Indicates the value that OSPM will compare to a value read from the Performance Status

Register (PERF_STATUS) to ensure that the transition to the performance state was successful. OSPM may always place the CPU in the lowest power state, but additional states are only available when indicated by the _PPC method.

 

And thus there is no multiplier anywhere in the _PSS. Let's tackle your next blurb:

 

The important values being fid (mutiplier value i.e 7.5) and vid

UCpu = 800 mV + vid*12.5 mV

ergo vid = [vCore -800mV]/12.5mV

You just got that from some "guide" on the Internet, but point me to a single document, a single page in the specification where it states that you need to calculate PERF_CTRL and PERF_STATUS like that! No to mention this next snippet:

Name (_PSS, Package() {
Package(){650, 21500, 500, 300, 0x00, 0x08}, // Performance State zero (P0) 
Package(){600, 14900, 500, 300, 0x01, 0x05}, // Performance State one (P1)
Package(){500, 8200, 500, 300, 0x02, 0x06} // Performance State two (P2)
}) // End of _PSS object

Take a look at the Performance States! Note the 8, 5 and 6 here. Why is it that the P-States Calculator gives me other values? How do I know which one is right, if I can't check it myself?

 

p.s. Try not to attack people who are only trying to help you!

Link to comment
Share on other sites

Let's be fair shall we? Let's read page 292 of the specification, which clearly states:

 

Each performance state entry contains six data fields as follows:

CoreFreq. Indicates the core CPU operating frequency (in MHz).

Power. Indicates the performance state��‚��„�s maximum power dissipation (in milliWatts).

TransitionLatency. Indicates the worst-case latency in microseconds that the CPU is unavailable

during a transition from any performance state to this performance state.

BusMasterLatency. Indicates the worst-case latency in microseconds that Bus Masters are prevented

from accessing memory during a transition from any performance state to this performance state.

Control. Indicates the value to be written to the Performance Control Register (PERF_CTRL) in order

to initiate a transition to the performance state.

Status. Indicates the value that OSPM will compare to a value read from the Performance Status

Register (PERF_STATUS) to ensure that the transition to the performance state was successful. OSPM may always place the CPU in the lowest power state, but additional states are only available when indicated by the _PPC method.

 

And thus there is no multiplier anywhere in the _PSS. Let's tackle your next blurb:

 

 

You just got that from some "guide" on the Internet, but point me to a single document, a single page in the specification where it states that you need to calculate PERF_CTRL and PERF_STATUS like that! No to mention this next snippet:

Name (_PSS, Package() {
 Package(){650, 21500, 500, 300, 0x00, 0x08}, // Performance State zero (P0) 
 Package(){600, 14900, 500, 300, 0x01, 0x05}, // Performance State one (P1)
 Package(){500, 8200, 500, 300, 0x02, 0x06} // Performance State two (P2)
 }) // End of _PSS object

Take a look at the Performance States! Note the 0, 1 and 2 here. How com the P-States Calculator get other values?

 

p.s. Try not to attack people who are only trying to help you!

 

I don't see how your trying to help me? You just making me regurgitate whats already been posted.

 

PERF_CTRL - is the multi and vid value you are trying to achive

PERF_STATUS - is the value you are looking for after a sucessful transition

 

this value is in HEX ~> (muti)(vid)

 

from ztex.de -

The frequency ID (fid) is the multiplier for the reference clock (e.g. the FSB clock). The voltage ID (vid) is processor specific. Unfortunately Intel publishes no information about the meaning of this value but the conversion formula for Core CPU's seems to be UCpu = 700 mV + vid*12.5 mV

and for Core 2 CPU's it seems to be UCpu = 800 mV + vid*12.5 mV .

 

So no you wont find this anywhere in document because intel havent published it!!

 

Yes your PSS can be writen as (posted by roisoft.)

Name (_PSS, Package ()
{
Package (0x06) { 2403, 64260, 32, 32, 0x928, 0x000 },
Package (0x06) { 2136, 55669, 32, 32, 0x826, 0x001 },
Package (0x06) { 1869, 46806, 32, 32, 0x722, 0x002 },
Package (0x06) { 1602, 38488, 32, 32, 0x61E, 0x003 }
})
}

You will see the 5th set of data for each state 0x928, 0x826, 0x722

0x928 > multi = 9 , vid = 28 (in hex)

 

Your PSS table only seems to have a multiplier value and they are in the wrong order 8- P0, 5- P1 and 6- P2

 

The only data in that table we can't easily calculate is power (the second set of data.) this is what you can find using p-state calulator - but as previously stated this value doesn't seem to matter (although I could be wrong!) as it doesn't get reported back to BIOS in OSX and change anything - neither does the frequency value but it's got to be safest to get it right - I agree.

 

If you want your p-states to work you need to enter / EDIT this information in the PSS table .

 

Thank you So much for you fantastic help here!

:P

 

D.

 

P.S. get a dictionary and look up curmudgeon!

Link to comment
Share on other sites

I don't see how your trying to help me? You just making me regurgitate whats already been posted....

Well well. You keep being impolite and jumping over stuff like a little rabbit. Now, let's start by acknowledging (yes you) that:

 

1) The P-States Calculator has issues with fractions.

2) CPU-I crashes in Snow Leopard and has to be rebuilt.

3) There is NO multiplier info in _PSS.

4) There is no proof whatsoever that "your" calculation for PERF_CTRL and PERF_STATUS is correct. In fact it simply contradicts with the information found in the ACPI specification (see my previous example from page 295).

 

Also, take a look at this post:

"There is inconsistence of vcore reported by different tools.

cpuz (win tools) seems use equation of vcore = 712.5mv + 12.5mv *vid

P-States Calculator and MSR tool (from your post) seems use: vcore = 700mv +16mv*vid

cpu-x does not report vcore."

 

As in I wasn't the first person to question this, but don't take it so personally – you really do you know – because that is not my mission here.

 

Edit: You obviously have issues with people like me who want to see stuff in black and white, call it proof, but you keep defending information that isn't even yours to start with. Do you know these people personally? If that's a yes... then you speak German and thus I say: Auf Wiedersehen.

Link to comment
Share on other sites

Well well. You keep being impolite and jumping over stuff like a little rabbit. Now, let's start by acknowledging (yes you) that:

 

1) The P-States Calculator has issues with fractions.

2) CPU-I crashes in Snow Leopard and has to be rebuilt.

3) There is NO multiplier info in _PSS.

4) There is no proof whatsoever that "your" calculation for PERF_CTRL and PERF_STATUS is correct. In fact it simply contradicts with the information found in the ACPI specification (see my previous example from page 295).

 

Also, take a look at this post:

"There is inconsistence of vcore reported by different tools.

cpuz (win tools) seems use equation of vcore = 712.5mv + 12.5mv *vid

P-States Calculator and MSR tool (from your post) seems use: vcore = 700mv +16mv*vid

cpu-x does not report vcore."

 

As in I wasn't the first person to question this, but don't take it so personally �" you really do you know �" because that is not my mission here.

 

Edit: You obviously have issues with people like me who want to see stuff in black and white, call it proof, but you keep defending information that isn't even yours to start with. Do you know these people personally? If that's a yes... then you speak German and thus I say: Auf Wiedersehen.

 

 

dude, your comments are welcome.

 

If you'd followed this method properly - they would be relevant!

 

you haven't - there not!

 

see you on the flipside ;)

Link to comment
Share on other sites

Modifying AppleLPC.kext gave me the mythical "Automatically restart after power failure" checkbox in energy saver, that you're supposed to tick to fix sleep (AKA "Jan Bird fix" - http://www.insanelymac.com/forum/index.php...t&p=1004881 ). I've been chasing that one for more than six months, so seeing that checkbox is like finding lost treasure.

 

However, as Murphy's Law dictates, S3 sleep broke after doing this no matter if the box is ticked or not! :)

 

On the other hand, I can now shut down properly without OpenHaltRestart.kext.

 

It will be interesting to see if sleep works again if I undo the modification to AppleLPC.kext.

 

/EDIT, yes, S3 sleep came back

 

Searching for AppleLPC.kext comes up with lots of good stuff, I never knew about this. Interesting. Oh and sorry about the minor threadjack.

Yes indeed... I got sleep problem too, can sleep but cannot wake up :(....

the strange is when applelpc.kext is loading with vanilla device id....there is nothing problem with sleep...

edit

Sleep is working fine..after check "Automatically restart after power failure"....Many thanks Beerkex'd..for your info :)

  • Like 1
Link to comment
Share on other sites

...Add this data to the SPSS and NPSS tables (only difference betwen NPSS and SPSS is the latancy value.)

Would you mind checking something for me? Please add a latency value greater than 100 (indicates the system does not support a C2 state) and a latency greater than 1000 (indicates the system does not support a C3 state) to see if this information is correct?

 

Thank you!

Link to comment
Share on other sites

Would you mind checking something for me? Please add a latency value greater than 100 (indicates the system does not support a C2 state) and a latency greater than 1000 (indicates the system does not support a C3 state) to see if this information is correct?

 

Thank you!

 

My Friend

 

I'm unfortunatly at work until late.

 

Where are you getting such high latency values from? - The values in your tables (post #34) are:

 

Name (XPSS, 0x02)
       Name (_PPC, 0x00)
       Name (SPSS, Package (0x02)
       {
           Package (0x06)
           {
               0x000009C1, 
               0x000157C0, 
               0x0000006E, \\latency 
               0x0000000A, \\ latency
               0x00000086, 
               0x00000000
           }, 

           Package (0x06)
           {
               0x000007CE, 
               0x0000A3A0, 
               0x0000006E, \\ latency
               0x0000000A, \\ latency
               0x00000186, 
               0x00000001
           }
       })
       Name (NPSS, Package (0x02)
       {
           Package (0x06)
           {
               0x000009C1, 
               0x000157C0, 
               0x0000000A, \\latency
               0x0000000A, \\ latency
               0x00004720, 
               0x00004720
           }, 

           Package (0x06)
           {
               0x000007CE, 
               0x0000A3A0, 
               0x0000000A, \\ latency
               0x0000000A, \\ latency
               0x0000061A, 

 

Why on earth are you entering values of 100 and 1000 ?? Am I missing something ??

 

Are you still refering back to the example given in the ACPI 3.0 specs?

Which let's be perfectly clear, is given as an example for an unknown processor where the performance states being defined are unknown quantities:

 

8.4.4.4 Processor Performance Control Example
EXAMPLE:
This is an example of processor performance control objects in a processor object list.
In this example, a uniprocessor platform that has processor performance capabilities with support for three
performance states as follows:
1. 500 MHz (8.2W) supported at any time
2. 600 MHz (14.9W) supported only when AC powered
3. 650 MHz (21.5W) supported only when docked
It takes no more than 500 microseconds to transition from one performance state to any other performance
state.
During a performance transition, bus masters are unable to access memory for a maximum of 300
microseconds.
The PERF_CTRL and PERF_STATUS registers are implemented as Functional Fixed Hardware.
The following ASL objects are implemented within the system:
\_SB.DOCK: Evaluates to 1 if system is docked, zero otherwise.
\_SB.AC: Evaluates to 1 if AC is connected, zero otherwise.
Processor (
\_SB.CPU0, // Processor Name
1, // ACPI Processor number
0x120, // PBlk system IO address
6 ) // PBlkLen
{
Name(_PCT, Package () // Performance Control object
{
ResourceTemplate(){Register(FFixedHW, 0, 0, 0)}, // PERF_CTRL
ResourceTemplate(){Register(FFixedHW, 0, 0, 0)} // PERF_STATUS
}) // End of _PCT object
Name (_PSS, Package()
{
Package(){650, 21500, 500, 300, 0x00, 0x08}, // Performance State zero (P0)
Package(){600, 14900, 500, 300, 0x01, 0x05}, // Performance State one (P1)
Package(){500, 8200, 500, 300, 0x02, 0x06} // Performance State two (P2)

 

D.

Link to comment
Share on other sites

I chose to go only for adding p-states to my dsdt without borrowing the MacPro3,1 c-states. That works for me. I shave off maybe 5 to 7°C, but not quite the lower consumption that having the c-states enabled. With the c-states borrowed per core temps dropped up to 15°C. But this way, no audio stutter, no patchy animations. So at least I narrowed down the source of my problems.

Link to comment
Share on other sites

I chose to go only for adding p-states to my dsdt without borrowing the MacPro3,1 c-states. That works for me. I shave off maybe 5 to 7°C, but not quite the lower consumption that having the c-states enabled. With the c-states borrowed per core temps dropped up to 15°C. But this way, no audio stutter, no patchy animations. So at least I narrowed down the source of my problems.

 

Good work hackcat :censored2:

 

c-states would be great - I'm sure we'll work it out eventually.

 

D.

Link to comment
Share on other sites

How many people are working on this issue with Snow Leopard?

 

I've got some 'borrowed' _CST tables (they look very similar to the 3,1 tables) and whilst I get the _PSS tables all loaded via the native IntelCPUPowerManagement I still get the LPC error relating to C-states. This was all working under 10.5.7 but has raised as an issue under 10.6.

 

I can attach any files of relevance that people would like to see here. It is annoying me to know end at the moment :censored2:

 

Cheers,

 

Brett

Link to comment
Share on other sites

 Share

×
×
  • Create New...