Contribute
Register

macOS Native CPU/IGPU Power Management

But what is the benefit of this method comparing to usual generated ssdt?

Benefit is that it is easier to apply, and not specific to a CPU.

It means, for example, you can apply this technique while running the installer (just put the SSDT-PluginType1.aml or SSDT-XCPM.aml at EFI/Clover/ACPI/patched).

It also means that with a fully hotpatched ACPI setup (beyond what is covered here), you can share EFI/Clover from one computer (same model/series) to another, as there will be no ACPI content specific to a particular CPU.
 
I choose the system definition Mac-A369DDC4E67F1C45 (iMac16,1). This is the one that I found gives me less obvious troubles so far. However I discovered that AGPM.kexts loads a profile for my iGPU that limits its max frequency to 900MHz, so I get less performance (significant for any iGPU) .

In
AppleGraphicsPowerManagement.kext Info.plist -> IOKitPersonalities -> AGPM -> Machines -> Mac-A369DDC4E67F1C45 -> IGPU
There's a setting that limits my iGPU turbo, not sure which one. So I replaced that IGPU object with another IGPU object from another machine (iMac17,1). Now my humble but significant turbo frequency at 1100MHz is back.

My question is how can I change that AGPM profile without editing the kext, using a clover patch or ssdt and without changing my system definition ?
 
how can I change that AGPM profile without editing the kext
Key issue, no native macOS Kaby Lake support currently.
Workaround, iMac17,1 (if AGPM works as expected).
 
Last edited:
I choose the system definition Mac-A369DDC4E67F1C45 (iMac16,1). This is the one that I found gives me less obvious troubles so far. However I discovered that AGPM.kexts loads a profile for my iGPU that limits its max frequency to 900MHz, so I get less performance (significant for any iGPU) .

In
AppleGraphicsPowerManagement.kext Info.plist -> IOKitPersonalities -> AGPM -> Machines -> Mac-A369DDC4E67F1C45 -> IGPU
There's a setting that limits my iGPU turbo, not sure which one. So I replaced that IGPU object with another IGPU object from another machine (iMac17,1). Now my humble but significant turbo frequency at 1100MHz is back.

My question is how can I change that AGPM profile without editing the kext, using a clover patch or ssdt and without changing my system definition ?

Instead of patching the kext, create an injector kext that overrides the Info.plist content in AppleGraphicsPowerManagement.kext.
 
Instead of patching the kext, create an injector kext that overrides the Info.plist content in AppleGraphicsPowerManagement.kext.

Good idea. That did the trick!.
 
Dunno if you want some sample data, I used https://www.tonymacx86.com/threads/skylake-hwp-enable.214915/

And then used yours and went from this to this

I went from

Code:
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.........................: 0x1ab19abaedcf
MWAIT C-States.....................: 1319200

Model Specific Regiters
------------------------------------
MSR_CORE_THREAD_COUNT......(0x35)  : 0x40008
MSR_PLATFORM_INFO..........(0xCE)  : 0x80838F1012A00
MSR_PMG_CST_CONFIG_CONTROL.(0xE2)  : 0x1E000000
MSR_PMG_IO_CAPTURE_BASE....(0xE4)  : 0x31814
IA32_MPERF.................(0xE7)  : 0x5A4C1992632
IA32_APERF.................(0xE8)  : 0x480A17A2087
MSR_FLEX_RATIO.............(0x194) : 0xE0000
MSR_IA32_PERF_STATUS.......(0x198) : 0x277800002C00
MSR_IA32_PERF_CONTROL......(0x199) : 0xA00
IA32_CLOCK_MODULATION......(0x19A) : 0x0
IA32_THERM_STATUS..........(0x19C) : 0x883B0800
IA32_MISC_ENABLES..........(0x1A0) : 0x850089
MSR_MISC_PWR_MGMT..........(0x1AA) : 0x401CC1
MSR_TURBO_RATIO_LIMIT......(0x1AD) : 0x2C2C2C2D
IA32_ENERGY_PERF_BIAS......(0x1B0) : 0x1
MSR_POWER_CTL..............(0x1FC) : 0x3C005F
MSR_RAPL_POWER_UNIT........(0x606) : 0xA0E03
MSR_PKG_POWER_LIMIT........(0x610) : 0x42FFFF001BFFFF
MSR_PKG_ENERGY_STATUS......(0x611) : 0x7BB124F3
MSR_PKG_POWER_INFO.........(0x614) : 0x2D8
MSR_PP0_CURRENT_CONFIG.....(0x601) : 0x0
MSR_PP0_POWER_LIMIT........(0x638) : 0x0
MSR_PP0_ENERGY_STATUS......(0x639) : 0x3B1E942F
MSR_PP0_POLICY.............(0x63a) : 0x0
MSR_PKGC6_IRTL.............(0x60b) : 0x8876
MSR_PKG_C2_RESIDENCY.......(0x60d) : 0xBCDCB5CE6
MSR_PKG_C3_RESIDENCY.......(0x3f8) : 0x0
MSR_PKG_C6_RESIDENCY.......(0x3f9) : 0x0
IA32_TSC_DEADLINE..........(0x6E0) : 0x1AB19BEE8D94

