Jump to content

DSDT - Vanilla Speedstep - Generic Scope (_PR)


FKA
 Share

1,949 posts in this topic

Recommended Posts

I would try mark-i first, it'll show proper C and P states. For some reason VooDoo Monitor show false voltage changes. You'll need to add ringacess.kext to your extras folder for mark-i. mark-i can be found somewhere in here from one of my posts.

 

Will test that, too ... but i think i found it. At least there is a performancestate array containing of 6 values in IOregistryexplorer, so i assume it works :(

Link to comment
Share on other sites

Hi 00diaboloic, you didnt need edit dsdt for get vanilla speedstep, because your processor (penryn) is support natively by apple.

You just change smbios macmodel to macbook5,1 or macbook6,1.

 

??

 

it's not always that simple mate or there wouldn't be an 84 page thread on the topic!

 

00diaboloic's actual CPU model is native to a macbookpro4,1 and I beleive he's already tried that model id.

 

D

 

Actually I think this is true and why I would not have to do the DSDT edits for p-states. The issue is this PlimitDict value and maybe another value which I have not discovered. This value is included in the following models: MacBook5.1, MacBook5.2, MacBookPro5.1, MacBookPro5.2, MacBookPro5.3, MacBookPro5.4, MacBookPro5.5, MacPro3.1, Macmini3.1, or iMac9.1

 

See here & here

 

If you use one of those models you can just set the identifier and have p-states in your DSDT and speedstep works. However if you use one of the other models like me. You need to edit the info plist for your model here: /System/Library/Extensions/IOPlatformFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents

 

Supposedly the models above are the ones that Apple has decided to allow full Snow Leopard support for.

 

I have tried to do that back a few posts with a legacy kext and was looking for some help because it does not seem to work. Can you guys take a look at it and see if I missed something? I have never made a legacy kext before so its completely new to me and I may have made a few errors.

 

Thanks

 

UPDATE: I decided to go back to using the MacBook4,1 ID since I noticed that in ACPI_SMC_PlatformPlugin.kext inside the MacBook4,1.plist it includes information on GPU control. The MacBookPro does not since its not a intel GPU. I also noticed that it includes in the StepDataDict both SP1 and SP4. I am not sure what those do but the MacBook4,1.plist only includes SP1. But I have a theory read on...

 

<key>StepDataDict</key>
			<dict>
				<key>MacBookPro4,1</key>
				<array>
					<dict>
						<key>num-states</key>
						<integer>9</integer>
						<key>program</key>
						<string>SP4</string>
					</dict>
				</array>
				<key>SP1</key>
--CUT--
									<key>SP4</key>

 

Anyway I went ahead and added the PLimitDict to it just in case. After doing this and rebooting I no longer get this error in kernal log.

 

WARNING - ACPI_SMC_CtrlLoop::initCPUCtrlLoop - no sub-config match for MacBookPro4,1 with 6 p-states, using default stepper instead

 

 

So I think my system is ready to speedstep including c-states which are defined in the p-list under CStateDict and MetaStateArray has 4 values for each of the c-states. However now I am wondering if maybe the system thinks it knows my CPU but it actually does not. Since the Macbook4,1 comes with a T8300 at 2.4ghz maybe it can not access the already defined p-states for my CPU. Is that what the SP1 vs SP4 is?

 

Does anyone know what the SP4 code is? If its p-states then I need to add it to my MacBook4,1 plist and Ill have everything golden as long as the c-state info is also the same for the T8300 as it is for my T9300.

 

Another question is how do you tell if its stepping? In voodoo Monitor I get the same info as always with 17 p-states and the status shows the CPU clocked at 600mhz and not moving.

 

Even MSR tools does not shed any light.. Can anyone help me figure out what SP1 and SP4 is and how to tell if speedstep is working?

 

Thanks

Link to comment
Share on other sites

??

 

it's not always that simple mate or there wouldn't be an 84 page thread on the topic!

 

00diaboloic's actual CPU model is native to a macbookpro4,1 and I beleive he's already tried that model id.

 

D

 

Yes I know it, this thread helps my conroe proccessor got native speedstep :P .

Thanks mate ;) , but in my laptop proccessor /T9600 got native speedsted without edit dsdt.

