Contribute
Register

The New Beginner's Guide to USB Port Configuration

may I ask: if I do not ever use Bluetooth or wifi, can I disable that port (HS14, in my case) to help reach my limit?

Yes you can. It is often the problem of non-working Bluetooth that can be traced back to an unconfigured motherboard header.

:)
 
Hi
I have tried to follow KGP guide for specific board kext creation / and Rehab Custom SSDT for USBInjectAll.kext specific to my board but both of these guide requires IOREG to come up with XHCI@14 USB port report , which has failed so far as you can see from attached photos.
I am using USBInjectAll.kext on EFI folder on clover EFI/Clover/kexts/other , and also on Library/Extension of main drive.
I have arrived at this thread hoping to get a help, I followed your steps in the beginning until IOREG which show no ports under XHCI@14

Note: I have installed macOS Catalina using USB 3.1 Gen 2 Type A and currently using this port with a splitter in order to use mouse and keyboard

any advice please

many thanks

Hi there.

Yes, your IOReg file shows that although the XHCI controller is present, we can see the DeviceID, it has not been activated. Now this might be due to the many SSDT patches you have in place. The X299 seems to need quite a lot. I'm guessing the BIOS is set-up to enable XHC Handoff.

Check what kexts you have in Library/Extensions. I can see you have GenericUSBXHCI.kext in there and would recommend removing it, rebuilding kext-caches and testing again. Although you do have an extra, ASMedia USB controller in the mix, the kext is too old now to work reliably, if at all. There may be other USB-related kexts in there too. Let us know.

Sorry I can't advise on the X299 SSDT*.aml patches. I have no experience of the architecture.

:)
 
There is one topic you did not cover! Thats if the same port can use both, USB2 and USB3 devices, how to configure system so you still can use both devices not loosing the speed for USB3 devices!

In order to use same physical port as USB2 and USB3 you need to have HSxx and SSxx (where xx is port number , for example HS05 and SS05). When you plug USB2 then HS05 is used, when you plug USB3 then SS05 is used). In other words one physical port count as 2. That's why we run out of 15 port limit very fast on modern motherboards.
 
The first one - disconnecting - sounds like the port is not delivering USB3 power. Did you also install the SSDT-EC.aml ? Another thing to consider is that because it's a front case port maybe the wire used from motherboard to port is not up to the job? Only a possibility, not likely I guess.


The second, mouse button sticking, is very unusual. I was going to suggest that these new "gamer" style mice have more buttons than Apple knows how to deal with BUT as you say this happens with a normal, generic mouse too, that has me stumped. Perhaps check the port you are using. If possible use USB2.0 and perhaps a back-panel port with an extender so you can test other ports?


:)


Thanks for reply. I've done more research and it seems my current port configuration is spot on. First problem with disconnecting - turn's out to be hardware related as this front case port doesn't work properly on windows too (cable problem i'm trying to solve).


Second issue with mouse turn's out to be USB Overdrive software related.
There is one topic you did not cover! Thats if the same port can use both, USB2 and USB3 devices, how to configure system so you still can use both devices not loosing the speed for USB3 devices!


In order to use same physical port as USB2 and USB3 you need to have HSxx and SSxx (where xx is port number , for example HS05 and SS05). When you plug USB2 then HS05 is used, when you plug USB3 then SS05 is used). In other words one physical port count as 2. That's why we run out of 15 port limit very fast on modern motherboards.
 
As per your last paragraph - yes, of course. There is no need to go further if you are happy you have all the ports you need working correctly. :thumbup:

As you have discovered, sometimes things are not as straightforward as we would like them to be. This is because we are expecting macOS to work with hardware it knows nothing about.
Hi, I'm back with a clean Catalina install. Everything seems working good except I tried to plug my iPad Pro and it didn't work. It keeps appearing and disappearing and makes charging sound. When I first plug it in, it waits 2-3 seconds and starts charging then immediately stops and this loop lasts until I unplug it. But my iPhone, on the other hand works fine. My iPad before SSDT-EC.aml file on Mojave, just appears as plugged in but with a notice not charging. I could start backups, sync etc without any issues. Then with SSDT-EC.aml file in placed, It's both charging and syncing without any issues. It doesn't work with Catalina for some reason. I can't try it without SSDT-EC.aml file on Catalina because Catalina doesn't boot without it, as you know. So, what do you suggest?

There is also a slight change on my ports with Catalina though. On Mojave, I had
PR01 (USB2, IOUSBHostDevice) [Always active, Green on Hackintool]
PR11 (Internal)
PR21 (Internal)

