Contribute
Register

Native USB 2.0 / USB 3.0 on Skylake

Status
Not open for further replies.
I've finished my port map but my USB 3.1 doesn't list under the conventional SS or HS branches ...instead under RP05@1C,4> PSX@0 > pci-bridge@2

I installed the Thunderbolt drivers and firmware in Win10. So, would this mean that this port is not part of the regular USB setup? And it does not count against the 15 port limit?
 
I've finished my port map but my USB 3.1 doesn't list under the conventional SS or HS branches ...instead under RP05@1C,4> PSX@0 > pci-bridge@2

I installed the Thunderbolt drivers and firmware in Win10. So, would this mean that this port is not part of the regular USB setup? And it does not count against the 15 port limit?
Those are the USB ports of the Thunderbolt controller. It's a different controller than the XHC. The Thunderbolt controller has less than 16 USB ports so there's no problem there. But it might not work at 5 Gbps or 10 Gbps (what OS are you running?). It should at least work at USB 2.0 speeds (480 Mbps). If it works at 5 or 10 Gbps, then let us know. I'm using El Capitan which doesn't support 5 Gbps or 10 Gbps for the USB ports on the Thunderbolt controller. There's probably a way to patch the driver so it does work at 5Gbps or 10 Gbps, but I have plenty of other USB 3 ports to use so I haven't tried.
 
Thanks. So USBInjectAll would not apply to the Thunderbolt controller, correct? I'll be removing the InjectAll shortly and want to make sure those ports stay active.
 
Thanks. So USBInjectAll would not apply to the Thunderbolt controller, correct? I'll be removing the InjectAll shortly and want to make sure those ports stay active.

USBInjectAll.kext does not attach to the device you mention in #86.
If I had that hardware, I'd probably add support for it in USBInjectAll.kext, but...
 
USBInjectAll.kext does not attach to the device you mention in #86.
If I had that hardware, I'd probably add support for it in USBInjectAll.kext, but...

Thanks. You guides are fantastic and very detailed, I appreciate your hard work. I mapped the ports and everything is working. USB 3.1 ports appear to work as well.

You mentioned it's possible to block a port on a Hub by creating an injector for it. Been searching for more info but not finding much. Any suggestions? I'd like to plug my Corsair H80i back in (it's attached to an internal hub) but will need to exclude it's USB port while running OSX otherwise the system won't sleep. But if it's a complex process, I'll just pull it out.

Thanks again for you help. Appreciate the advice.
 
You mentioned it's possible to block a port on a Hub by creating an injector for it. Been searching for more info but not finding much. Any suggestions?

Look at USBXHCI_4x40s.kext in my ProBook repo (see Projects link in signature, it is in the 'kexts' folder).
It is just a codeless "injector" kext (only an Info.plist).
But it does have some hub port content (MacBookPro9,1-EH02-hub, for example). Hub injectors match on locationId, model, and the IOProviderClass, all of which you can find in your ioreg.
Then it is just a matter of putting the ports you want into 'ports' within IOProviderMergeProperties.
 
Look at USBXHCI_4x40s.kext in my ProBook repo (see Projects link in signature, it is in the 'kexts' folder).
It is just a codeless "injector" kext (only an Info.plist).
But it does have some hub port content (MacBookPro9,1-EH02-hub, for example). Hub injectors match on locationId, model, and the IOProviderClass, all of which you can find in your ioreg.
Then it is just a matter of putting the ports you want into 'ports' within IOProviderMergeProperties.

Great! Will give it a shot. Thanks!
 
I just ran the script and all my usb 3.0 ports works perfectly now, however I now have a wake problem after sleeping for too long. I do have a native bluetooth card attached to a usb 2.0 header on my motherboard that could be causing the issue? Sleep wake was working pretty well before I ran the script so I'm guessing it has to do with the USB ports.

Any suggestions?

I attached my ioreg file below.
 

Attachments

  • IOREG.ioreg
    5.9 MB · Views: 141
Hi, is it possible to create a script like this for X99 boards? I have a Gigabyte X99 UD4, and my USB 3.0 ports are numbered SSP* instead of SS0*. It would be great to have a nifty script like this to enable proper USB port mapping for noobs like me. Thanks in advance.
 
Those are the USB ports of the Thunderbolt controller. It's a different controller than the XHC. The Thunderbolt controller has less than 16 USB ports so there's no problem there. But it might not work at 5 Gbps or 10 Gbps (what OS are you running?). It should at least work at USB 2.0 speeds (480 Mbps). If it works at 5 or 10 Gbps, then let us know. I'm using El Capitan which doesn't support 5 Gbps or 10 Gbps for the USB ports on the Thunderbolt controller. There's probably a way to patch the driver so it does work at 5Gbps or 10 Gbps, but I have plenty of other USB 3 ports to use so I haven't tried.
To answer my question, I've updated to macOS Sierra which allows USB 3.0 and USB 3.1 devices to be plugged into the USB ports of the Thunderbolt 3 controller (one USB-A and one USB-C). The System Information app correctly reports the bus as "USB 3.1 Bus". It also reports "USB 3.1 Bus" for a ASMedia 1142 controller on a PCIe card I installed. Neither of them would work in El Capitan.

I also have an OWC Thunderbolt 2 Dock which uses a Fresco Logic Device 1100 USB 3.0 controller. The System Information app reports that bus as "USB 3.0 Bus". The XHC of the motherboard is also reported as "USB 3.0 Bus". Both of those work in El Capitan.

All the devices say "Up to 5 Gb/sec". I don't have any 10 Gb/sec devices yet.

Anyway, since they work in Sierra, there's little reason to try to make them work in El Capitan.
 
Status
Not open for further replies.
Back
Top