Jump to content

DSDT for Asus P8P67-M PRO


  • Please log in to reply
833 replies to this topic

#1
Time2Retire

Time2Retire

    Retired

  • Retired Developers
  • 1,012 posts
  • Gender:Female
  • Location:anonymouse.eu
I recently got a new Asus P8P67 M-PRO motherboard (Sandy Bridge) and went mad by extracting & stripping the ACPI tables apart. And since it only the second time I did something like this, there's a lot of new things to learn. Let's start with some numbers of my first attempt / version:

Now Even Smaller (see post #6)

Latest version of ssdt_pr.(dsl/aml) available here

Latest version of ssdt_usb.dsl available here

Note: Also attached there is a simple Perl script called aml2struct.pl to convert AML files to structures for RevoBoot's static ACPI injection.

Decompiled factory tables:

315 KB on disk 311,992 bytes (dsdt.dsl)
4 KB on disk 1,967 bytes (ssdt.dsl)
20 KB on disk 19,002 bytes (ssdt_ist.dsl)
4 KB on disk 3,721 bytes (ssdt_cst.dsl)
=============================
This is 336,682 bytes of source code. Now look at the replacements.

The new / stripped tables:

53 KB on disk 49,449 bytes (dsdt.dsl)
8 KB on disk 6,046 bytes (ssdt_pr.dsl)
16 KB on disk 12,655 bytes (ssdt_usb.dsl)
===========================
Only 68,150 bytes. That is 268,532 bytes less (a pretty substantial reduction in my book) Now look at the AML bits.

Factory AML code:

37 KB on disk (33,709 bytes) DSDT.aml
4 KB on disk ( 228 bytes) SSDT_CST.aml
4 KB on disk ( 1,780 bytes) SSDT_IST.aml
4 KB on disk ( 470 bytes) SSDT.aml
=============================
36,187 bytes

The new / stripped AML code:

8 KB on disk (7,403 bytes) dsdt.aml
4 KB on disk ( 825 bytes) ssdt_pr.aml
4 KB on disk (1,074 bytes) ssdt_usb.aml
===========================
9,302 bytes

And that gives us: 36,187 - 9,302 = 26,885 bytes... less bytes to load and compute by ACPIPlatform.kext

Notes:

1.) This work was done by me and for people using RevoBoot, but you are free to use it... under the condition that when you use my work, and change something that other people (including me) might want to know about, that you report about your change(s) here. Thank you.

2.) I see people (almost) begging for a sleepenabler.kext but that only shows me that they don't know jack. Please stop making a fool of your self and go to an Apple store and go get the kexts of a new Sandy Bridge based MacBookPro (8,1/2/3) notably AppleLPC.kext version 1.5.1 and AppleSMBusController.kext Great. Had to get this out of my system. This is basically all I want to say about it right now.

3.) This is not a/the place to ask for help with your DSDT/SSDT table (errors/problems). Yup. This is it.

What Works?

I think that the most important things are, in random order: Audio (892), LAN, Reboot, Shutdown.

Tips:

1.) Do not inject properties from your DSDT (with help of _DSM) because that will slow down the boot process, but use EFI device-properties instead. And this is exactly where RevoBoot comes into place.

Credits:

Master Chief and 'his' (P5K PRO) DSDT monster thread. The one person who made this (and a lot of other stuff around here) possible... by teaching me what to do. Thank you dad!

Attachments:

The FactoryAML.zip is attached here so that you can see (after extracting the tables) what I did – by using diff and/or FileMerge.

Attached Files



#2
MaLd0n

MaLd0n

    ...filling veins with juice of chaos...

  • Moderators
  • 11,137 posts
  • Gender:Male
  • Location:Rio de Janeiro
<õ/
Great Job
I Like it
Thanks
Attached File  01c.png   1.09KB   160 downloads

#3
JBraddock

JBraddock

    Ph.D (Can) in Human Rights

  • Members
  • PipPipPipPipPipPipPip
  • 549 posts
  • Location:UK
Put aside the fact that you are a genius, how do you know if a particular device or method is unnecessary so it is safe to remove it? If I use ioreg explorer I can see which devices get loaded. Does it necessarily mean that all the things that ioreg dump shows are the devices that all I need for OSX?

For example, I have Device (SAT0) and Device(SAT1) under Device (PCI0) but I don't see Device(SAT1) in ioreg explorer. This also applies to some other devices such as Device (EJECT) and Device (TBTN). Does this mean that I can remove all these devices?

