Contribute
Register

A Beginner's Guide to Creating a Custom USB SSDT

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
3,253
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
What does one do in this situation? I'm working on 10.13.6 with the beyond security updates? Thank you.
Hi there.

In your case, not as hard as it seems.

Open IORegistryExplorer and with USBInjectAll installed but no Port-Limit Removal Patch, it will probably list the first 15 ports. HS01 to HS14 and USR01, or something similar. I would need to check your IOREG output to know for sure.

While your X79 chipset features the same 14-ports as a regular Intel Z-series does, it only has an EHC controller and not an XHC. The USB3 ports are instead controlled by a separate ASMedia chipset. These are not a part of the 15-port limit and not easily configurable. Hopefully they work okay. They probably appear on the PR or RP section of the IOReg tree.

Okay, so basically ignore the 4x back-panel USB3 ports and the 2x internal USB3 ports, do the plug-in test with a USB2 memory stick and map your regular USB2 ports. See what the total comes to. I reckon you have 14 in total - 6x back-panel and 8x internal.

If you are going to use an internal port for bluetooth then you need to map it so you can configure it as 'UsbConnector' value '255' etc. This can be done by using the case's front-panel port cable or by some other adapter etc.

With only 14x configurable ports you are under the limit anyway :thumbup:
 
Last edited:
Joined
Mar 3, 2014
Messages
665
Motherboard
Gigabyte Z390 I AORUS PRO WIFI
CPU
i9-9900K
Graphics
RX 580
Mac
MacBook Air
Classic Mac
Power Mac
Having used RehabMan's original USB port selection guides in the past for my earlier Hackintoshes, and after reading this excellent guide, I wondered if we might expect something similar covering a more general version of MacMan's "kextless" technique for selecting the USB ports. I have found his method to work fine on my "Mini-ITX 4" (config at left under my avatar). Any possibility of that happening?
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
3,253
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Having used RehabMan's original USB port selection guides in the past for my earlier Hackintoshes, and after reading this excellent guide, I wondered if we might expect something similar covering a more general version of MacMan's "kextless" technique for selecting the USB ports. I have found his method to work fine on my "Mini-ITX 4" (config at left under my avatar). Any possibility of that happening?
Yes indeed. In fact work has been going on behind the scenes to do just that. It's not easy though and just goes to show why @RehabMan 's original idea was so good.

:)
 
Last edited:
Joined
May 15, 2013
Messages
56
Motherboard
Asus Sabertooth X79
CPU
Xeon E5 1650 v2
Graphics
GT 740
In your case, not as hard as it seems.
Thank you. No bluetooth... so I expect it will should go smoother than I expected, your guide is very clear.

Another question: I'm doing the same on my GA-H270-Gaming 3 with 10.13.4. I only see XHC, HS 01-14 & USR1.

Should I be seeing SSxx?
Thank you.
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
3,253
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Thank you. No bluetooth... so I expect it will should go smoother than I expected, your guide is very clear.

Another question: I'm doing the same on my GA-H270-Gaming 3 with 10.13.4. I only see XHC, HS 01-14 & USR1.

Should I be seeing SSxx?
Thank you.
For the H270 you do need a port-limit removal patch to see the complete set of ports. With that in place you will probably see HS01 to HS14, SS01 to SS10 and USR1 , USR2.

Those are all on the XHC controller BUT you also have an add-on ASMedia controller for the Red USB-A and USB-C USB3.1 Gen 2 ports, so as previously they don't count in the 15 and are not easy to configure.

There is a port-limit removal patch for 10.13.4, both in MultiBeast and Clover Configurator. :thumbup:
 
Last edited:
Joined
May 15, 2013
Messages
56
Motherboard
Asus Sabertooth X79
CPU
Xeon E5 1650 v2
Graphics
GT 740
Hi there.
In your case, not as hard as it seems.
Open IORegistryExplorer and with USBInjectAll installed but no Port-Limit Removal Patch, it will probably list the first 15 ports. HS01 to HS14 and USR01, or something similar. I would need to check your IOREG output to know for sure....
1) I created an SSDT_USB.aml for "8086_1d26" (HP11,12,13,14,15,16,17,18) and "8086_1d2d" (HP21,22) per instructions, and the IOReg always displays the full HPxx range (11-18 & 21-28) 16 ports. I couldn't get it to only show the 10 ports in the SSDT.

2) Next I took RehabMan’s SSDT-UIAC-ALL.dsl, deleted all but HUB1 & HUB2 changed HSxx to HP11,12,13,14,15,16,17,18,21,22. (screenshot of IOReg attached.) And now IOReg shows just the correct USB 2 ports.

I didn’t put in PCI Vendor and PCI Device IDs. Also in IOReg I see 24 PRxx ports? (See screenshot) Is this any problem? If it works should I just be leave it? Or is this an unstable configuration?
 

Attachments

Feartech

