Those who followed along are aware that discussions were always very technical and specific, without a clear followthrough. This thread aims to condense our findings and be a supplement to the thread by DHP.
First of all, here are the ACPI tables for the P8P67 (B3 stepping):
Method I: Full support via single SSDT (only with RevoBoot)
Method II: Lightweight ACPI tables (universal, but not updated anymore)
dsdt_rev2.dsl.zip 5.15KB 690 downloads ssdt_pr_minimal_stripped_rev6.dsl.zip 1.64KB 394 downloads ssdt_usb_rev2.dsl.zip 1.08KB 306 downloads
Factory tables (for reference)
P8P67_factory_1608.zip 35.04KB 387 downloads
aml2struct (by MasterChief)
Up until now the main focus was geared toward a heavily optimized and streamlined DSDT / SSDT.
Many questions emerged if those edits are usable on other boards as well and if there be an auto-patcher for all the fixes. Well, there is a reason why this guide / knowledge base was holding back and that is because of recent developments in RevoBoot. It is now possible to get the same results with automatic injection and a very small SSDT to get device names & sleep correctly set up. That is why the downloads are split in two methods, the second and old method won't be updated in the future and this guide will mainly focus on method I from now on.
There is a clear distinction between enabling devices in your DSDT, the actual IOKit drivers that match those devices and your UEFI settings. You could optimize this DSDT by removing the devices you are not using, but you would also limit your options at a later time. This DSDT was developed with all onboard devices turned on. You are however free to disable any device in UEFI and the appropriate IOKit drivers won't get loaded. Support for PS2 and COM ports are stripped out.
This guide assumes that you already have a running system, using one of the several installation guides. Testing and refining this setup was done using RevoBoot.
1. UEFI settings
This is pretty straight forward, for the basic setup set SATA to AHCI, disable the serial port and choose the onboard devices you want to use. In the CPU configuration menu we want to enable all C-State reports, as well as SpeedStep and Turbo Mode. Disable Internal PPL overvoltage to resolve sleep/wake issues.
Leave CPU Ratio at Auto for the time being, overclocking will be covered separately.
2. Patching CFG Lock
C-State configuration is set via a Model Specific Register (MSR 0xE2), unfortunately for Asus P67 users this MSR will be locked after UEFI finishes and can't be changed afterwards. Apple hardware or more precise EFI is not engaging this CFG Lock. This results in a kernel panic when loading the system without NullCPUPowerManagement.kext (NullCPU) because AppleIntelCPUPowerManagement.kext (AICPUPM) is writing to MSR 0xE2 which is read-only at this point, triggering a General Protection Fault (GPF).
We have two options to resolve this issue:
a) patch AICPUPM's write operations to 0xE2
Download SpeedStepper for SnowLeopard, currently only version 142.6.0 is supported.
sudo bash cd /System/Library/Extensions/AppleIntelCPUPowerManagement.kext/Contents/MacOS cp AppleIntelCPUPowerManagement AppleIntelCPUPowerManagement_bkp /path/to/speedstepper AppleIntelCPUPowerManagementThe patcher should confirm that every offset was found and patched. Then remove NullCPU and rebuild kextcache. You should now be able to boot the system without NullCPU.
This is considered a temporary fix, because SpeedStepper needs to be updated for every new version of AICPUPM. A much more solid solution lies in b).
b) patch the CFG Lock in UEFI itself
By removing the CFG Lock at the time of UEFI configuration we can solve the issue once and for all. Until the next UEFI update that is. Asus is currently working on several UEFI updates to iron out critical bugs, most likely we will see a couple of updates in the near future. Modding the specific UEFI module is not for the faint of heart and a lot of checking and double-checking needs to be done before flashing a custom made UEFI mod.
Until we have a stable release considered lasting several month, I won't release a modded UEFI. The effort is not worth while at the moment, if the next UEFI is around the corner.
Once the patching is automated it might change. But for now, patching AICPUPM is much safer and less nerve-recking.
3. Configuring RevoBoot
5. Static ACPI table injection
6. Stepper programs
7. SMBIOS fix
A. Modifying the DSDT for other board variants
very much wip, more to come later... this is far from finished, I just wanted to post my current versions up front, because the original thread is a bit convoluted now and it's hard to find the files. If you have any questions about the general process, wait until I finished the main sections, thanks.