Contribute
Register

Asus Rampage IV Extreme X79 - Guide: Extract & Edit your own DSDT

Status
Not open for further replies.

shilohh

Moderator
Joined
Jan 1, 2012
Messages
1,752
Motherboard
Asus Prime Z490-A
CPU
i9-10850K
Graphics
RX 5700 XT
Mac
  1. MacBook Pro
  2. Mac Pro
Mobile Phone
  1. Android
Asus Rampage IV Extreme - DSDT Guide: Extract & Edit your own DSDT

See my New MacIASL guide that supersedes this one.

Using a DSDT that was extracted on a different build with different devices installed, may not work on your system even if you have an identical motherboard and BIOS.


My Current BIOS is 4206. 4310 Killed my CPU multiplier over clock. Beware of anything newer as well. 4403 didn't work w my OC either.

UPDATE 9/26/2013:
Some of the edits in this guide are not needed in BIOS 4206. See:
Shilohhs_R4E_DSDT_Patches_3.0.rtf


Also, onboard audio now works in 10.8.5 with toleda's new patched AppleHDA and HDAEnabler from Multibeast 5.5.2 but you must use kernel flag npci=0x2000 instead of npci=0x3000. You may now use the ALC898 "Without DSDT" option from Multibeast 5.5.2+ instead of DSDT injection of HDEF. DSDT injection from this guide still works and is my preferred method. EDIT: Some people are having issues with the patched 10.8.5 AppleHDA.kext from MultiBeast 5.5.2. The "Interim 898 Lion AppleHDA kext" (Interim IvyBridge) still works in 10.8.5 but you must use npci=0x2000 instead of npci=0x3000 and add HDEF to your DSDT as shown by this guide.


I will leave the guide mostly in it's original state for those who prefer earlier BIOS. The updated lists of patches should be self explanatory but feel free to post your questions.
BIOS 4206 use
Shilohhs_R4E_DSDT_Patches_3.0.rtf
BIOS 3602 and earlier use Shilohhs_R4E_DSDT_Patches_2.6.rtf

The DSDT edits in this guide are specifically for the Asus Rampage IV Extreme - Socket 2011 - X79 Motherboard, but some may work on similar systems.

This guide will walk you through extracting and editing a DSDT from your specific RIVE build.

Before We Start


A DSDT is ACPI data from your system's BIOS. It can change depending on you BIOS version, BIOS settings and PCI hardware installed so:

1) Make sure you are updated to the BIOS you want to extract the DSDT from and set up your BIOS completely and correctly for your system.

2) Make sure you have all your PCI devices functioning correctly and installed in the locations you want them.

3) Remove DSDT.aml from /Extra, if present, and re-boot.
Make sure that your system is booted from the bootloader on your actual boot drive (without using the USB installer to boot).

Getting Started

Download and open "DSDTSE V2 Beta" and my list of DSDT patches.

On the main pane, click "Extract DSDT".

49117-screen-shot-2013-03-11-4-05-20-am.png


Your DSDT will be extracted from your active BIOS in a "Decompiled" window.

49116-screen-shot-2013-03-11-4-06-05-am.jpg



If for some reason DSDTSE will not extract it, open terminal and paste:

Code:
perl -e 'open(CMD, "ioreg -lw0 \| grep DSDT|") or die; while(<CMD>) { chomp; if($_ =~ /\"DSDT\.?\d?\"=<([^>]*)>/) { $buff = $1; open(PIP, "|xxd -r -p > ~/Desktop/dsdt.aml") or die; print PIP "$1"; } }'

Then hit enter. Open dsdt.aml with DSDTSE when it appears on your desktop.


Click compile. You will be presented with a "Compile error" window.

49115-screen-shot-2013-03-11-4-06-46-am.png


Click "OK". An "Error" window will open showing you all the current errors, warnings, and remarks.

49114-screen-shot-2013-03-11-4-07-07-am.png


Note there are lots of errors. Close the window. Click "Fixcompile". The DSDT should compile successfully and another "Code" window will open. In the "Code" window, note that the DSDT's errors have all been fixed except for one warning.

