Contribute
Register

Mavericks: Native CPU/IGPU Power Management

toleda

Moderator
Joined
May 19, 2010
Messages
22,845
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
Mavericks: Native CPU/IGPU Power Management

Note: This thread applies to Ivy Bridge, Sandy Bridge and previous. For Haswell and newer, see macOS Native CPU/IGPU Power Management

Native Mavericks power management delivers the best combination of processor and graphics performance and efficiency. The ingredients are an installed processor specific power management ssdt, a compatible system definition and the native power management kext. Native Mavericks power management does not require specific BIOS settings or anything more than one boot setting to load the power management ssdt. Credit for the technique described to PikeRAlpha.

What changed between Mountain Lion and Mavericks power management? The existing processor frequency/power state reporting tools (i.e., MSRDumper, HWMonitor) stopped reporting power states between idle and max non turbo. This led to an incorrect conclusion that native Mavericks power management was not working. A new tool, Intel Power Gadget, shows Mavericks power management is working as designed.

To be clear, native Mavericks 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/22/14 - 9series LPC, dsdt/ssdt, see Post #530
v1.1 - 4/4/14 - CPU PM/Core i3/5/7 xxx (1st Generation)/Core 2 and earlier (below)
v1.0 - 4/2/14: Initial Release
Requirements
  1. OS X/10.9.2 or newer
    1. Desktop/Laptop only
    2. Server, see Guide: Asus X79 OS X Controlled SpeedStep
  2. BIOS
    1. Load Optimized Defaults
    2. Stock Clock
      1. Verify
      2. OC, use ./ssdtPRGen.sh -f freq flag (after stock clock PM working)
Supported CPU/IGPU
  1. Haswell/HD4600+ (Core i3/5/7 4xxx, 4th Generation)
  2. Ivy Bridge/HD4000 (Core i3/5/7 3xxx, 3rd Generation)
  3. Sandy Bridge/HD3000 (Core i3/5/7 2xxx, 2nd Generation)
Native Mavericks Power Management Recipe
  1. System Definition - match processor generation/desktop or laptop
  2. ssdt - custom to installed processor
  3. kext - native IOPlatformPlugin.kext
Not considered
  1. NullCPUPowerManagement.kext
  2. Safe Mode boot (-x)
  3. Discrete graphics
Settings: Haswell/Ivy Bridge/Sandy Bridge (Note 1)
Haswell
i3/5/7
4xxx
HD4600+
____
Ivy Bridge
i3/5/7
3xxx
HD4000
_____
Sandy Bridge
i3/5/7
2xxx
HD3000
_____
1. All Systems
BIOS Load Optimized Defaults Load Optimized Defaults Load Optimized Defaults
Required
PlatformPlugin
x86
PlatformPlugin
x86
PlatformPlugin
ACPI_SMC_
PlatformPlugin
Additional Native Power Management
Properties (IOReg)
LPC@1F LPC@1F LPC@1F
SBUS@1F,3/
BUS0@0
_____________________ ____________ ____________ ____________
2. Chameleon/Chimera
org.chameleon.Boot.plist DropSSDT=Yes DropSSDT=Yes DropSSDT=Yes
smbios.plist imac14
macbookpro11
macbookair6
imac13
macmini6
macbookpro9
macbookpro10
macbookair5
imac12
macmini5
macbookpro8
_____________________ ____________ ____________ ____________
3. Clover/config.plist/
ACPI/ DropTables/
SSDT/CpuPm
SSDT/Cpu0Ist
DropTables/
SSDT/CpuPm
SSDT/Cpu0Ist
ACPI/SMBIOS Default Default Default

