Contribute
Register

Some questions about USB port configuration

Status
Not open for further replies.
Joined
Jun 20, 2014
Messages
1,015
Motherboard
Gigabyte Aero 15X v8-BK4K4P
CPU
i7-8750H
Graphics
UHD 630 / GTX 1070
So I've been following Rehabman's [Guide] 10.11+ USB changes and solutions and have a few questions about my wonderful new Cubi 2 Plus (7M - 015BUS) hackintosh build.

I added the DSDT patches required to rename EHC1->EH01 and EHC2->EH02 to Clover as well as the _OSI to XOSI patch.

So I have applied the change 15 port limit to 26 in XHCI kext patch and copied USBInjectAll.kext into the appropriate location.

From plugging in devices I have discovered the id's of each USB port and added them to a diagram. I then modified the SSDT-UIAC-ALL.dsl file to suit my machine because it has a 100-series 8086:a12f controller.

Here is my modified SSDT-USB.dsl
Code:
// SSDT-UIAC-ALL.dsl
//
// This SSDT can be used as a template to build your own
// customization for USBInjectAll.kext.
//
// This SSDT contains all ports, so using it is the same as without
// a custom SSDT.  Delete ports that are not connected or ports you
// do not need.
//
// Change the UsbConnector or portType as needed to match your
// actual USB configuration.
//
// Note:
// portType=0 seems to indicate normal external USB2 port (as seen in MacBookPro8,1)
// portType=2 seems to indicate "internal device" (as seen in MacBookPro8,1)
// portType=4 is used by MacBookPro8,3 (reason/purpose unknown)
//

DefinitionBlock ("", "SSDT", 2, "hack", "UIAC-ALL", 0)
{
    Device(UIAC)
    {
        Name(_HID, "UIA00000")

        Name(RMCF, Package()
        {
            "8086_a12f", Package()
            {
                "port-count", Buffer() { 20, 0, 0, 0 },
                "ports", Package()
                {
                    "HS01", Package() // HS USB3 back bottom
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HS02", Package() // HS USB3 back top
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HS04", Package() // HS USB3 front top right
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                    "HS05", Package() // HS USB2 front top left
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                    "HS06", Package() // HS USB2 front bottom left
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 6, 0, 0, 0 },
                    },
                    "HS07", Package() // HS USB2 front bottom right
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 7, 0, 0, 0 },
                    },
                    "HS09", Package() // HS USB2 top
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 9, 0, 0, 0 },
                    },
                    "HS10", Package() // bluetooth
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 10, 0, 0, 0 },
                    },
                    "SS01", Package() // SS USB3 back bottom
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 17, 0, 0, 0 },
                    },
                    "SS02", Package() // SS USB3 back top
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 18, 0, 0, 0 },
                    },
                    "SS04", Package() // SS USB3 front top right
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 20, 0, 0, 0 },
                    },
                },
            },
        })
    }
}
//EOF

I copied the compiled aml's (SSDT-USB.aml and SSDT-XOSI.aml) to the Clover's ACPI/patched folder.

Since I have the correct ports set I have now removed the port limit patch.

Everything seems to be working OK.

Now on to my questions:
- First of all does my SSDT-USB.dsl file above look okay? I've attached an image of the physical USB layout to show the matching port config.
- Do I now remove USBInjectAll.kext? In the article Rehabman says "Do not plan to use the patch long-term. It could be problematic.". So I assume I remove it now?
- Now that I've removed USBInjectAll.kext I noticed the missing ports in my SSDT-USB.aml file show now (specifically HS03, HS08 and SS03). Again perhaps I'm not supposed to remove this file but it's unclear (Rehabman does specifically say to remove the port limit patch though)
- Do I need the EHC1->EH01 and EHC2->EH02 patches? They didn't seem to make a difference. Do I remove them now that I've got everything configured and working?
- Do I need SSDT-XOSI.aml? I am not quite sure why this is required (to report a Windows version)? Is there a way I can test this is working?
 

Attachments

  • USB Ports Disabled.png
    USB Ports Disabled.png
    405 KB · Views: 156
  • Cubi2_connectivity.jpg
    Cubi2_connectivity.jpg
    123.3 KB · Views: 91
Last edited:
Now on to my questions:
- First of all does my SSDT-USB.dsl file above look okay? I've attached an image of the physical USB layout to show the matching port config.

Yes.

- Do I now remove USBInjectAll.kext?

No.

In the article Rehabman says "Do not plan to use the patch long-term. It could be problematic.". So I assume I remove it now?

Yes.

- Now that I've removed USBInjectAll.kext I noticed the missing ports in my SSDT-USB.aml file show now (specifically HS03, HS08 and SS03). Again perhaps I'm not supposed to remove this file but it's unclear (Rehabman does specifically say to remove the port limit patch though)

You cannot remove USBInjectAll.kext.
The guide is very clear. The title of the thread "[Guide] Creating a Custom SSDT for USBInjectAll.kext" implies that the SSDT is useless without USBInjectAll.kext.

- Do I need the EHC1->EH01 and EHC2->EH02 patches? They didn't seem to make a difference. Do I remove them now that I've got everything configured and working?

Not necessary with your hardware. There is no EHCI controller in 100-series and later.

- Do I need SSDT-XOSI.aml? I am not quite sure why this is required (to report a Windows version)? Is there a way I can test this is working?

It may not be necessary, but it (+ _OSI->XOSI patch) is usually not a bad idea.
 
Thank you Rehabman!
 

Attachments

  • USB Ports.png
    USB Ports.png
    462.2 KB · Views: 136
Status
Not open for further replies.
Back
Top