Moderator
Joined
Aug 3, 2013
Messages
14,452
Motherboard
Asus N752VX-OpenCore
CPU
i7-6700HQ / HM170
Graphics
HD 530 1920 x 1080
Mac
iMac
Mobile Phone
iOS
1) I created an SSDT_USB.aml for "8086_1d26" (HP11,12,13,14,15,16,17,18) and "8086_1d2d" (HP21,22) per instructions, and the IOReg always displays the full HPxx range (11-18 & 21-28) 16 ports. I couldn't get it to only show the 10 ports in the SSDT.

2) Next I took RehabMan’s SSDT-UIAC-ALL.dsl, deleted all but HUB1 & HUB2 changed HSxx to HP11,12,13,14,15,16,17,18,21,22. (screenshot of IOReg attached.) And now IOReg shows just the correct USB 2 ports.

I didn’t put in PCI Vendor and PCI Device IDs. Also in IOReg I see 24 PRxx ports? (See screenshot) Is this any problem? If it works should I just be leave it? Or is this an unstable configuration?
Use this tool and upload your problem reporting files:
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
3,253
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
1) I created an SSDT_USB.aml for "8086_1d26" (HP11,12,13,14,15,16,17,18) and "8086_1d2d" (HP21,22) per instructions, and the IOReg always displays the full HPxx range (11-18 & 21-28) 16 ports. I couldn't get it to only show the 10 ports in the SSDT.

2) Next I took RehabMan’s SSDT-UIAC-ALL.dsl, deleted all but HUB1 & HUB2 changed HSxx to HP11,12,13,14,15,16,17,18,21,22. (screenshot of IOReg attached.) And now IOReg shows just the correct USB 2 ports.

I didn’t put in PCI Vendor and PCI Device IDs. Also in IOReg I see 24 PRxx ports? (See screenshot) Is this any problem? If it works should I just be leave it? Or is this an unstable configuration?
Okay, remember I'm not supporting @RehabMan 's excellent guide here. That masterpiece covers a lot more ground and many more eventualities. He's the expert. This is a Beginner's Guide so we (try to) keep things simple :thumbup:

Your Original Post was about getting the USB ports configured with no up-to-date port-limit removal patch for the Security Updates on High Sierra 10,13,6+. That can be done and in your case was easier than most because you only have 14-ports coming from the Intel controller that count here.

However to address your other problems:

1) Ports on 'Hubs' are hard to configure.

2) In your post 1) you *do* quote the correct Vendor/Device IDs but then later on you say - "I didn’t put in PCI Vendor and PCI Device IDs" ? I'm confused o_O

3) Screengrab 1 makes me suspect you chose the wrong section of @RehabMan 's SSDT template to use. Why not try my version for simplicity ? (actually originally from @ammulder :) )

3) Screengrab 2 only shows the EH02 node. There's EH01 too. Also these are HP** ports on a PR** hub... Did you by any chance use FakePCIID_XHCIMux.kext anywhere? GenericUSBXHCI ? That looks a bit skew.

4) You can always upload your SSDT template and your IOREG export if you would like. Any privacy concerns, I understand. Your call etc.

:)
 
Joined
May 15, 2013
Messages
56
Motherboard
Asus Sabertooth X79
CPU
Xeon E5 1650 v2
Graphics
GT 740
Okay, remember I'm not supporting @RehabMan 's excellent guide here. That masterpiece covers a lot more ground and many more eventualities. He's the expert. This is a Beginner's Guide so we (try to) keep things simple :thumbup:
....
Thank you. I'm sure I've been mixing methods. So rather than reply to your questions with uninformed responses, the attached zip should be more helpful for all of us. Thank you UtterDisbelief and Feartech!
 

Attachments

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
3,253
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Thank you. I'm sure I've been mixing methods. So rather than reply to your questions with uninformed responses, the attached zip should be more helpful for all of us. Thank you UtterDisbelief and Feartech!
Hi there.

Thanks for all the files/info. Very useful.

You haven't specified a particular problem you are trying to solve beyond your original post, so I'll just dive in ...:)

If you would like to 'go deeper' then experimenting is the way forward - remember to mitigate any data risks by backing-up everything. And don't experiment on a machine needed for work etc.

Okay ...

1) You have FakePCIID_XHCIMux and GenericUSBXHCI kexts installed, according to IOReg. What these do is shunt USB2 ports to EHC on an XHC controller and activate third-party USB chipsets, respectively. 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.

2) If you need USB3 ports then just remove FakePCIID_XHCIMux.kext. If you just want to go with 14-USB2 ports then remove GenericUSBXHCI.kext too.

3) Your SSDT needs the Device IDs to use the correct controller otherwise it doesn't know where to apply the patch.

4) In @RehabMan 's template you have used the first sections designated as "Hub1" & "Hub2" etc. I would NOT use this part, instead go down a little further until you see the line starting "8086..." because here you can input your Device IDs - 8086_1d26 & 8086_1d2d - and create two new sections.

Or use the simpler template here and build it as explained.

5) Check your IORegistryExplorer output again and see how things have changed :thumbup:
 
Top