Contribute
Register

Guide: X79 OS X Controlled SpeedStep (CPU Power Management)

Status
Not open for further replies.
Guide: Asus X79 OS X Controlled SpeedStep

i didn't reinstall any browser or flash :) as i mentioned above i used different smbios and it helped a bit... now i just need to know how to change this value IA32_ENERGY_PERF_BIAS......(0x1B0) : 0x0 to 0x5 or 10 or 15 do you have any idea how to do that :)
 
Guide: Asus X79 OS X Controlled SpeedStep

Hey David,

I'll give you as much background as I can remember. A user named omni (he has been absent from the community for a while) decompiled and patched the AppleCPUPowerManagement kext to allow SandyBridge-E functionality which is needed for both legacy CPUPM and XCPM. I'm pretty sure that SandyBridge-E shows more accurate residencies because of omni's patches. However, IvyB-E draws less power and seems to function better even though it doesn't show all the residencies in PikerAlpha's info kext.

I was able to achieve Legacy CPUPM by using MacPro5,1 sys def, removing PlugIn Type 1 from the PikerAlpha SSDT and not dropping the oem SSDT. However, legacy CPUPM draws more power at idle than XCPM. For XCPM, you need MacPro6,1 or another sys def that uses XCPM, plugin type one in the CPU SSDT, and I think you can either drop or keep the oem CPU SSDT.

With XCPM and legacy CPUPM, only 4 states were reached. Power draw was correct at idle but HWMonitor showed the multiplier mostly hovering around base frequency and intermittently falling to 12 (1.2GHz) for very short periods. We replaced the stepcontextdict info in the /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources/Mac-F60DEB81FF30ACF6.plist with the stepcontextdict info from MacMini6,2 which gave us 6 states and showed the CPU idling at 12 steadily until the OS or software used more resources and then the CPU would clock up correctly according to the draw. For legacy CPUPM I used macmini 5 stepcontextdict info in the /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/MacPro5,1.plist. You can exchange any stepcontextdict info but it's best to stick with info from another XCPM ID if you are using XCPM or legacy if using legacy.

FYI, SandyBridge-E has more in common with IvyBridge-E than SandyBridge.
 
Guide: Asus X79 OS X Controlled SpeedStep

Hi,

Thanks for you explanation shilohh :) although I'm not so sure what kind of PM i have or using legacy or XCPM but i copied the stepcontextdict from MacMini6,2 and add it to Mac Pro 6.1 then repaired permissions etc and did caches_rebuild commando then rebooted and it didn't help the cpu didn't step down to 1.2ghz and instead kept between 2.8-3.2ghz at ideal... like if i never changed the stepcontextdict to begin with...

maybe i just missed something about how to install/activate the .plist correctly but it simply didn't work for me or there is something else in mac pro 6.1 plist that is making my cpu not to clock down to 1.2ghz at ideal like it suppose to since the ssdt i made with pikers latest beta or the other releases before always set the correct ideal speed which is 1.2ghz.

now if u looked at macbook pro 8.3 plist there is not much to add or remove there beside that FrequencyVectors which is in hex unfortunately so i can't see what is done there to make the cpu goes down at 1.2ghz in ideal etc

can i maybe copy that and add it to mac pro 6.1 plist or is that just not going to work since there is a lot more in mac pro plist then meets the eye...
 
Guide: Asus X79 OS X Controlled SpeedStep

If you followed this guide, look inside X79X86PlatformPlugin.kext We use pike's dummy kext method to override the plist.
 
"1) MSR 0xE2 Unlocked BIOS"

Something I failed to understand is, If my MOBO have a locked bios (Gigabyte in my case) does this mean its a huge no for me? Its impossible a this point to get speedtep?

Also, in a old post that I did, I found that I MAY have speedstep, even with nullcpu installed
http://www.tonymacx86.com/general-help/127686-x79-speedstep.html
 
"1) MSR 0xE2 Unlocked BIOS"

Something I failed to understand is, If my MOBO have a locked bios (Gigabyte in my case) does this mean its a huge no for me? Its impossible a this point to get speedtep?