Devices seem to be the relatively easy ones, but what about all those Method and Name? For examples, there are lots of things under my SAT0 device and I am not really sure if they do something for OSX. Is there an easy way to find which ones are unnecessary? Trial and error?

#4
Time2Retire

Time2Retire

    Retired

  • Retired Developers
  • 1,012 posts
  • Gender:Female
  • Location:anonymouse.eu

Put aside the fact that you are a genius, how do you know if a particular device or method is unnecessary so it is safe to remove it? If I use ioreg explorer I can see which devices get loaded. Does it necessarily mean that all the things that ioreg dump shows are the devices that all I need for OSX?

Thanks, but I'm not a genius. I just happen to have a great bunch of people around me. This time it was my father who told me what to do, but this week alone I got help from dgsga with both audio and my new Radion 6850. Wouldn't have sound without his help. Anyway. This work took me almost a day to complete and I still don't know much about ACPI tables, but I can tell you that seeing devices in IORegistryExplorer doesn't mean you need them. In fact most of them were added for Windows so they can go.

For example, I have Device (SAT0) and Device(SAT1) under Device (PCI0) but I don't see Device(SAT1) in ioreg explorer. This also applies to some other devices such as Device (EJECT) and Device (TBTN). Does this mean that I can remove all these devices?

Intel puts two SATA devices in chipsets but OSX supports the first one only. This may change any time soon, but for now... the second one (0x001F0006) can go. Names don't matter much. What I do is to use is: grep -re devicename . in /System/Library/Extensions If you see it being used in one of the kexts, then don't rename it. Otherwise I am using the name used in the ioreg dump.

Devices seem to be the relatively easy ones, but what about all those Method and Name? For examples, there are lots of things under my SAT0 device and I am not really sure if they do something for OSX. Is there an easy way to find which ones are unnecessary? Trial and error?

For SATA everything but the address can go. The rest can be compared with a real Mac, and yes it is pretty much trial and error when you don't know what you are doing, and that was why I put that credit line in there... since I still don't know jack about ACPI tables :D

#5
JBraddock

JBraddock

    Ph.D (Can) in Human Rights

  • Members
  • PipPipPipPipPipPipPip
  • 549 posts
  • Location:UK

Thanks, but I'm not a genius. I just happen to have a great bunch of people around me. This time it was my father who told me what to do, but this week alone I got help from dgsga with both audio and my new Radion 6850. Wouldn't have sound without his help. Anyway. This work took me almost a day to complete and I still don't know much about ACPI tables, but I can tell you that seeing devices in IORegistryExplorer doesn't mean you need them. In fact most of them were added for Windows so they can go.

Intel puts two SATA devices in chipsets but OSX supports the first one only. This may change any time soon, but for now... the second one (0x001F0006) can go. Names don't matter much. What I do is to use is: grep -re devicename . in /System/Library/Extensions If you see it being used in one of the kexts, then don't rename it. Otherwise I am using the name used in the ioreg dump.

For SATA everything but the address can go. The rest can be compared with a real Mac, and yes it is pretty much trial and error when you don't know what you are doing, and that was why I put that credit line in there... since I still don't know jack about ACPI tables :)

Thank you Samantha, I was able to save 15KB by removing unnecessary devices. Just in case people may wonder, I removed second Sata, G-Sensor, a few hard coded buttons etc. I'll try to advance it later.

I think from now on, what I really need is a lightweight, custom bootloader which will have the following features:

- MacBookPro5,5 is the default and only mac model.
- All graphics injectors are removed as I am using a DSDT fix for 9600M GT.
- DSDT and two SSDT tables are incorporated into the bootloader.
- A custom theme is embedded into the bootloader.
- Settings in my boot.plist are set to yes/no by default depending on the settings.
- Restart & Shutdown fixes. :(

Keep up the good work.
Thanks,

#6
Time2Retire

Time2Retire

    Retired

  • Retired Developers
  • 1,012 posts
  • Gender:Female
  • Location:anonymouse.eu
Thank you gentlemen. Very kind of you.

And I got a few more tips so here is V1.1 (see attachments). Much smaller. Much cleaner. Much more fun.

You still need ssdt_pr.dsl and ssdt_usb.dsl from post #1. Simply drag the uncompressed file into iASL me (a neat little but very handy app) to get a 3070 byte small copy of dsdt.aml.

There is room for at least another 10% off but let's go use this for a while first.

Notes: People using Chameleon should renamed ssdt_pr.aml and ssdt_usb.aml to ssdt-n.aml so that it can load the files, because you do need these files!

Attached Files



#7
mrmojorisin17

mrmojorisin17

    InsanelyMacaholic

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 3,942 posts
  • Gender:Male
Hi :)
I'm planning to change my actual PC's configuration (see my signature) and I'm thinking to buy an Asus P8P67-M PRO like yours so I'll follow you.
I see that you started to mod ACPI's tables.
I'm now using Chameleon and I'll use it also with my new configuration because I don't have knowledge to use Revolution.
To use SSDT tables that you create I only to rename it to SSDT.aml, SSDT-1.aml, SSDT-2.aml, (...), right?
I also see that your CPU have 8 threads, while mine (i5-2500) have only 4.
So I've to modify ssdt_pr.aml, right?
Thanks in advance.

