Contribute
Register

A Beginner's Guide to Creating a Custom USB SSDT

@UtterDisbelief FWIW, disabling them (and the Asmedia USB3 controller) in BIOS hasn't consistently worked in the past.

Went ahead and disabled USB3_E01 - USB3_E10 individually in the BIOS. I also disabled the ASMedia USB3 controller. There's no trace of them in IORegistryExplorer now. Nothing happens when I try to use them.
View attachment 400771
The RP07 entry in the PCI bus is also gone which is good. But entries for HS05 and HS07-10 are still there blocking out SSP2-4. I must have screwed up my SSDT.
 
@UtterDisbelief So everything looked good for one or two restarts but then it wasn't. I've redone mySSDT.

I started with this:

View attachment 400763

In my SSDT, I omitted HS05, HS07-10, SSP5 & SSP6. I added the new SSDT to the Patched folder, kept USBInjectAll.kext & XHCI-x99-injector.kext. Leading to this:

View attachment 400764

The ports that I thought I had disabled are still there. So I disabled PLP which got me here:
View attachment 400766
The Asmedia ports when you expand them look like sub-hubs, as in the first screenshot. Four of them get kicked over to RP. I'm guessing that these four are the ones that turn up in RP on the AppleUSBXHCIPCI bus.

View attachment 400767

I have a patch in my config file, renaming XHCI to XHC_. Do I also need one to rename SSP_ to SS__? On my MBP, I'm seeing XHC1 and SSP1, so am not convinced it should matter.

Any thoughts? Right now, just want to get rid of the Asmedia ports. FWIW, disabling them (and the Asmedia USB3 controller) in BIOS hasn't consistently worked in the past.

Okay,

1) Check your Device/ProductID in the SSDT. As far as I'm aware an x99 = 8086:8d31
The one in your template is for 200/300 series.

2) You also have the XHC-x99-injector.kext but I am not sure you need that as I believe it may have direct support using USBInjectAll. Instead you could try XHCI-unsupported.kext for your chipset.

Certainly the mix of controllers and ports is not straight-forward in IOReg. It may be worth exploring using the EHCI controller for the USB 2 ports but that is probably beyond a Beginner's Guide right now.

:)
 
1) Check your Device/ProductID in the SSDT. As far as I'm aware an x99 = 8086:8d31
The one in your template is for 200/300 series.

2) You also have the XHC-x99-injector.kext but I am not sure you need that as I believe it may have direct support using USBInjectAll. Instead you could try XHCI-unsupported.kext for your chipset.

@UtterDisbelief, you totally nailed it. Here's my IOReg using the SSDT without any PLP's.


400930


XHC is perfect and no need for the XHC-x99-injector.kext. I'm even left with two usable ASmedia ports on the rear panel which I'm happy to keep. I can always disable them individually, if necessary. Interestingly, this brings me up to 16 ports without the PLP's. Just as an fyi, here are expanded views of USB2 and USB3 devices on them.

400933
400934


I can't thank you enough for your guide and follow-up help. You're a great teacher – this actually makes sense!

Next up, managing to boot with only one accelerated GPU...
 
Last edited:
@UtterDisbelief, you totally nailed it. Here's my IOReg using the SSDT without any PLP's.


View attachment 400930

XHC is perfect and no need for the XHC-x99-injector.kext. I'm even left with two usable ASmedia ports on the rear panel which I'm happy to keep. I can always disable them individually, if necessary. Interestingly, this brings me up to 16 ports without the PLP's. Just as an fyi, here are expanded views of USB2 and USB3 devices on them.

View attachment 400933View attachment 400934

I can't thank you enough for your guide and follow-up help. You're a great teacher – this actually makes sense!

Next up, managing to boot with only one accelerated GPU...

Thanks for the feedback, it is appreciated. Glad the guide was of some use :thumbup:
 
This is the back panel of my GA-Z170MX-gaming-5 motherboard. The two ports near the top are tied to HS13@14d00000 and HS14@14e00000 and are working well as USB 2 ports. The two ports near the bottom, just above the audio jacks, can see USB 3 drives when they are plugged in but are not able to mount volumes, nor are they able to see any USB 2 devices. These ports are tied to SS05 and SS06 respectively. The 3.1 port also sees only USB devices does not see any USB device. The 3.1 port also sees only USB 3 devices but does not mount volumes and does not recognize any USB 2 device. The ports all recognized USB devices when I started this process. I think one of my problems is that I do not have any USB 2 Ports on the XHC controller matched up with the physical ports for USB 3 on the back panel. I think that's what I need to learn to do next. Anybody have any suggestions?

401030
 
Last edited:
This is the back panel of my GA-Z170MX-gaming-5 motherboard. The two ports near the top are tied to HS13@14d00000 and HS14@14e00000 and are working well as USB 2 ports. The two ports near the bottom, just above the audio jacks, can see USB 3 drives when they are plugged in but are not able to mount volumes, nor are they able to see any USB 2 devices. These ports are tied to SS05 and SS06 respectively. The 3.1 port also sees only USB devices does not see any USB device. The 3.1 port also sees only USB 3 devices but does not mount volumes and does not recognize any USB 2 device. The ports all recognized USB devices when I started this process. I think one of my problems is that I do not have any USB 2 Ports on the XHC controller matched up with the physical ports for USB 3 on the back panel. I think that's what I need to learn to do next. Anybody have any suggestions?

View attachment 401030

Hi there.

Upload the SSDT_USB template you created.

:)
 
Just wanted to ping you and let you know that the Sourceforge link for MaciASL only has the old iASL versions. To get the 6.x version I had to specifically get the latest Rehabman one off of BitBucket.

Hello,

Thank you for the feedback :thumbup:

That's fine. The earlier version should still work. The Compiler Option field just looks slightly different and you select 5.1 instead of 6.2a etc.

I have updated the main article to highlight this.

:)
 
Back
Top