Contribute
Register

Quick Guide to Generate a SSDT for CPU Power Management

What is the difference between dropOEM and dropping both SSDT/CpuPm and SSDT/Cpu0Ist? Should I still use 0x00FA for C3 Latency?
DropOEM from the Clover wiki
Drops all internal SSDT tables
Most firmwares have SSDTs for more than just the CPU, unless you've got patched versions of some kind in /acpi/patched you probably won't want to do this.
 
I hadn't noticed until recently but my Turbo Boost doesn't work under Sierra but its fine under El Capitan.

I'm on a 3930k and it just sticks to 3.2 Ghz. On El Capitan it drops from 2 Ghz upto 4.5 Ghz.

Here is my output from the KEXT.

Settings:
------------------------------------
logMSRs............................: 1
logIGPU............................: 0
logIntelRegs.......................: 1
logCStates.........................: 1
logIPGStyle........................: 1
InitialTSC.........................: 0x7a1a167e5310
MWAIT C-States.....................: 135456

Model Specific Regiters
------------------------------------
MSR_CORE_THREAD_COUNT......(0x35) : 0x6000C
MSR_PLATFORM_INFO..........(0xCE) : 0xC0070012000
MSR_PMG_CST_CONFIG_CONTROL.(0xE2) : 0x1E000400
MSR_PMG_IO_CAPTURE_BASE....(0xE4) : 0x10414
IA32_MPERF.................(0xE7) : 0x2C45C44392
IA32_APERF.................(0xE8) : 0x2B9F855D7D
MSR_FLEX_RATIO.............(0x194) : 0xE0000
MSR_IA32_PERF_STATUS.......(0x198) : 0x245900002000
MSR_IA32_PERF_CONTROL......(0x199) : 0x2000
IA32_CLOCK_MODULATION......(0x19A) : 0x0
IA32_THERM_STATUS..........(0x19C) : 0x88250000
IA32_MISC_ENABLES..........(0x1A0) : 0x850089
MSR_MISC_PWR_MGMT..........(0x1AA) : 0x400000
MSR_TURBO_RATIO_LIMIT......(0x1AD) : 0x2323393939393939
IA32_ENERGY_PERF_BIAS......(0x1B0) : 0x0
MSR_POWER_CTL..............(0x1FC) : 0x2504005B
MSR_RAPL_POWER_UNIT........(0x606) : 0xA1003
MSR_PKG_POWER_LIMIT........(0x610) : 0x69F40005A9F40
MSR_PKG_ENERGY_STATUS......(0x611) : 0x2829A24C
MSR_PKG_POWER_INFO.........(0x614) : 0x1A80410
MSR_PP0_CURRENT_CONFIG.....(0x601) : 0x141494800007F8
MSR_PP0_POWER_LIMIT........(0x638) : 0x0
MSR_PP0_ENERGY_STATUS......(0x639) : 0x1B8E7D9A
MSR_PP0_POLICY.............(0x63a) : 0x0
MSR_PKGC6_IRTL.............(0x60b) : 0x0
MSR_PKGC7_IRTL.............(0x60c) : 0x0
MSR_PKG_C2_RESIDENCY.......(0x60d) : 0x0
MSR_PKG_C3_RESIDENCY.......(0x3f8) : 0x0
MSR_PKG_C6_RESIDENCY.......(0x3f9) : 0x0
MSR_PKG_C7_RESIDENCY.......(0x3fa) : 0x0
IA32_TSC_DEADLINE..........(0x6E0) : 0x7A1A18F5832C
PCH device.................: 0x1D418086

CPU Ratio Info:
------------------------------------
CPU Low Frequency Mode.............: 1200 MHz
CPU Maximum non-Turbo Frequency....: 3200 MHz
CPU Maximum Turbo Frequency........: 5700 MHz
CPU P-States [ (12) 31 32 ]
CPU P-States [ 12 30 31 (32) ]
CPU P-States [ 12 29 30 31 (32) ]
CPU P-States [ 12 28 29 30 31 (32) ]
bash-3.2#
 
