Contribute
Register

A Beginner's Guide to Creating a Custom USB SSDT

Joined
May 15, 2013
Messages
56
Motherboard
Asus Sabertooth X79
CPU
Xeon E5 1650 v2
Graphics
GT 740
Given you have 14 USB2-ports available from the Intel chipset, to keep to the 15-port Apple-imposed limit AND have USB3 available you need to disable some of the 14 and activate the ASMedia ports. You use a port-limit removal patch to start with so you can see all ports, then remove it once the ports are configured.
Thank you for your help. One (mis)-understanding I had was the 15 port limit only applied to intel ports. The ongoing USB instability from 10.8 through 10.13.6 was the result. I'll post back after I make fixes. Thank you.
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
4,319
Motherboard
Gigabyte Z390M Gaming
CPU
i5-9600K
Graphics
RX 570
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Thank you for your help. One (mis)-understanding I had was the 15 port limit only applied to intel ports. The ongoing USB instability from 10.8 through 10.13.6 was the result. I'll post back after I make fixes. Thank you.
Yes indeed. The 15-port limit does only apply to Intel chipset ports.

One reason why I recommended removing those kexts was to "clear the decks" and see how things looked unmodified.

As I pointed out before the X79 chipset has 14x USB2 ports so there is no need to restrict them.

I was wrong to suggest you disable USB2 ports on the EHC controllers to make room for USB3. My bad.:oops: You will just not be able to configure the USB3 ports properly and they may be unreliable.

However those kexts move things around and your IOReg output reflects that.

:)
 
Joined
May 15, 2013
Messages
56
Motherboard
Asus Sabertooth X79
CPU
Xeon E5 1650 v2
Graphics
GT 740
However those kexts move things around and your IOReg output reflects that.

:)
I went back and just followed your guide. Thank you.

High Sierra on my Sabertooth x79 is working with all USB. IOReg shows the correct number of HPxx USB2 ports. I used uia_exclude to remove the extra HPxx ports. The USB3 ASMedia ports are working. The EH01 & EH02 nodes show a bunch of PRxx entries. Will these affect my USB setup?

I've attached a set of problem reporting files. Do you see any issues now that USB is working. My past experience is that my USB was buggy... worked fine for awhile then my mouse or keyboard stopped working for a bit but always started after a short time. Or is the fact that it's working all that I need right now?

Again, thank you for your invaluable help.
 

Attachments

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
4,319
Motherboard
Gigabyte Z390M Gaming
CPU
i5-9600K
Graphics
RX 570
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
I went back and just followed your guide. Thank you.

High Sierra on my Sabertooth x79 is working with all USB. IOReg shows the correct number of HPxx USB2 ports. I used uia_exclude to remove the extra HPxx ports. The USB3 ASMedia ports are working. The EH01 & EH02 nodes show a bunch of PRxx entries. Will these affect my USB setup?

I've attached a set of problem reporting files. Do you see any issues now that USB is working. My past experience is that my USB was buggy... worked fine for awhile then my mouse or keyboard stopped working for a bit but always started after a short time. Or is the fact that it's working all that I need right now?

Again, thank you for your invaluable help.
Well done on getting to grips with the task at hand. This is a complex subject. :thumbup:

Okay ...

1) Your new SSDT-USB looks very good.

2) I notice that you've used the "uia_exclude" command-line to remove extra ports BUT they haven't been configured in your SSDT-USB, so they aren't there in the first place to exclude. I suspect if you remove the command-line nothing will change. (If it does then the SSDT is not working and something else is awry). In @RehabMan 's guide he configures all his ports - so well over 15 - and then uses "uia_exclude" to remove excess and get down to the magic 15. Makes it easier to chop and change ports around.

3) Your main EH01/EH02 nodes are the same as before - and look fine.

4) Removing GenericUSBXHCI has had the effect of disabling the ASMedia ports. There's no reason not to put it back into place now and have those USB3 ports available again.

5) As for reliability. As far as I can see your EHC ports should be fine. The ASMedia ones, less so as they are not configured.

6) As a side-note - Is Audio working okay?

:)
 