Cheers ;)

Simone

#8
Time2Retire

Time2Retire

    Retired

  • Retired Developers
  • 1,012 posts
  • Gender:Female
  • Location:anonymouse.eu

Hi ;)
I'm planning to change my actual PC's configuration (see my signature) and I'm thinking to buy an Asus P8P67-M PRO like yours so I'll follow you.

Cool. And you're not the first as this is a serious good board for little money.

I see that you started to mod ACPI's tables. I'm now using Chameleon and I'll use it also with my new configuration because I don't have knowledge to use Revolution.

Good news. We will soon have a much better (read: easier) solution for this board. Sort of plug-and-play.

To use SSDT tables that you create I only to rename it to SSDT.aml, SSDT-1.aml, SSDT-2.aml, (...), right?

That's the easiest option. A little more complex one is to add the required lines back into the DSDT.dsl

I also see that your CPU have 8 threads, while mine (i5-2500) have only 4. So I've to modify ssdt_pr.aml, right? Thanks in advance.

You basically remove everything related to CPU4-CPU7 in both dsdt.dsl and ssdt_pr.dsl and of course fix the CPU frequencies in the PSS table.

Good luck with your hack. Let me know when I can be of assistance :P

#9
mrmojorisin17

mrmojorisin17

    InsanelyMacaholic

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 3,942 posts
  • Gender:Male

Cool. And you're not the first as this is a serious good board for little money.

:P

Good news. We will soon have a much better (read: easier) solution for this board. Sort of plug-and-play.

I know that you'll be a good teacher.
Some anticipation?

That's the easiest option. A little more complex one is to add the required lines back into the DSDT.dsl

I prefer to use SSDT tables instead of a big DSDT.

You basically remove everything related to CPU4-CPU7 in both dsdt.dsl and ssdt_pr.dsl and of course fix the CPU frequencies in the PSS table.

Ok, thanks for the explanation.

Good luck with your hack. Let me know when I can be of assistance ;)

Thanks.

#10
undo_undo

undo_undo

    InsanelyMac Protégé

  • Members
  • Pip
  • 40 posts
Hi DutchHockeyPro,

I am lookiing to get P8P67-M board as well for my next hackintosh build. It looks like the lastest BIOS version for this montherboard is 0805, which is updated on April 1 according to Asus web. Are your .aml files compatible to version 0805 or do they require any changes.

Does your sound work flawlessly?
Does your video card HD 6850 work out of box? Did you need to install mbp ATI 68** ktexts from 10.6.6 update?

Thank you.

#11
Time2Retire

Time2Retire

    Retired

  • Retired Developers
  • 1,012 posts
  • Gender:Female
  • Location:anonymouse.eu

Hi DutchHockeyPro,

I am lookiing to get P8P67-M board as well for my next hackintosh build.

I had to check this on the Asus.com website, but this is not the same board. Very close, but not the same still is has a different audio chipset (codec) 887 versus 892 for the board I have. There's also a PCI slot which my board doesn't have.

It looks like the lastest BIOS version for this montherboard is 0805, which is updated on April 1 according to Asus web. Are your .aml files compatible to version 0805 or do they require any changes.

A new BIOS doesn't necessarily mean that the ACPI changed, but since the board you are going for has a PCI slot, which requires an IRQ setup for it, I would say no. Not 100% the same, but most likely just an easy change.

Does your sound work flawlessly?

Oh absolutely. Can't life without my music.

Does your video card HD 6850 work out of box? Did you need to install mbp ATI 68** ktexts from 10.6.6 update?

No. Didn't work out of the box. Had to copy the ATI kexts from the MBP 8 series upgrade to 10.6.7 Works great but when I boot in safe mode, which is when boot loaders skip the GPU drivers, I only have a white background (plus mouse pointer). There are two, possibly three, solutions I can think of. The first one being a simple change in the Info.plist where you replace the OSBundleRequired property "Safe Boot" with "Root". The second one would involve a change in the boot loader itself. A third unknown solution might be something I'm not aware of yet.

