Hello Robert,
No problem. As ASUS, Asrock, Gigabyte and MSI are all using some kind of AMI BIOS for their mainboards with series 7 chipsets they all have a lot of things in common. Usually the DSDTs for series 7 chipsets requires less patching than those of previous generations. Before you start you should get a copy of the ACPI specification because it is a valuable resource of information:
http://www.acpi.info/DOWNLOADS/ACPIspec50.pdf
First step after extracting the vanilla DSDT is to correct the errors. Try to compile the DSDT and when the dialog with the error messages is displayed press the "Fix errors" button. Unfortunately this doesn't correct all errors so that you will have to fix the remaining errors manually but DSDT Editor comes with a number of patches for most problems which can be found inside the "Patches" folder. Here are some common problems and how to resolve them:
1) "Result is not used, possible operator timeout will be missed" -> Use patch "Possible operator timeout is ignores.txt".
2) "Use of compiler reserved name (_T_0)" or "Use of compiler reserved name (_T_1)" -> Use patch "_T_x rename.txt" from folder Patches/Desktop.
3) "Not all control paths return a value (_HID)" and "Reserved method must return a value (Integer/String required for _HID)" -> The method in question is required to return a result in any case but it's implementation doesn't conform to this requirement. To get rid of these kind of warnings add "Return (Zero)" to the end of the method. Here is an example of what you'll have to do. The following method will produce the waring I mentioned:
Code:
Method (_HID, 0, NotSerialized)
{
If (TCMF) {}
Else
{
Return (0x310CD041)
}
}
It can be resolved by changing the method to:
Code:
Method (_HID, 0, NotSerialized)
{
If (TCMF) {}
Else
{
Return (0x310CD041)
}
Return (Zero)
}
4) Errors like "_HID suffix must be all hex digits (GH)" are also very common. Let's have a look at the line of code which caused it:
Obviously "G" and "H" are no hex digits but the compiler expects the value to be a valid hex number. Fix it by replacing the them by any hex digits (0-9, A-F). In most cases the value doesn't matter as long as it unique. For example:
5) "ResourceTag larger than Field (Tag: 64 bits, Field: 32 bits)" will be caused by lines like that:
Code:
CreateDWordField (BUF0, \_SB.PCI0._Y0F._LEN, MSLN)
The problem is that "CreateDWordField" creates a 32-Bit field and tries to store a 64-Bit value in it but the field and the value should match in size. Change it to:
Code:
CreateQWordField (BUF0, \_SB.PCI0._Y0F._LEN, MSLN)
There might be similar issues with different combinations of value size and field size which can be resolved in the same way. For further information see sections 19.5.18 - 19.5.23 of the ACPI specification.
In case you don't succeed in correcting all the errors feel free to contact me again.
Once you got an error-free DSDT you can start adding the patches for OS X from the folder "Patches/Desktop". Here is a minimal set of patches for series 7 chipsets:
1) "DTGP.txt": Adds method DTGP which is essential for injection of device properties.
2) "SMBUS.txt": Adds device BUS0 to device SBUS.
3) "LPC SANDYBRIDGE.txt"
4) "HID para CID.txt": Without this patch you won't be able to use the power button to send the machine to sleep / wake it up.
5) In order to get working audio and onboard graphics you'll have to apply toleda's patches for
http://www.tonymacx86.com/hdmi-audio/62880-mountain-lion-hdmi-audio-hd4000.html. Apply the patch even if you won't use onboard graphics because it's the best way to get fully working audio support but don't forget to select the proper layout-id for your board's codec.
Good Luck!
Mieze / Laura