Installation
  1. Backup system (bootable backup; SuperDuper, CarbonCopyCloner, etc.)
    1. Rescue Tool (UniBeast, etc.)
  2. Tools (see Tools, below)
    1. IOReg: Download and install
    2. Intel Power Gadget: Download and install
    3. AppleIntelCPUPowerManagementInfo.kext: Download and install
  3. Restart
    1. If KP, remove S/L/E/AppleIntelCPUPowerManagementInfo.kext
    2. Proceed without the kext
  4. Baseline
    1. IOReg
      1. File/Save a Copy As...
    2. AICPUPMI
      1. Terminal
        1. cat /var/log/system.log | grep "AICPUPMI:"
        2. File/Export Text As...
    3. Intel Power Gadget (Note 2)
      1. Make screenshot
  5. Bootloader Settings
    1. All Systems
      1. Deselect any/all power management entries/selections
        1. Generate C States
        2. Generate P States
        3. Generate CPU States
        4. Plugin Type
        5. Etc,
    2. Chameleon/Chimera
      1. Chameleon Wizard
        1. Set DropSSDT (Ignore if 9 Series)
        2. Select appropriate System Definition
        3. Save
        4. Example Screen Shot 2014-03-26 at 9.59.41 PM.png
    3. 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. ExampleScreen Shot 2014-03-29 at 7.09.54 PM.png
  6. Prepare ssdt
    1. The script uses the installed processor
      1. For a different CPU, see ssdtPRGen.sh v11.0 | Pike's Universum
      2. For Desktop/Ivy Bridge/Core i3/5/7 3xxx, 3rd Generation (Note 3)
    2. Piker-Alpha/ssdtPRGen.sh/Download ZIP
      1. Use BETA branch
    3. Terminal:
      1. cd Downloads/ssdtPRGen.sh-master
      2. sudo chmod 755 ssdtPRGen.sh
      3. ./ssdtPRGen.sh
      4. n
      5. n
    4. Example:
      Code:
      Last login: Fri Mar  7 23:50:39 on console
      
      . . .$ cd /Users/. . ./Downloads/ssdtPRGen.sh-master 
      . . .:ssdtPRGen.sh-master . . .$ ./ssdtPRGen.sh
      This script must be run as root!
      Password:
      ssdtPRGen.sh v0.9 Copyright (c) 2011-2012 by † RevoGirl
                   v6.6 Copyright (c) 2013 by † Jeroen
                   v12.7 Copyright (c) 2013-2014 by Pike R. Alpha
      -----------------------------------------------------------
      Bugs > https://github.com/Piker-Alpha/ssdtPRGen.sh/issues <
      System information: Mac OS X 10.9.2 (13C64)
      Brandstring 'Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz'
      Scope (_PR_) {26 bytes} with ACPI Processor declarations found in the DSDT (ACPI 1.0 compliant)
      Generating ssdt.dsl for a 'iMac14,2' with board-id [Mac-27ADBB7B4CEE8E61]
      Haswell Core i7-4770K processor [0x306C3] setup [0x0705]
      With a maximum TDP of 84 Watt, as specified by Intel
      Number logical CPU's: 8 (Core Frequency: 3500 MHz)
      Number of Turbo States: 4 (3600-3900 MHz)
      Number of P-States: 32 (800-3900 MHz)
      Injected C-States for CPU0 (C1,C3,C6,C7)
      Injected C-States for CPU1 (C1,C2,C3)
      Intel ACPI Component Architecture
      ASL Optimizing Compiler version 20130117-64 [Jan 19 2013]
      Copyright (c) 2000 - 2013 Intel Corporation
      ASL Input:     /Users/. . ./Desktop/ssdt.dsl - 327 lines, 9975 bytes, 71 keywords
      AML Output:    /Users/. . ./Desktop/ssdt.aml - 2178 bytes, 28 named objects, 43 executable opcodes
      Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 0 Optimizations
      Do you want to copy /Users/. . ./Desktop/ssdt.aml to /Extra/ssdt.aml? (y/n)? n
      Do you want to open ssdt.dsl (y/n)? n
  7. Rename Desktop/ssdt.aml to Desktop/SSDT.aml
  8. Install
    1. Chimera/Chameleon
      1. Extra/SSDT.aml
    2. Clover
      1. EFI/Clover/ACPI/Patched/SSDT.aml
  9. Restart
  10. Verify
    1. Console/Search: XCPM
      1. Code:
        kernel[0]    XCPM: registered
        kernel[0]    IOPPF: XCPM mode
    2. IOReg
      1. X86PlatformPlugin
    3. AICPUPMI
      1. Terminal:
        1. cat /var/log/system.log | grep "AICPUPMI:"
    4. Intel Power Gadget (Note 1)
      1. Screenshot
    5. Verify Console/IOReg/AICPUPMI/Power Gadget (see below)