I hope this helps.

p.s. I have attached the Info.plist (courtesy of dgsga) we are using in FakeSMC.kext This plist also takes care of audio for our P8P67-M PRO board and inject the Intel Series6 chipset (but you also need AppleAHCIPort.kext version 2.1.6) so that we don't need any other kext but NullCPUPowerManagement.kext

Please note that we do not inject device-properties from any _DSM methods in our DSDT, because that slows down the boot process, but our boot loader (RevoBoot) does this job for us (we just supply it what we want to inject).

Attached Files



#12
Giuly

Giuly

    InsanelyMac Protégé

  • Members
  • Pip
  • 19 posts

1.) This work was done by me and for people using RevoBoot, but you are free to use it... under the condition that when you use my work, and change something that other people (including me) might want to know about, that you report about your change(s) here. Thank you.

If that is what you want, then Posted Image is for you.

#13
Time2Retire

Time2Retire

    Retired

  • Retired Developers
  • 1,012 posts
  • Gender:Female
  • Location:anonymouse.eu

If that is what you want, then Posted Image is for you.

In a perfect world yes. Nothing is perfect however.

On a side note. I found some glitches in my work (sorry still learning) and thus I need to update the files once more. Hope to have it done in no time.

#14
maleorderbride

maleorderbride

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 273 posts
  • Gender:Male
Can you upload the 2011 MBP kexts that you need for this method? Namely AppleLPC, SMBusController, and AppleAHCIPort?

I wanted to get native speedstep working for my ASUS P8P67.

Thanks!

#15
Time2Retire

Time2Retire

    Retired

  • Retired Developers
  • 1,012 posts
  • Gender:Female
  • Location:anonymouse.eu

Can you upload the 2011 MBP kexts that you need for this method? Namely AppleLPC, SMBusController, and AppleAHCIPort?

You need to visit apple.com and get the DMG from there. No upload/attachments of Apple's copyright material from me.

I wanted to get native speedstep working for my ASUS P8P67.

So do we. Doesn't work just yet. We're still trying to figure out what we need to change.

On a side note: I am planning to attach the new and improved ACPI table (files) files later today.

#16
mrmojorisin17

mrmojorisin17

    InsanelyMacaholic

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 3,942 posts
  • Gender:Male
Hi DHP :)
I post here a suggestion.
With mozodojo's Chameleon we can enable native power management by adding two options on c.a.b.p.
Using a proper mac model identifier (MacBook Pro early 2011?) maybe we can get speedstep working.
I know that you are using Revolution bootloader so I'll test this method when I'll have my hack functioning :)

Cheers

#17
dgsga

dgsga

    I've seen things you people wouldn't believe...

  • Members
  • PipPipPip
  • 149 posts
  • Gender:Male
Here are the latest ACPI tables, uploaded by request from DHP. All credit goes to DHP, I am only the messenger!

Attached Files



#18
mrmojorisin17

mrmojorisin17

    InsanelyMacaholic

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 3,942 posts
  • Gender:Male
Thanks :ninja:

#19
maleorderbride

maleorderbride

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 273 posts
  • Gender:Male

Hi DHP :ninja:
I post here a suggestion.
With mozodojo's Chameleon we can enable native power management by adding two options on c.a.b.p.
Using a proper mac model identifier (MacBook Pro early 2011?) maybe we can get speedstep working.
I know that you are using Revolution bootloader so I'll test this method when I'll have my hack functioning ;)

Cheers



Chameleon RC5 does not support Sandy Bridge yet. The only widely available bootloader that does is AnVal. ^Andy^ created a merged branch of AnVal and Kabyl's ATI RC5, but enabling C/P states is still not automatic. So, we are waiting for AnVal or Chameleon/Mozodojo to add automatic P/C state generation for the latest generation still.

I am attempting to manually add my own P/C states via DSDT or SSDT, but I still can't actually test native power management until I get the three kexts I requested of DHP.

I assume that is the same approach that DHP is doing (or having revo do). It would be nice if she would post the kexts so I could work on it as well. My torrent is taking another 2 weeks! >_<

I don't believe there is any part of the Apple EULA that forbids people from uploading a kext. While it certainly does prohibit what we are all deriving from this website. From here, her unwillingness to share 8MBs of files seems to be a moral contradiction at best. Maybe I am missing something.

#20
mrmojorisin17

mrmojorisin17

    InsanelyMacaholic

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 3,942 posts
  • Gender:Male
Thanks for explanations maleorderbride :ninja:
What kexts are you "waiting" for?





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy