Contribute
Register

macOS Native CPU/IGPU Power Management

toleda

Moderator
Joined
May 19, 2010
Messages
22,846
Motherboard
Asus Maximus VII Impact
CPU
Core i7-4770K
Graphics
RX 560 + HD4600
Mac
  1. iMac
  2. MacBook Pro
  3. Mac mini
Classic Mac
  1. 512K
  2. LC
  3. Power Mac
Mobile Phone
  1. iOS
macOS Native CPU/IGPU Power Management

Native macOS power management delivers the best combination of processor and graphics performance and efficiency. The ingredients are an installed processor XCPM enabling ssdt or correctly configured Clover setting, a compatible system definition and the native power management kext. Native power management requires optimized default BIOS settings and setting Clover correctly. Credit: PluginType=YES (Xcode) only technique, RehabMan.

To be clear, native power management is not mandatory. The consequences are not severe. Performance is similar, however, higher temps (~10 C), more power (5-10 W) and sleep problems are likely.

Change Log
v1.2 - 12/8/18: Coffee Lake support
v1.1 - 11/28/17: Clover XPCM Support/v4307 and newer:​
  • config.plist/ACPI/SSDT/Generate/PluginType=YES (Xcode)
v1.0 - 5/24/17: Initial Release​

Requirements
  1. macOS/10.10 or newer
  2. BIOS
    • Load Optimized Defaults
    • Verify stock clock
  3. System Definition/SMBIOS (see Settings, below)
    • Native CPU PM (CPU0@0/plugin-type=1)
      • Do not use CloverConfigurator, disables property
    • Native IGPU PM (IGPU@2)
      • Rename dsdt/GFX0 to dsdt/IGPU
Supported CPU/IGPU - XPCM/Intel Speed Step
  1. Coffee Lake/UHD630+ (Core i3/5/i7/i9 9xxx, 9th Generation: 300 Series, except Z370, motherboards)
  2. Coffee Lake/UHD630+ (Core i3/5/i7 8xxx, 8th Generation; 300 Series, except Z370, motherboards)
  3. Kaby Lake/HD630+ (Core i3/5/7 7xxx, 7th Generation; 100/200/Z370 Series motherboards)
  4. Sky Lake/HD530+ (Core i3/5/7 6xxx, 6th Generation; 100/200 Series motherboards)
  5. Broadwell/HD6000+ (Core i3/5/7 5xxx, 5th Generation, note 2; 8/9 Series motherboards)
  6. Haswell/HD4600+ (Core i3/5/7 4xxx, 4th Generation; 8/9 Series motherboards)
Supported CPU/IGPU - see Mavericks: Native CPU/IGPU Power Management/Post #1
  1. Ivy Bridge/HD4000 (Core i3/5/7 3xxx, 3rd Generation; 6/7 Series motherboards)
    • Ivy Bridge/XPCM supported, set config.plist/KernelAndKextPatches/KernelXCPM=true, see Installation (Credit: RehabMan, Post #887)
  2. Sandy Bridge/HD3000 (Core i3/5/7 2xxx, 2nd Generation; 6/7 Series motherboards)
Laptops - see [Guide] Native Power Management for Laptops

Native Power Management Recipe
  1. System Definition/SMBIOS: match processor generation/desktop or laptop
  2. CPU PM - CPU0@0/plugin-type=1 or PR00@0/plugin-type=1
    • config.plist/ACPI/SSDT/Generate/PluginType=YES (Xcode)
  3. GPU PM - IGPU@2
    • config.plist/ACPI/DSDT/patches/Rename GFX0 to IGPU
Not Considered
  1. HWP (hardware controlled performance)
    • Intel Speed Shift (6th generation and newer)
  2. X58/X79/X99/X299
  3. NullCPUPowerManagement.kext
  4. Overclocking
  5. Safe Mode boot (-x)
  6. Sleep
  7. Discrete graphics, see macOS Native Discrete GPU Power Management
Settings: 9th & 8th Generation/7th & 6th Generation/5th & 4th Generation
Desktop:
Core i3/i5/i7/i9
Coffee_Lake/9xxx/UHD630+
Coffee_Lake/8xxx/UHD630+
Kaby_Lake/7xxx/HD630+
Skylake/6xxx/HD530+
Broadwell/5xxx/HD6000+
Haswell/4xxx/HD4600+
Motherboard 300_Series (-Z370)/10.12.6 200_Series +Z370/10.12.4, 100_Series/10.11 9_Series/10.10, 8_Series/10.9
BIOS Load_Optimized_Defaults
Stock_Clock
Load_Optimized_Defaults
Stock_Clock
Load_Optimized_Defaults
Stock_Clock
IOReg/CPU0@0/.../
X86PlatformPlugin/PluginType=1
YES YES YES, 5xxx/Frequency_Vectors (Note_2)
Additional Native Power Management Properties (IOReg) Not required Not required 8_Series/LPCB@1F 9_Series/LPCB@1F (Note_3)
CLOVER/config.plist/SMBIOS (7xxx/6xxx/5xxx: Note_4) 9xxx/imac19,
8xxx/imac18, or macmini8,
7xxx/imac18,
6xxx/imac17,
5xxx/imac16,
4xxx/imac15, or imac14, or macmin7,

Installation
  1. Backup system (bootable backup; SuperDuper, CarbonCopyCloner, etc.)
    • Rescue Tool (UniBeast, etc.)
  2. Tools (see Tools, below)
    • IOReg: Download and install
    • Intel Power Gadget: Download and install
    • AppleIntelInfo.kext: Download, do not install
    • EFI Mounter v3: Download and install
    • Xcode: Download and install
  3. Restart
  4. Baseline
    • IOReg
      • File/Save a Copy As...
    • AppleIntelInfo (1 or 2, not both)
      1. Hackintool
        • Tools
        • "Tools Output:"/Copy
        • Paste to text file, save
      2. AppleIntelInfo.kext (see, Tools/3., below)
        • Terminal/$ (Drag kext to terminal window)
          Code:
          sudo kextload AppleIntelInfo.kext
        • Permissions problem, Terminal/$
          Code:
          cd (Drag kext to terminal window)
          sudo chown -R root:wheel AppleIntelInfo.kext
          sudo chmod -R 755 AppleIntelInfo.kext
          sudo kextload AppleIntelInfo.kext
        • Let system idle for 2 minutes, then
        • Terminal/$
          Code:
          sudo cat /tmp/AppleIntelInfo.dat
          sudo kextunload AppleIntelInfo.kext
        • Terminal/Select AppleIntelInfo.kext output
        • Terminal/Shell/Export Selected Text As ...
    • Intel Power Gadget
      • Make Screenshot
  5. Clover Settings (for PM ssdts, skip to Step 6)
    1. Mount EFI Partiton
    2. Remove EFI/CLOVER/ACPI/Patched/SSDT.aml (ssdtPRgen ssdt, if installed)
    3. Xcode/edit config.plist
    4. CPU: All Systems/CLOVER/config.plist/ACPI/SSDT/
      • DropOEM/NO
      • Generate/CStates/NO
      • Generate/PStates/NO
      • Generate/PluginType/
        • No entry or NO (with XCPM ssdt or ssdtPRGen ssdt)
        • YES (no PM ssdt)
        • 304895
      • Etc.
  6. PM ssdts (If using 5. Clover Settings, skip to Step 7. GPU)
    1. CPU: Install XCPM ssdt
      • Remove EFI/CLOVER/ACPI/Patched/SSDT.aml (ssdtPRgen ssdt, if installed)
      • Download: ssdt_xcpm.zip (click link, click View Raw)
      • Install Downloads/SSDT-XCPM.aml to
        • EFI/CLOVER/ACPI/Patched/SSDT-XCPM.aml
  7. GPU: All Systems/CLOVER/config.plist/ACPI/DSDT/Patches/Item 0/Intel GPU PM- Rename GFX0 to IGPU
  8. Restart
  9. Verify
    • IOReg
      • File/Save a Copy As...
    • AppleIntelInfo (1 or 2, not both)
      1. Hackintool
        • Tools
        • "Tools Output:"/Copy
        • Paste to text file, save
      2. AppleIntelInfo.kext
        • Permissions/Terminal/$ (Drag kext to terminal window)
          Code:
          sudo chown -R root:wheel AppleIntelInfo.kext
          sudo chmod -R 744 AppleIntelInfo.kext
        • Terminal/$ (Drag kext to terminal window)
          Code:
          sudo kextload AppleIntelInfo.kext
        • Allow system to run for 5 - 10 minutes; idle, benchmark, idle, etc.
        • Terminal/$
          Code:
          sudo cat /tmp/AppleIntelInfo.dat
        • Terminal/Select AppleIntelInfo.kext output
        • Terminal/Shell/Export Selected Text As ...
        • Terminal/$
          Code:
          sudo kextunload AppleIntelInfo.kext
    • Intel Power Gadget
      • Make Screenshot
  10. If native power management is not working, see Problem Reporting, below
IOReg/Screenshots
  1. Haswell/Core i7-4770K/CPU0@0/plugin-type=1 (or PR00@0/plugin-type=1)
    • 408897
  2. Haswell/Core i7-4770K/X86PlatformPlugin (note 32 CPUPStates)

    • 257105
  3. Haswell/HD4600/AGPMController (Note Machine/iMac14,1/IGPU)

    • 257106
  4. Haswell/HD4600/IGPU/AGPM (Note 0x15 hex/21 dec IGPUPStates)

    • 257107
AppleIntelInfo.kext
  1. Core I7-4770K
  2. Necessary for native PM/not sufficient to determine if PM is working
  3. Summary:
    Code:
    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 ]
    IGPU P-States [ 4 5 6 7 8 9 10 12 13 16 (17) 18 20 22 23 24 25 ]


    
    Note: Results will vary, minimum P-States:

    CPU: 5 P-States or less (i.e., only min and/or turbo), PM not working

    IGPU: 3 P-States or less i.e., only min or max), PM not working
  4. Details:
    Code:
    $ sudo cat /tmp/AppleIntelInfo.dat
    
    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.........................: 0x339162aff75
    MWAIT C-States.....................: 270624
    
    Model Specific Regiters
    ------------------------------------
    MSR_CORE_THREAD_COUNT......(0x35) : 0x40008
    MSR_PLATFORM_INFO..........(0xCE) : 0x80838F3012300
    MSR_PMG_CST_CONFIG_CONTROL.(0xE2) : 0x1E000005
    MSR_PMG_IO_CAPTURE_BASE....(0xE4) : 0x0
    IA32_MPERF.................(0xE7) : 0xD20CEAACE
    IA32_APERF.................(0xE8) : 0x136AD668F5
    MSR_FLEX_RATIO.............(0x194) : 0xF0000
    MSR_IA32_PERF_STATUS.......(0x198) : 0x25A900002700
    MSR_IA32_PERF_CONTROL......(0x199) : 0x2700
    IA32_CLOCK_MODULATION......(0x19A) : 0x0
    IA32_THERM_STATUS..........(0x19C) : 0x883F0000
    IA32_MISC_ENABLES..........(0x1A0) : 0x850089
    MSR_MISC_PWR_MGMT..........(0x1AA) : 0x400001
    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) : 0x42FFFF001AFFFF
    MSR_PKG_ENERGY_STATUS......(0x611) : 0x45DD42D
    MSR_PKG_POWER_INFO.........(0x614) : 0x2A0
    MSR_PP0_CURRENT_CONFIG.....(0x601) : 0x10141400001FFF
    MSR_PP0_POWER_LIMIT........(0x638) : 0x0
    MSR_PP0_ENERGY_STATUS......(0x639) : 0x14BA4E3
    MSR_PP0_POLICY.............(0x63a) : 0x0
    MSR_PP1_POWER_LIMIT........(0x640) : 0x0
    MSR_PP1_ENERGY_STATUS......(0x641) : 0xAC8BA
    MSR_PP1_POLICY.............(0x642) : 0x18
    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) : 0x0
    MSR_PKGC6_IRTL.............(0x60b) : 0x0
    MSR_PKGC7_IRTL.............(0x60c) : 0x0
    MSR_PKG_C2_RESIDENCY.......(0x60d) : 0x2A417E3C47B
    MSR_PKG_C3_RESIDENCY.......(0x3f8) : 0x0
    MSR_PKG_C6_RESIDENCY.......(0x3f9) : 0x0
    MSR_PKG_C7_RESIDENCY.......(0x3fa) : 0x0
    IA32_TSC_DEADLINE..........(0x6E0) : 0x33918E10411
    PCH device.................: 0x8CC48086
    
    Intel Register Data
    ------------------------------------
    CPU_VGACNTRL...............: 0x66217510
    IS_HASWELL(devid) || IS_BROADWELL(devid)
    HSW_PWR_WELL_CTL1..........: 0x80000020
    HSW_PWR_WELL_CTL2..........: 0xfff403f0
    HSW_PWR_WELL_CTL3..........: 0xfff32db6
    HSW_PWR_WELL_CTL4..........: 0x80000020
    HSW_PWR_WELL_CTL5..........: 0xfff403f0
    HSW_PWR_WELL_CTL6..........: 0xfff33935
    PIPE_DDI_FUNC_CTL_A........: 0xfed7c7f5 (enabled, port reserved, mode reserved, bpc reserved, +VSync, +HSync, EDP A ONOFF, reserved width)
    PIPE_DDI_FUNC_CTL_B........: 0x433e79f5 (disabled, DDIE, DP MST, 12 bpc, +VSync, -HSync, EDP input reserved, reserved width)
    PIPE_DDI_FUNC_CTL_C........: 0xacf48d91 (enabled, DDIC, FDI, bpc reserved, -VSync, -HSync, EDP A ON, x1)
    PIPE_DDI_FUNC_CTL_EDP......: 0xb70ff04d (enabled, DDID, mode reserved, 8 bpc, +VSync, +HSync, EDP input reserved, reserved width)
    DP_TP_CTL_A................: 0x5ece694b
    DP_TP_CTL_B................: 0xb90a442a
    DP_TP_CTL_C................: 0x1fbda058
    DP_TP_CTL_D................: 0x2e2c9b24
    DP_TP_CTL_E................: 0x26759280
    DP_TP_STATUS_A.............: 0x475003f3
    DP_TP_STATUS_B.............: 0x23d7ddf9
    DP_TP_STATUS_C.............: 0x985d4c66
    DP_TP_STATUS_D.............: 0x042a5db9
    DP_TP_STATUS_E.............: 0xeb16b519
    DDI_BUF_CTL_A..............: 0xa7b8e90c (enabled not reversed reserved not detected)
    DDI_BUF_CTL_B..............: 0x9805d6e7 (enabled reversed x4 detected)
    DDI_BUF_CTL_C..............: 0xb4216138 (enabled reversed reserved not detected)
    DDI_BUF_CTL_D..............: 0xda5e33c0 (enabled not reversed x1 not detected)
    DDI_BUF_CTL_E..............: 0xb9c4e89c (enabled not reversed reserved not detected)
    SPLL_CTL...................: 0x2c2c2c32
    LCPLL_CTL..................: 0x037054e7
    WRPLL_CTL1.................: 0x2f330505
    WRPLL_CTL2.................: 0x04040404
    PORT_CLK_SEL_A.............: 0xfff410c8 (None)
    PORT_CLK_SEL_B.............: 0x00000745 (LCPLL 2700)
    PORT_CLK_SEL_C.............: 0x00367802 (LCPLL 2700)
    PORT_CLK_SEL_D.............: 0x00074500 (LCPLL 2700)
    PORT_CLK_SEL_E.............: 0x0f780200 (LCPLL 2700)
    PIPE_CLK_SEL_A.............: 0xffffffff (Reserved)
    PIPE_CLK_SEL_B.............: 0x003a1400 (None)
    PIPE_CLK_SEL_C.............: 0x000f0a00 (None)
    SFUSE_STRAP................: 0x3840383c (display enabled, crt no, lane reversal yes, port b yes, port c no, port d no)
    PIPEASRC...................: 0xf4a00020 (62625, 33)
    DSPACNTR...................: 0x026afc75 (disabled)
    DSPASTRIDE.................: 0x83f88bff (34595375)
    DSPASURF...................: 0x012414e8
    DSPATILEOFF................: 0x02468d01 (36097, 582)
    PIPEBSRC...................: 0x74246401 (29733, 25602)
    DSPBCNTR...................: 0x50fc458d (disabled)
    DSPBSTRIDE.................: 0x5959ffff (23422975)
    DSPBSURF...................: 0x8d0875ff
    DSPBTILEOFF................: 0x75ff50ff (20735, 30207)
    PIPECSRC...................: 0x0a73bdfd (2676, 48638)
    DSPCCNTR...................: 0x0000462b (disabled)
    DSPCSTRIDE.................: 0xf897bd83 (65167094)
    DSPCSURF...................: 0x76ff0889
    DSPCTILEOFF................: 0x004606e8 (1768, 70)
    PIPEACONF..................: 0x006af80b (disabled, inactive, if-id, rotate 270, 8bpc)
    HTOTAL_A...................: 0xeec9b38e (45967 active, 61130 total)
    HBLANK_A...................: 0x1608ea8c (60045 start, 5641 end)
    HSYNC_A....................: 0xa6f8f3d5 (62422 start, 42745 end)
    VTOTAL_A...................: 0x37273073 (12404 active, 14120 total)
    VBLANK_A...................: 0x12244020 (16417 start, 4645 end)
    VSYNC_A....................: 0x8b73122f (4656 start, 35700 end)
    VSYNCSHIFT_A...............: 0xa5bdc913
    PIPEA_DATA_M1..............: 0xad891718 (TU 87, val 0x891718 8984344)
    PIPEA_DATA_N1..............: 0xf454f43e (val 0x54f43e 5567550)
    PIPEA_LINK_M1..............: 0x1ce3f49a (val 0xe3f49a 14939290)
    PIPEA_LINK_N1..............: 0xab799efd (val 0x799efd 7970557)
    PIPEBCONF..................: 0x80850fc6 (enabled, inactive, if-id-dbl, rotate 0, invalid bpc)
    HTOTAL_B...................: 0x954cd1d8 (53721 active, 38221 total)
    HBLANK_B...................: 0xd6d7031e (799 start, 55000 end)
    HSYNC_B....................: 0x3bd9abea (44011 start, 15322 end)
    VTOTAL_B...................: 0x4939997f (39296 active, 18746 total)
    VBLANK_B...................: 0x6dd71058 (4185 start, 28120 end)
    VSYNC_B....................: 0x931ab322 (45859 start, 37659 end)
    VSYNCSHIFT_B...............: 0xbeda2ab9
    PIPEB_DATA_M1..............: 0x22c8f0f5 (TU 18, val 0xc8f0f5 13168885)
    PIPEB_DATA_N1..............: 0xf465d509 (val 0x65d509 6673673)
    PIPEB_LINK_M1..............: 0xde22ad03 (val 0x22ad03 2272515)
    PIPEB_LINK_N1..............: 0x59d1ca9f (val 0xd1ca9f 13748895)
    PIPECCONF..................: 0xb8458d50 (enabled, inactive, rsvd, rotate 180, 6bpc)
    HTOTAL_C...................: 0xfa072d99 (11674 active, 64008 total)
    HBLANK_C...................: 0xb15f92fe (37631 start, 45408 end)
    HSYNC_C....................: 0x79c10520 (1313 start, 31170 end)
    VTOTAL_C...................: 0xf7d86871 (26738 active, 63449 total)
    VBLANK_C...................: 0xefcb83af (33712 start, 61388 end)
    VSYNC_C....................: 0x8c43dfa8 (57257 start, 35908 end)
    VSYNCSHIFT_C...............: 0x0f42a731
    PIPEC_DATA_M1..............: 0x68a7c39f (TU 53, val 0xa7c39f 10994591)
    PIPEC_DATA_N1..............: 0x81112f61 (val 0x112f61 1126241)
    PIPEC_LINK_M1..............: 0x61c3f6d6 (val 0xc3f6d6 12842710)
    PIPEC_LINK_N1..............: 0x492c7076 (val 0x2c7076 2912374)
    PIPEEDPCONF................: 0x084d8b23 (disabled, inactive, rsvd, rotate 180, 10bpc)
    HTOTAL_EDP.................: 0x75c08566 (34151 active, 30145 total)
    HBLANK_EDP.................: 0x03eabe05 (48646 start, 1003 end)
    HSYNC_EDP..................: 0x016a0000 (1 start, 363 end)
    VTOTAL_EDP.................: 0x142474ff (29952 active, 5157 total)
    VBLANK_EDP.................: 0x4789e851 (59474 start, 18314 end)
    VSYNC_EDP..................: 0xb60f0000 (1 start, 46608 end)
    VSYNCSHIFT_EDP.............: 0x448bc35e
    PIPEEDP_DATA_M1............: 0x74560038 (TU 59, val 0x560038 5636152)
    PIPEEDP_DATA_N1............: 0x48b70f0c (val 0xb70f0c 11996940)
    PIPEEDP_LINK_M1............: 0x03eabe05 (val 0xeabe05 15384069)
    PIPEEDP_LINK_N1............: 0x006a0000 (val 0x6a0000 6946816)
    PFA_CTL_1..................: 0x88d40012 (enable, auto_scale yes, auto_scale_cal no, v_filter enable, vadapt enable, mode least, filter_sel hardcoded,chroma pre-filter enable, vert3tap auto, v_inter_invert field 0)
    PFA_WIN_POS................: 0x226f11ae (623, 430)
    PFA_WIN_SIZE...............: 0xecba883c (3258, 2108)
    PFB_CTL_1..................: 0xf38e916d (enable, auto_scale no, auto_scale_cal yes, v_filter bypass, vadapt disable, mode moderate, filter_sel edge_soften,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
    PFB_WIN_POS................: 0x02835914 (643, 2324)
    PFB_WIN_SIZE...............: 0x9c37dff3 (7223, 4083)
    PFC_CTL_1..................: 0x598ffe68 (disable, auto_scale no, auto_scale_cal no, v_filter bypass, vadapt enable, mode least, filter_sel edge_soften,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
    PFC_WIN_POS................: 0x2f23449e (3875, 1182)
    PFC_WIN_SIZE...............: 0x31750948 (4469, 2376)
    TRANS_HTOTAL_A.............: 0x14c483ff (33792 active, 5317 total)
    TRANS_HBLANK_A.............: 0x009f9e38 (40505 start, 160 end)
    TRANS_HSYNC_A..............: 0x2a740000 (1 start, 10869 end)
    TRANS_VTOTAL_A.............: 0x000000b8 (185 active, 1 total)
    TRANS_VBLANK_A.............: 0x30685010 (20497 start, 12393 end)
    TRANS_VSYNC_A..............: 0xe8000c40 (3137 start, 59393 end)
    TRANS_VSYNCSHIFT_A.........: 0x552e7503
    TRANSACONF.................: 0x45c624d7 (disable, active, rsvd)
    FDI_RXA_MISC...............: 0x45c6bad9 (FDI Delay 6873)
    FDI_RXA_TUSIZE1............: 0x0fc985f8
    FDI_RXA_IIR................: 0x45c641da
    FDI_RXA_IMR................: 0xff4704db
    BLC_PWM_CPU_CTL2...........: 0x3f70006e (enable 0, pipe B, blinking 1, granularity 8)
    BLC_PWM_CPU_CTL............: 0xb4d8896a (cycle 35178, freq 46296)
    BLC_PWM2_CPU_CTL2..........: 0xe6e30fd8 (enable 1, pipe EDP, blinking 0, granularity 128)
    BLC_PWM2_CPU_CTL...........: 0x2c4e008d (cycle 141, freq 11342)
    BLC_MISC_CTL...............: 0x4c26d8f1 (PWM1-CPU PWM2-PCH)
    BLC_PWM_PCH_CTL1...........: 0xe75d8884 (enable 1, override 1, inverted polarity 1)
    BLC_PWM_PCH_CTL2...........: 0xe8905d88 (freq 59536, cycle 23944)
    UTIL_PIN_CTL...............: 0xf306485d (enable 1, transcoder EDP, mode reserved, data 0 inverted polarity 0)
    PCH_PP_STATUS..............: 0xffffff10 (on, ready, sequencing unknown)
    PCH_PP_CONTROL.............: 0x8d48c483 (blacklight disabled, power down on reset, panel on)
    PCH_PP_ON_DELAYS...........: 0x47500845
    PCH_PP_OFF_DELAYS..........: 0xdce85357
    PCH_PP_DIVISOR.............: 0x8afffffe
    PIXCLK_GATE................: 0x830c7d8b
    SDEISR.....................: 0x0424448b (port d:0, port c:0, port b:1, crt:0)
    RC6_RESIDENCY_TIME.........: 0x84a0b563
    IS_GEN6(devid) || IS_GEN7(devid)
    FENCE START 0..............: 0xffffffff
    FENCE END 0................: 0xffffffff
    FENCE START 1..............: 0xffffffff
    FENCE END 1................: 0xffffffff
    FENCE START 2..............: 0xffffffff
    FENCE END 2................: 0xffffffff
    FENCE START 3..............: 0xffffffff
    FENCE END 3................: 0xffffffff
    FENCE START 4..............: 0xffffffff
    FENCE END 4................: 0xffffffff
    FENCE START 5..............: 0xffffffff
    FENCE END 5................: 0xffffffff
    FENCE START 6..............: 0xffffffff
    FENCE END 6................: 0xffffffff
    FENCE START 7..............: 0xffffffff
    FENCE END 7................: 0xffffffff
    FENCE START 8..............: 0xffffffff
    FENCE END 8................: 0xffffffff
    FENCE START 9..............: 0xffffffff
    FENCE END 9................: 0xffffffff
    FENCE START 10.............: 0xffffffff
    FENCE END 10...............: 0xffffffff
    FENCE START 11.............: 0xffffffff
    FENCE END 11...............: 0xffffffff
    FENCE START 12.............: 0xffffffff
    FENCE END 12...............: 0xffffffff
    FENCE START 13.............: 0xffffffff
    FENCE END 13...............: 0xffffffff
    FENCE START 14.............: 0xffffffff
    FENCE END 14...............: 0xffffffff
    FENCE START 15.............: 0xffffffff
    FENCE END 15...............: 0xffffffff
    FENCE START 16.............: 0xffffffff
    FENCE END 16...............: 0xffffffff
    FENCE START 17.............: 0xffffffff
    FENCE END 17...............: 0xffffffff
    FENCE START 18.............: 0xffffffff
    FENCE END 18...............: 0xffffffff
    FENCE START 19.............: 0xffffffff
    FENCE END 19...............: 0xffffffff
    FENCE START 20.............: 0xffffffff
    FENCE END 20...............: 0xffffffff
    FENCE START 20.............: 0xffffffff
    FENCE END 20...............: 0xffffffff
    FENCE START 21.............: 0xffffffff
    FENCE END 21...............: 0xffffffff
    FENCE START 22.............: 0xffffffff
    FENCE END 22...............: 0xffffffff
    FENCE START 23.............: 0xffffffff
    FENCE END 23...............: 0xffffffff
    FENCE START 24.............: 0xffffffff
    FENCE END 24...............: 0xffffffff
    FENCE START 25.............: 0xffffffff
    FENCE END 25...............: 0xffffffff
    FENCE START 26.............: 0xffffffff
    FENCE END 26...............: 0xffffffff
    FENCE START 27.............: 0xffffffff
    FENCE END 27...............: 0xffffffff
    FENCE START 28.............: 0xffffffff
    FENCE END 28...............: 0xffffffff
    FENCE START 29.............: 0xffffffff
    FENCE END 29...............: 0xffffffff
    FENCE START 30.............: 0xffffffff
    FENCE END 30...............: 0xffffffff
    FENCE START 31.............: 0xffffffff
    FENCE END 31...............: 0xffffffff
    GEN6_RP_CONTROL............: 0x00c1f704 (disabled)
    GEN6_RPNSWREQ..............: 0x800f0400
    GEN6_RP_DOWN_TIMEOUT.......: 0x0000b686
    GEN6_RP_INTERRUPT_LIMITS...: 0x8a03eb00
    GEN6_RP_UP_THRESHOLD.......: 0x88c0fe02
    GEN6_RP_UP_EI..............: 0x00000001
    GEN6_RP_DOWN_EI............: 0x8b167440
    GEN6_RP_IDLE_HYSTERSIS.....: 0x0f28b944
    GEN6_RC_STATE..............: 0x28b97c8d
    GEN6_RC_CONTROL............: 0xf475ffc0
    GEN6_RC1_WAKE_RATE_LIMIT...: 0xc1fb75ff
    GEN6_RC6_WAKE_RATE_LIMIT...: 0x07330de0
    GEN6_RC_EVALUATION_INTERVAL: 0x00bf7ce8
    GEN6_RC_IDLE_HYSTERSIS.....: 0x5037ff00
    GEN6_RC_SLEEP..............: 0xa0e1e856
    GEN6_RC1e_THRESHOLD........: 0xc4830000
    GEN6_RC6_THRESHOLD.........: 0xf445fe18
    GEN6_RC_VIDEO_FREQ.........: 0x0f003d7b
    GEN6_PMIER.................: 0x520e0302
    GEN6_PMIMR.................: 0x00731452
    GEN6_PMINTRMSK.............: 0x8be85600
    
    CPU Ratio Info:
    ------------------------------------
    CPU Low Frequency Mode.............: 800 MHz
    CPU Maximum non-Turbo Frequency....: 3500 MHz
    CPU Maximum Turbo Frequency........: 3900 MHz
    
    IGPU Info:
    ------------------------------------
    IGPU Current Frequency.............: 200 MHz
    IGPU Minimum Frequency.............: 200 MHz
    IGPU Maximum Non-Turbo Frequency...: 350 MHz
    IGPU Maximum Turbo Frequency.......: 1250 MHz
    IGPU Maximum limit.................: No Limit
    
    CPU P-States [ (35) 39 ] iGPU P-States [ (4) ]
    CPU C3-Cores [ 0 2 3 ]
    CPU C6-Cores [ 0 1 2 6 ]
    CPU C7-Cores [ 0 1 4 6 ]
    CPU P-States [ 29 (35) 39 ] iGPU P-States [ (4) ]
    CPU C3-Cores [ 0 2 3 7 ]
    CPU C6-Cores [ 0 1 2 3 4 6 ]
    CPU C7-Cores [ 0 1 2 3 4 6 ]
    CPU P-States [ 23 29 (35) 39 ] iGPU P-States [ (4) ]
    CPU C3-Cores [ 0 1 2 3 7 ]
    CPU C6-Cores [ 0 1 2 3 4 6 7 ]
    CPU C7-Cores [ 0 1 2 3 4 6 7 ]
    CPU P-States [ (8) 23 29 31 35 39 ] iGPU P-States [ (4) ]
    CPU C3-Cores [ 0 1 2 3 6 7 ]
    CPU C6-Cores [ 0 1 2 3 4 5 6 7 ]
    CPU P-States [ (8) 23 24 29 31 35 39 ] iGPU P-States [ (4) ]
    CPU C7-Cores [ 0 1 2 3 4 5 6 7 ]
    CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]
    CPU P-States [ (8) 18 23 24 29 31 35 39 ] iGPU P-States [ (4) ]
    CPU P-States [ (8) 18 23 24 29 31 35 37 39 ] iGPU P-States [ (4) ]
    CPU P-States [ (8) 18 23 24 26 29 31 35 37 39 ] iGPU P-States [ (4) ]
    CPU P-States [ 8 18 23 24 26 27 29 31 35 37 (39) ] iGPU P-States [ (4) ]
    CPU P-States [ (8) 18 23 24 25 26 27 29 31 35 37 39 ] iGPU P-States [ (4) ]
    CPU P-States [ 8 18 23 24 25 26 27 29 31 32 35 37 (39) ] iGPU P-States [ (4) ]
    CPU P-States [ (8) 18 23 24 25 26 27 29 30 31 32 35 37 39 ] iGPU P-States [ (4) ]
    CPU P-States [ 8 18 21 23 24 25 26 27 29 30 31 32 (35) 37 39 ] iGPU P-States [ (4) ]
    CPU P-States [ 8 18 21 23 24 25 26 27 29 30 31 32 33 35 37 (39) ] iGPU P-States [ (4) ]
    CPU P-States [ (8) 18 21 23 24 25 26 27 28 29 30 31 32 33 35 37 39 ] iGPU P-States [ (4) ]
    CPU P-States [ 8 18 21 23 24 25 26 27 28 29 30 31 32 33 34 35 37 (39) ] iGPU P-States [ (4) ]
    CPU P-States [ (8) 18 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 ] iGPU P-States [ (4) ]
    CPU P-States [ (8) 17 18 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 ] iGPU P-States [ (4) ]
    CPU P-States [ (8) 17 18 19 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 ] iGPU P-States [ (4) ]
    (4) ]
    CPU P-States [ 8 15 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 (35) 36 37 39 ] iGPU P-States [ (4) ]
    CPU P-States [ 8 15 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 (35) 36 37 38 39 ] iGPU P-States [ (4) ]
    CPU P-States [ 8 15 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 (39) ] iGPU P-States [ 4 (6) ]
    CPU P-States [ 8 15 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 (39) ] iGPU P-States [ 4 (5) 6 ]
    CPU P-States [ (8) 15 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ] iGPU P-States [ 4 5 6 (16) ]
    CPU P-States [ 8 15 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 (39) ] iGPU P-States [ 4 5 6 16 (25) ]
    CPU P-States [ 8 15 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 (35) 36 37 38 39 ] iGPU P-States [ 4 5 6 16 (24) 25 ]
    CPU P-States [ 8 15 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 (35) 36 37 38 39 ] iGPU P-States [ 4 5 6 16 (23) 24 25 ]
    CPU P-States [ 8 15 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 (39) ] iGPU P-States [ 4 5 6 16 (22) 23 24 25 ]
    CPU P-States [ 8 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 (39) ] iGPU P-States [ 4 5 6 16 22 23 24 (25) ]
    CPU P-States [ 8 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 (35) 36 37 38 39 ] iGPU P-States [ 4 5 6 16 (19) 22 23 24 25 ]
    CPU P-States [ 8 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 (35) 36 37 38 39 ] iGPU P-States [ 4 5 6 (15) 16 19 22 23 24 25 ]
    CPU P-States [ 8 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 (39) ] iGPU P-States [ 4 5 6 (14) 15 16 19 22 23 24 25 ]
    CPU P-States [ 8 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 (35) 36 37 38 39 ] iGPU P-States [ 4 5 6 (13) 14 15 16 19 22 23 24 25 ]
    CPU P-States [ (8) 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ] iGPU P-States [ 4 5 6 (11) 13 14 15 16 19 22 23 24 25 ]
    CPU P-States [ 8 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 (35) 36 37 38 39 ] iGPU P-States [ 4 5 6 (10) 11 13 14 15 16 19 22 23 24 25 ]
    CPU P-States [ (8) 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ] iGPU P-States [ 4 5 6 (9) 10 11 13 14 15 16 19 22 23 24 25 ]
    CPU P-States [ 8 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 (35) 36 37 38 39 ] iGPU P-States [ 4 5 6 (8) 9 10 11 13 14 15 16 19 22 23 24 25 ]
    CPU P-States [ (8) 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ] iGPU P-States [ 4 5 6 (7) 8 9 10 11 13 14 15 16 19 22 23 24 25 ]
    CPU P-States [ (8) 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 ] iGPU P-States [ (4) 5 6 7 8 9 10 11 13 14 15 16 19 22 23 24 25 ]
    CPU P-States [ (8) 13 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 ] iGPU P-States [ (4) 5 6 7 8 9 10 11 13 14 15 16 19 22 23 24 25 ]
    CPU P-States [ (8) 12 13 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 ] iGPU P-States [ (4) 5 6 7 8 9 10 11 13 14 15 16 19 22 23 24 25 ]
    CPU P-States [ 8 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 ] iGPU P-States [ (4) 5 6 7 8 9 10 11 13 14 15 16 19 22 23 24 25 ]
    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 ] iGPU P-States [ (4) 5 6 7 8 9 10 11 13 14 15 16 19 22 23 24 25 ]