IOReg
  1. Haswell/Ivy Bridge
    1. Core i7-4770K (verify X86PlatformPlugin & AGPMController Machine)
      1. Screen Shot 2014-03-29 at 3.55.33 PM.pngScreen Shot 2014-03-29 at 3.55.06 PM.png
  2. Sandy Bridge
    1. Core i5-2605S (verify AICPMVers & AGPMController Machine)
      1. Screen Shot 2014-03-29 at 4.02.38 PM.pngScreen Shot 2014-03-29 at 4.01.00 PM.png
AppleIntelInfo.kext
Deprecated: AppleIntelCPUPowerManagementInfo

  1. Core I7-4770K
  2. Necessary for native Mavericks 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:
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: v3.3 Copyright © 2012-2014 Pike R. Alpha. All rights reservedMar 27 14:26:14 localhost kernel[0]: AICPUPMI: logMSRs............................: 1Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: logIGPU............................: 1
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: logCStates.........................: 1
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: logIPGStyle........................: 1
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MWAIT C-States.....................: 270624
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_CORE_THREAD_COUNT......(0x35)  : 0x40008
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PLATFORM_INFO..........(0xCE)  : 0x80838F3012300
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PMG_CST_CONFIG_CONTROL.(0xE2)  : 0x1E000005
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PMG_IO_CAPTURE_BASE....(0xE4)  : 0x21814
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: IA32_MPERF.................(0xE7)  : 0xE401363B8
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: IA32_APERF.................(0xE8)  : 0xDFDA821ED
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_FLEX_RATIO.............(0x194) : 0xE0000
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_IA32_PERF_STATUS.......(0x198) : 0x236500002500
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_IA32_PERF_CONTROL......(0x199) : 0x2700
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: IA32_CLOCK_MODULATION......(0x19A) : 0x0
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: IA32_THERM_STATUS..........(0x19C) : 0x883E0000
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: IA32_MISC_ENABLES..........(0x1A0) : 0x850089
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_MISC_PWR_MGMT..........(0x1AA) : 0x400001
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_TURBO_RATIO_LIMIT......(0x1AD) : 0x25262727
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: IA32_ENERGY_PERF_BIAS......(0x1B0) : 0x5
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_POWER_CTL..............(0x1FC) : 0x4005F
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_RAPL_POWER_UNIT........(0x606) : 0xA0E03
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PKG_POWER_LIMIT........(0x610) : 0x428348001A82A0
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PKG_ENERGY_STATUS......(0x611) : 0x25B3D6
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PKGC3_IRTL.............(0x60a) : 0x8842
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PKGC6_IRTL.............(0x60b) : 0x8873
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PKGC7_IRTL.............(0x60c) : 0x8891
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PP0_CURRENT_CONFIG.....(0x601) : 0x101414000002F8
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PP0_POWER_LIMIT........(0x638) : 0x0
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PP0_ENERGY_STATUS......(0x639) : 0x147A02
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PP0_POLICY.............(0x63a) : 0x0
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PP1_POWER_LIMIT........(0x640) : 0x0
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PP1_ENERGY_STATUS......(0x641) : 0x6D03
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PP1_POLICY.............(0x642) : 0x18
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_CONFIG_TDP_NOMINAL.....(0x648) : 0x23
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_CONFIG_TDP_LEVEL1......(0x649) : 0x0
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_CONFIG_TDP_LEVEL2......(0x64a) : 0x0
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_CONFIG_TDP_CONTROL.....(0x64b) : 0x80000000
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_TURBO_ACTIVATION_RATIO.(0x64c) : 0x0
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PKG_C2_RESIDENCY.......(0x60d) : 0x0
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PKG_C3_RESIDENCY.......(0x3f8) : 0x0
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PKG_C6_RESIDENCY.......(0x3f9) : 0x0
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: MSR_PKG_C7_RESIDENCY.......(0x3fa) : 0x0
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: CPU Low Frequency Mode.............: 800 MHz
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: CPU Maximum non-Turbo Frequency....: 3500 MHz
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: CPU Maximum Turbo Frequency........: 3900 MHz
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: IGPU Current Frequency.............: 1250 MHz
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: IGPU Minimum Frequency.............:  200 MHz
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: IGPU Maximum Non-Turbo Frequency...:  350 MHz
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: IGPU Maximum Turbo Frequency.......: 1250 MHz
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: IGPU Maximum limit.................: No Limit
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: CPU P-States [ (8) 34 37 ] iGPU P-States [ (25) ]
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: CPU C3-Cores [ 0 1 2 5 ]
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: CPU C7-Cores [ 0 2 4 5 7 ]
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: CPU P-States [ (8) 33 34 37 ] iGPU P-States [ (25) ]
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: CPU C3-Cores [ 0 1 2 4 5 6 7 ]
    Mar 27 14:26:14 localhost kernel[0]: AICPUPMI: CPU C7-Cores [ 0 1 2 4 5 7 ]
    Mar 27 14:26:15 kernel[0]: AICPUPMI: CPU P-States [ 8 33 34 36 (37) ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:15 kernel[0]: AICPUPMI: CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]
    Mar 27 14:26:15 kernel[0]: AICPUPMI: CPU C7-Cores [ 0 1 2 3 4 5 6 7 ]
    Mar 27 14:26:16 kernel[0]: AICPUPMI: CPU P-States [ 8 33 34 (35) 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:16 kernel[0]: AICPUPMI: CPU P-States [ (8) 30 33 34 35 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:17 kernel[0]: AICPUPMI: CPU C6-Cores [ 0 1 ]
    Mar 27 14:26:17 kernel[0]: AICPUPMI: CPU P-States [ 8 27 30 33 34 (35) 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:18 kernel[0]: AICPUPMI: CPU P-States [ (8) 12 27 30 33 34 35 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:20 kernel[0]: AICPUPMI: CPU P-States [ (8) 12 27 28 30 33 34 35 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:37 kernel[0]: AICPUPMI: CPU P-States [ (8) 12 27 28 30 31 33 34 35 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:37 kernel[0]: AICPUPMI: CPU P-States [ (8) 12 23 27 28 30 31 33 34 35 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:37 kernel[0]: AICPUPMI: CPU P-States [ (8) 12 23 27 28 29 30 31 33 34 35 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:37 kernel[0]: AICPUPMI: CPU P-States [ (8) 12 13 23 27 28 29 30 31 33 34 35 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:37 kernel[0]: AICPUPMI: CPU P-States [ (8) 12 13 23 25 27 28 29 30 31 33 34 35 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:37 kernel[0]: AICPUPMI: CPU P-States [ (8) 12 13 22 23 25 27 28 29 30 31 33 34 35 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:37 kernel[0]: AICPUPMI: CPU P-States [ (8) 11 12 13 22 23 25 27 28 29 30 31 33 34 35 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:37 kernel[0]: AICPUPMI: CPU P-States [ (8) 11 12 13 22 23 25 27 28 29 30 31 32 33 34 35 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:37 kernel[0]: AICPUPMI: CPU P-States [ (8) 9 11 12 13 22 23 25 27 28 29 30 31 32 33 34 35 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:37 kernel[0]: AICPUPMI: CPU P-States [ (8) 9 11 12 13 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:46 kernel[0]: AICPUPMI: CPU C6-Cores [ 0 1 2 3 ]
    Mar 27 14:26:47 kernel[0]: AICPUPMI: CPU P-States [ (8) 9 11 12 13 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:49 kernel[0]: AICPUPMI: CPU P-States [ 8 9 11 12 13 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 (38) ] iGPU P-States [ (4) 25 ]
    Mar 27 14:26:50 kernel[0]: AICPUPMI: CPU P-States [ (8) 9 11 12 13 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ] iGPU P-States [ 4 (6) 25 ]
    Mar 27 14:26:50 kernel[0]: AICPUPMI: CPU C6-Cores [ 0 1 2 3 7 ]
    Mar 27 14:26:50 kernel[0]: AICPUPMI: CPU C6-Cores [ 0 1 2 3 6 7 ]
    Mar 27 14:26:54 kernel[0]: AICPUPMI: CPU C6-Cores [ 0 1 2 3 4 6 7 ]
    Mar 27 14:26:54 kernel[0]: AICPUPMI: CPU C6-Cores [ 0 1 2 3 4 5 6 7 ]
    Mar 27 14:26:55 kernel[0]: AICPUPMI: CPU P-States [ 8 9 11 12 13 22 23 24 25 26 27 28 29 30 31 32 33 34 (35) 36 37 38 ] iGPU P-States [ 4 6 (8) 25 ]
    Mar 27 14:26:57 kernel[0]: AICPUPMI: CPU P-States [ (8) 9 11 12 13 17 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ] iGPU P-States [ (4) 6 8 25 ]
    Mar 27 14:27:02 kernel[0]: AICPUPMI: CPU P-States [ (8) 9 11 12 13 17 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ] iGPU P-States [ (4) 6 8 25 ]
    Mar 27 14:27:05 kernel[0]: AICPUPMI: CPU P-States [ (8) 9 11 12 13 16 17 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ] iGPU P-States [ (4) 6 8 25 ]
    Mar 27 14:27:06 kernel[0]: AICPUPMI: CPU P-States [ (8) 9 11 12 13 16 17 19 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ] iGPU P-States [ (4) 6 8 25 ]
    Mar 27 14:27:06 kernel[0]: AICPUPMI: CPU P-States [ (8) 9 11 12 13 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ] iGPU P-States [ (4) 6 8 25 ]
    Mar 27 14:27:12 kernel[0]: AICPUPMI: CPU P-States [ (8) 9 10 11 12 13 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ] iGPU P-States [ (4) 6 8 25 ]
    Mar 27 14:27:12 kernel[0]: AICPUPMI: CPU P-States [ (8) 9 10 11 12 13 14 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ] iGPU P-States [ (4) 6 8 25 ]
    Mar 27 14:27:17 kernel[0]: AICPUPMI: CPU P-States [ (8) 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ] iGPU P-States [ (4) 6 8 25 ]
    Mar 27 14:27:45 kernel[0]: AICPUPMI: CPU P-States [ (8) 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ] iGPU P-States [ 4 6 8 (10) 25 ]
    Mar 27 14:27:45 kernel[0]: AICPUPMI: CPU P-States [ (8) 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 ] iGPU P-States [ 4 6 8 (9) 10 25 ]
    Mar 27 14:27:45 kernel[0]: AICPUPMI: 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 ] iGPU P-States [ 4 6 8 (9) 10 25 ]
    Mar 27 14:28:02 kernel[0]: AICPUPMI: 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) 6 8 9 10 25 ]
    Mar 27 14:28:46 kernel[0]: AICPUPMI: 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 6 (7) 8 9 10 25 ]
    Mar 27 14:28:47 kernel[0]: AICPUPMI: 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 25 ]
    Mar 27 14:33:04 kernel[0]: AICPUPMI: 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) 25 ]
    Mar 27 14:33:05 kernel[0]: AICPUPMI: 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 (24) 25 ]
    Mar 27 14:33:05 kernel[0]: AICPUPMI: 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 (18) 24 25 ]
    Mar 27 14:33:06 kernel[0]: AICPUPMI: 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 (16) 18 24 25 ]
    Mar 27 14:33:06 kernel[0]: AICPUPMI: 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 16 18 (22) 24 25 ]
    Mar 27 14:33:10 kernel[0]: AICPUPMI: 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 18 22 24 25 ]
    Mar 27 14:33:17 kernel[0]: AICPUPMI: 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 18 22 (23) 24 25 ]
    Mar 27 14:33:56 kernel[0]: AICPUPMI: 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 18 (20) 22 23 24 25 ]
    Mar 27 14:33:57 kernel[0]: AICPUPMI: 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 ]
Screenshots/Working PM
  1. Core i7-4770K/idle
    1. View attachment SSDT-i7-4770k-no_oc.aml.zip
    2. Temperature/Power - OK
    3. Frequencies - Power Gadget - OK (HWMonitor - not OK)
      1. Screen Shot 2014-04-10 at 8.27.06 PM.jpg
  2. Core i7-3770K/Cinebench R15/OpenGL
    1. Temperature/Power - OK
    2. Frequencies - Power Gadget - OK (HWMonitor - not OK)
      1. Screen Shot 2014-03-29 at 4.47.46 PM.pngScreen Shot 2014-03-29 at 4.43.47 PM.pngScreen Shot 2014-03-29 at 4.44.07 PM.jpg
  3. Core i7-3770K/Cinebench R15/CPU
    1. Temperature/Power - OK
    2. Frequencies - OK
      1. Screen Shot 2014-03-29 at 4.47.25 PM.pngScreen Shot 2014-03-29 at 4.46.19 PM.pngScreen Shot 2014-03-29 at 4.46.33 PM.jpg
Tools
  1. Applications/Utilities/Console
  2. AppleIntelInfo.kext
    1. AppleIntelInfo.kext.zip
    2. Deprecated- AppleIntelCPUPowerManagementInfo.kext PMinfo at clang · Piker-Alpha
      1. View attachment AppleIntelCPUPowerManagementInfo.kext.zip_v4.0
  3. Chameleon Wizard Chameleon Wizard
    1. Download
  4. Clover Configurator Clover Third-Party Tools - Clover - InsanelyMac Forum
    1. Clover Configurator
  5. Intel Power Gadget
    1. Intel® Power Gadget
  6. RegistryExplorer - Choose 1 or 2
    1. IOReg IORegistryExplorer_v2.1.zip
    2. IOJones Alternative to IORegistryExplorer: IOJones
      1. IOJones Download
  7. ssdtPRGen.sh Piker-Alpha/ssdtPRGen.sh
Screenshots (all 12, above)
  1. View attachment mavs_cpu-igpu_pm_ss.zip
Notes
  1. System Definition/macpro6,1, socket LGA 2011 only
  2. Clover/Intel Power Gaget
    1. Frequency scale is wrong with Clover
    2. Fix, set config.plist/CPU/QPI/100
  3. Desktop/Ivy Bridge/Core i-3xxx (i.e., i7-3770K)
    1. Use ./ssdtPRGen.sh -w 3
Credit

Problem Reporting

  1. Description of problem
  2. OS X version/motherboard model/BIOS version/processor/graphics
  3. Procedure/Guide Used
  4. Copy of IORegistryExplorer/IOJones (either)
    1. IOReg/File/Save a Copy As…, verify file (no ioreg.txt, screenshots)
    2. IOJones/File/Save...
  5. Copy of AICPUPMI/Terminal:/cat /var/log/system.log | grep "AICPUPMI:"
    1. Terminal/File/Export Text As...
  6. Copy Of Console/All Messages (last boot)
    1. Console/File/Save a Copy As...
  7. Screenshot of Intel Power Gadget
  8. Chimera/Chameleon
    1. Extra/org.chameleon.Boot.plist
    2. DPCIManager/Misc/Boot Log
    3. Extra/dsdt.aml (if installed)
    4. Extra/ssdt.aml
  9. Clover
    1. EFI/CLOVER/config.plist
    2. EFI/CLOVER/misc/debug.log (Set config.plist/Boot/Debug/YES)
      1. or DPCIManager/Misc/Boot Log
    3. EFI/CLOVER/ACPI/Patched/dsdt.aml (if installed)
    4. EFI/CLOVER/ACPI/Patched/ssdt.aml
  10. ssdtPPRGen.sh questions, post to Issues · Piker-Alpha/ssdtPRGen.sh
Core i3/5/7 xxx (1st Generation)/Core 2 and earlier

Difference from Haswell/Ivy Bridge/Sandy Bridge Procedure

  1. Uses native ssdt (custom processor specific ssdt not required)
Supported CPUs
  1. Core i3/5/7 xxx (1st Generation/Nahalem, no HDGraphics support))
    1. Desktop (Clarkdale/Lynnfield)
    2. Laptop (Arrandale)
    3. Server (Bloomfield/Gainstown/Gulftown/Westmere-EP)
  2. Core 2 and prior