Joined
May 15, 2013
Messages
56
Motherboard
Asus Sabertooth X79
CPU
Xeon E5 1650 v2
Graphics
GT 740
Well done on getting to grips with the task at hand. This is a complex subject. :thumbup:

2) I notice that you've used the "uia_exclude" command-line to remove extra ports BUT they haven't been configured in your SSDT-USB, so they aren't there in the first place to exclude. I suspect if you remove the command-line nothing will change. (If it does then the SSDT is not working and something else is awry). In @RehabMan 's guide he configures all his ports - so well over 15 - and then uses "uia_exclude" to remove excess and get down to the magic 15. Makes it easier to chop and change ports around.

6) As a side-note - Is Audio working okay?

:)
If I remove the "uia_exclude" command-line the additional HPxx ports show up... a total of 16. The "uia_exclude" command was the only way I could get IOReg to display the ports I needed. So something else is awry. ?

The audio is not working. I had it working prior to this current clean reinstall of High Sierra. I'll tackle audio this weekend... thanks.
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
4,319
Motherboard
Gigabyte Z390M Gaming
CPU
i5-9600K
Graphics
RX 570
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
If I remove the "uia_exclude" command-line the additional HPxx ports show up... a total of 16. The "uia_exclude" command was the only way I could get IOReg to display the ports I needed. So something else is awry. ?

The audio is not working. I had it working prior to this current clean reinstall of High Sierra. I'll tackle audio this weekend... thanks.
Okay,

1) For the extra HP ports - show me ...

When I check both the IOReg's you posted, one with and one without the command-line, I see the same in both examples:

HP.png


... Post an IOReg that shows the extras:thumbup:

2) Re. the Audio - thought so. No HDEF. However, one thing at a time. That can be addressed later on etc.

:)
 
Last edited:
Joined
May 15, 2013
Messages
56
Motherboard
Asus Sabertooth X79
CPU
Xeon E5 1650 v2
Graphics
GT 740

Attachments

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
4,319
Motherboard
Gigabyte Z390M Gaming
CPU
i5-9600K
Graphics
RX 570
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Here's the IOReg without the "uia_exclude" command...HP11-18, HP21-28
Thanks.

Okay, so as the two previous IOReg's didn't show the extras - one with and one without the uia_excludes - there must be something different about your configuration now, with this one.

Hopefully you can see where I'm coming from with this. There is something causing the effect so we need to drill down to it, if we are going to address it. (If you want to).

Here's an idea that's easy to do:

Load Hackintool and check you have allocated the correct Product/Device ID to each batch of EH01/EH02 ports.

:)
 
Joined
May 15, 2013
Messages
56
Motherboard
Asus Sabertooth X79
CPU
Xeon E5 1650 v2
Graphics
GT 740
Okay, so as the two previous IOReg's didn't show the extras - one with and one without the uia_excludes - there must be something different about your configuration now, with this one.

Load Hackintool and check you have allocated the correct Product/Device ID to each batch of EH01/EH02 ports.

:)
I have no idea what I had set for the very first IOReg... I was trying all kinds of things. But for the 2nd IOReg I did use the "uia_exclude" command, and for the last IOReg I only removed the "uia_exclude" command. The Product/Device ID's seem correct. I wasn't familiar with hackintool.. thanks
 

Attachments

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
4,319
Motherboard
Gigabyte Z390M Gaming
CPU
i5-9600K
Graphics
RX 570
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
I have no idea what I had set for the very first IOReg... I was trying all kinds of things. But for the 2nd IOReg I did use the "uia_exclude" command, and for the last IOReg I only removed the "uia_exclude" command. The Product/Device ID's seem correct. I wasn't familiar with hackintool.. thanks
Okay, understood :thumbup:

Yes, @headkaze 's Hackintool is a very useful utility. You can even use it's two built-in methods to configure your motherboard USB ports, if you'd like. Again, that's a different developer's methods so they will support you.

Basically you can either:

1) Create a USBPorts.kext to replace USBInjectAll and the SSDTs
or
2) Create a pair of SSDTs that do work with, and need, USBInjectAll.

It's much more 'visual' method and smoothes the rough edges off doing the job completely manually.

:)
 
Top