Intel Power Gadget/Screenshot
  1. Core i7-4770K/HD4600

  • 257103
Tools
  1. IOReg: IORegistryExplorer_v2.1.zip
  2. DPCIManager_v1.5.zip
  3. AppleIntelInfo.kext (select one)https://github.com/Piker-Alpha/AppleIntelInfo
    1. Hackintool/Tools
    2. Piker-Alpha/AppleIntelInfo
      • v2.9, see attachment below
  4. Intel® Power Gadget
    • Clover/Intel Power Gadget
      • Frequency scale is wrong with Clover
      • Fix, set config.plist/CPU/QPI/100
  5. Community Software/EFI Mounter v3
  6. Xcode - Apple Developer
Notes
  1. System Definition/macpro6,1: socket LGA 2011 only
  2. Broadwell/5xxx - frequency vectors required
  3. 9 Series/LPC: ssdt_lpcb-9series.zip
  4. Graphics fix required for black screen: macOS 10.12.5 Update/Post #6
Problem Reporting
  1. Description of problem
  2. OS X version/motherboard model/BIOS version/processor/graphics
  3. Procedure/Guide Used
  4. Copy of IOReg/File/Save a Copy As…, verify file (no ioreg.txt, screenshots)
    • Baseline
    • PM install
  5. Copy of AppleIntelInfo/Terminal: cat /tmp/AppleIntelInfo.dat
    • Baseline: Terminal/Shell/Export Text As...
    • PM install: Terminal/Shell/Export Text As...
  6. Copy Of Console/All Messages (last boot)
    • PM install: Console/File/Save a Copy As...
  7. Screenshot of Intel Power Gadget
    • Baseline
    • PM install
  8. Clover (files only, no text pasted to Post)
    • EFI/CLOVER/config.plist
    • DPCIManager/Misc/Boot Log
    • EFI/CLOVER/ACPI/Patched/dsdt (if installed)
    • EFI/CLOVER/ACPI/Patched/ssdt (all)
  9. Put all files in a folder, compress and attach to Post
