• Become a Premium Member for $25/year with no ads to improve your community experience.

EliteMacx86

Administrator
Staff member
Joined
Jul 22, 2018
Messages
6,558
Motherboard
Supermicro X11SPA-T
CPU
Intel Xeon W-3275 28 Core
Graphics
2xAMD RX 580 8GB
OS X/macOS
13.x
Bootloader
  1. OpenCore (UEFI)
Mac
  1. Mac mini
  2. MacBook Pro
Mobile Phone
  1. Android
  2. iOS

How to Enable Intel CPU Power Management on X79 Motherboards [Sandy Bridge-E/EP and Ivy Bridge-E/EP]


This guide covers the implementation of Intel CPU Power Management on X79/C606 chipset based Motherboards. This guide is supported on Sandy Bridge-E/EP and Ivy Bridge-E/EP CPUs lineup, up to macOS Monterey. By following this guide, you'll be able to enable CPU Power Management on X79 Motherboards running macOS with Sandy Bridge-E or Ivy Bridge-E CPU using Clover or OpenCore Bootloader.

Overview


When talking about a stable system with balanced performance, your system must have a working CPU Power Management. macOS native power management delivers the best performance and efficiency. With a proper Power Management function, it not only increases the CPU performance but also unlocks and unleashes the CPU speed. Hence you can achieve full speed and reach to the maximum CPU speed when at full load. Implementing Power Management is highly recommended to have full CPU speed and avoid issues like Sleep/Wake function, rise in temperatures, and slow processing. Without a proper power management function, the system may or may not perform at its peak and will not switch to idle mode during zero loads.

Requirements


Following are the requirements for the implementation of CPU Power Management on X79 Motherboards running macOS. This applies to both, Sandy Bridge-E and Ivy Bridge-E CPUs.

CPU
UEFI/BIOS Settings
  • Correct UEFI/BIOS Settings
  • MSR 0xE2 Unlocked BIOS (preferred). See Unlocking MSR for more information.
CPU Settings
  • The CPU clock should be set to default, running at stock speeds.
SMBIOS
Kexts
  • Original/Native Power Management Kexts in S/L/E.

QUICK INFO:
  • If you've used any other method remove those files to avoid conflicts.
  • If you're using any injector, make sure to remove it.

STEP 1: Setup BIOS/UEFI


The very first step is to set up BIOS to have the IGPU Enabled on your System. Follow the steps below to set up your BIOS for the CPU.

SettingsValueNotes
Hyper ThreadingEnabled
Intel Turbo Boost TechnologyEnabled
Speed StepEnabled
CPU P StatesAuto/Enabled
CPU C StatesAuto/Enabled


NOTES:
  • Depending on your hardware vendor, all settings may not be available in your BIOS/UEFI. If a setting isn't available, simply skip that particular setting.
  • The above settings are for CPU only. For more information on BIOS settings, refer to the thread linked below.

STEP 2: Remove Outdated Kexts and Injections


Once you have setup the BIOS, the next step is to remove the kexts and injections that can interfere with the Power Management implementation. To remove such, follow the steps below.

Kext Removal
If you're using NullCPUPowerManagement, it is recommended to remove it. See notes below.

1. Mount your ESP
2. Remove NullCPUPowerManagement.kext

NOTES:
  • If you're using OpenCore, you'll also need to remove the kext entries from your kernel section in your config.plist
  • For Catalina and prior, make sure these kexts don't exist in Library/Extensions or System/Library/Extensions.

Clover Properties and Injections
If you're using Clover, you need to disable Clover properties and injections.

1. Mount your ESP
2. Open your config.plist and disable and/or remove the following from their respective sections

Disable Generate Options
The Generate Options can be disabled in Acpi>Generate section.
  • Generate PStates
  • Generate CStates
  • PluginType
STEP 3: Setup SMBIOS
The next step is to set up a correct System Definition (SMBIOS) according to your CPU model. To setup SMBIOS, follow the guide linked below

STEP 4: Patch AICPM


The very first step is to patch AICPM. There are two ways to patch the AICPM.

QUICK INFO:
Patching AICPM is only required for Sandy Bridge-E CPUs. Skip this step if you're using Ivy Bridge-E CPU.