Perhaps just because apple use penryn too in macbook and macbookpro model.

 

............

Even MSR tools does not shed any light.. Can anyone help me figure out what SP1 and SP4 is and how to tell if speedstep is working?

 

Thanks

 

Hi 00Diabolic, I dont know about SP1 and SP4 thinks. But for monitor speedstep, I am using coolbook. Good Luck :D

Link to comment
Share on other sites

I'm a bit stumped with this one mate.

 

I don't think your KP related to what you've done with your DSDT. If you simply extract your DSDT using fassl DSDT patcher - you should be able to boot with the resulting DSDT.aml and no NullCPUPM kext - all be it with high CPU temps!

 

Try for me to boot with you DSDT.aml file on a USB stick and at boot prompt use:

DSDT=/Volumes/YourUSBKEY/DSDT.aml -v

 

D

 

Thanks for the reply FKA.

 

Tried using the fassl patcher. It did pick up on IRQs on the MATH/COPR device that i had not previously deleted, but apart from that made no change. However, getting rid of those IRQs still leaves me unable to boot KP free without the disabler kext. I have tried all the usual stuff in getting the DSDT to a state where I should be able to boot without that damn disabler no joy.

 

I really do think it is the fact that effectively the Scope (_PR) of the DSDT calls all the information from the SSDTs - and that one of those two SSDTs is effectively borked - which is messing with this.

 

I will try and see if i can make something up that will "look right" for Scope (_PR) based on slightly more conventional DSDTs - I have a copy of a speedstep enabled DSDT for a Toshiba using the exact same processor. It is perhaps a dangerous approach to do that, but I feel that the disabler kext issue is also one of the things that is holding me back from proper sleep, so it's worth experimenting to see what i can do to solve this.

 

Interestingly speedstep does work in Windows 7 according to CPU-z, so the ACPI tables must surely not be completely messed up!

 

Any and all ideas gratefully received of course. For the record, my latest DSDT (i.e. patched by me up to now) is attached.

DSDT.aml.zip

Link to comment
Share on other sites

Yes I know it, this thread helps my conroe proccessor got native speedstep :D .

Thanks mate :D , but in my laptop proccessor /T9600 got native speedsted without edit dsdt.

Perhaps just because apple use penryn too in macbook and macbookpro model.

 

 

 

Hi 00Diabolic, I dont know about SP1 and SP4 thinks. But for monitor speedstep, I am using coolbook. Good Luck :D

 

Yeah I have been reading all about my t9300 and apple support. Brett Whinnen in this very thread was looking at doing the same thing as me. Master Chief helped him and I hope he or formerlyknownas can help me now cuz I'm really close now.. I think I got it actually.

 

Here are my concerns with the current speedstep I have setup. My system is now running as if its a MacBook4,1 as this model is a 90% match to mine. Only the CPU is different. T8300 to T9300. But there in the same family so I think they would have the same p-states/c-states.

 

If you read here. OSX picks up my p-states from my SSDT tables automatically on my lenovo. Or at least I believe they are because I dont know where else there coming from. I took the p-states out of my DSDT once I read the above topic and concluded that my cpu should have native support.

 

Anyway here is an update from my last post. I have used the MacBook4_1.plist instead of the MacBookPro4,1.plist located in /S/L/E/IOPlatformFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources

 

To make a legacy kext which loads and correctly intialized ACPI_SMC_platformplugin and I dont get that speedstep error anymore.

 

This sets up my p-states & c-states which are showing in IOregistry explorer. See attached image to confirm I do have c-states. cuz im not sure I do. Is there a way to tell there working besides the CSTinfo value?

 

I was able to confirm I have stepping that is happening but its not low enough. see sysctl info

 

sysctl -a | grep freq

hw.busfrequency = 800000000

hw.cpufrequency = 1200000000

hw.tbfrequency = 1000000000

hw.busfrequency: 800000000

hw.busfrequency_min: 800000000

hw.busfrequency_max: 800000000

hw.cpufrequency: 1200000000

hw.cpufrequency_min: 1200000000

hw.cpufrequency_max: 2500000000