Native Mavericks Power Management
  1. System Definition - match processor generation/desktop or laptop
  2. ssdt - native
  3. kext - native IOPlatformPlugin.kext
Not considered
  1. NullCPUPowerManagement.kext
  2. Safe Mode boot (-x)
  3. Discrete graphics
Settings: Core i3/5/7 xxx/Core 2 and earlier
Core i3/5/7 xxx
No HDGraphics Support
Core 2. . .
and previous_________
1. All Systems
BIOS Load Optimized Defaults Load Optimized Defaults
Required
PlatformPlugin
ACPI_SMC_
PlatformPlugin
ACPI_SMC_
PlatformPlugin
Additional Native Power Management
Properties (IOReg)
LPC@1F
SBUS@1F,3/
BUS0@0
LPC@1F
SBUS@1F,3/
BUS0@0
____________________ ____________________ ____________________
2. Chameleon/Chimera
org.chameleon.Boot.plist Generate:
CPUStates=Yes
or C State=Yes
and P State=Yes
Generate:
CPUStates=Yes
or C State=Yes
and P State=Yes
smbios.plist mac11
macbookpro6
macpro5 (Xeon only)
macpro3
____________________ ____________________ ____________________
3. Clover/config.plist/
ACPI/SSDT Generate/
CStates=YES
PStates=YES
Generate/
CStates=YES
PStates=YES
ACPI/SMBIOS Default Default