Method #1: Using Perl Patch
Stinga11 made a Perl patch using a command file. All you need to do is to download the command as per your macOS version and enter your password and continue with the instructions.

Downloads

1. For macOS Sierra
2. For macOS High Sierra

NOTE:
  • For macOS Mojave and later, the Perl patch is not available.

Method #2: Using Kernel Patches
This is a second method if you don't want to use the Perl patch method. We find this method easier and is recommended to use this method. The patches for each macOS version have been mentioned below.

1. Mount your ESP
2. Open your config.plist
3. Depending on the bootloader you use, and the macOS/OS X version installed, add the following patches to your config.plist under Kernel and Kext Patches>KextsToPatch section (for Clover) and Kernel>Patch section (for OpenCore).
4. Once added, save your config.plist.

I. OS X Yosemite (10.10.x)
If you're using OS X Yosemite, use the following patches

Name*Find* [HEX]Replace* [HEX]Comment
com.apple.driver.AppleIntelCPUPowerManagementFF0F842DFF0F852DPower Management Patch #1
com.apple.driver.AppleIntelCPUPowerManagement0100010F840100010F85Power Management Patch #2
com.apple.driver.AppleIntelCPUPowerManagement740B4183FC037511B9420600EB0B4183FC037511B9420600Power Management Patch #3
com.apple.driver.AppleIntelCPUPowerManagement02740B4183FC037522B9020602EB0B4183FC037522B90206Power Management Patch #4
com.apple.driver.AppleIntelCPUPowerManagement01745601EB56Power Management Patch #5
com.apple.driver.AppleIntelCPUPowerManagement3E75393E9090Power Management Patch #6
com.apple.driver.AppleIntelCPUPowerManagement7411B9EB11B9Power Management Patch #7


II. OS X El Capitan (10.11.x)
If you're using OS X El Capitan, use the following patches

Name*Find* [HEX]Replace* [HEX]Comment
com.apple.driver.AppleIntelCPUPowerManagementFF0F842DFF0F852DPower Management Patch #1
com.apple.driver.AppleIntelCPUPowerManagement0100010F840100010F85Power Management Patch #2
com.apple.driver.AppleIntelCPUPowerManagementC974160F324825FF0F000048C9EB160F324825FF0F000048Power Management Patch #3
com.apple.driver.AppleIntelCPUPowerManagementC9740C0F3283E01F4289443BC9EB0C0F3283E01F4289443BPower Management Patch #4
com.apple.driver.AppleIntelCPUPowerManagement01745F01EB5FPower Management Patch #5
com.apple.driver.AppleIntelCPUPowerManagement3E75393E9090Power Management Patch #6
com.apple.driver.AppleIntelCPUPowerManagement7511B9EB11B9Power Management Patch #7


III. macOS Sierra (10.12.x)
If you're using macOS Sierra, use the following patches

Name*Find* [HEX]Replace* [HEX]Comment
com.apple.driver.AppleIntelCPUPowerManagementFF0F842DFF0F852DPower Management Patch #1
com.apple.driver.AppleIntelCPUPowerManagement0100010F840100010F85Power Management Patch #2
com.apple.driver.AppleIntelCPUPowerManagementC974150F3225FF0F000048C9EB150F3225FF0F000048Power Management Patch #3
com.apple.driver.AppleIntelCPUPowerManagementC9740C0F3283E01F4289443BC9EB0C0F3283E01F4289443BPower Management Patch #4
com.apple.driver.AppleIntelCPUPowerManagement01746101EB61Power Management Patch #5
com.apple.driver.AppleIntelCPUPowerManagement3E75383E9090Power Management Patch #6
com.apple.driver.AppleIntelCPUPowerManagement7511B9EB11B9Power Management Patch #7


IV. macOS High Sierra (10.13.x)
If you're using macOS High Sierra, use the following patches

Name*Find* [HEX]Replace* [HEX]Comment
com.apple.driver.AppleIntelCPUPowerManagementFF0F84D3FF0F85D3Power Management Patch #1
com.apple.driver.AppleIntelCPUPowerManagement0100010F840100010F85Power Management Patch #2
com.apple.driver.AppleIntelCPUPowerManagementC974140F3225FF0F00006BC9EB140F3225FF0F00006BPower Management Patch #3
com.apple.driver.AppleIntelCPUPowerManagementC9740C0F3283E01F4289443BC9EB0C0F3283E01F4289443BPower Management Patch #4
com.apple.driver.AppleIntelCPUPowerManagement01746101EB61Power Management Patch #5
com.apple.driver.AppleIntelCPUPowerManagement3E75383E9090Power Management Patch #6
com.apple.driver.AppleIntelCPUPowerManagement7511B9EB11B9Power Management Patch #7