49113-screen-shot-2013-03-11-4-07-41-am.png


Close the "Code" window.


Continued in the following posts.
 

Attachments

  • Interim_898_Lion_AppleHDA.zip
    1.2 MB · Views: 367
  • DSDTSE2.app.zip
    5 MB · Views: 707
  • Asus_Rampage_IV_Extreme_Themes.zip
    1.1 MB · Views: 285
  • Shilohhs_R4E_DSDT_Patches_2.6.rtf.zip
    4.5 KB · Views: 525
  • Shilohhs_R4E_DSDT_Patches_3.0.rtf.zip
    4.1 KB · Views: 561
Last edited by a moderator:
Patching - Part I

Open my list of DSDT Patches and lets start patching.

1) Add Method DTGP:
Copy "Method DTGP" from the list.

49134-screen-shot-2013-03-11-4-57-06-am.png

Click on the right side of the " { " that follows the "DefinitionBlock". Hit the Right Arrow key. The cursor should be at the very start of the next line.

49110-screen-shot-2013-03-11-4-46-15-am.jpg


Hit enter to make a blank line.


49109-screen-shot-2013-03-11-4-46-44-am.png


Use the Up-Arrow key to move the cursor up to that blank line.


49108-screen-shot-2013-03-11-4-47-01-am.png


Paste in "Method DTGP" there.


49112-screen-shot-2013-03-11-4-20-23-am.jpg


You can change "Name (TMAC, "R4E 3404")" to read whatever you'd like it to. Example:
Name (TMAC, "BIG BOB'S BIG DSDT").
I've only added this so I can see what version I've opened for future editing. Click "Fixcompile".


2) Cleaning up unnecessary stuff:
Note: This one is not necessary and adds no functionality.

Scroll down to Name (OSVR, Ones).

49107-screen-shot-2013-03-11-4-51-31-am.png


Comment out the OS's.

49137-screen-shot-2013-03-11-4-52-04-am.png


49136-screen-shot-2013-03-11-4-52-43-am.png


Also see example in my list of DSDT patches.
Click "Fixcompile".


3) Fix the SIOS Warning:
Copy "SIOS Warning" fix.

49135-screen-shot-2013-03-11-4-56-31-am.png


Type "sios" in the search window and click search.

49133-screen-shot-2013-03-11-4-59-19-am.png


Scroll to the bottom of the method and add a space right before the last " } " .

49132-screen-shot-2013-03-11-5-05-44-am.jpg


Paste the fix in that blank line.

49131-screen-shot-2013-03-11-5-06-10-am.jpg


Click "Fixcompile".
Note that the last warning is no longer present in the "Code" widow that opens.

49130-screen-shot-2013-03-11-5-09-46-am.png



4) NOT NEEDED FOR 10.8.5 WITH BIOS 4206. Get the LPC controller to load and use native OS X kexts:

Copy the Device (SBRG) fix from the list.

49125-screen-shot-2013-03-11-5-35-33-am.png


Search for "sbrg". Move the "Decompiled" window over to the left side of your screen so that the left side of the window is cut off right at the edge of the D in "Device (SBRG)".

49129-screen-shot-2013-03-11-5-23-13-am.png


Scroll down until you find the " } " that lines up the the same spot as the D from "Device (SBRG)". This is where SBRG's sub device chain ends.

49128-screen-shot-2013-03-11-5-25-36-am.png


Move the window back over so you can see all of the left side again. Select from right side of the " } " that you found, all the to the left edge.

49124-screen-shot-2013-03-11-5-35-58-am.jpg


Paste over it with the Device (SBRG) fix from the list.

49126-screen-shot-2013-03-11-5-31-40-am.png


Click "Fixcompile".
 
Last edited by a moderator:
Patching - Part II


5) Remove dedicated IRQs from devices to later give them to the High Precision Event Timer:

Type "IRQNoFlags ()" without the " " into the search box.

49122-screen-shot-2013-03-11-5-38-34-am.png


Click "Next". The first match will be in "Device (PIC)". Select from the right edge of "{2}" below it, all the way up to the far left edge of "IRQNoFlags ()".