Tools (Core i3/5/7 xxx /Core 2 and earlier)
  1. AppleIntelCPUPowerManagementInfo.kext - Not supported
  2. Chameleon Wizard - Link above
  3. Clover Configurator - Link above
  4. Intel Power Gadget - Not supported
  5. IOReg - Link above
  6. ssdtPRGen.sh - Not supported
Installation (Core i3/5/7 xxx /Core 2 and earlier)
  1. Backup system (make bootable backup; SuperDuper, CarbonCopyCloner, etc.)
    1. Rescue Tool (UniBeast, etc.)
  2. Tools
    1. IOReg: Download and install
  3. Restart
  4. Baseline
    1. IOReg
      1. Save a Copy As...
  5. Bootloader
    1. Chameleon/Chimera
      1. org.chameleon.Boot.plist (1 or 2)
        1. GenerateCPUStates=Yes
        2. Generate C States=Yes and Generate P States=Yes
      2. smbios (1 or 2 or 3)
        1. macbookpro6
        2. imac11
        3. macpro3 (Core 2 and earlier)
    2. Clover
      1. config.plist
        1. Generate C States=Yes and Generate P States=Yes
      2. smbios (default)
        1. No entry required
  6. Restart
  7. Verify, see IOReg/2. Sandy Bridge (above)
    1. IOReg
      1. Core i3/5/7 xxx/Core 2 and earlier
        1. AICPMVers
  8. Problem Reporting (see above)
 