V. macOS Mojave (10.14.x)
If you're using macOS Mojave, use the following patches

Name*Find* [HEX]Replace* [HEX]Comment
com.apple.driver.AppleIntelCPUPowerManagementFF0F84CD 00FF0F85CD 00Power Management Patch #1
com.apple.driver.AppleIntelCPUPowerManagement0100010F 840100010F 85Power Management Patch #2
com.apple.driver.AppleIntelCPUPowerManagementC974140F 3225FF0F 00006BC9EB140F 3225FF0F 00006BPower Management Patch #3
com.apple.driver.AppleIntelCPUPowerManagementC974050F 3283E01F 4289443BC9EB050F 3283E01F 4289443BPower Management Patch #4
com.apple.driver.AppleIntelCPUPowerManagement01746001EB60Power Management Patch #5
com.apple.driver.AppleIntelCPUPowerManagement3E75383E9090Power Management Patch #6
com.apple.driver.AppleIntelCPUPowerManagement7511B9EB11B9Power Management Patch #7


VI. macOS Catalina (10.15.x)
If you're using macOS Catalina, use the following patches

Name*Find* [HEX]Replace* [HEX]Comment
com.apple.driver.AppleIntelCPUPowerManagementFF0F840F 01FF0F850F 01Power Management Patch #1
com.apple.driver.AppleIntelCPUPowerManagement0100010F 840100010F 85Power Management Patch #2
com.apple.driver.AppleIntelCPUPowerManagementC974140F 3225FF0F 00006BC974140F 3225FF0F 00006BPower Management Patch #3
com.apple.driver.AppleIntelCPUPowerManagementC974050F 3283E01F 4289443BC9EB050F 3283E01F 4289443BPower Management Patch #4
com.apple.driver.AppleIntelCPUPowerManagement01745D01EB5DPower Management Patch #5
com.apple.driver.AppleIntelCPUPowerManagement3E75383E9090Power Management Patch #6
com.apple.driver.AppleIntelCPUPowerManagement7511B9EB11B9Power Management Patch #7


VII. macOS Big Sur (11.x)
If you're using macOS Big Sur, use the following patches

NameFind* [HEX]Replace* [HEX]Comment
com.apple.driver.AppleIntelCPUPowerManagementFF0F840F 01FF0F850F 01Power Management Patch #1 (11.2.1)
com.apple.driver.AppleIntelCPUPowerManagement0100010F 840100010F 85Power Management Patch #2 (11.2.1)
com.apple.driver.AppleIntelCPUPowerManagementC974140F 3225FF0F 00006BC974140F 3225FF0F 00006BPower Management Patch #3 (11.2.1)
com.apple.driver.AppleIntelCPUPowerManagementC974050F 3283E01F 4289443BC9EB050F 3283E01F 4289443BPower Management Patch #4 (11.2.1)
com.apple.driver.AppleIntelCPUPowerManagement01745D01EB5DPower Management Patch #5 (11.2.1)
com.apple.driver.AppleIntelCPUPowerManagement3E75383E9090Power Management Patch #6 (11.2.1)
com.apple.driver.AppleIntelCPUPowerManagement7511B9EB11B9Power Management Patch #7 (11.2.1)
com.apple.driver.AppleIntelCPUPowerManagement3E75393E9090Power Management Patch #1 (11.2.3, 11.3, 11.3.1, 11.4, 11.6, 11.6.5, 11.6.6)
com.apple.driver.AppleIntelCPUPowerManagement7513B9EB11B9Power Management Patch #2 (11.2.3, 11.3, 11.3.1, 11.4, 11.6, 11.6.5, 11.6.6)


VIII. macOS Monterey (12.x)
If you're using macOS Monterey, use the following patches

