Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

RehabMan

Moderator
Joined
May 3, 2012
Messages
184,477
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Rehabman, when converting from .dsl to .aml, did you use MaciASL? Because when I tried to save as .aml, the MaciASL always not responding. Do you have alternative way to convert from .dsl to .aml?

In MaciASL, you use File->Save As, format: ACPI Machine Language Binary.
You could also use iasl from Terminal to compile your .dsl.
 
Joined
Feb 28, 2016
Messages
55
Motherboard
Asus ROG G501JW
CPU
Core i7 4720HQ
Graphics
Intel HD 4600 & GeForce GTX960M
Mac
  1. MacBook Air
In MaciASL, you use File->Save As, format: ACPI Machine Language Binary.
You could also use iasl from Terminal to compile your .dsl.

Yes, when I tried to save as ACPI Machine Language Binary, the MaciASL always not responding. How do you compile .dsl using iasl from terminal?

Could you try compile my .dsl?
 

Attachments

  • SSDT-UIAC-ALL.dsl
    2.4 KB · Views: 86

RehabMan

Moderator
Joined
May 3, 2012
Messages
184,477
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Joined
Feb 26, 2017
Messages
15
Motherboard
Gigabyte Z170-HD3
CPU
Intel core i5-6400
Graphics
GTX 660
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Thanks a lot for this and your other USB fix guides, RehabMan! I just barely understood enough to get all my usb ports that I needed working
 
Joined
May 26, 2013
Messages
10
Motherboard
ASRock Z170 pro 4s
CPU
i5 6500
Graphics
Nvidia GeForce gtx 750 ti
thanks a lot. best guide. great RehabMan, I have fixed
 
Joined
Apr 26, 2010
Messages
67
Motherboard
Asus Zenbook Pro UX501VW
CPU
Skylake i7-6700HQ
Graphics
Intel HD530 + GTX 960M
My Skylake series-100 Desktop Asus H170I-Plus D3 has 8 USB3 ports that I have all identified.

Running Sierra 10.12.6

HS01/SS01: USB3 front top
HS02/SS02: USB3 front bottom
HS03/SS03: USB3 rear top left
HS04/SS04: USB3 rear bottom left
HS05/SS05: USB3 rear top center
HS06/SS06: USB3 rear bottom center
HS07/SS07: USB3 rear top right (under PS/2)
HS08/SS08: USB3 rear bottom right (under PS/2)
HS13: bluetooth

Each of the 8 USB3 port supports both HSxx and SSxx, plus the bluetooth, that's 17 ports.

Is the 15-port limit on XHC only for pre 100-series motherboards? I don't know.

I can maybe use FakePCIID_XHCIMux to route the USB2 component of those USB3 ports off from XHC to EHCI, but Skylake does not have EHCI.

I created my SSDT-UIAC.aml eliminating all the extra ports. It works well, but that's still 17 ports.

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

        Name(RMCF, Package()
        {
            "8086_a12f", Package()
            {
                "port-count", Buffer() { 26, 0, 0, 0 },
                "ports", Package()
                {
                    "HS01", Package()  // HS USB3 front top
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HS02", Package()  // HS USB3 front bottom
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HS03", Package()  // HS USB3 rear top left
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HS04", Package() // HS USB3 rear bottom left
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                    "HS05", Package() // HS USB3 rear top center
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                    "HS06", Package()  // HS USB3 rear bottom center
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 6, 0, 0, 0 },
                    },
                    "HS07", Package()  // HS USB3 rear top right under ps/2
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 7, 0, 0, 0 },
                    },
                    "HS08", Package()  // HS USB3 rear bottom right under ps/2
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 8, 0, 0, 0 },
                    },
                    "HS13", Package()  // bluetooth
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 13, 0, 0, 0 },
                    },
                    "SS01", Package()  // SS USB3 front top                  
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 17, 0, 0, 0 },
                    },
                    "SS02", Package()  // SS USB3 front bottom                
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 18, 0, 0, 0 },
                    },
                    "SS03", Package()  // SS USB3 rear top left                
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 19, 0, 0, 0 },
                    },
                    "SS04", Package() // SS USB3 rear bottom left                
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 20, 0, 0, 0 },
                    },
                    "SS05", Package() // SS USB3 rear top center                
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 21, 0, 0, 0 },
                    },
                    "SS06", Package()  // SS USB3 rear bottom center                
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 22, 0, 0, 0 },
                    },
                    "SS07", Package()  // SS USB3 rear top right under ps/2                
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 23, 0, 0, 0 },
                    },
                    "SS08", Package()  // SS USB3 rear bottom right under ps/2
                
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 24, 0, 0, 0 },
                    },
                },
            },
        })
    }
}
 
Last edited:

RehabMan

Moderator
Joined
May 3, 2012
Messages
184,477
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Is the 15-port limit on XHC only for pre 100-series motherboards?

The 15-port limit applies to all boards. The limit is in the xHCI driver.

I can maybe use FakePCIID_XHCIMux to route the USB2 component of those USB3 ports off from XHC to EHCI,

No.
There is no EHCI on 100-series and later.

I created my SSDT-UIAC.aml eliminating all the extra ports. It works well, but that's still 17 ports.

As per post #1, you need to sacrifice a port to remain within the 15-port limit.
 
Joined
Apr 26, 2010
Messages
67
Motherboard
Asus Zenbook Pro UX501VW
CPU
Skylake i7-6700HQ
Graphics
Intel HD530 + GTX 960M
Thanks for the answers RehabMan.

I had come to the same conclusion that I will have to sacrifice a port that will not be used to bring down the number to 15. I was just not sure. I'll be removing the pair HS05/SS05 in the center rear, bringing the number down to 15.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
184,477
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Thanks for the answers RehabMan.

I had come to the same conclusion that I will have to sacrifice a port that will not be used to bring down the number to 15. I was just not sure. I'll be removing the pair HS05/SS05 in the center rear, bringing the number down to 15.

Yeah, and I guess your case has no USB ports? (usually those would be connected to an internal header, which would use additional ports, leading to sacrifice more back io panel ports).
 
Top