Also, in a old post that I did, I found that I MAY have speedstep, even with nullcpu installed
http://www.tonymacx86.com/general-help/127686-x79-speedstep.html
My guess is that you have the BIOS doing a basic form of speedstep. Usually just min multiplier (C1E/x12) and max turbo. I used to use this on my asus board before we got XCPM working. I believe it is possible to still achieve OS X controlled XCPM on locked gigabyte boards but it requires additional bin patches to the AICPUPM kext. I was hoping to find some users with gigabyte x79 and clover to do some testing. See the top of the original post.

to test you would want to set up clover on a USB stick. Or do a OS x install on a second drive for testing. Change the USB stick or second drive to be first in bios boot priority. Do everything in the guide to the files in the USB stick or 2nd drive's efi partition except leave nullcpu in the kexts folder until your ready to test the possible solutions. If you can't boot, you would just do a boot override from the bios to your original install drive (or the boot loader therein) where no changes have been made. Then you could mount the efi partition of the USB or 2nd drive and make other changes to test.
 
Alright, Im always up for any kind of test and experiments.

By the way, Im right now doing a clean OSX installation of El Capitan, and trying to make steep-step running using exclusively the steps in your guide.

And I did, I just forgot to set my SMBIOS to MacPro 6,1.

Once I did that, it seems I’m getting steep step, but not sure if my results are the ones that I should be expecting.

http://cl.ly/4612123l2U18/Screen Shot 2016-02-25 at 8.36.45 PM.png

And the full report:
http://cl.ly/3l2K3f0h3U1I/fullreport.txt


This is my setup:

http://cl.ly/2w0y2l3L1i1s/Screen Shot 2016-02-25 at 8.44.59 PM.png

My config.plist:
http://cl.ly/2k0u2u1F2x0G/download/config.plist

And the kexts I'm using:
http://cl.ly/1p2S283m1D0L/Screen Shot 2016-02-25 at 8.45.48 PM.png
 
Great so far. However the X79X86PlatformPlugin.kext needs to be installed in /S/L/E/ by kext beast. Then remove it from EFI kexts. Also just making sure that you did not have nullcpupm installed in /S/L/E/ or anywhere else right?

Can you please save and post a IOReg file from IORegistry explorer and also zip and post your EFI/CLOVER/acpi/patched folder too.

Here are 2 modified config.plists to test.

After replacing the EFI/CLOVER/config.plist with a modified one, reboot and run RunAICPUPMI.app and see if you get more states. Remember to stress the cpu to as many different loads as you can to reach as many states as possible
 

Attachments

  • Test_1_2.zip
    5.4 KB · Views: 113
Great so far. However the X79X86PlatformPlugin.kext needs to be installed in /S/L/E/ by kext beast. Then remove it from EFI kexts. Also just making sure that you did not have nullcpupm installed in /S/L/E/ or anywhere else right?

Can you please save and post a IOReg file from IORegistry explorer and also zip and post your EFI/CLOVER/acpi/patched folder too.

Here are 2 modified config.plists to test.

After replacing the EFI/CLOVER/config.plist with a modified one, reboot and run RunAICPUPMI.app and see if you get more states. Remember to stress the cpu to as many different loads as you can to reach as many states as possible

"However the X79X86PlatformPlugin.kext needs to be installed in /S/L/E/ by kext beast. Then remove it from EFI kexts."

Done, but I was wondering, is this necesary even with clover? I'm runing clover from a external USB drive for keep the internal system files untouched, for a cleaner system installation, but i have nothing against it if it the way it have to be done.

"Also just making sure that you did not have nullcpupm"

Thats right, no nullcpu anywhere.

"Can you please save and post a IOReg file from IORegistry explorer and also zip and post your EFI/CLOVER/acpi/patched folder too."

ACPI Patched folder:
http://cl.ly/3y0P3d3P1s0i/download/patched.zip

IOREG:
http://cl.ly/3u2E2n0W000X/download/David’s Mac Pro.ioreg

Im running tests using the files in your .zip, im posting results as soon I complete them.
 
"However the X79X86PlatformPlugin.kext needs to be installed in /S/L/E/ by kext beast. Then remove it from EFI kexts."

Done, but I was wondering, is this necesary even with clover? I'm runing clover from a external USB drive for keep the internal system files untouched, for a cleaner system installation, but i have nothing against it if it the way it have to be done.
Yes it overrides a plist in the OEM X86PlatformPlugin kext and that can't be done from clover. It's not necessary until we have XCPM fully working though so you can skip it for now. You will want to install it after we get XCPM going.
 
Status
Not open for further replies.
Back
Top