49121-screen-shot-2013-03-11-5-39-59-am.jpg


Hit Delete.

49120-screen-shot-2013-03-11-5-40-14-am.jpg


Click next again. It should now find "{0}" in "Device (TMR)". Select from the right edge of "{0}" below it, all the way up to the far left edge of "IRQNoFlags ()". NOTE: I messed up on the image below. It should look like the examples for {2}, {8}, {1} and {12}.


49119-screen-shot-2013-03-11-5-46-11-am.jpg


Delete it.

49118-screen-shot-2013-03-11-5-48-41-am.jpg


Click next. You should now find "{8}" in "Device (RTC0).

49156-screen-shot-2013-03-11-5-50-31-am.jpg


Delete it.

Click next. You should find "{13}" in "Device (COPR)". Leave this one alone.

Click "Next". Continue the same process and delete all the "{1}"s from "Device (PS2K)".

49155-screen-shot-2013-03-11-5-54-18-am.jpg


Delete all the "{12}"s from "Device (PS2M)".

49153-screen-shot-2013-03-11-6-09-41-am.jpg


Note: If you are using a PS2 mouse or keyboard, you may need to find different IRQ values to use instead of {1} and {12}.


6) Give Device (HPET) the 2 dedicated IRQ values to use from a Mac Pro 5,1.

Search "hpet" and paste in fix
The following photos for the IRQ edits are outdated. See updated list of patches v2.6 or v3.0 for new values.
49146-screen-shot-2013-03-11-6-34-28-am.png


49145-screen-shot-2013-03-11-6-35-01-am.jpg




49143-screen-shot-2013-03-11-6-35-27-am.jpg


-as in my example on the list. Click "Fixcompile".
 
Last edited by a moderator:
Patching - Part III​


7) Add sub-device "Device (BUS0)" to "Device (SMB)" to load native SMBus kexts:

Search "Device (SMB)"

49142-screen-shot-2013-03-11-6-39-55-am.jpg


and paste in fix over the last " } " before the next device.

49141-screen-shot-2013-03-11-6-41-25-am.jpg


49140-screen-shot-2013-03-11-6-42-33-am.jpg


Also see my example on the list.
Click "Fixcompile".


8) Add Device (HDEF) to the end of Device (PCI0) to enable onboard audio with the "Interim IvyBridge" kext from Toleda:

Search "Device (PCI0)". Find the end of the device chain the same way we did in the "Device (SBRG)" fix.

49139-screen-shot-2013-03-11-6-50-10-am.png


It's a LONG ways down. For me, the PCI0 device chain starts at line 1670 and ends at line 6286. Paste the fix over the last " } " in the device chain.

49138-screen-shot-2013-03-11-6-53-43-am.jpg


49176-screen-shot-2013-03-11-6-54-27-am.jpg


Click "Fixcompile".


9) THIS STEP DOESN'T SEEM TO BE NEEDED ANYMORE IN 10.8.5 WITH BIOS 4206. Add AAPL,clock-id 2 to PEX1-4 to allow sleep (SleepEnabler.kext is necessary) while USB 3.0 storage is plugged in:

Search "Device (PEX" and hit next until you find "Device (PEX1)".

49175-screen-shot-2013-03-11-7-06-12-am.jpg


Paste patch in between "Name" and "OperationRegion".

49174-screen-shot-2013-03-11-7-06-31-am.jpg


49173-screen-shot-2013-03-11-7-06-41-am.jpg


49171-screen-shot-2013-03-11-7-07-17-am.jpg


Repeat for "Device (PEX2)", "Device (PEX3)", and "Device (PEX4)". Click "Fixcompile".


Note: Any drives plugged into USB 3 ports will be force ejected upon wake. They will then automatically remount. This may be solved in the future with more USB 3.0 support from Apple.
 
Last edited by a moderator:
Finishing Up

Click on the "Compile" tab to get into the compile section.

49161-screen-shot-2013-03-11-7-24-13-am.jpg