Now on Catalina
PR01 (USB2, IOUSBHostDevice) [Always active, Green on Hackintool] {Type EH02}
PR12 (Internal) {Type EH02}

Should I delete PR12 and have total 15 ports? I have 16 with it but everything was working fine on Mojave.

Also, I haven't touched Connectors and all of them, HSs and SSs are shown as USB3 except PR ones (PR01 USB2 and PR12 Internal) . Is there any difference changing internal ones as internal from Hackintool? HS07-10 and SS05-06 are internal, I already disabled SS05-06 to stay within the 15 limit, I can only change HS port's connectors as internal. Is it necessary or makes any difference?

Just to wrap-up, those PR ports are either the exposed EHCI controller or they are ports which have been re-directed by a kext or some ACPI patch.
My ACPI config:
Fixes:
AddMCHC
FixHPET
FixIPIC
FixRTC
FixShutdown
FixTMR

Patches:
EHC1 to EH01
EHC2 to EH02
XHCI to XHC
XHC1 to XHC
SAT0 to SATA

Do you think any one of them is responsible PR redirection since I don't have any kext to do such redirection?

Thanks!
 
Hi, I'm back with a clean Catalina install. Everything seems working good except I tried to plug my iPad Pro and it didn't work. It keeps appearing and disappearing and makes charging sound. When I first plug it in, it waits 2-3 seconds and starts charging then immediately stops and this loop lasts until I unplug it. But my iPhone, on the other hand works fine. My iPad before SSDT-EC.aml file on Mojave, just appears as plugged in but with a notice not charging. I could start backups, sync etc without any issues. Then with SSDT-EC.aml file in placed, It's both charging and syncing without any issues. It doesn't work with Catalina for some reason. I can't try it without SSDT-EC.aml file on Catalina because Catalina doesn't boot without it, as you know. So, what do you suggest?

There is also a slight change on my ports with Catalina though. On Mojave, I had
PR01 (USB2, IOUSBHostDevice) [Always active, Green on Hackintool]
PR11 (Internal)
PR21 (Internal)

Now on Catalina
PR01 (USB2, IOUSBHostDevice) [Always active, Green on Hackintool] {Type EH02}
PR12 (Internal) {Type EH02}

Should I delete PR12 and have total 15 ports? I have 16 with it but everything was working fine on Mojave.

Also, I haven't touched Connectors and all of them, HSs and SSs are shown as USB3 except PR ones (PR01 USB2 and PR12 Internal) . Is there any difference changing internal ones as internal from Hackintool? HS07-10 and SS05-06 are internal, I already disabled SS05-06 to stay within the 15 limit, I can only change HS port's connectors as internal. Is it necessary or makes any difference?


My ACPI config:
Fixes:
AddMCHC
FixHPET
FixIPIC
FixRTC
FixShutdown
FixTMR

Patches:
EHC1 to EH01
EHC2 to EH02
XHCI to XHC
XHC1 to XHC
SAT0 to SATA

Do you think any one of them is responsible PR redirection since I don't have any kext to do such redirection?

Thanks!

Hi there.

Okay, well ...

The "PR" ports are EHC and because the controllers are active they show up in IOReg. Previously you had ports PR01, PR11, PR12, and PR21 showing.

Remove GenericUSBXHCI.kext if you have it installed and rebuild your kextcaches. Then re-check. although it should not be used with Catalina, Mojave or even High Sierra.

The iPad problem is USB power-delivery, but that is way beoynd a beginner's guide. @RehabMan wrote the definitive article on how to configure this.

UsbConnector types do need to be set correctly or the ports being used will not deliver power correctly. So any physical EHC/USB2 ports should show as type "0", any physical XHC, USB3 ports should be type "3", and any internal headers should show as "255" or "0xff". A physical USB3 port can act as both USB3 or USB2 but still has the extra USB3 contacts in it.

I can't see the whole story without looking at the IOReg export file (not just screen-grabs etc), but basically you need to know which ports on your motherboard are USB3 and which USB2. Also, those two red USB ports under the PS/2 port, are they special clean ones for audio or are they for extra-power delivery? The MSI web-site doesn't tell me.

:)
 
Last edited:
Hey UtterDisbelief! I wondered if I might pick your brain for a question I have -

My motherboard has 15 total ports on the Intel XHCI controller, and 4 on an ASMedia controller. I also have 4 more ports on a PCIe USB card, also controlled by an ASMedia 1142 controller.

If I have only 15 ports to begin with on the main controller, do I even need to configure my ports? I’m currently using the USBInjectall kext as I have for years...