CPU Ratio Info:
------------------------------------
CPU Low Frequency Mode.............: 800 MHz
CPU Maximum non-Turbo Frequency....: 4200 MHz
CPU Maximum Turbo Frequency........: 4500 MHz
CPU P-States [ (8) 31 33 ]
CPU C3-Cores [ 0 1 4 5 ]
CPU C6-Cores [ 0 1 2 4 7 ]
CPU P-States [ 8 26 (28) 31 33 ]
CPU C3-Cores [ 0 1 2 3 4 5 7 ]
CPU C6-Cores [ 0 1 2 4 5 6 7 ]
CPU P-States [ (8) 26 27 28 31 33 ]
CPU P-States [ 8 19 26 27 28 31 (33) ]
CPU P-States [ 8 19 26 27 28 31 33 (44) ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]
CPU C6-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ 8 (18) 19 26 27 28 31 33 34 44 ]
CPU P-States [ 8 18 19 26 27 28 31 32 (33) 34 44 ]
CPU P-States [ 8 18 19 26 27 28 30 31 32 33 34 (44) ]
CPU P-States [ 8 18 19 26 27 28 30 31 32 (33) 34 39 44 ]
CPU P-States [ 8 18 19 (23) 26 27 28 30 31 32 33 34 38 39 44 ]
CPU P-States [ 8 17 18 19 (23) 26 27 28 30 31 32 33 34 38 39 44 ]
CPU P-States [ 8 17 18 19 23 26 27 28 30 31 32 (33) 34 36 38 39 44 ]
CPU P-States [ 8 17 18 19 22 23 26 27 (28) 30 31 32 33 34 36 38 39 44 ]
CPU P-States [ 8 17 (18) 19 22 23 25 26 27 28 30 31 32 33 34 36 38 39 44 ]

to

Code:
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.........................: 0x8a71c45a14
MWAIT C-States.....................: 1319200

Model Specific Regiters
------------------------------------
MSR_CORE_THREAD_COUNT......(0x35)  : 0x40008
MSR_PLATFORM_INFO..........(0xCE)  : 0x80838F1012A00
MSR_PMG_CST_CONFIG_CONTROL.(0xE2)  : 0x1E000008
MSR_PMG_IO_CAPTURE_BASE....(0xE4)  : 0x31814
IA32_MPERF.................(0xE7)  : 0x77F1208719
IA32_APERF.................(0xE8)  : 0x423722975E
MSR_FLEX_RATIO.............(0x194) : 0xE0000
MSR_IA32_PERF_STATUS.......(0x198) : 0x276500002C00
MSR_IA32_PERF_CONTROL......(0x199) : 0xA00
IA32_CLOCK_MODULATION......(0x19A) : 0x0
IA32_THERM_STATUS..........(0x19C) : 0x88350800
IA32_MISC_ENABLES..........(0x1A0) : 0x850089
MSR_MISC_PWR_MGMT..........(0x1AA) : 0x401CC1
MSR_TURBO_RATIO_LIMIT......(0x1AD) : 0x2C2C2C2D
IA32_ENERGY_PERF_BIAS......(0x1B0) : 0x1
MSR_POWER_CTL..............(0x1FC) : 0x3C005F
MSR_RAPL_POWER_UNIT........(0x606) : 0xA0E03
MSR_PKG_POWER_LIMIT........(0x610) : 0x42FFFF001BFFFF
MSR_PKG_ENERGY_STATUS......(0x611) : 0x4FD3F4D
MSR_PKG_POWER_INFO.........(0x614) : 0x2D8
MSR_PP0_CURRENT_CONFIG.....(0x601) : 0x0
MSR_PP0_POWER_LIMIT........(0x638) : 0x0
MSR_PP0_ENERGY_STATUS......(0x639) : 0x3E0E429
MSR_PP0_POLICY.............(0x63a) : 0x0
MSR_PKGC6_IRTL.............(0x60b) : 0x8876
MSR_PKG_C2_RESIDENCY.......(0x60d) : 0xACF7D70E
MSR_PKG_C3_RESIDENCY.......(0x3f8) : 0x0
MSR_PKG_C6_RESIDENCY.......(0x3f9) : 0x0
IA32_TSC_DEADLINE..........(0x6E0) : 0x8A737261F0

