Contribute
Register

Quick Guide to Generate a SSDT for CPU Power Management

tonymacx86

Administrator
Staff member
Joined
Nov 17, 2009
Messages
7,368
Motherboard
Z370N WIFI
CPU
i7 8700K
Graphics
HD 630
Mac
  1. MacBook Air
Classic Mac
  1. Apple
  2. PowerBook
Mobile Phone
  1. iOS
Piker Alpha's ssdtPRGen script will generate a SSDT you can use to achieve the maximum amount of power states for your desktop CPU. Please note that desktop power management is not mandatory.

Requirements:
Working internet connection

How to Generate a SSDT for Power Management

1. Configure system with appropriate SMBIOS for your CPU using Clover Configurator

2. Open Terminal and download Piker Alpha's ssdtPRGen.sh

Code:
curl -o ~/ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/master/ssdtPRGen.sh

3. That will download ssdtPRGen.sh to your user directory. The next step is to change the file mode (+x) with:

Code:
chmod +x ~/ssdtPRGen.sh

4. For default SSDT generation, type:

Code:
sudo ~/ssdtPRGen.sh

5. Type n, n

6. Open Finder and in menubar choose Go/Go to Folder...

7. Type ~/Library/ssdtPRGen/

8. Mount EFI using EFI Mounter v3

9. Copy SSDT.aml to /Volumes/EFI/EFI/CLOVER/ACPI/patched/

NOTE: The Power Management SSDT should always be SSDT.aml. If you have an SSDT.aml there already, rename it SSDT-1.aml, etc...

10. Reboot


How to Test Power Management

1. Download and compile AppleIntelInfo.kext using XCode. Or download here: View attachment AppleIntelInfo.kext.zip.

2. Drag AppleIntelInfo.kext to desktop

3. Open Terminal

4. Type:

Code:
sudo -s

5. Type:

Code:
chown -R 0:0 ~/Desktop/AppleIntelInfo.kext

6. Type:

Code:
chmod -R 755 ~/Desktop/AppleIntelInfo.kext

7. Type:

Code:
kextload ~/Desktop/AppleIntelInfo.kext

8. Type:

Code:
cat /tmp/AppleIntelInfo.dat

The amount of power states will then show in the Terminal window.

References:
http://www.tonymacx86.com/mavericks...vericks-native-cpu-igpu-power-management.html
http://www.tonymacx86.com/el-capita...01-guide-native-power-management-laptops.html
https://github.com/Piker-Alpha/ssdtPRGen.sh
https://github.com/Piker-Alpha/AppleIntelInfo
 
List of Core i Desktop CPUs supported by Piker Alpha's ssdtPRGen

Sandy Bridge System Definitions:
Mac-942B5BF58194151B:iMac12,1
Mac-942B59F58194171B:iMac12,2
Mac-8ED6AF5B48C039E1:Macmini5,1
Mac-4BC72D62AD45599E:Macmini5,2
Mac-7BA5B2794B2CDB12:Macmini5,3
Mac-94245B3640C91C81:MacBookPro8,1
Mac-94245A3940C91C80:MacBookPro8,2
Mac-942459F5819B171B:MacBookPro8,3
Mac-C08A6BB70A942AC2:MacBookAir4,1
Mac-742912EFDBEE19B3:MacBookAir4,2

Sandy Bridge CPUs
i7-2700K
i7-2600K
i7-2600
i7-2600S
i5-2300
i5-2310
i5-2320
i5-2380P
i5-2390T
i5-2400S
i5-2405S
i5-2400
i5-2450P
i5-2500T
i5-2500S
i5-2500
i5-2500K
i5-2550K
i3-2130
i3-2125
i3-2120T
i3-2120
i3-2115C
i3-2105
i3-2102
i3-2100T
i3-2100

Sandy Bridge E

i7-3970X
i7-3960X
i7-3930K
i7-3820

Ivy Bridge System Definitions:
Mac-00BE6ED71E35EB86:iMac13,1
Mac-FC02E91DDD3FA6A4:iMac13,2
Mac-031AEE4D24BFF0B1:Macmini6,1
Mac-F65AE981FFA204ED:Macmini6,2
Mac-4B7AC7E43945597E:MacBookPro9,1
Mac-6F01561E16C75D06:MacBookPro9,2
Mac-C3EC7CD22292981F:MacBookPro10,1
Mac-AFD8A9D944EA4843:MacBookPro10,2
Mac-66F35F19FE2A0D05:MacBookAir5,1
Mac-2E6FAB96566FE58C:MacBookAir5,2
Mac-F60DEB81FF30ACF6:MacPro6,1

Ivy Bridge CPUs
i7-3770
i7-3770K
i7-3770S
i7-3770T
i5-3570T
i5-3570K
i5-3570S
i5-3570
i5-3550S
i5-3550
i5-3475S
i5-3470S
i5-3470
i5-3470T
i5-3450S
i5-3450
i5-3350P
i5-3330S
i5-3333S
i5-3330S
i5-3330
i3-3250
i3-3250T
i3-3245
i3-3240
i3-3240T
i3-3225
i3-3220
i3-3220T
i3-3210

Ivy Bridge E
i7-4960X
i7-4930K
i7-4820K


Haswell System Definitions:
Mac-031B6874CF7F642A:iMac14,1
Mac-27ADBB7B4CEE8E61:iMac14,2
Mac-77EB7D7DAF985301:iMac14,3
Mac-81E3E92DD6088272:iMac14,4

Intel Core i5-4690 @ 3.50 GHz
Mac-42FD25EABCABB274:iMac15,1
Intel Core i7-4790K @ 4.0 GHz
Mac-FA842E06C61E91C5:iMac15,1

Mac-189A3D4F975D5FFC:MacBookPro11,1
Mac-3CBD00234E554E41:MacBookPro11,2
Mac-2BD1B31983FE1663:MacBookPro11,3
Mac-06F11FD93F0323C5:MacBookPro11,4
Mac-06F11F11946D27C5:MacBookPro11,5
Mac-35C1E88140C3E6CF:MacBookAir6,1
Mac-7DF21CB3ED6977E5:MacBookAir6,2
Mac-F60DEB81FF30ACF6:MacPro6,1
Mac-35C5E08120C7EEAF:Macmini7,1

Haswell
i7-4770K
i7-4790
i5-4690K
i7-4790K
i5-4430S
i7-4771
i7-4770
i5-4590K
i5-4590
i5-4670K
i5-4670
i5-4570
i5-4440
i5-4440S
i5-4430
i7-4790S
i7-4790T
i7-4785T
i7-4770R
i7-4770S
i7-4770T
i7-4765T
i5-4670R
i5-4690
i5-4690S
i5-4690T
i5-4670S
i5-4670T
i5-4590
i5-4590S
i5-4590T
i5-4570S
i5-4570T
i5-4570TE
i5-4460
i5-4460T
i5-4460S
i3-4130
i3-4130T
i3-4150
i3-4150T
i3-4160
i3-4160T
i3-4330
i3-4330T
i3-4330TE
i3-4340
i3-4340TE
i3-4350
i3-4350T
i3-4360
i3-4360T
i3-4370

Haswell E
i7-5960X
i7-5930K
i7-5820K


Broadwell System Definitions:
Mac-9F18E312C5C2BF0B:MacBookAir7,1
Mac-937CB26E2E02BB01:MacBookAir7,2
Mac-E43C1C25D4880AD6:MacBookPro12,1

Non-Retina 21.5-inch, Intel Core i5-5250U @ 1.60 GHz
Mac-A369DDC4E67F1C45:iMac16,1
Non-Retina 21.5-inch, Intel Core i5-5575R @ 2.80 GHz
Mac-FFE5EF870D7BA81A:iMac16,2
Retina 4K, 21.5-inch, Intel Core i5-5675R 3.1GHz
Mac-FFE5EF870D7BA81A:iMac16,2
Retina 4K, 21.5-inch, Intel Core i7-5775R @ 3.30 GHz
Mac-FFE5EF870D7BA81A:iMac16,2

