In my DSDT table, it appears that "SSDT-5-A M I.aml" is the SSDT that controls USB ports
Progress, congratulations.
The rest is up to you to determine which ports you are using/need. I truly like the method of using the USB3 hub since when you plug it into a port, you will begin to see what ports becomes active (both USB2 & USB3 see my original post about association). You must be using
IORegistryExplorer to note what becomes active as you plug devices in and out of your desired USB ports. I would start with your USB2 ports so that you can begin to eliminate some of the unused HS## ports thus bringing the overall port count down. You can enable them again after your process of elimination if they were incorrectly marked disabled. When you begin eliminating ports, you can expect to see more of the SS## ports show up in the IORegistryExplore view. By default since your have fourteen USB2 ports, I think you would only see one SS port (probably SS01). Again, I started with a clean install and do not have RehabMan's kext loaded. You can leave it in your config.plist file and disable it by marking it as disabled using Clover Configurator (check box) and rebooting. If you also have some other .aml file as RehabMan's post suggests, I would further temporarily remove it from the patched directory.
According to your .dsl file, I see your chip has 14 USB2 ports (HS01->HS14) and then 10 USB3 ports (SS01->SS10).
The process to disable an unused port would go like this in your file.
High Speed (USB2) disable a port setting One to Zero
Code:
Scope (\_SB.PCI0.XHC.RHUB.HS04)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
If (LEqual (And (HUBC, 0x08), 0x08))
{
Return (GUPC (Zero))
}
Else
{
Return (GUPC (One)) /////// <<<< Set the word "One" to "Zero" (less the quotes)
}
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
If (LEqual (And (HUBC, 0x08), 0x08))
{
Return (GPLD (Zero, Zero))
}
Else
{
Return (GPLD (One, 0x04))
}
}
}
Super Speed (USB3) disable a port setting One to Zero
Code:
Scope (\_SB.PCI0.XHC.RHUB.SS07)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
If (LEqual (And (UMAP, 0x40), 0x40))
{
If (LEqual (And (HUBC, 0x40), 0x40))
{
Return (GUPC (Zero))
}
Else
{
Return (GUPC (One)) ///// <<<< Set the word "One" to "Zero" (less the quotes)
}
}
Else
{
Return (GUPC (Zero))
}
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
If (LEqual (And (UMAP, 0x40), 0x40))
{
If (LEqual (And (HUBC, 0x40), 0x40))
{
Return (GPLD (Zero, Zero))
}
Else
{
Return (GPLD (One, 0x07))
}
}
Else
{
Return (GPLD (Zero, Zero))
}
}
}
If you don't have a USB3 hub, you can use a USB3 stick. Please remember to properly eject it so damage does not occur.
I looked at a picture of your motherboard and see a single USB2 chassis header and a single USB3 chassis header (board rear left). That leads me to believe you only have two USB2 ports, and possibly ten USB3 ports (USB3.1 excluded). Since the board has WiFi and Bluetooth, additional internal USB2 might be expected (for Bluetooth) unless the combo chipset is an integrated PCI-E device. This is most definitely trial and error without a schematic (not a block diagram) in hand to review.
If you have the USB2 chassis header connected to a front panel, I would start by identifying those ports and noting the IORegistryExplorer output from the HSxx ports. You will want to keep those ports active in my opinion.
The rear left stack of 4 ports seems unclear in the documentation. Are they all USB3.1 ports? If they are USB3.1, I would expect them to be out of play in this exercise as they are probably handled by a separate chipset. Plug something into that four port stack and look at "AppleUSBXHCIAR" for a device (using IORegistryExplorer); check all four ports. If they do show up as AppleUSBXHCIAR, then they are not controlled by this .dsl output (out of play for this exercise).
I would continue targeting front panel posts in efforts of identifying where they show up in IORegistryExplorer. I personally want all of my case front panel ports working.
OK, here is the tedious part of the identification process. You must turn down some ports to allow other ports to become exposed. You need to set the "One" to "Zero" value detailed above then place the compiled .aml file in the CLOVER/ACPCI/patched folder.
My original post:
I used RehabMan's MaciASL RM-1.31 (252.4) with ACPI 6.2a set in preferences/iASL to compile the .dsl to .aml (save as and select the file type as ACPI Machine Language Binary).
Also make sure that "AutoMerge" is in your config.plist. You will have to open your config.plist with a proper text editor to add this since Clover Configurator does not have a method to enable this value (at least I could not find it). If you have Xcode use that or you could use
Atom too.
Code:
<key>ACPI</key>
<dict>
<key>AutoMerge</key>
<true/>
<key>DSDT</key>
<dict>
I do have concerns which drive you actually boot from based on your search for the origin directory containing the dump files. However, I would expect to place the .aml file in the boot disk /Volumes/EFI/EFI/CLOVER/ACPI/patched directory.
Pay attention to the .dsl file DefinitionBlock (line 21 of your file) and add "SSDT-5" in the DefinitionBlock as you have detailed that in your file name (that's how Clover identified the order).
Original
Code:
DefinitionBlock ("", "SSDT", 2, "ALASKA", "A M I", 0x00000000)
Modified
Code:
DefinitionBlock ("SSDT-5", "SSDT", 2, "ALASKA", "A M I", 0x00000000)
Since this is the tedious part, you will have to continue experimenting by disabling ports in the .dsl, compiling into an .aml, placing it in the patch location and then rebooting (shampoo instructions: rinse lather and repeat). With careful note taking you will wind up with a KEXT'less installation.
Give it a go.