Jump to content

DSDT for Asus P8P67


flAked
 Share

45 posts in this topic

Recommended Posts

This work is based on DSDT for Asus P8P67-M PRO by DHP.

 

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)

Shortly!

 

Method II: Lightweight ACPI tables (universal, but not updated anymore)

dsdt_rev2.dsl.zipssdt_pr_minimal_stripped_rev6.dsl.zipssdt_usb_rev2.dsl.zip

Factory tables (for reference)

P8P67_factory_1608.zip

Tools

SpeedStepper

MSRDumper

aml2struct (by MasterChief)

 

 

0. Prerequisites

 

Method I

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.

 

Method II

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.

 

Open Terminal.app:

sudo bash
cd /System/Library/Extensions/AppleIntelCPUPowerManagement.kext/Contents/MacOS
cp AppleIntelCPUPowerManagement AppleIntelCPUPowerManagement_bkp
/path/to/speedstepper AppleIntelCPUPowerManagement

The 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

 

4. SSDT_PR

 

5. Static ACPI table injection

 

6. Stepper programs

 

7. SMBIOS fix

 

8. Overclocking

 

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.

  • Like 2
Link to comment
Share on other sites

can be used for another p8p67 mobos?

p8p67 pro or deluxe?

No, this is custom made for the P8P67 only. There will be a brief section about how to modify it for your board, but it requires some deep knowledge of DSDT editing and how ACPI tables work.

Link to comment
Share on other sites

flAked

 

Looking forward to learn from this thread. I got Speedstep working based on your speedstepper tool but without the use of a DSDT, which is probably the reason my machine is not able to wake up from sleep.

 

Does sleep/wakeup work fully on your setup?

 

Thanks for sharing your knowledge on this topic

Link to comment
Share on other sites

Must have done something wrong

SpeedStepper v1.0 - (c) flAked 2011
for AICPUPM v142.6.0
Searching for wrmsr #0: 34a46
-> found bytes.
-> patched.
Searching for wrmsr #1: 34d3e
-> found bytes.
-> patched.
Searching for wrmsr #2: 34d5f
-> found bytes.
-> patched.
Searching for wrmsr #3: 34f03
-> found bytes.
-> patched.
Searching for wrmsr #4: 34fa2
-> found bytes.
-> patched.
Searching for wrmsr #5: 35f27
-> found bytes.
-> patched.
Searching for wrmsr #6: 3617c
-> found bytes.
-> patched.
Searching for wrmsr #7: 361ce
-> found bytes.
-> patched.
Searching for wrmsr #8: 3d61a
-> ERR: bytes not found!
Searching for wrmsr #9: 3d677
-> ERR: bytes not found!
Searching for wrmsr #0: 948e
-> ERR: bytes not found!
Searching for wrmsr #1: 98c1
-> ERR: bytes not found!
Searching for wrmsr #2: 997e
-> ERR: bytes not found!
Searching for wrmsr #3: 99eb
-> ERR: bytes not found!
Searching for wrmsr #4: 9aae
-> ERR: bytes not found!
Searching for wrmsr #5: a958
-> ERR: bytes not found!
Searching for wrmsr #6: abff
-> ERR: bytes not found!
Searching for wrmsr #7: ac96
-> ERR: bytes not found!
Searching for wrmsr #8: 11d0e
-> ERR: bytes not found!
Searching for wrmsr #9: 11dc2
-> ERR: bytes not found!
Sorry, didn't find all wrmsr, your kernel might crash.

 

And one more thing, using dsdt_rev2

Unknown AHCI Standard Controller:
 Vendor:	Unknown
 Product:	AHCI Standard Controller
 Link Speed:	6 Gigabit
 Negotiated Link Speed:	6 Gigabit
 Description:	AHCI Version 1.30 Supported

same as not using a dsdt file.

With a dsdt created in Windows by DSDT Auto-Patcher

Intel 6 Series Chipset:
 Vendor:	Intel
 Product:	6 Series Chipset
 Link Speed:	6 Gigabit
 Negotiated Link Speed:	6 Gigabit
 Description:	AHCI Version 1.30 Supported

;)

Link to comment
Share on other sites

What version of AICPUPM.kext are you trying to patch? 142.6.0?

To get the cosmetic Intel Chipset 6 showed in System Profiler you have to add this on your FakeSMC's Info.plist or use an EFI String that inject the same code:

<key>Intel6SeriesAHCI</key>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.apple.driver.AppleAHCIPort</string>
            <key>Chipset Name</key>
            <string>6 Series Chipset</string>
            <key>IOClass</key>
            <string>AppleAHCI</string>
            <key>IONameMatch</key>
            <array>