Check the "Autofix errors" box and the "Fixes report" box. Click the "Compile" button.

49159-screen-shot-2013-03-11-7-27-25-am.png


Click the "Gimme my DSDT" button. A finder window will open containing your edited DSDT. It will be named "DSDT.aml".

49158-screen-shot-2013-03-11-7-29-24-am.png


Drag "DSDT.aml" into your "/Extra" folder. Delete or overwrite the old DSDT.aml if one is present and reboot.
 
Last edited by a moderator:
Verification
Not necessary for you to do but it's nice to see that your edits have worked and are being used by the system.


On the "Main Pane", in the second box, under "Registry Info", click "Get".

49117-screen-shot-2013-03-11-4-05-20-am.png


This will open IORegistryExplorer and show you all the devices loaded and information about them.

1) In the search box of the newly opened IOReg window, enter "hpet". With HPET selected on the left twirl open the disclosure triangle for "IOInteruptSpecifiers".

49198-screen-shot-2013-03-11-10-53-19-pm.png


In the "Values" column, the first pair of numbers (they are displayed as Hexadecimals and you will need to convert them to decimal using something like HexDecBin.app)

49199-screen-shot-2013-03-11-10-53-44-pm.png


-are the IRQs that HPET is using. You should have, 0c (12), 08, 02, and 01.

2) Find "SBRG" and note that AppleLPC shows up as a sub-device and that it has the native OS X driver loaded.

49200-screen-shot-2013-03-11-10-57-51-pm.png


3) Find "SMB". Note that the device we added, "BUS0", shows up in the device tree and it is using the native OS X driver.

49201-screen-shot-2013-03-11-10-59-03-pm.png


4) At "PEX1", "PEX2", "PEX3", and "PEX4", you should see the"AAPL,clock-id" we added.

49206-screen-shot-2013-03-11-11-19-29-pm.png


5) Note that "HDEF" should now be present and loaded.


49204-screen-shot-2013-03-11-11-07-02-pm.jpg
 
Last edited by a moderator:
Nice writeup!

I'm researching this board as a potential upgrade path and it looks like you guys have made progress!

I have a couple questions though that I can't seem to get a definitive answer out of my searches.

Your posts state that if usb storage is present, sleepenabler.kext is required.

What if there are no usb devices? Does sleep work?

I've seen some modded bioses around for asus boards... Have you researched this?
 
Nice writeup!
I have a couple questions though that I can't seem to get a definitive answer out of my searches.
Your posts state that if usb storage is present, sleepenabler.kext is required.
What if there are no usb devices? Does sleep work?
I've seen some modded bioses around for asus boards... Have you researched this?
Thank you for the kind words:)

Haven't found or tested modded BIOS for this board.
EDIT: I just looked into modding the BIOS for this board and it will not achieve anything until Apple integrates X79 into a real Mac.

SleepEnabler.kext is only required for sleep. Most users of this board have disabled sleep all together and just shut down. Boot time with a SSD is around 30 sec from power button to desktop.

CPU power management does not work for any X79 board at this time. This means no speed step (turbo boost) or sleep. However, sleep does work if you use SleepEnabler.kext but it has some bugs. With the edits outlined in this guide, it works with USB drives plugged in, but it will force eject any storage plugged into USB3 ports upon wake. This could lead to data corruption on those devices so you would want to eject them before sleep and disable auto sleep. USB2 ports function fine.

This build is best suited to people want a powerhouse workstation and are not concerned with low power draw at idle, but are looking for a pure performance hot rod. GeekBench score = 21,096. I built mine as a workstation for CS6 and Davinci Resolve. I currently have a GTX 570 HD 2.5GB as my main card and a GTX 580 Classified 3GB as a dedicated render card for Resolve. It screams in any app that utilizes CUDA and the CPU (3930K @ 4.2GHZ) screams in any that don't.
 
Thanks for clearing that up shilohh

f you experiment with a custom bios that gives a more "native" feel like a gigabyte UEFI dsdt-less build please share the info!!!

BTW: Sick geekbench scores :)
 
Status
Not open for further replies.
Back
Top