NameFind* [HEX]Replace* [HEX]Comment
com.apple.driver.AppleIntelCPUPowerManagement3E75393E9090Power Management Patch #1 (12.3, 12.5)
com.apple.driver.AppleIntelCPUPowerManagement751AB9EB11B9Power Management Patch #2 (12.3, 12.5)
com.apple.driver.AppleIntelCPUPowerManagementEB064531E4EB034531E4Power Management Patch #3 (12.3, 12.5)


STEP 5: Patch MSR Lock


The next step is to patch the MSR Lock. There are several ways to patch MSR Lock which have been described below. Chose only one, do not use it together.

QUICK INFO:
  • MSR Unlock is only required for Motherboards with Locked MSR. Skip this step if your Motherboard has unlocked MSR.
  • Do not patch MSR if you're having an MSR unlocked Motherboard. Generally, ASUS and ASRock Motherboards have Unlocked MSR.

To verify whether your motherboard has an MSR Lock, follow the guide below.

Method #1: Using AICPMPatch

1. Download AICPMPatch
2. Execute the following commands in Terminal

Bash:
#Move to the directory
cd ~/Downloads/AICPMPatch

#To find wrmsr:
perl AICPMPatch.pl /System/Library/Extensions/AppleIntelCPUPowerManagement.kext/Contents/MacOS/AppleIntelCPUPowerManagement

#To patch wrmsr:
sudo perl AICPMPatch.pl /System/Library/Extensions/AppleIntelCPUPowerManagement.kext/Contents/MacOS/AppleIntelCPUPowerManagement --patch

The output of the operation looks like this:

Code:
/System/Library/Extensions/AppleIntelCPUPowerManagement.kext/Contents/MacOS/AppleIntelCPUPowerManagement

arch: x86_64

delta: 1
0000000000009730    movl    $0x000000e2,%ecx
0000000000009735    wrmsr

delta: 1
00000000000097e3    movl    $0x000000e2,%ecx
00000000000097e8    wrmsr

delta: 1
00000000000097f9    movl    $0x000000e2,%ecx
00000000000097fe    wrmsr

delta: 1
000000000000990f    movl    $0x000000e2,%ecx
0000000000009914    wrmsr

delta: 1
000000000000a210    movl    $0x000000e2,%ecx
000000000000a215    wrmsr

delta: 1
000000000000ac3f    movl    $0x000000e2,%ecx
000000000000ac44    wrmsr

delta: 1
000000000000b044    movl    $0x000000e2,%ecx
000000000000b049    wrmsr

delta: 1
000000000001075c    movl    $0x000000e2,%ecx
0000000000010761    wrmsr

delta: 1
0000000000011b2f    movl    $0x000000e2,%ecx
0000000000011b34    wrmsr

delta: 1
0000000000012bef    movl    $0x000000e2,%ecx
0000000000012bf4    wrmsr

/System/Library/Extensions/AppleIntelCPUPowerManagement.kext/Contents/MacOS/AppleIntelCPUPowerManagement

arch: x86_64

delta: 1
0000000000009730    movl    $0x000000e2,%ecx
0000000000009735    wrmsr

delta: 1
00000000000097e3    movl    $0x000000e2,%ecx
00000000000097e8    wrmsr

delta: 1
00000000000097f9    movl    $0x000000e2,%ecx
00000000000097fe    wrmsr

delta: 1
000000000000990f    movl    $0x000000e2,%ecx
0000000000009914    wrmsr

delta: 1
000000000000a210    movl    $0x000000e2,%ecx
000000000000a215    wrmsr

delta: 1
000000000000ac3f    movl    $0x000000e2,%ecx
000000000000ac44    wrmsr

delta: 1
000000000000b044    movl    $0x000000e2,%ecx
000000000000b049    wrmsr

delta: 1
000000000001075c    movl    $0x000000e2,%ecx
0000000000010761    wrmsr

delta: 1
0000000000011b2f    movl    $0x000000e2,%ecx
0000000000011b34    wrmsr

delta: 1
0000000000012bef    movl    $0x000000e2,%ecx
0000000000012bf4    wrmsr

found wrmsr at 9735, patched
found wrmsr at 97e8, patched
found wrmsr at 97fe, patched
found wrmsr at 9914, patched
found wrmsr at a215, patched
found wrmsr at ac44, patched
found wrmsr at b049, patched
found wrmsr at 10761, patched
found wrmsr at 11b34, patched
found wrmsr at 12bf4, patched
wrmsr found: 10
wrmsr ignored: 0


NOTE:
  • On macOS Catalina and later, make sure your system directory is writable.

Method #2: Using Bootloader Patch
This method is recommended to patch MSR Lock as Method #1 is depreciated for the new macOS versions.

1. Mount your ESP.

For Clover
1. Open your config.plist
2. Enable KernelPm and AppleIntelCPUPM in Kernel and Kext Patches section.
3. Disable DummyPowerManagement Quirk in Quirks>Kernel section of your config.plist
4. Save your config.plist

For OpenCore
1. Open your config.plist
2. Disable DummyPowerManagement in Kernel>Emulate section of your config.plist
3. Enable AppleCpuPmCfgLock Quirk in the Kernel>Quriks section of your config.plist
4. Save your config.plist

Method #3: Using Variable Patch
This method is for more advanced users, involving patching BIOS or unlocking variables. You can find all those methods in the guide linked below.

STEP 6: Add PM Kext


The next step is to use a dummy kext for loading x86PlatformPlugin.kext.

Downloads

1. For macOS Sierra
2. For macOS High Sierra
3. For macOS Mojave
4. For macOS Catalina

1. Download x86PlatformPlugin.kext from the downloads section of this forum.
2. Mount your ESP.

For Clover:
If you're using Clover, copy both the kexts to EFI/Clover/Kext/Others

For OpenCore:
If you're using OpenCore, copy both the kexts to EFI/OC/Kexts. You'll also need to add the kext entries in the Kernel section of your config.plist.

STEP 7: Create SSDT for CPU PM


The final step is to generate an SSDT for CPU PM using the Piker-Alpha script. For more information on creating SSDT for CPU PM, refer to the guide linked below.

STEP 8: Build Kext Cache


Once all the above steps are complete, build the caches using the following command in Terminal.
Code:
sudo kextcache -i/

STEP 9: Restart your system


After performing all the above steps, restart your system for the applied changes to take effect. It is recommended to reset NVRAM twice at least.
After restarting your system, you'll have Power Management working on your X79 Motherboard.

Verifying CPU Power Management

The next step is to verify whether CPU Power Management is working or not.

Credits:
Stinga11
Cassio
Rehabman
 
Last edited:
Tnx for your guide! Can i use (Mojave code) with Catalina?
 
Tnx for your guide! Can i use (Mojave code) with Catalina?
Haven't checked it for Catalina. I'll be sparing some time this weekend and check if there's any related updated to it. If any, i'll add the patches to the thread.
 
Haven't checked it for Catalina. I'll be sparing some time this weekend and check if there's any related updated to it. If any, i'll add the patches to the thread.
Thank You!
 
  • Like
Reactions: EliteMacx86
Tnx for your guide! Can i use (Mojave code) with Catalina?

CATALINA 10.15.5

Name
: com.apple.driver.AppleIntelCPUPowerManagement
Find: D0050000 84C07446 E8
Replace: D0050000 84C0EB46 E8

;)

UPDATE: Also works on 10.15.6
 
Last edited:
  • Like
Reactions: EliteMacx86
CATALINA 10.15.5

Name
: com.apple.driver.AppleIntelCPUPowerManagement
Find: D0050000 84C07446 E8
Replace: D0050000 84C0EB46 E8

;)
Only single patch?
 
CATALINA 10.15.5

Name
: com.apple.driver.AppleIntelCPUPowerManagement
Find: D0050000 84C07446 E8
Replace: D0050000 84C0EB46 E8

;)

UPDATE: Also works on 10.15.6
Tried it on Big Sur Beta and looks like speedstep start working, but not a turboboost. See photo. My CPU should have 3,3 for all cores. 2,9 it’s basic frequency. I think in 10.15.6 all the same, and we need one more patch for turboboost.
 

Attachments

  • 1EF96416-4353-47A7-879F-C55CA65D66EF.jpeg
    1EF96416-4353-47A7-879F-C55CA65D66EF.jpeg
    2 MB · Views: 263

Trending Threads

Latest posts

Forum statistics

Threads
1,453
Messages
13,790
Members
20,613
Latest member
wayne910094