hw.tbfrequency: 1000000000

 

So now I have a few questions.

 

1. Are my C-states working? See attached image for CSTinfo value. I dont have the value CStateDemotionDict in my legacy kext and from what I understand thats a critical part to getting c-states working. So im questioning the CSTinfo value.

 

2. How come when I run the command dmesg | grep ACPI

 

All I get is this?? -->

Got boot device = IOService:/AppleACPIPlatformExpert/PCI0/AppleACPIPCI/SATA@1F,2/AppleICH8AHCI

/PRT0@0/IOAHCIDevice@0/AppleAHCIDiskDriver/IOAHCIBlockStorageDevice/IOBlockStorageDriver/WDC WD2500BEVS-22UST0 Media/IOFDiskPartitionScheme/Untitled 1@1

 

I should see something like this but I dont

 

AppleACPICPU: ProcessorId=1 LocalApicId=1 Enabled

ACPI: System State [s0 S3 S4 S5] (S3)

 

WHY? Is that DSDT related? Arnt those power states? If my system cant see the system state how can I fix this? This has to be a major issue right?

 

3. This is a 3 part question.. Part A. Why is my low p-state so high? I have 1200mhz as my lowest step, with voodoopower my lowest step was 300mhz. Can I make this lower? What SSDT table do I have to edit (I have SSDT SSDT1-4)? Once I make the edits and feed that to my bootloader will it just work? Or is there some other voodoo I need to do?

 

Part B. I say my p-states are being pulled from the SSDT tables but I'm not 100% sure where they are. Is there a way to find out?

 

Part C. Also could the reason my p-states are so low be that I use the macbook4,1 as my ID and its t8300 only clocks to 1200mhz 1/2 its value. If I was to use the MacBookPro4,1 as my ID it would be better as I have a T9300 the same CPUs offered on that system. Would doing this give me the lower p-states I want or are the p-states in the ACPI tables and my bios does not hold a table with a value less then 1200mhz for a core 2 duo regardless of model in the family?

 

4. How come sleep wont work for me now that I have all of this working correctly? I have everything vanilla yet sleep still leaves me at a black screen and I have to reboot.

 

Also I have this as a warning in my log.. warning - com.apple.driver.InternalModemSupport declares no kernel dependencies; using com.apple.kernel.6.0.

 

Could that be causing an issue? Is that of any concern? I could care less about the modem on my system.

 

Sorry I know some of these last questions are a bit off topic but its all related to knowing if I got speedstep working right. Plus I know the experts here can tell me if some of this could be an issue I need to address.

post-155458-1278003820_thumb.png

Link to comment
Share on other sites

@00diabolic, Since 10.6.2 you need a "fake macbook model" for built and implement a legacy .kext (your own extension) for native speedstep... as you can see here. Please sorry for my english, but basically you can simulate a fake model like macbook4,2 (from smbios.plist), then built your own legacy (can load from /E/E) and rebuilt the extensions.mkext in Extra with kextutility 2.4.2 (by cVaD). For the legacy you can use mine attached for reference, please compare and replace all declarations from macbook3,2 to macbook4,2... and needed do the work to compare/replaced it "LINE BY LINE" with the information from vanilla macbook4,1.plist, specifically the entire section "IOPlatformThermalProfile" and specially the section "SP1" because this section change in 10.6.3 and 10.6.4. The mentioned file as you know, is located in /S/L/E/IOPlatformFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources.

 

Good luck, and let me know if worked for you.

Legacy_SpeedStep_MacBook31_1064.kext.zip

Link to comment
Share on other sites

@00diabolic, Since 10.6.2 you need a "fake macbook model" for built and implement a legacy .kext (your own extension) for native speedstep... as you can see here. Please sorry for my english, but basically you can simulate a fake model like macbook4,2 (from smbios.plist), then built your own legacy (can load from /E/E) and rebuilt the extensions.mkext in Extra with kextutility 2.4.2 (by cVaD). For the legacy you can use mine attached for reference, please compare and replace all declarations from macbook3,2 to macbook4,2... and needed do the work to compare/replaced it "LINE BY LINE" with the information from vanilla macbook4,1.plist, specifically the entire section "IOPlatformThermalProfile" and specially the section "<key>SP1</key>" because this section change in 10.6.3 and 10.6.4. The mentioned file as you know, is located in /S/L/E/IOPlatformFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources.

 