Broadwell
i7-5775R
i7-5775C
i5-5675R
i5-5675C
i5-5575R

Skylake System Definitions:
Retina 5K, 27-inch, Intel Core i7-6700K 4.0GHz
Mac-65CE76090165799A:iMac17,1
Retina 5K, 27-inch, Intel Core i5-6600 3.3GHz
Mac-B809C3757DA9BB8D:iMac17,1
Retina 5K, 27-inch, Intel Core i5-6500 3.2GHz
Mac-DB15BD556843C820:iMac17,1

Skylake
i7-6700T
i7-6700K
i7-6700
i5-6600T
i5-6600K
i5-6600
i5-6500T
i5-6500
i5-6400T
i5-6400
i3-6320
i3-6300T
i3-6300
i3-6100T
i3-6100
 
Perfect, yesterday, I tried it by following the "old" guide, can anyone please check my result?

details (logs, terminal logs etc.) are in this post: http://www.tonymacx86.com/mavericks...cpu-igpu-power-management-86.html#post1142796


Output from kext

Code:
CPU Ratio Info:------------------------------------
CPU Low Frequency Mode.............: 1600 MHz
CPU Maximum non-Turbo Frequency....: 3300 MHz
CPU Maximum Turbo Frequency........: 3700 MHz
CPU P-States [ (33) ]
CPU C6-Cores [ 1 2 3 ]
CPU P-States [ (16) 28 33 ]
CPU P-States [ 16 28 32 (33) ]
CPU P-States [ 16 28 30 32 (33) ]

And I do not know, but I think that turbo mode wont start
 
Is this correct?
CPU: Intel i5 4570 (non K)

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


Settings:
------------------------------------
logMSRs............................: 1
logIGPU............................: 0
logIntelRegs.......................: 1
logCStates.........................: 1
logIPGStyle........................: 1
InitialTSC.........................: 0x2eb13d4ef48
MWAIT C-States.....................: 270624


Model Specific Regiters
------------------------------------
MSR_CORE_THREAD_COUNT......(0x35) : 0x40004
MSR_PLATFORM_INFO..........(0xCE) : 0x80838F3012000
MSR_PMG_CST_CONFIG_CONTROL.(0xE2) : 0x1E000402
MSR_PMG_IO_CAPTURE_BASE....(0xE4) : 0x1814
IA32_MPERF.................(0xE7) : 0x20FC6B3C
IA32_APERF.................(0xE8) : 0x219FD3E1
MSR_FLEX_RATIO.............(0x194) : 0x0
MSR_IA32_PERF_STATUS.......(0x198) : 0x20EF00002200
MSR_IA32_PERF_CONTROL......(0x199) : 0x2400
IA32_CLOCK_MODULATION......(0x19A) : 0x0
IA32_THERM_STATUS..........(0x19C) : 0x883B0000
IA32_MISC_ENABLES..........(0x1A0) : 0x850089
MSR_MISC_PWR_MGMT..........(0x1AA) : 0x1
MSR_TURBO_RATIO_LIMIT......(0x1AD) : 0x24242424
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) : 0x10A6541B
MSR_PKG_POWER_INFO.........(0x614) : 0x2A0
MSR_PP0_CURRENT_CONFIG.....(0x601) : 0x1F40
MSR_PP0_POWER_LIMIT........(0x638) : 0xFFD0
MSR_PP0_ENERGY_STATUS......(0x639) : 0x5D58A9D
MSR_PP0_POLICY.............(0x63a) : 0x0
MSR_CONFIG_TDP_NOMINAL.....(0x648) : 0x20
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) : 0x886A
MSR_PKGC7_IRTL.............(0x60c) : 0x8891
MSR_PKG_C2_RESIDENCY.......(0x60d) : 0x21B66BBA560
MSR_PKG_C3_RESIDENCY.......(0x3f8) : 0x0
MSR_PKG_C6_RESIDENCY.......(0x3f9) : 0x0
MSR_PKG_C7_RESIDENCY.......(0x3fa) : 0x0
IA32_TSC_DEADLINE..........(0x6E0) : 0x2EB1664079D


