DSDT - Vanilla Speedstep - Generic Scope (_PR) |
DSDT - Vanilla Speedstep - Generic Scope (_PR) |
|
FormerlyKnownAs
Passenger
|
![]() |
Aug 25 2009, 02:09 PM Post #201
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
This guide assumes you are already experienced in editing DSDT files. Please DO NOT post full DSDT files in a code box. Please Post DSDT.dsl.zip files You will firstly have to have extracted your DSDT.aml. This can be done with fassl's DSDT patcher or koalala's ACPI patcher. Once you have extracted your DSDT.aml file you must decompile the file using IASLME. mitch_de has the most up to date version available here. Now looking at your DSDT.dsl file we're going to edit the CPU part of 'Scope (PR)' which, unedited should look something like: CODE { Scope (_PR) { Processor (CPU0, 0x00, 0x00000410, 0x06) {} Processor (CPU1, 0x01, 0x00000410, 0x06) {} Processor (CPU2, 0x02, 0x00000410, 0x06) {} Processor (CPU3, 0x03, 0x00000410, 0x06) {} } /////// below removed Note this is not a simple cut and paste job you are going to have to spend some time working out some of the data that's to be includeded in the P and C state code. Ok - to the above code we will add this: Note: Do Not copy and paste from the code box. This code is attached as a text file at the end of the post. CODE Scope (_PR.CPU0) { Method (_PSS, 0, NotSerialized) { Return (Package (0x0R) { Package (0x06) { Zero, Zero, 0x10, 0x10, 0xSSSS, //FId/VID of p-state 0 (HIGHEST P-state) Zero // p-state 0 }, Package (0x06) { Zero, Zero, 0x10, 0x10, 0xSSSS, // FID/VID for p-state 1 One // p-state 1 }, Package (0x06) { Zero, Zero, 0x10, 0x10, 0xSSSS, // FID/VID 0x02 //p-state 2 } }) } Method (_PSD, 0, NotSerialized) { Return (Package (0x05) { 0x05, Zero, Zero, 0xFC, 0x04 }) } Method (_CST, 0, NotSerialized) { Return (Package (0x02) { One, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x01, // Bit Width 0x02, // Bit Offset 0x0000000000000000, // Address 0x01, // Access Size ) }, One, 0x9D, 0x03E8 } }) } } Scope (_PR.CPU1) { Method (_PSS, 0, NotSerialized) { Return (^^CPU0._PSS ()) } Method (_PSD, 0, NotSerialized) { Return (^^CPU0._PSD ()) } Method (_CST, 0, NotSerialized) { Return (Package (0x04) { 0x03, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x01, // Bit Width 0x02, // Bit Offset 0x0000000000000000, // Address ,) }, One, Zero, 0x03E8 }, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x08, // Bit Width 0x00, // Bit Offset 0x0000000000000414, // Address ,) }, 0x02, One, 0x01F4 }, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x08, // Bit Width 0x00, // Bit Offset 0x0000000000000415, // Address ,) }, 0x03, 0x55, 0xFA } }) } } Scope (_PR.CPU2) { Method (_PSS, 0, NotSerialized) { Return (^^CPU0._PSS ()) } Method (_PSD, 0, NotSerialized) { Return (^^CPU0._PSD ()) } Method (_CST, 0, NotSerialized) { Return (^^CPU1._CST ()) } } Scope (_PR.CPU3) { Method (_PSS, 0, NotSerialized) { Return (^^CPU0._PSS ()) } Method (_PSD, 0, NotSerialized) { Return (^^CPU0._PSD ()) } Method (_CST, 0, NotSerialized) { Return (^^CPU1._CST ()) } } Obviously the above is for a quad core CPU with 3 p-states defined. For a Dual core CPu you would need to remove the section highlighted in green. You may also have to define more than 3 p-states but we'll get to that shortly. You will see there are various values highlighted in red. Firstly - R R needs to be replaced with the number of p-states you have defined so in this case 3 p-states are defined so R would be replaced with 3, with 4 p-states defined R is repaced with 4 and so on. The values represented above by S are a combination of FID and VID. There is a good explanation of FID and VID values here . For ease we'll find these values using voodoopstate.kext and pstatechanger both linked at the end of this post. Install the kext reboot and run pstatechanger,
changer.png ( 16K )
Number of downloads: 800You can see I have 3 p-states, you may have more. So from this you can see for my 0 p-state I should have a FID of 08 and a VID of 20. Adding this to the Mehtod _PSS partf of the code like so: CODE Scope (_PR.CPU0) { Method (_PSS, 0, NotSerialized) { Return (Package (0x03) { Package (0x06) { Zero, Zero, 0x0A, 0x0A, 0x0820, Zero }, Repeat for each p-state, so again in my case I end up with: CODE Scope (_PR.CPU0) { 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 } }) } Method (_PSD, 0, NotSerialized) { Return (Package (0x05) { 0x05, Zero, Zero, 0xFC, 0x04 }) } Method (_CST, 0, NotSerialized) { Return (Package (0x02) { One, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x01, // Bit Width 0x02, // Bit Offset 0x0000000000000000, // Address 0x01, // Access Size ) }, One, 0x9D, 0x03E8 } }) } } Scope (_PR.CPU1) { Method (_PSS, 0, NotSerialized) { Return (^^CPU0._PSS ()) } Method (_PSD, 0, NotSerialized) { Return (^^CPU0._PSD ()) } Method (_CST, 0, NotSerialized) { Return (Package (0x04) { 0x03, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x01, // Bit Width 0x02, // Bit Offset 0x0000000000000000, // Address ,) }, One, Zero, 0x03E8 }, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x08, // Bit Width 0x00, // Bit Offset 0x0000000000000414, // Address ,) }, 0x02, One, 0x01F4 }, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x08, // Bit Width 0x00, // Bit Offset 0x0000000000000415, // Address ,) }, 0x03, 0x55, 0xFA } }) } } Scope (_PR.CPU2) { Method (_PSS, 0, NotSerialized) { Return (^^CPU0._PSS ()) } Method (_PSD, 0, NotSerialized) { Return (^^CPU0._PSD ()) } Method (_CST, 0, NotSerialized) { Return (^^CPU1._CST ()) } } Scope (_PR.CPU3) { Method (_PSS, 0, NotSerialized) { Return (^^CPU0._PSS ()) } Method (_PSD, 0, NotSerialized) { Return (^^CPU0._PSD ()) } Method (_CST, 0, NotSerialized) { Return (^^CPU1._CST ()) } } This code can now be added to your DSDT.dsl file, placed under your CPU part of Scope (_PR) like so: CODE * Compiler Version 0x20091112 (537465106) */ DefinitionBlock ("/Users/Dave/Desktop/DSDT.aml", "DSDT", 1, "GBT ", "GBTUACPI", 0x00001000) { Scope (_PR) { Processor (CPU0, 0x00, 0x00000410, 0x06) {} Processor (CPU1, 0x01, 0x00000410, 0x06) {} Processor (CPU2, 0x02, 0x00000410, 0x06) {} Processor (CPU3, 0x03, 0x00000410, 0x06) {} } Scope (_PR.CPU0) { 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 } }) } Method (_PSD, 0, NotSerialized) { Return (Package (0x05) { 0x05, Zero, Zero, 0xFC, 0x04 }) } Method (_CST, 0, NotSerialized) { Return (Package (0x02) { One, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x01, // Bit Width 0x02, // Bit Offset 0x0000000000000000, // Address 0x01, // Access Size ) }, One, 0x9D, 0x03E8 } }) } } Scope (_PR.CPU1) { Method (_PSS, 0, NotSerialized) { Return (^^CPU0._PSS ()) } Method (_PSD, 0, NotSerialized) { Return (^^CPU0._PSD ()) } Method (_CST, 0, NotSerialized) { Return (Package (0x04) { 0x03, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x01, // Bit Width 0x02, // Bit Offset 0x0000000000000000, // Address ,) }, One, Zero, 0x03E8 }, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x08, // Bit Width 0x00, // Bit Offset 0x0000000000000414, // Address ,) }, 0x02, One, 0x01F4 }, Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x08, // Bit Width 0x00, // Bit Offset 0x0000000000000415, // Address ,) }, 0x03, 0x55, 0xFA } }) } } Scope (_PR.CPU2) { Method (_PSS, 0, NotSerialized) { Return (^^CPU0._PSS ()) } Method (_PSD, 0, NotSerialized) { Return (^^CPU0._PSD ()) } Method (_CST, 0, NotSerialized) { Return (^^CPU1._CST ()) } } Scope (_PR.CPU3) { Method (_PSS, 0, NotSerialized) { Return (^^CPU0._PSS ()) } Method (_PSD, 0, NotSerialized) { Return (^^CPU0._PSD ()) } Method (_CST, 0, NotSerialized) { Return (^^CPU1._CST ()) } } Name (_S0, Package (0x04) { Zero, Zero, Zero, Zero }) Name (SS1, Package (0x04) // rest of DSDT removed Now if in ioreg you DO NOT see 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] You can see in red the memory address in this case (and I think most cases.) is 001F0000. Search your DSDT for 001F0000 to find the device. For my GigaByte MB this is a device PX40. For ease I have renamed the device LPCB - remember to change all instances of PX40 to LPCB. So using zhell's DSDT device id trick you can add any device id that exists in the AppleLPC.kext plist. Probably best to go for an id closest to you actual device id. (in this case MB device id is [8086:3a16] so form the AppleLPC.kext there is device id 3A18 so my Device (LPCB) formerly PX40 now looks like this: CODE Device (LPCB) { Name (_ADR, 0x001F0000) Method (_DSM, 4, NotSerialized) { Store (Package (0x02) { "device-id", Buffer (0x04) { 0x18, 0x3A, 0x00, 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } OperationRegion (PREV, PCI_Config, 0x08, One) Scope (\) { Field (\_SB.PCI0.LPCB.PREV, ByteAcc, NoLock, Preserve) { REV0, 8 } } OperationRegion (PIRQ, PCI_Config, 0x60, 0x04) Scope (\) { // remainder removed Recomplile the DSDT.dsl to DSDT.aml using IASLME - fingers crossed no errors - and your done! Please NOTE: AppleLPC.kext will give you the 'Automatic restart after power failure' option in power savings. This option needs to be checked for sleep! This works for me with the model identifyer set to MacPro3,1 and MacPro4,1. If you want to use a none native model identifyer then you'll need to use Master Chiefs Legacy SMC kext that can be found in post #381 here You will need to edit the plist adding your custom model identifyer. You DO NOT need to add dropSSDT=y as boot argument and or change acpi_smc_platformplugin.kext No need for disabler and don't forget to remove the voodoopstate.kext. This will give vanilla stepping and remove any _cst evaluation errors at boot. and may (if you're lucky.) enable c-states Here is the generic Scope (_PR)
GenericScopePR.zip ( 590bytes )
Number of downloads: 1610And here is my
DSDT17_11_09.zip ( 12.69K )
Number of downloads: 1175for reference.
PStateChangerv1.0.3__1_.zip ( 60.31K )
Number of downloads: 2215
voodoopstate.v4.zip ( 45.07K )
Number of downloads: 2085Voodoomonitor Further reading: zhell's DSDT Trick mackerintel chameleon with DSDT override fassl DSDT patcher koalala ACPI patcher ab__73's chameleon bootloader SSDT and DSDT override EVO's DSDT - Very useful nOOb DSDT tool ! www.acpi.info/DOWNLOADS/ACPIspec40.pdf Credit to mm67 and Master Chief for the generic Scope (_PR) bcc9 and hnak for Voodoopstate.kext and to kdawg, beerkex'd, keeza, THe KiNG ... ALL who've help out on this in one way or another - too many to mention. Enjoy D.
Attached File(s)
|
FormerlyKnownAs DSDT - Vanilla Speedstep - Generic Scope (_PR) Aug 25 2009, 02:09 PM
Eliade About the heat problem I had:
well I didn't k... Sep 17 2009, 07:19 AM
Beerkex'd QUOTE (Eliade @ Sep 17 2009, 04:19 AM) I ... Sep 18 2009, 03:23 AM
Eliade QUOTE (Beerkex'd @ Sep 17 2009, 09:23... Sep 18 2009, 03:54 AM
thestevo Hello, I originally got P-states registered by fol... Sep 17 2009, 08:37 PM
keeza Need some help please to get my speedstepping work... Sep 18 2009, 02:16 AM
yeehaa QUOTE (keeza @ Sep 17 2009, 10:16 PM) Nee... Sep 18 2009, 02:47 AM
keeza QUOTE (yeehaa @ Sep 18 2009, 12:47 PM) yo... Sep 18 2009, 03:16 AM
yeehaa QUOTE (keeza @ Sep 17 2009, 11:16 PM) Tha... Sep 18 2009, 03:29 AM
keeza QUOTE (yeehaa @ Sep 18 2009, 01:29 PM) th... Sep 18 2009, 03:44 AM
yeehaa QUOTE (keeza @ Sep 17 2009, 11:44 PM) OK,... Sep 18 2009, 04:34 AM
keeza QUOTE (yeehaa @ Sep 18 2009, 02:34 PM) yo... Sep 18 2009, 11:13 AM
yeehaa QUOTE (keeza @ Sep 18 2009, 07:13 AM) Yee... Sep 18 2009, 10:20 PM
Beerkex'd Okay, I finally had my breakthrough with this and ... Sep 19 2009, 03:20 AM

Master Chief QUOTE (Beerkex'd @ Sep 19 2009, 05:20... Sep 19 2009, 10:12 AM


Beerkex'd QUOTE (Master Chief @ Sep 19 2009, 07:12 ... Sep 19 2009, 05:11 PM



Master Chief QUOTE (Beerkex'd @ Sep 19 2009, 07:11... Sep 19 2009, 08:20 PM


Eliade QUOTE (Master Chief @ Sep 19 2009, 04:12 ... Sep 19 2009, 08:54 PM


Master Chief QUOTE (Eliade @ Sep 19 2009, 10:54 PM) I ... Sep 19 2009, 09:11 PM


Eliade QUOTE (Master Chief @ Sep 19 2009, 03:11 ... Sep 19 2009, 11:19 PM


yeehaa QUOTE (Master Chief @ Sep 19 2009, 05:11 ... Sep 20 2009, 01:03 AM


Master Chief QUOTE (yeehaa @ Sep 20 2009, 03:03 AM) yo... Sep 20 2009, 11:33 AM


Eliade QUOTE (Master Chief @ Sep 20 2009, 05:33 ... Sep 20 2009, 10:40 PM

jinnggoff QUOTE (Beerkex'd @ Sep 19 2009, 03:20... Sep 20 2009, 05:16 AM
keeza QUOTE (yeehaa @ Sep 19 2009, 08:20 AM) du... Sep 19 2009, 11:13 PM
keeza QUOTE (keeza @ Sep 20 2009, 09:13 AM) Hol... Sep 21 2009, 01:21 AM
yeehaa QUOTE (keeza @ Sep 20 2009, 09:21 PM) OK ... Sep 21 2009, 02:16 AM
Eliade remove cpui kext, and disabler, reboot
run MSRtool... Sep 21 2009, 03:31 AM
Eliade cpui will KP my system during boot if I don't ... Sep 19 2009, 09:25 AM
Master Chief RE: DSDT - Vanilla Speedstep - Generic Scope (_PR) Sep 19 2009, 12:11 PM
FormerlyKnownAs RE: DSDT - Vanilla Speedstep - Generic Scope (_PR) Sep 21 2009, 01:24 PM
Master Chief QUOTE (FormerlyKnownAs @ Sep 21 2009, 03... Sep 21 2009, 02:18 PM
FormerlyKnownAs QUOTE (Master Chief @ Sep 21 2009, 03:18 ... Sep 21 2009, 02:45 PM
WinstonAce What is your model identifier under system profile... Sep 21 2009, 01:42 AM
keeza QUOTE (WinstonAce @ Sep 21 2009, 11:42 AM... Sep 21 2009, 05:00 AM
Eliade your temps are about the same as mine with speed s... Sep 21 2009, 05:43 AM
keeza QUOTE (Eliade @ Sep 21 2009, 03:43 PM) yo... Sep 21 2009, 08:11 AM
FormerlyKnownAs QUOTE (keeza @ Sep 21 2009, 09:11 AM) OK,... Sep 21 2009, 11:16 AM
keeza [quote name='FormerlyKnownAs' date='Se... Sep 22 2009, 02:56 AM
keeza Looks like I got it working!!
CPUi shows ... Sep 21 2009, 05:36 AM
WinstonAce QUOTE (keeza @ Sep 21 2009, 05:36 AM) Loo... Sep 21 2009, 08:10 AM
keeza QUOTE (WinstonAce @ Sep 21 2009, 06:10 PM... Sep 21 2009, 08:33 AM
mitch_de Hi i read this thread with interest.
I have an EP3... Sep 21 2009, 06:27 AM
Master Chief The following if statement is not true and thus yo... Sep 21 2009, 07:21 AM
mitch_de QUOTE (Master Chief @ Sep 21 2009, 09:21 ... Sep 21 2009, 11:09 AM
Master Chief QUOTE (mitch_de @ Sep 21 2009, 01:09 PM) ... Sep 22 2009, 08:01 AM
Superhai QUOTE (Master Chief @ Sep 22 2009, 10:01 ... Sep 22 2009, 11:08 AM
Master Chief QUOTE (Superhai @ Sep 22 2009, 01:08 PM) ... Sep 22 2009, 05:15 PM
FormerlyKnownAs QUOTE (Master Chief @ Sep 22 2009, 06:15 ... Sep 22 2009, 05:37 PM
Master Chief QUOTE (FormerlyKnownAs @ Sep 22 2009, 07... Sep 22 2009, 06:11 PM
WinstonAce This is my dsdt with cst, we have almost the same ... Sep 21 2009, 08:25 AM
Eliade QUOTE (WinstonAce @ Sep 21 2009, 02:25 AM... Sep 21 2009, 02:32 PM
FormerlyKnownAs QUOTE (Eliade @ Sep 21 2009, 03:32 PM) Si... Sep 22 2009, 08:54 AM
WinstonAce extra folder (beside the dsdt.aml and com.apple.bo... Sep 21 2009, 08:38 AM
mitch_de Anyone has an iMac9,1 smbios (i read that this wor... Sep 21 2009, 12:20 PM
Beerkex'd QUOTE (keeza @ Sep 21 2009, 05:11 AM) Re:... Sep 21 2009, 02:38 PM
keeza Beerkex'd,
Does LSPCI happen to be a Linux ut... Sep 23 2009, 09:13 AM
Master Chief QUOTE (keeza @ Sep 23 2009, 11:13 AM) Bee... Sep 23 2009, 09:35 AM
Beerkex'd Beer person, lol
(I don't know what I was thin... Sep 23 2009, 02:15 PM
THe KiNG QUOTE (Master Chief @ Sep 19 2009, 11:20 ... Sep 21 2009, 04:05 PM
FormerlyKnownAs QUOTE (THe KiNG @ Sep 21 2009, 05:05 PM) ... Sep 22 2009, 09:53 AM
THe KiNG QUOTE (Master Chief @ Sep 22 2009, 11:01 ... Sep 22 2009, 09:04 AM
Master Chief QUOTE (THe KiNG @ Sep 22 2009, 11:04 AM) ... Sep 27 2009, 03:58 AM
THe KiNG QUOTE (Master Chief @ Sep 22 2009, 09:11 ... Sep 22 2009, 06:28 PM
Master Chief QUOTE (THe KiNG @ Sep 22 2009, 08:28 PM) ... Sep 22 2009, 06:55 PM
yeehaa QUOTE (Master Chief @ Sep 22 2009, 02:55 ... Sep 22 2009, 09:16 PM
Master Chief QUOTE (yeehaa @ Sep 22 2009, 11:16 PM) yo... Sep 22 2009, 11:11 PM
Eliade cpui now work without disabler
all I needed to do ... Sep 23 2009, 03:24 AM
keeza Beer and this forum, what more does a man need... Sep 23 2009, 09:41 PM
Beerkex'd 00:1f.0 ISA bridge [0601]: Intel Corporation Unkno... Sep 24 2009, 03:38 AM
keeza QUOTE (Beerkex'd @ Sep 24 2009, 01:38... Sep 24 2009, 06:52 AM
Beerkex'd If Device (PX40) is at the address shown by LSPCI ... Sep 24 2009, 02:00 PM
keeza QUOTE (Beerkex'd @ Sep 25 2009, 12:00... Sep 25 2009, 01:00 AM
Dr. Hurt I had some free time so I played with this for a w... Sep 25 2009, 03:00 PM
d00d QUOTE (Dr. Hurt @ Sep 25 2009, 11:00 AM) ... Sep 25 2009, 04:40 PM
Dr. Hurt QUOTE (d00d @ Sep 25 2009, 06:40 PM) Try ... Sep 25 2009, 05:32 PM
yeehaa QUOTE (Dr. Hurt @ Sep 25 2009, 01:32 PM) ... Sep 25 2009, 06:01 PM
Dr. Hurt QUOTE (yeehaa @ Sep 25 2009, 08:01 PM) no... Sep 25 2009, 06:31 PM
Master Chief I got an e-mail from Intel, they received my CPU f... Sep 25 2009, 06:48 PM
Dr. Hurt QUOTE (Master Chief @ Sep 25 2009, 08:48 ... Sep 25 2009, 07:08 PM
Master Chief QUOTE (Dr. Hurt @ Sep 25 2009, 09:08 PM) ... Sep 25 2009, 08:08 PM
yeehaa QUOTE (Master Chief @ Sep 25 2009, 04:08 ... Sep 26 2009, 04:38 AM

Master Chief QUOTE (yeehaa @ Sep 26 2009, 06:38 AM) yo... Sep 26 2009, 08:17 AM


yeehaa QUOTE (Master Chief @ Sep 26 2009, 04:17 ... Sep 26 2009, 07:07 PM


keeza QUOTE (yeehaa @ Sep 27 2009, 05:07 AM) In... Sep 27 2009, 11:36 AM

keeza QUOTE (yeehaa @ Sep 26 2009, 02:38 PM) yo... Sep 26 2009, 10:21 AM
keeza QUOTE How did you get this: "CStateOverride b... Sep 26 2009, 09:06 AM
Jag Lally Hi,
I just got my Speedstep to work using AppleIn... Sep 26 2009, 10:21 PM
spanakorizo man the .dsl has 63 errors to compile
you -f this? Sep 27 2009, 01:01 AM
mm67 Does this mean that speedstep is working ?
Sep 27 2009, 10:51 AM
mm67 Just noticed that fixing the speedstep also had a ... Sep 27 2009, 12:51 PM ![]() |
|
Lo-Fi Version | Time is now: 3rd September 2010 - 08:58 AM |