Attachments

  • AppleIntelInfo.kext.zip
    46.9 KB · Views: 10,774
Last edited:
Thanks for the great documentation as always. Let me know when it goes up and I will spotlight.

:thumbup:
 
Great work toleda and PikeRAlpha. Took some time this morning to give this a try. Everything is working the same as your presented screen shots for i7-4770k. The only thing that I couldn't get to work was IOReg. it just opens sit on the dock and nothing else happens.
 

Attachments

  • Screen Shot 2014-03-31 at 11.30.23.png
    Screen Shot 2014-03-31 at 11.30.23.png
    129.9 KB · Views: 2,469
  • Power States.zip
    3.7 KB · Views: 733
Any info about the first gen of Core I series? like i3-380m i7-920 etc
 
Yay! I have been looking for a good, straightforward guide on this for a long time. Will report when I get back home. Thanks to everyone involved for putting this together :)
 
Any info about the first gen of Core I series? like i3-380m i7-920 etc
1st generation Core i is the same as Sandy Bridge (2nd generation Core i), except, use the native ssdt. Note, the AppleIntelCPUPowerManagementInfo.kext and Intel Power Gadget will not work for 1st generation Core i processors, use IOReg.

bootloader: Generate CPU States=Yes or Generate C States = Yes, Generate P States = Yes
smbios: macbookpro6 or imac11
 
Great work toleda and PikeRAlpha. Took some time this morning to give this a try. Everything is working the same as your presented screen shots for i7-4770k. The only thing that I couldn't get to work was IOReg. it just opens sit on the dock and nothing else happens.

Try to use IOJones.
 
I can´t get this working on my GA-Z77X-UP5-TH / 3770K (MacMini 6,2)
I´ve loaded Bios Optimized Default and ran this
Terminal:
cd Downloads/ssdtPRGen.sh-master
sudo chmod 755 ssdtPRGen.sh
./ssdtPRGen.sh
n
n

With this result
ssdtPRGen.png

But after reboot it´s stuck at 8x

Intel Gadget.png
HW monitor.png

My org.chameleon.Boot.plist looks like this

org.chameleon.Boot.plist.png

?????
 
Back
Top