CPU Ratio Info:
------------------------------------
CPU Low Frequency Mode.............: 800 MHz
CPU Maximum non-Turbo Frequency....: 3200 MHz
CPU Maximum Turbo Frequency........: 3600 MHz
CPU P-States [ (8) 30 36 ]
CPU C3-Cores [ 0 1 3 ]
CPU C6-Cores [ 0 1 3 ]
CPU C7-Cores [ 0 1 3 ]
CPU P-States [ (8) 28 30 36 ]
CPU C3-Cores [ 0 1 2 3 ]
CPU C6-Cores [ 0 1 2 3 ]
CPU C7-Cores [ 0 1 2 3 ]
CPU P-States [ (8) 28 30 32 36 ]
CPU P-States [ 8 28 30 31 32 (35) 36 ]
CPU P-States [ 8 28 30 31 (32) 33 35 36 ]
CPU P-States [ 8 27 28 30 31 (32) 33 35 36 ]
CPU P-States [ (8) 27 28 29 30 31 32 33 35 36 ]
CPU P-States [ (8) 25 27 28 29 30 31 32 33 35 36 ]
 
How does the SSDT need to be referred to in the config.plist file?
 
How does the SSDT need to be referred to in the config.plist file?
I think...


  1. Clover
    1. Clover Configurator (1 or 2, not both)
      1. ACPI/Set DropOEM ((Ignore if 9 Series) or
      2. ACPI/Drop Tables
        1. SSDT/CpuPm
        2. SSDT/Cpu0Ist
      3. Save (Export)
      4. Example
 
Last edited by a moderator:
Firs of all thanks
Second, what is the benefit?
Third I just generated ssdt.aml and ssdt-1.aml and put them in the patched folder with DSDT.
I got one error, it said Board-ID doesn't support ivy bridge but I generated anyway.
Here is the test result I hope I did correct.

Intel i7 3770K
CPU Ratio Info:
------------------------------------
CPU Low Frequency Mode.............: 1600 MHz
CPU Maximum non-Turbo Frequency....: 3500 MHz
CPU Maximum Turbo Frequency........: 3900 MHz
CPU P-States [ (16) 28 39 ]
CPU C3-Cores [ 0 4 5 6 ]
CPU C6-Cores [ 0 2 4 5 6 ]
CPU P-States [ (16) 23 28 39 ]
CPU C3-Cores [ 0 2 3 4 5 6 7 ]
CPU C6-Cores [ 0 1 2 4 5 6 ]
CPU P-States [ (16) 23 28 35 39 ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ 16 21 23 28 35 (39) ]
CPU C6-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ (16) 21 23 28 30 35 39 ]
CPU P-States [ (16) 21 22 23 28 30 35 39 ]
CPU P-States [ (16) 19 21 22 23 28 30 35 39 ]
CPU P-States [ (16) 19 20 21 22 23 28 30 35 39 ]
CPU P-States [ (16) 19 20 21 22 23 26 28 30 35 39 ]
CPU P-States [ (16) 19 20 21 22 23 25 26 28 30 35 39 ]
CPU P-States [ 16 19 20 21 22 23 25 26 28 30 35 37 (39) ]
CPU P-States [ (16) 19 20 21 22 23 25 26 28 30 31 35 37 39 ]
 
what is the benefit?

The benefits are that the are more states, so if your desktop is idle it will be at 16 (1.6GHz) or when your rendering a video it will be at 37(3.7GHz) if you did not generate an SSDT it would be stuck at one state.
 
if you did not generate an SSDT it would be stuck at one state.

I can't understand, i don't have any SSDT and i have at least 2 states (1,6 and 3,5 GHz)...
Is it possible ?
 
Back
Top