Last edited:
Just been wandering what to do with the bios settings such as EIST and ERP, that also play a role in powermanagement. On my GA-Z170X-UD3 mobo I have set both to off in the belief that keeping them active might cause "interference" with what the SSDT.aml tries to achieve with CPU power management. Two entities trying to achieve the same thing but each one pulling the string in a different direction :)
 
Just been wandering what to do with the bios settings such as EIST and ERP, that also play a role in powermanagement. On my GA-Z170X-UD3 mobo I have set both to off in the belief that keeping them active might cause "interference" with what the SSDT.aml tries to achieve with CPU power management. Two entities trying to achieve the same thing but each one pulling the string in a different direction :)
On my GA-Z97X-UD3H mobo I left EIST on but kept ERP off. On that machine it seems irrelevant what EIST is set to, as darkwake is working well with powernap set to on. Therefore I decided that, for this machine in particular, the adage applies, "if it ain't broken don't fix it"
The screenshot below refers.
 

Attachments

  • Haswell.jpeg
    Haswell.jpeg
    38.6 KB · Views: 174
This works great on GA-Z97X-UD3H...I was using Sierra but downgraded back to Yosemite due to applications that won't run any longer on Sierra and the company sold out to Apple. But CPUPM works fine here:

Model Specific Regiters
------------------------------------
MSR_CORE_THREAD_COUNT......(0x35) : 0x40008
MSR_PLATFORM_INFO..........(0xCE) : 0x80838F3012300
MSR_PMG_CST_CONFIG_CONTROL.(0xE2) : 0x1E000404
MSR_PMG_IO_CAPTURE_BASE....(0xE4) : 0x21814
IA32_MPERF.................(0xE7) : 0x39F8373274
IA32_APERF.................(0xE8) : 0x3F07D2B3FA
MSR_FLEX_RATIO.............(0x194) : 0xE0000
MSR_IA32_PERF_STATUS.......(0x198) : 0x23DC00002700
MSR_IA32_PERF_CONTROL......(0x199) : 0x2700
IA32_CLOCK_MODULATION......(0x19A) : 0x0
IA32_THERM_STATUS..........(0x19C) : 0x88390000
IA32_MISC_ENABLES..........(0x1A0) : 0x850089
MSR_MISC_PWR_MGMT..........(0x1AA) : 0x1
MSR_TURBO_RATIO_LIMIT......(0x1AD) : 0x27272727
IA32_ENERGY_PERF_BIAS......(0x1B0) : 0x1
MSR_POWER_CTL..............(0x1FC) : 0x4005F
MSR_RAPL_POWER_UNIT........(0x606) : 0xA0E03
MSR_PKG_POWER_LIMIT........(0x610) : 0xFFD00000EA82
MSR_PKG_ENERGY_STATUS......(0x611) : 0x6584490
MSR_PKG_POWER_INFO.........(0x614) : 0x2A0
MSR_PP0_CURRENT_CONFIG.....(0x601) : 0x1F40
MSR_PP0_POWER_LIMIT........(0x638) : 0xFFD0
MSR_PP0_ENERGY_STATUS......(0x639) : 0x35C4CC5
MSR_PP0_POLICY.............(0x63a) : 0x0
MSR_CONFIG_TDP_NOMINAL.....(0x648) : 0x23
MSR_CONFIG_TDP_LEVEL1......(0x649) : 0x0
MSR_CONFIG_TDP_LEVEL2......(0x64a) : 0x0
MSR_CONFIG_TDP_CONTROL.....(0x64b) : 0x80000000
MSR_TURBO_ACTIVATION_RATIO.(0x64c) : 0x0
MSR_PKGC3_IRTL.............(0x60a) : 0x8842
MSR_PKGC6_IRTL.............(0x60b) : 0x8873
MSR_PKGC7_IRTL.............(0x60c) : 0x8891
MSR_PKG_C2_RESIDENCY.......(0x60d) : 0x10CB071E7E3
MSR_PKG_C3_RESIDENCY.......(0x3f8) : 0x0
MSR_PKG_C6_RESIDENCY.......(0x3f9) : 0x0
MSR_PKG_C7_RESIDENCY.......(0x3fa) : 0x0
IA32_TSC_DEADLINE..........(0x6E0) : 0x1DB4AF06C03

