Contribute
Register

A Beginner's Guide to Creating a Custom USB SSDT

Joined
May 15, 2019
Messages
8
Motherboard
Gigabyte GA-Z170N-WIFI
CPU
i7-6700K
Graphics
HD 530
Mobile Phone
iOS
As far as I can see the motherboard features two internal headers other than the wifi module. There is a twin USB 3.0 port header with 19-pins. You have labelled it HS01 & HS02. There is also a twin USB 2.0 port header with 9-pins. It is white and next to a similar audio header at the end of the PCIe slot.

To clarify, the ports you labelled HS01/02 are USB3.0 ports so SS also.

You therefore have 4x internal ports available - 2x USB3 and 2x USB2

Hope that helps
Ohhhh!!! yes now I see... I didn't even notice these pins when inspecting my motherboard... yes you were right.

Thank you! you helped a lot.
 
Last edited:
Joined
May 14, 2019
Messages
6
Motherboard
GA-H170M-DS3H
CPU
i5-6400
Graphics
GTX 750 Ti
Mac
iMac
Classic Mac
iMac
Mobile Phone
Android, iOS
My suggestion was just check the "port-count" value etc. you have used. It doesn't look right. But if you are happy "0x00" is correct, that's fine. Sorry I couldn't help.
Yes, you was right, fixed "port-count" and works!!! Thnk you!
 
Joined
Sep 20, 2012
Messages
24
Motherboard
ASUS ROG MAXIMUS HERO X Z370
CPU
i9-9900
Graphics
RX 580
Mac
iMac
Mobile Phone
iOS
Hi UtterDisbelief,

I gave it a try today and followed your guide, but I did not succeed.
Could you please give it a look ? I configured port HS01-HS09 + SS01-SS06.
In IOReg there's also something I don't quite understand;
HS14 is displayed as AURA LED controller, but I could not find this as an internal USB connection,
nor did I connect any RGB bling.
Do you think I can ignore HS14, or should I include it in the maximum of 15 ports ?

Thank you for all the help & efforts !

Kind regards,

Chimiel
 

Attachments

Last edited:
Joined
Apr 29, 2012
Messages
123
Motherboard
ASUS ROG Mamimus XI Hero (Wifi)
CPU
i9-9900K
Graphics
RX 580
Mac
iMac, MacBook Pro, Mac mini
Mobile Phone
iOS
Hello. Well, I guess I need some help. I've got a slew of Kext patches in my config.plist (see attached). Everything works, and I' a believer in "if it ain't broke..." BUT several folks who I respect and who know more than I do, swear up and down that my system will be more stable, faster, and make me breakfast in the morning, if I will just limit my ports to 15, and get rid of all those patches. Good enough. I'm all for rock-solid.

So, I thought I'd followed the instructions carefully. But in exchange, I got a 4-hour journey trying to even get access to my machine again. Even the original Unibeast stick wouldn't boot it. I'd get thru the second white apple... and the machine would do a hard reboot, no matter what I tried. (snip, thankfully... ;-)_ Well, I finally got back to my pre-adventure setup, and while this may be foolish, I'm willing to give it a go again, if it really will make things better.

One thing I may have fouled up, is that if a USB 3 port was ONLY going to be used for USB 3, then I thought I could just activate the SS and leave the HS out. Maybe wrong? Maybe wrong on HS01/SS01 even though SS01 didn't show as used?

I have 2 PCIe cards, which show up in the device tree as "USB 3.0 Bus"
Host Controller Driver: AppleUSBXHCIFL1100
PCI Device ID: 0x1100 PCI Revision ID: 0x0001 PCI Vendor ID: 0x1b73

the "USB 3.1 Bus" however seems to be "the one":
Host Controller Driver: AppleIntelCNLUSBXHCI
PCI Device ID: 0xa36d
PCI Revision ID: 0x0010
PCI Vendor ID: 0x8086

... so that's what I used for my SSDT-USB template (see attached)

I thought I was careful and cautious, thinking that if I left my kext patches in the config.plist, all would be well.
Just enough knowledge to be dangerous, and I obviously blew it up.

So: if you're seeking a few guffaws at my expense or are just bored, I've attached my config.plist, the SSDT-USB template I used, and screencap of the original HS/SS ports.

Thanks to any and all who care to dip their toes into this mess I've made.
orig ports.jpg
 

Attachments

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
1,899
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Hello. Well, I guess I need some help. I've got a slew of Kext patches in my config.plist (see attached). Everything works, and I' a believer in "if it ain't broke..." BUT several folks who I respect and who know more than I do, swear up and down that my system will be more stable, faster, and make me breakfast in the morning, if I will just limit my ports to 15, and get rid of all those patches. Good enough. I'm all for rock-solid.