CPU Ratio Info:
------------------------------------
CPU Low Frequency Mode.............: 800 MHz
CPU Maximum non-Turbo Frequency....: 4200 MHz
CPU Maximum Turbo Frequency........: 4500 MHz
CPU P-States [ 43 (44) ]
CPU C3-Cores [ 3 4 6 7 ]
CPU C6-Cores [ 3 4 5 6 ]
CPU C3-Cores [ 0 1 3 4 5 6 7 ]
CPU C6-Cores [ 0 1 2 3 4 5 6 7 ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ 42 43 (44) ]
CPU P-States [ 39 42 43 (44) ]
CPU P-States [ 39 41 42 43 (44) ]
CPU P-States [ 39 40 41 42 43 (44) ]
CPU P-States [ (33) 39 40 41 42 43 44 ]
CPU P-States [ (33) 38 39 40 41 42 43 44 ]
CPU P-States [ (33) 34 38 39 40 41 42 43 44 ]
CPU P-States [ (33) 34 36 38 39 40 41 42 43 44 ]
CPU P-States [ (28) 33 34 36 38 39 40 41 42 43 44 ]
CPU P-States [ 28 32 (33) 34 36 38 39 40 41 42 43 44 ]
CPU P-States [ (8) 28 32 33 34 36 38 39 40 41 42 43 44 ]
CPU P-States [ 8 22 28 32 (33) 34 36 38 39 40 41 42 43 44 ]
CPU P-States [ 8 22 26 28 32 (33) 34 36 38 39 40 41 42 43 44 ]
CPU P-States [ (8) 22 26 28 32 33 34 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ 8 22 26 28 32 (33) 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ 8 22 (23) 26 28 32 33 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ 8 22 (23) 26 28 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ 8 16 22 (23) 26 28 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ 8 16 (18) 22 23 26 27 28 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ 8 16 18 22 23 25 26 27 28 31 32 33 34 35 36 37 38 39 40 41 42 43 (44) ]
CPU P-States [ 8 15 16 (18) 22 23 25 26 27 28 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ (8) 11 15 16 18 22 23 25 26 27 28 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ 8 11 15 16 18 22 23 25 26 27 28 30 31 32 (33) 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ 8 11 13 15 16 (18) 22 23 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ (8) 11 13 15 16 18 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ (8) 11 13 15 16 18 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ (8) 11 13 15 16 18 19 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ 8 11 13 15 16 17 (18) 19 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ (8) 11 13 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ 8 11 13 14 15 16 17 (18) 19 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ]
CPU P-States [ 8 11 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 40 41 42 43 44 ]
CPU P-States [ (8) 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 40 41 42 43 44 ]
CPU P-States [ (8) 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 40 41 42 43 44 ]
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 40 41 42 43 44 ]
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 40 41 42 43 44 (45) ]
 
I followed the guide to the letter, but i ran to some probs => i've got some questions.
#1 I got an Intel i7 4790k
When i loaded AppleIntelInfo.kext a KP, is there any chance this to be fixed someHow so i can use the kext for extra info.

#2 My Cpu never goes to intel Frequency? Why, Should i generate (and install) a 2nd SSDT with Piker's Alpha Script?

Notes: I use Clover, on an Asus Hero VII - i7 4790k - 20Gb 1600mhz Ram.
 

Attachments

  • config.plist
    18 KB · Views: 180
  • Screen Shot 2017-06-15 at 6.06.51 ΜΜ.png
    Screen Shot 2017-06-15 at 6.06.51 ΜΜ.png
    251.5 KB · Views: 325
  • Screen Shot 2017-06-15 at 6.16.45 ΜΜ.png
    Screen Shot 2017-06-15 at 6.16.45 ΜΜ.png
    62.4 KB · Views: 261
  • SSDT-5.aml
    148 bytes · Views: 209
  • SSDT.aml
    2.3 KB · Views: 253
Back
Top