CPU Ratio Info:
------------------------------------
CPU Low Frequency Mode.............: 800 MHz
CPU Maximum non-Turbo Frequency....: 3500 MHz
CPU Maximum Turbo Frequency........: 3900 MHz
CPU P-States [ 36 (39) ]
CPU C3-Cores [ 0 2 3 5 ]
CPU C6-Cores [ 0 1 2 3 4 7 ]
CPU C7-Cores [ 0 1 2 3 4 ]
CPU P-States [ (8) 35 36 39 ]
CPU C3-Cores [ 0 1 2 3 4 5 7 ]
CPU C6-Cores [ 0 1 2 3 4 5 6 7 ]
CPU C7-Cores [ 0 1 2 3 4 6 7 ]
CPU P-States [ 8 35 36 38 (39) ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ 8 35 36 37 38 (39) ]
CPU C7-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ (8) 33 35 36 37 38 39 ]
CPU P-States [ (8) 33 34 35 36 37 38 39 ]
CPU P-States [ 8 32 33 34 (35) 36 37 38 39 ]
CPU P-States [ 8 30 32 33 34 35 36 37 38 (39) ]
CPU P-States [ 8 30 31 32 33 34 35 36 37 38 (39) ]
CPU P-States [ (8) 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ (8) 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ (8) 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ (8) 25 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ 8 24 25 27 28 29 30 31 32 33 34 35 36 37 38 (39) ]
CPU P-States [ 8 23 24 25 27 28 29 30 31 32 33 34 (35) 36 37 38 39 ]
CPU P-States [ (8) 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ (8) 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ (8) 17 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ (8) 16 17 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ (8) 16 17 18 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ 8 16 17 18 19 22 23 24 25 26 27 28 29 30 31 32 33 34 (35) 36 37 38 39 ]
CPU P-States [ (8) 13 16 17 18 19 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ (8) 9 13 16 17 18 19 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ (8) 9 13 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ (8) 9 13 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ 8 9 13 14 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 (35) 36 37 38 39 ]
CPU P-States [ 8 9 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 (35) 36 37 38 39 ]
CPU P-States [ (8) 9 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ (8) 9 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ (8) 9 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
CPU P-States [ (8) 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ]
 
Last edited:
I ran this on my kaby lake laptop m3-7y30 and it definitely has an effect, but gives me a minimum speed of 1.3Ghz instead of my normal 1.0Ghz, or the lower speeds i want it to idle too.... any ideas on what to change? I did try setting lfm to 400 and alternatly c 2...


Edit: I do get an warning about:

'cpu-type' may be set improperly (0x005 instead of 0x095)


AppleIntelInfo.kext v1.4 Copyright © 2012-2015 Pike R. Alpha. All rights reserved

Settings:
------------------------------------
logMSRs............................: 1
logIGPU............................: 1
logIntelRegs.......................: 1
logCStates.........................: 1
logIPGStyle........................: 1
InitialTSC.........................: 0x12f363cbf6b
MWAIT C-States.....................: 286531872

Model Specific Regiters
------------------------------------
MSR_CORE_THREAD_COUNT......(0x35) : 0x20004
MSR_PLATFORM_INFO..........(0xCE) : 0x4043DF1011000
MSR_PMG_CST_CONFIG_CONTROL.(0xE2) : 0x1E008005
MSR_PMG_IO_CAPTURE_BASE....(0xE4) : 0x51814
IA32_MPERF.................(0xE7) : 0xE32235595
IA32_APERF.................(0xE8) : 0x25FA70F565
MSR_FLEX_RATIO.............(0x194) : 0x0
MSR_IA32_PERF_STATUS.......(0x198) : 0x1D7C00001800
MSR_IA32_PERF_CONTROL......(0x199) : 0xA00
IA32_CLOCK_MODULATION......(0x19A) : 0x0
IA32_THERM_STATUS..........(0x19C) : 0x882B0002
IA32_MISC_ENABLES..........(0x1A0) : 0x850089
MSR_MISC_PWR_MGMT..........(0x1AA) : 0x401CC1
MSR_TURBO_RATIO_LIMIT......(0x1AD) : 0x1818181A
IA32_ENERGY_PERF_BIAS......(0x1B0) : 0x5
MSR_POWER_CTL..............(0x1FC) : 0x24005F
MSR_RAPL_POWER_UNIT........(0x606) : 0xA0E03
MSR_PKG_POWER_LIMIT........(0x610) : 0x42807800DD8034
MSR_PKG_ENERGY_STATUS......(0x611) : 0x239A6CE
MSR_PKG_POWER_INFO.........(0x614) : 0x24
MSR_PP0_CURRENT_CONFIG.....(0x601) : 0x0
MSR_PP0_POWER_LIMIT........(0x638) : 0x0
MSR_PP0_ENERGY_STATUS......(0x639) : 0xC83FAA
MSR_PP0_POLICY.............(0x63a) : 0x0
MSR_PKGC6_IRTL.............(0x60b) : 0x8876
MSR_PKG_C2_RESIDENCY.......(0x60d) : 0xEC53128D80
MSR_PKG_C3_RESIDENCY.......(0x3f8) : 0x0
MSR_PKG_C6_RESIDENCY.......(0x3f9) : 0x0
IA32_TSC_DEADLINE..........(0x6E0) : 0x12F37A2720F
PCH device.................: 0x9D568086

CPU Ratio Info:
------------------------------------
CPU Low Frequency Mode.............: 400 MHz
CPU Maximum non-Turbo Frequency....: 1600 MHz
CPU Maximum Turbo Frequency........: 2600 MHz

IGPU Info:
------------------------------------
IGPU Current Frequency.............: 0 MHz
IGPU Minimum Frequency.............: 300 MHz
IGPU Maximum Non-Turbo Frequency...: 300 MHz
IGPU Maximum Turbo Frequency.......: 900 MHz
IGPU Maximum limit.................: No Limit

CPU P-States [ (13) 19 24 ] iGPU P-States [ ]
CPU C3-Cores [ 0 2 3 ]
CPU P-States [ (13) 15 19 24 ] iGPU P-States [ ]
CPU C3-Cores [ 0 1 2 3 ]
CPU P-States [ 13 15 19 21 (24) ] iGPU P-States [ ]
CPU P-States [ (13) 15 19 20 21 24 ] iGPU P-States [ ]
CPU P-States [ (13) 14 15 19 20 21 24 ] iGPU P-States [ ]
CPU P-States [ (13) 14 15 18 19 20 21 24 ] iGPU P-States [ ]
CPU P-States [ (13) 14 15 17 18 19 20 21 24 ] iGPU P-States [ ]
CPU P-States [ (13) 14 15 17 18 19 20 21 22 24 ] iGPU P-States [ ]
CPU P-States [ (13) 14 15 17 18 19 20 21 22 23 24 ] iGPU P-States [ ]
CPU P-States [ 13 14 15 17 18 19 (20) 21 22 23 24 25 ] iGPU P-States [ ]
CPU P-States [ 13 14 15 16 17 18 19 (20) 21 22 23 24 25 ] iGPU P-States [ ]
CPU P-States [ 13 14 15 16 17 18 19 20 21 22 23 24 25 (26) ] iGPU P-States [ ]

=======================

Edit: Actually messed around with config.plist and EnableHWP got it going after re-jiggering some other stuff,
so I guess nevermind..... P-States goes down to 6 7 8 9 now :)

 
Last edited:
Make sure AppleLPC is loading at boot beddess, a lot of people miss this and its very important this loads.

open terminal and copy kextstat to see if it loaded...
 
I have tried the download several times, and always get this result:

Last login: Wed Aug 16 16:31:53 on ttys000

Charless-iMac:~ Charles$ curl -o ~/ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/master/ssdtPRGen.sh

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (7) Couldn't connect to server

Charless-iMac:~ Charles$

I have no trouble connecting to other sites.

EDIT 19 Aug: turned out to be a firewall issue. Resolved.
 
Last edited:
Make sure AppleLPC is loading at boot beddess, a lot of people miss this and its very important this loads.

open terminal and copy kextstat to see if it loaded...
Thanks for the tip, I may not have figured it out otherwise...
I used that Injector.kext after using Ioreg to get the right id to use.
 
Back
Top