So, I thought I'd followed the instructions carefully. But in exchange, I got a 4-hour journey trying to even get access to my machine again. Even the original Unibeast stick wouldn't boot it. I'd get thru the second white apple... and the machine would do a hard reboot, no matter what I tried. (snip, thankfully... ;-)_ Well, I finally got back to my pre-adventure setup, and while this may be foolish, I'm willing to give it a go again, if it really will make things better.

One thing I may have fouled up, is that if a USB 3 port was ONLY going to be used for USB 3, then I thought I could just activate the SS and leave the HS out. Maybe wrong? Maybe wrong on HS01/SS01 even though SS01 didn't show as used?

I have 2 PCIe cards, which show up in the device tree as "USB 3.0 Bus"
Host Controller Driver: AppleUSBXHCIFL1100
PCI Device ID: 0x1100 PCI Revision ID: 0x0001 PCI Vendor ID: 0x1b73

the "USB 3.1 Bus" however seems to be "the one":
Host Controller Driver: AppleIntelCNLUSBXHCI
PCI Device ID: 0xa36d
PCI Revision ID: 0x0010
PCI Vendor ID: 0x8086

... so that's what I used for my SSDT-USB template (see attached)

I thought I was careful and cautious, thinking that if I left my kext patches in the config.plist, all would be well.
Just enough knowledge to be dangerous, and I obviously blew it up.

So: if you're seeking a few guffaws at my expense or are just bored, I've attached my config.plist, the SSDT-USB template I used, and screencap of the original HS/SS ports.

Thanks to any and all who care to dip their toes into this mess I've made.View attachment 406838
Hi there.

No one's laughing. Getting a Hackintosh to work correctly, or as near as the real thing, can be fraught with problems. Like you I actually believe that "if it aint broke, don't fix it" too. I can understand why you want to get your system USB to work as a real Mac though.

Okay, looking at your files:

1) The IORegistryExplorer screen grab shows the port-limit removal patch is working nicely :thumbup:

2) In your config.plist you should remove or disable all the other port-limit removal patches except the one for your macOS. I'm guessing you have installed Mojave 10.14.5, so remove/disable all those 10.13 port-limit patches.

3) In your SSDT there is an error for your HS14 bluetooth header port. You have the port address as "0x03" when I think it should be "0x0e".

Otherwise all looks good.

Once the USB ports are all working as intended you can then disable the port-limit removal patch. Leave USBInjectAll.kext in place though.

If the problem persists then check what other kexts you installed to work with USB.

:)
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
1,899
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Hi UtterDisbelief,

I gave it a try today and followed your guide, but I did not succeed.
Could you please give it a look ? I configured port HS01-HS09 + SS01-SS06.
In IOReg there's also something I don't quite understand;
HS14 is displayed as AURA LED controller, but I could not find this as an internal USB connection,
nor did I connect any RGB bling.
Do you think I can ignore HS14, or should I include it in the maximum of 15 ports ?

Thank you for all the help & efforts !

Kind regards,

Chimiel
Hi there,

1) There is one error in the SSDT I can see. For the package type at the top you have "8086_a2f" but this should be "8086_a2af". The second 'a' is missing.

2) Looking at your IORegistryExplorer output it shows you have the port-limit removal patch in place and all available chipset ports enabled on XHCI so that is fine :thumbup:

3) The Aura internal USB port can be configured if you want to, but if you don't and are not going to use the LED lighting, then it should be okay to ignore it.

4) Your motherboard features an additional ASMedia chipset controller for the Red ports on the back and case-front ports (according you ASUS Specs etc). These seem to be showing up okay in the XHCI tree - which is a good thing.

:)
 
Joined
Sep 20, 2012
Messages
24
Motherboard
ASUS ROG MAXIMUS HERO X Z370
CPU
i9-9900
Graphics
RX 580
Mac
iMac
Mobile Phone
iOS
Hi there,

1) There is one error in the SSDT I can see. For the package type at the top you have "8086_a2f" but this should be "8086_a2af". The second 'a' is missing.

2) Looking at your IORegistryExplorer output it shows you have the port-limit removal patch in place and all available chipset ports enabled on XHCI so that is fine :thumbup:

3) The Aura internal USB port can be configured if you want to, but if you don't and are not going to use the LED lighting, then it should be okay to ignore it.

4) Your motherboard features an additional ASMedia chipset controller for the Red ports on the back and case-front ports (according you ASUS Specs etc). These seem to be showing up okay in the XHCI tree - which is a good thing.

:)
YES YES YES !
It works !
Thank you sooooooooooo much !
 

Attachments

Joined
Apr 29, 2012
Messages
123
Motherboard
ASUS ROG Mamimus XI Hero (Wifi)
CPU
i9-9900K
Graphics
RX 580
Mac
iMac, MacBook Pro, Mac mini
Mobile Phone
iOS
Hi there.
No one's laughing. (snip)
Well, I'm smiling at least: your catches of my errors worked just fine, and I've finally ready to settle down and start using this beast.

Deepest thanks for your help and courtesy!
 
Top