[color="#0000FF"]                 <string>pci8086,1c02</string>[/color]
            </array>
            <key>IOProbeScore</key>
            <integer>2000</integer>
            <key>IOProviderClass</key>
            <string>IOPCIDevice</string>
            <key>Vendor Name</key>
            <string>Intel</string>
        </dict>

Link to comment
Share on other sites

<key>CFBundleShortVersionString</key>
<string>142.4.1</string>
<key>CFBundleVersion</key>
<string>142.4.1</string>
<key>ProjectName</key>
<string>AppleIntelCPUPowerManagement</string>
<key>SourceVersion</key>
<string>1420401</string>

as for the Intel Chipset 6 I'm not interested in cosmetics but in functionality. By now I'm not sure that the sata connection is working properly. I'll test in Lion as I plan to upgrade soon.

Thanks for the tips ! : ;)

Link to comment
Share on other sites

Actually I'm worried about this messages

6/19/11 12:23:23 AM	kernel	SATA WARNING: Enable auto-activate failed.
6/19/11 1:25:58 AM	kernel	SATA WARNING: Enable Drive PHY PM failed.

The second one being more often and displayed at shutdown.

Link to comment
Share on other sites

I have tried Revoboot, but still no luck :(. I think SSDT_PR has been added properly, but only got 4 PState. If I use Chameleon and no dsdt or any other table, I can get 7 PState. both above situation can not get MAX turbo ratio. My Processor is 2600k, if I put Turbo Ratio to AUTO in bios, the Max PState is 37, I think it should be 38, right??

Jun 23 15:20:32 GeekmatoMac-Pro kernel[0]: MSRDumper PStatesReached: 16 26 30 34 35 36 37

Could anybody share a setting.h file for me?

 

Thanks very much!

Link to comment
Share on other sites

Thanx alot for your hard work!

 

iam very confused, because i am not able 2 extract the SSDT_CPUPm for my i5-2300 CPU

 

no chance in windows, in linux and also not on my hackintosh

 

i get only the other 3 ssdt files;

SSDT_AMI_CST.aml

SSDT_AMI_IST.aml

SSDT_AMICPU_PROC.aml

 

please can u help me?

 

thanx again

 

nice greetings from vienna!

 

Asus P8P67 (B3) - BIOS 1608 / Intel i5-2300 / 8GB Corsair / Asus GTS240 512 / SL 10.6.8 / Lion DP4

send_me.zip

Link to comment
Share on other sites

I am told that the gparted live cd includes acpidump and acpixtract which should give you the complete ACPI tables.

 

RevoBoot includes a automatic SSDT_PR generation now, so that should be easier.

 

I will have some time later this week to write up the new method. Stay tuned.

Link to comment
Share on other sites

I've got a new computer (P8P67 with 16GB ram, 2600k and HD 6870) and would like to hackint0sh it soon, originally I was just planning on going the normal Chameleon route or something like that however this seems very interesting. Are you planning on finishing your guide soon? I'd very much like to have a fully working system with everything working including overclocking and sleep. If I'd install OSX now with Chameleon bootload could I then at a later point upgrade to use your method when your guide is done or will I have to do a full whipe?

Link to comment
Share on other sites

Go ahead and use chameleon but put it and the Extra folder (including extensions, com.apple.boot.plist, and the extensions.mkext) on a USB drive and boot from there. That will allow the hard drive instal to be 100% vanilla.

 

I am so looking forward to the guide though, revoboot/revobuilder looks sweet. :)

 

I've got a new computer (P8P67 with 16GB ram, 2600k and HD 6870) and would like to hackint0sh it soon, originally I was just planning on going the normal Chameleon route or something like that however this seems very interesting. Are you planning on finishing your guide soon? I'd very much like to have a fully working system with everything working including overclocking and sleep. If I'd install OSX now with Chameleon bootload could I then at a later point upgrade to use your method when your guide is done or will I have to do a full whipe?
Link to comment
Share on other sites

Go ahead and use chameleon but put it and the Extra folder (including extensions, com.apple.boot.plist, and the extensions.mkext) on a USB drive and boot from there. That will allow the hard drive instal to be 100% vanilla.

 

I am so looking forward to the guide though, revoboot/revobuilder looks sweet. B)

How much space will this require? I'd partition my SSD as I like to have everything on there.

Link to comment
Share on other sites

  • 2 weeks later...
 Share

×
×
  • Create New...