Good luck, and let me know if worked for you.

 

HELL YES..... THANK YOU.. This all makes sense why its not perfect now and why its clocking so high..

 

Now a lot of what silencer says makes sense also.

 

I'm shocked I did not find your guide before now. I'm a good googler and I never saw it. Thanks for the info you are a god send. Ill report back if this all works.

 

Also I asked this before but no one seems to know.. what is the StepDataDict SP1 program? The MacBookPro4,1 has a SP4 program? What are those? Also you said above <key>SP1</key>" has changed in 10.6.3 and 10.6.4. What changed in that key? What CPU uses SP4? Maybe T9300? Let me know if you know. I only have 10.6.2 for now.. but once I get this all working Ill go for 10.6.3

 

The rest of my questions are a wash if I make all these changes except 1.. do you know why I dont see more when I run dmesg | grep ACPI?

 

I am concerned about this. Isnt it reporting back the system state important?

 

Maybe someone else can answer that?

 

Thanks again

Link to comment
Share on other sites

It's funny how things turn out. I didn't know you had to do this for laptops since 10.6.2, so I'm sorry if I led you down the wrong path.

 

Now you get to have your ROFLCopterX,Y Mac afterall. :)

 

Haha yeah.... I thought what you said made more sense originally but now to get good speedstep its the only way...

 

Back to my MacBook4,3 now..

 

Hey Gringo.. do you know why dmesg | grep ACPI gives me no system state and is there a way to fix that? Or is it not an issue. Maybe its a DSDT problem?

Link to comment
Share on other sites

That's the default value for Vcore in bios, you can also see it using Core Temp on Windows.

 

This is my bios voltage settings for 3.91 GHz:

******Motherboard Voltage Control******

Load-Line Calibration..........................[ Enabled ]
CPU Vcore [ 1.225].............................[ Normal  ]
CPU Termination [ 1.20 ].......................[ 1.22    ]
CPU PLL [ 1.50 ]...............................[ 1.57    ]
CPU Reference [ 0.760 ]........................[ Auto    ]

MCH Core [ 1.100 ].......................[ 1.30   ]
MCH Reference [ 0.760 ]..................[ Auto   ]
MCH/DRAM Refernce [ 0.900 ]..............[ Auto   ]
ICH I/O [ 1.500 ]........................[ 1.57   ]
ICH Core [ 1.100 ].......................[ 1.20   ]

DRAM Voltage [ 1.800 ]...................[1.90    ]
DRAM Termination [ 0.900 ]...............[ Auto   ]
Channel A Ref [ 0.900 ]..................[ Auto   ]
Channel B Ref [ 0.900 ]..................[ Auto   ]

Out of curiosity have you run mprime with those settings?
Link to comment
Share on other sites

Out of curiosity have you run mprime with those settings?

 

I use Prime95, same program, but Prime95 has GUI. And yes, I've run 24+ h tests with all torture test modes. I always start with Linpack, 20 passes with max memory and if that passes then I move to Prime95. If you try Linpack be careful with temperatures, on my system that runs almost 10 degrees warmer than Prime with small FFT's.

Link to comment
Share on other sites

the DSDT - Vanilla Speedstep - Generic Scope (_PR) worked for me (system in my sig)

 

No need for:

 

NullCPUPowerManagement.kext

SleepEnabler.kext

EvOreboot.kext

 

anymore!!!

 

In my /E/E folder i have Fakesmc and AHCIportinjector now.

 

Thank you very much! Im working hard to get everything in the DSDT! with no kexts at all!

 

CPU Temps are a bit high sitting at 57C doing nothing.

 

 

I didnt do the last part of the guid... and it worked ok..

 

AppleLPC then you will nedd to also patch this decive.

Run lspci Tools and look for ISA device - something like:

00:1f.0 ISA bridge [0601]: Intel Corporation Unknown device [8086:3a16]

Link to comment
Share on other sites