The other option is, I can disable individual ports in BIOS, to bring the complete total from 23 down to a total of 15.

What are your thoughts?

Also; since the ASMedia ports can’t be configured (but they do work) would it be best stability-wise to disable them? Or are they fine to use?

Sorry for throwing so much at you! Really appreciate the help and the guide :)
 
HI

I have been having problems getting USB ports to work.
I have installed macOS Catalina using USB 3.1 Gen 2 Type A and currently using this port with a splitter in order to use mouse and keyboard

I have slimmed down kexts , and SSDTs and tried your method but couldn't get any ports under XHCI@14
I have also tried to make a USB inject specific to my MB but again IOReg shows no ports under XHCI controller.

Asus Rog Omega latest BIOS has no option under USB configuration to enable XHC Handoff . There is an option of ( mouse and keyboard simulation - enable / disable ) I tired on both setting no luck

After refreshing BIOS and clean install , Hackintool can now pick up USB 3.1 gen2 ( although different USB controller ). However , XHCI still not activated and not showing ports as per IOReg

As it is new build , it is running Windows 10 Pro smoothly and all USB ports working there. So its not a hardware issue , I guess .

My BIOS setting is copy past of KGP guide

Any ideas of what to do next , please
 

Attachments

  • EFI.zip
    2.5 MB · Views: 57
  • IOReg .ioreg
    4.4 MB · Views: 57
  • No USB ports.pdf
    410.5 KB · Views: 226
Hey UtterDisbelief! I wondered if I might pick your brain for a question I have -

My motherboard has 15 total ports on the Intel XHCI controller, and 4 on an ASMedia controller. I also have 4 more ports on a PCIe USB card, also controlled by an ASMedia 1142 controller.

If I have only 15 ports to begin with on the main controller, do I even need to configure my ports? I’m currently using the USBInjectall kext as I have for years...

The other option is, I can disable individual ports in BIOS, to bring the complete total from 23 down to a total of 15.

What are your thoughts?

Also; since the ASMedia ports can’t be configured (but they do work) would it be best stability-wise to disable them? Or are they fine to use?

Sorry for throwing so much at you! Really appreciate the help and the guide :)

Hello there.

Yes, you are correct, as you have only 15 XHC-ports (4x USB3 + 7x USB2 = 15) you do not need to disable any of them. However, it might be a good idea to check the "UsbConnector" type for each one so that macOS treats them appropriately. So for example, the 2x back-panel USB3 ports need their USB2 configuration set as "3" not "0". :thumbup:

For the ASMedia ports - onboard or on the PCI-e card - macOS treats them as the same external devices. As you would get if you plugged that PCI-e card into a real Mac Pro for instance. So they work, sometimes with the wrong power settings because there are no special drivers included, but for most jobs they are fine. I would leave them alone and use them only when you really need to.

:)
 
HI

I have been having problems getting USB ports to work.
I have installed macOS Catalina using USB 3.1 Gen 2 Type A and currently using this port with a splitter in order to use mouse and keyboard

I have slimmed down kexts , and SSDTs and tried your method but couldn't get any ports under XHCI@14
I have also tried to make a USB inject specific to my MB but again IOReg shows no ports under XHCI controller.

Asus Rog Omega latest BIOS has no option under USB configuration to enable XHC Handoff . There is an option of ( mouse and keyboard simulation - enable / disable ) I tired on both setting no luck

After refreshing BIOS and clean install , Hackintool can now pick up USB 3.1 gen2 ( although different USB controller ). However , XHCI still not activated and not showing ports as per IOReg

As it is new build , it is running Windows 10 Pro smoothly and all USB ports working there. So its not a hardware issue , I guess .

My BIOS setting is copy past of KGP guide

Any ideas of what to do next , please

Hello.

Yes, your IOReg and other files show you have no XHC controller activated. The only one available is the third-party ASMedia. Your chipset does not have an EHC controller, by the way.

Check page 3-19 of the User Manual - section: 3.6.12

Sadly there are no photos there for me to see what options you have, but there must be something...

As for the kexts you have installed, you have 2x kexts for ASUS XHCI X299, 1x XHCI-200 and 1x XHCI Unsupported.

I am not 100% certain because I don't have access to an X299 motherboard, but I think your XHCI controller Device ID is 8086:a2af, in which case you will not need the latter two kexts.

I would also suggest you remove both the ASUS XHC kexts and test again (what can happen that's worse than having no XHC controller etc?). You can always put 1x back if you need to.

Let me know how you get on...

:)
 
Last edited:
Back
Top