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.