Revision 1
Herein I want to document the steps which are necessary to incorporate Mieze's USB 3.0/USB 2.0/USB 1.1 compatibility DSDT mods into my B75A-G43 DSDT. These steps, in general, should apply to many other AMI BIOS DSDTs, possibly including other than B75 motherboards, of the 7-Series.
It is a long road, but please bear with me.
DSDTSE is used as the tool. Two windows will be used. The left window will be assigned to the "target", my B75A-G43 DSDT. The right window will be assigned to the "source", Mieze's DSDT-MSI-B75MA-P45-V1.4c DSDT.
You may obtain the "raw" DSDT for your mobo by using Ubuntu, but an alternative is to do a "DSDT-less" install using, say, iATKOS ML2, and thereafter launching DSDTSE and pressing the "Extract DSDT" button.
Phase 1 changes: make the "raw" DSDT compile without errors
1) Search for MUT0, 0x0FFF and change it to MUT0, 0xFFFF; in this instance there is only one such occurrence, but in general, there could be several such occurrences
2) Change all:
_T_0 --> T_0 (and also any _T_1s, _T_2s, etcetera)
3) In Device (_SB.PCI0.LPCB.TPM) and within Method (_HID, 0, NotSerialized), insert Return (Zero) before the end of that Method
At this point, the DSDT should compile without any errors; do so and save the resulting .aml and .dsl files as Rev. 0
Phase 2 changes: make the power button work for "Suspend to RAM" (STR) and return from STR, thereby simulating "sleep" (it is assumed that Energy Saver has been set to "Computer sleep Never")
4) Search for Device (PWRB) and change Name (_HID, EisaId ("PNP0C0C")) to Name (_CID, EisaId ("PNP0C0C"))
Phase 3 changes: preparing for copying the "source" devices and methods to the "target"
5) Search for Windows 2001 and insert
If (_OSI ("Darwin"))
{
Store (0x2710, OSYS)
}
immediately before that; you may also copy that code from the "source" to the "target" if you want
6) Change all XHC. to XHC1. (note the positions of the periods)
7) Change all (XHC) to (XHC1)
8) Change all XHC, to XHC1, (note the positions of the commas)
9) Change all GFX0. to IGPU. (note the positions of the periods)
Phase 4 changes: replace the "target" devices and methods with the "source" devices and methods to add the actual USB 3.0/USB 2.0/USB 1.1 compatibility code
10) Replace entire EHC1 and EHC2 devices with those from the "source"
11) Replace entire XHC1 device with that from the "source"
12) Replace entire Method (_OSC, 4, Serialized) with that from the "source"
13) Search the "source" for Method (OSDW, 0, NotSerialized) and copy the entire Method from the "source" to just before end of the "target"
14) Search the "source" for Method (DTGP, 5, NotSerialized) and copy the entire Method from the "source" to just before beginning of the "target" Method (OSDW, 0, NotSerialized)
15) Change \_SB.PCI0.XHC1.XWAK() to \_SB.PCI0.XHC1._INI()
16) Replace entire "target" GFX0 device with "source" IGPU device
17) At this point the DSDT should compile without any warnings; if not, correct the errors as required
Phase 5 changes: add the calls to DTGP to make OS X aware of the devices so the initialization code will assign the correct device driver in all cases
18) Search the "source" DSDT for instances of calls to DTGP, and where there is no corresponding call to DTGP in the "target" device, copy the "source" call to DTGP to the "target"
At this point, the DSDT should compile without any errors; do so and save the resulting .aml and .dsl files as Rev. 1