I use Prime95, same program, but Prime95 has GUI. And yes, I've run 24+ h tests with all torture test modes. I always start with Linpack, 20 passes with max memory and if that passes then I move to Prime95. If you try Linpack be careful with temperatures, on my system that runs almost 10 degrees warmer than Prime with small FFT's.
I also notice from one of your screenshots that you're running iMac9,1 instead of MacPro3,1 I wonder if that has any impact on performance.
Link to comment
Share on other sites

It's funny how things turn out. I didn't know you had to do this for laptops since 10.6.2, so I'm sorry if I led you down the wrong path.

 

Now you get to have your ROFLCopterX,Y Mac afterall. :wacko:

 

+1, I'm clearly not up to date . :D

 

@mm67 - Re: you MSI board - Without adding _PSS to DSDT I notice my ViD's are slightly higher than I calculated for my GigaByte board @ the same FSB.

 

eg p2 ViD MSI = 1D

p2 ViD Giga = 1B

 

p3 Vid MSI = 18

p3 ViD Giga = 16

 

P1 = 20 for both

 

How does this sit with your p43 board?

 

D

Link to comment
Share on other sites

I also notice from one of your screenshots that you're running iMac9,1 instead of MacPro3,1 I wonder if that has any impact on performance.

 

I don't see any difference in performance whether I use MacPro3,1, iMac9,1 or iMac10,1. Geekbench and Xbench results are exactly same and P- and C-states work.

 

 

+1, I'm clearly not up to date . :D

 

@mm67 - Re: you MSI board - Without adding _PSS to DSDT I notice my ViD's are slightly higher than I calculated for my GigaByte board @ the same FSB.

 

eg p2 ViD MSI = 1D

p2 ViD Giga = 1B

 

p3 Vid MSI = 18

p3 ViD Giga = 16

 

P1 = 20 for both

 

How does this sit with your p43 board?

 

D

 

Both MSI and Gigabyte read my E7400 as having P-states from 0x616 to 0x4A25. Gigabyte SSDT uses 3 P-states and MSI uses 5 P-states for that same Cpu. I don't think you should be counting VID's manually, each chip has it's own VID which bios reads from it.

Link to comment
Share on other sites

Hi,

i try to figure out if i get C4 working. I use this package

 

Name (_CST, Package (0x04)
           {
               0x03, 
               Package(0x04){ResourceTemplate (){Register(FFixedHW,0x01,0x02,0x000,)},One,One,0x03E8},
               Package(0x04){ResourceTemplate (){Register(SystemIO,0x08,0x00,0x414,)},0x02,One,0x01F4},                    
               Package(0x04){ResourceTemplate (){Register(SystemIO,0x08,0x00,0x416,)},0x04,0x96,0x64}
           })
       }

 

In SL running sudo setpci -s 0:1f.0 0xa6.b returns with "cannot find any working access method".

 

Same cmd in Linux returns with "80"

 

 

C4 in Linux = YES ? C4 in SL = NO ?

 

Im a bit lost here, can someone please tell me what that means ? And how can i successfully run the above cmd in SL ?

 

thank you

Link to comment
Share on other sites

I don't think you should be counting VID's manually, each chip has it's own VID which bios reads from it.

 

The vids used for my Gigabyte board where taken from voodoopower kext.

 

So which are correct?

 

D

Link to comment
Share on other sites

The vids used for my Gigabyte board where taken from voodoopower kext.

 

So which are correct?

 

D

 

I always use P-states from original SSDT tables, I don't see any reason to believe that those values would be wrong. At least those are what Linux and Windows use.

Link to comment
Share on other sites

hello guys, i tried to follow the steps but i'm getting trouble!

 

i have an HP tm2 1090eg wich has a intel su7300 processor dual core.

 

i'm trying to fix sleep mode and speedstep, i cant get it work... and i have KPs very often, then sometimes boot but withouth results!

 

i got the all-built in fix at usbs but when i try to put it sleep its goes than come back from sleep suddenly!

 

here is my DSDT, my ioregistryexplorer report, my details taken from vodoo monitor about vid fid etc..

samu___s_MacBook_Pro.zip

dsdt1.aml.zip

 

 

FID - VID