Credit
Rehabman guide-native-power-management-for-laptops/Experimental technique: XCPM only and RehabMan/OS-X-Clover-Laptop-Config
PikeRAlpha Xnu CPU Power Management | Pike's Universum
and AppleIntelCPUPowerManagementInfo.kext | Pike's Universum
 

Attachments

  • AppleIntelInfo.kext.zip
    33.1 KB · Views: 1,382
Last edited:
do i still need piker's ssdtPRgen to be in my Clover->Patched folder along with ssdt_xcpm?
 
If one is using (or going to use) a dedicated GPU(such as an nVidia card), does that invalidate this process?

Just for clarity, does this invalidate this process (and the subsequent ssdtPRGen)?
 
No, This thread does not address discrete graphics power management.

No. Starting with Experimental technique: XCPM only, the techniques is the same.

ssdtPRGen applies to Sandy Bridge, Ivy Bridge and certain server processors.
Thank you for the answers.

Given my build, and also that I'm installing an nVidia GPU, would you recommend this procedure?
 
Thank you for the answers.

Given my build, and also that I'm installing an nVidia GPU, would you recommend this procedure?

GPU is not relevant to CPU PM.
 
Rephrased: Given my build, is this a recommended procedure?
 
Rephrased: Given my build, is this a recommended procedure?

I think the "XCMP only" method (SSDT-PluginType1.aml) can be recommended for any build with Haswell or later CPU.
Also, it works also for versions prior to macOS.
 
Back
Top