Contribute
Register

A Beginner's Guide to Creating a Custom USB SSDT

I am trying to setup USB on my ASROCK Z390M ITX/AC board on 10.14.5

My ssdt does not appear to have any effect. In my SSDT I have selected 14 ports but they are not being respected, instead going for the first 15... Any hints on what I am missing?

View attachment 405774

Edit:
For reference, I need the following ports (HS14 is bluetooth and SS04 is type-c. HS09 and HS10 are USB2 ports):
HS02
HS03
HS04
HS07
HS08
HS09
HS10
HS14
SS01
SS02
SS03
SS04
SS07
SS08

Hello.

Your screen grab seems to imply that the patch isn't working, for sure.

A few points to note -

1) Personally I don't like opening unknown zip files. This is only my preference, but you can understand why, I'm sure. The SSDT is fine :thumbup:

2) I checked with the ASRock website for your motherboard but they don't specify if they use an extra USB chipset and whether or not they use a USB 2.0 hub. This happens a lot with the latest motherboards. So by default I assume all is catered for by the Z390 chipset alone.

3) So with USBInjectAll and the Port-Limit Removal Patch in place do you see all 26-ports, or at least a number in the 20's ? This would confirm that there is just a mistake somewhere in the SSDT we haven't yet spotted etc.

4) You have another post here about 10.14.5 restarts after an hour of running. Was this USB problem before or since the upgrade?

:)
 
Last edited:
Hello.

Your screen grab seems to imply that the patch isn't working, for sure.

A few points to note -

1) Personally I don't like opening unknown zip files. This is only my preference, but you can understand why, I'm sure. The SSDT is fine :thumbup:

2) I checked with the ASRock website for your motherboard but they don't specify if they use an extra USB chipset and whether or not they use a USB 2.0 hub. This happens a lot with the latest motherboards. So by default I assume all is catered for by the Z390 chipset alone.

3) So with USBInjectAll and the Port-Limit Removal Patch in place do you see all 26-ports, or at least a number in the 20's ? This would confirm that there is just a mistake somewhere in the SSDT we haven't yet spotted etc.

4) You have another post here about 10.14.5 restarts after an hour of running. Was this USB problem before or since the upgrade?

:)

Thanks for the detailed reply.

Turned out to be an issue with USBInjectAll.kext as it whitelists specific Mac identifiers and had not been updated to include iMac19,2. I was able to add what I guessed as appropriate references and it worked as expected.
 
Turned out to be an issue with USBInjectAll.kext as it whitelists specific Mac identifiers and had not been updated to include iMac19,2. I was able to add what I guessed as appropriate references and it worked as expected.

What did you do?

I updated to 10.14.5 and changed to iMac19,1 as using Z390 / i5 9600K. USB 3 ports stopped working with the patch I created using (MacMini8,1) and trying to diagnose the issue. So far believe that the USB controller is now supported natively by macOS instead of using XCHIUnsupported.kext which I have removed from EFI

Host Controller Driver: AppleIntelCNLUSBXHCI
PCI Device ID: 0xa36d
PCI Revision ID: 0x0010
PCI Vendor ID: 0x8086
 
go to amazon and search for FL11000. that is a fresco logic chipset, and it is natively supported by OS X. there are several manufacturers using that chip in their usb3 PCI-e cards.

Thanks for the tip! I couldn't find an exact match for NFL 11000, but I did find other fresco logic cards that look like they might work. Like this one. And I would order it too, except that I've already ordered the Gigabyte Alpine Ridge thunderbolt three card.
 
Last edited:
my single USB C port is displayed as usb connector 0x3 in IORegistry and for some reason any device I plug in there
shows up in HS07 (USB3 device with USB-C adapter).
isn't it supposed to show up as SS07? or is the adapter dropping the speed?
Im not sure the adapter is usb 3.0... but then again... what kind of usb-c adapter is not 3.0 at least?
And do I write this port as "UsbConnector", 10?

Also if HS01 and HS02 are for some reason internal headers on my motherboard (z170n-wifi) do I just not include them in the SSDT and start my list from the first one I'm intending to use? because the first one is HS03.

I added the .dsl file, can you please check it if I got everything correctly?
basically I'm only using the back ports on my motherboard including the wifi/bluetooth module
I only have 11 ports basically, is that ok in terms of the 15 port limit? and do I need to keep usbinjectall.kext and the port limit patch or do I need to remove them after the SSDT is made?

Hi there,

According to Gigabyte your motherboard has 6x USB3.0/2.0 ports and 2x USB2.0/1.0 ports. Plus the USB-C port. So if we double-up the USB 3.0 ports that is 14-ports, then add the USB 2.0 ports, we get a total of 16 possible configs. I agree its a good idea to just configure the USB-C as USB3.0. They do work with USB2.0 but it's unlikely that you will be plugging in USB 2.0 devices there. That gets you neatly down to the 15 limit.

1) With a custom SSDT of course you can configure as many as you like, missing out ones you can do without, but remember you need to use USBInjectAll.kext to open up all the SS ports beyond HS14. Without it you will only have the 'first' 15 available - HS01 to HS14 + SS01 usually. What's more to actually see them, you need the correct port-limit removal patch in place.

2) A USB-C connector can be "UsbConnector", 10 or "UsbConnector", 9 depending on whether or not turning the plug over changes the port address it is attached to. As you point out there's no point configuring HS07, in your example, if it is USB2 on the USB-C port if you are not going to use it - unless you choose to.

3) Once the SSDT is created you can remove the port-limit patch but you should keep USBInjectAll.kext.

4) As far as I can tell at quick glance, your SSDT template looks fine.

:)
 
Hi all, have problem that config doesn't work, where i have missing something or what i doing wrong? OS 10.13.6 (17G7024) 09hs and 10hs is front panel.
 

Attachments

  • Screen Shot 2019-05-18 at 01.49.30.png
    Screen Shot 2019-05-18 at 01.49.30.png
    456.8 KB · Views: 62
  • 20150922151500_src.png
    20150922151500_src.png
    211.5 KB · Views: 61
  • SSDT_USB.aml
    574 bytes · Views: 73
Last edited:
Thanks for the tip! I couldn't find an exact match for NFL 11000, but I did find other fresco logic cards that look like they might work. Like this one. And I would order it too, except that I've already ordered the Gigabyte Alpine Ridge thunderbolt three card.

Stymied again! The Alpine Ridge card requires installation of a Windows driver. I have Windows 7 on hard drive. I have never tested it with my current setup. I wonder if I won't have to create another disk with Windows 10 to get the Alpine Ridge card working. In the meantime I'm going to try the Inateck USB three add-on card and see if that is plug-and-play, as some have said.
 
Hi all, have problem that config doesn't work, where i have missing something or what i doing wrong? OS 10.13.6 (17G7024) 09hs and 10hs is front panel.

Hello.

Check the "port count" in your SSDT.

You have posted the compiled .aml rather than the template .dsl, but it looks as though "port-count" is set at "0x00" instead of the actual highest port of "0x16".

Also remember when you use the SSDT you no longer need the port-limit removal patch.

:)
 
Back
Top