46 18 1294 mhz x6,5 1,084v 0x4618 0xD

06-16 1194 mhz x6,0 1,052v 0x616 0XC

8A 15 995mhz x5,0 1,004v 0x8A15 0XB

88 13 796 mgz x4.0 1,004 0x8813 0x9

86 10 597 mhz x3,0 0.956v 0x8610 0x7

 

 

THANKS for any help!

Link to comment
Share on other sites

I always use P-states from original SSDT tables, I don't see any reason to believe that those values would be wrong. At least those are what Linux and Windows use.

 

precisely - and here is my _PSS data from my SSDT:

 

        Method (_PSS, 0, NotSerialized)
       {
           If (LAnd (LNot (And (CFGD, 0x4000)), LEqual (And (PDC0, 
               0x09), 0x09)))
           {
               Return (NPSS)
           }

           Return (SPSS)
       }

       Name (SPSS, Package (0x03)
       {
           Package (0x06)
           {
               0x00000A6B, 
               0x00015BA8, 
               0x000000A0, 
               0x0000000A, 
               0x00000820, 
               0x00000820
           }, 

           Package (0x06)
           {
               0x0000091D, 
               0x000124F8, 
               0x000000A0, 
               0x0000000A, 
               0x0000071B, 
               0x0000071B
           }, 

           Package (0x06)
           {
               0x000007D0, 
               0x0000F230, 
               0x000000A0, 
               0x0000000A, 
               0x00000616, 
               0x00000616
           }
       })

 

so where is 1D and 18 coming from when I don't inject the values from SSDT?

 

D

Link to comment
Share on other sites

precisely - and here is my _PSS data from my SSDT:

 

        Method (_PSS, 0, NotSerialized)
       {
           If (LAnd (LNot (And (CFGD, 0x4000)), LEqual (And (PDC0, 
               0x09), 0x09)))
           {
               Return (NPSS)
           }

           Return (SPSS)
       }

       Name (SPSS, Package (0x03)
       {
           Package (0x06)
           {
               0x00000A6B, 
               0x00015BA8, 
               0x000000A0, 
               0x0000000A, 
               0x00000820, 
               0x00000820
           }, 

           Package (0x06)
           {
               0x0000091D, 
               0x000124F8, 
               0x000000A0, 
               0x0000000A, 
               0x0000071B, 
               0x0000071B
           }, 

           Package (0x06)
           {
               0x000007D0, 
               0x0000F230, 
               0x000000A0, 
               0x0000000A, 
               0x00000616, 
               0x00000616
           }
       })

 

so where is 1D and 18 coming from when I don't inject the values from SSDT?

 

D

 

Now I don't understand, where do you see these 1D and 18 ? On VoodooMonitor ?

Link to comment
Share on other sites

Hi,

i try to figure out if i get C4 working. I use this package

 

Name (_CST, Package (0x04)
           {
               0x03, 
               Package(0x04){ResourceTemplate (){Register(FFixedHW,0x01,0x02,0x000,)},One,One,0x03E8},
               Package(0x04){ResourceTemplate (){Register(SystemIO,0x08,0x00,0x414,)},0x02,One,0x01F4},                    
               Package(0x04){ResourceTemplate (){Register(SystemIO,0x08,0x00,0x416,)},0x04,0x96,0x64}
           })
       }

 

In SL running sudo setpci -s 0:1f.0 0xa6.b returns with "cannot find any working access method".

 

Same cmd in Linux returns with "80"

 

 

C4 in Linux = YES ? C4 in SL = NO ?

 

Im a bit lost here, can someone please tell me what that means ? And how can i successfully run the above cmd in SL ?

 

thank you

 

Just install lspci package, I think it's been posted on this thread couple of times. Or get it from EvosX86 site.

Link to comment
Share on other sites

A weird one! I have everything work fine, I can see the p-states changing and the voltage reducing etc!

 

But when I try and sleep the fans stay on..... and it dosent wake from sleep.

The I have to turn the power off and on again, them the p-states are not work when i restart.....

 

I have to then shut down again then reboot to get them to work.

 

Anyone have any ideas?

Link to comment
Share on other sites

 Share

×
×
  • Create New...