Contribute
Register

The New Beginner's Guide to USB Port Configuration

Check with IORegistryExplorer instead of Hackintool to see which controllers are present.

My guess is you have 1x USB3 XHCI controller - 8086:8cb1
and 2x USB2 EHCI controllers - 8086:8ca6 & 8086:8cad

Remove FakePCIID_XHCIMux.kext if you've installed it and rebuild your kext caches.

Ports PR01 and PR12 will probably be the two EHCI hubs with USB2 ports 'hanging' off them. I can't see from here. IOReg will show you.

The 15-port limit is for the whole Mac computer. Apple only supports XHC controllers these days, so unless you wish to run an old version of the OS, concentrate on the XHCI. To argue, as some do, that the limit is per controller and means you can have 45x ports on a mixed system, is clearly not what Apple intended.

As for port mapping:

Your 6x USB3 ports equates to 12x ports (USB3 and USB2 etc).
Your 6x USB2 ports equates to 6x ports

Total 18x ports. 3x more than the limit. Your choice if you want to leave the patch in place.

The added advantage of configuring each port is you can set the port type and take advantage of the different behaviours each offers: Internal for Bluetooth, extra contacts in a USB3 port, reliable mount/unmount etc.

:)
Thanks for the quick response. I checked with IOReg and it's quite same with Hackintool except it doesn't list PR01 and PR12 under XHC and I have those missing ports under both of EH01 and EH02. So, I think you are right about 2x USB2 EHCI controllers. Check the SSs below.

I don't have FakePDIID_XHCIMux.kext. What I have is only Port Increase Patch for 10.14.x. I also don't have USBInjectAll. Just wanted to know if my system needs port mapping as is ATM.

I have a question though, what happens if I disable Port Increase Patch? Also, I don't see any SS ports with both Hackintool and IOReg. So, this means, I need to do port mapping?

Ps: There is no USB3 device connected to the pc.
 

Attachments

  • IOREGXHC.png
    IOREGXHC.png
    55.1 KB · Views: 63
  • IROREGEH0102.png
    IROREGEH0102.png
    70 KB · Views: 58
Thanks for the quick response. I checked with IOReg and it's quite same with Hackintool except it doesn't list PR01 and PR12 under XHC and I have those missing ports under both of EH01 and EH02. So, I think you are right about 2x USB2 EHCI controllers. Check the SSs below.

I don't have FakePDIID_XHCIMux.kext. What I have is only Port Increase Patch for 10.14.x. I also don't have USBInjectAll. Just wanted to know if my system needs port mapping as is ATM.

I have a question though, what happens if I disable Port Increase Patch? Also, I don't see any SS ports with both Hackintool and IOReg. So, this means, I need to do port mapping?

Ps: There is no USB3 device connected to the pc.

Okay, that clarifies things. I think I explained in the previous post why you might want to map the ports :thumbup:

Your port-limit removal patch will not work without USBInjectAll.kext. You need it. Also check you are using the correct PLRP that matches your 10.14 point release.
 
Okay, that clarifies things. I think I explained in the previous post why you might want to map the ports :thumbup:

Your port-limit removal patch will not work without USBInjectAll.kext. You need it. Also check you are using the correct PLRP that matches your 10.14 point release.
Alright, I need to spare some time for this then. :) I have a question though. Since I know what port is what, I mean, 3.0s are blue and 2.0s are black/red. (I plugged the front USB ports to internal USB2 port because my tower is old and front panel is USB2 anyway.) Then, Why do I have to do port detection with both USB2 and USB3 devices? I think using only USB3 device will be enough. In that way I'll know if USB3.0 is working as it should and since the device is backward compatible it can work on USB2 ports too. So, I can save some time by not repeating the process with USB2 device. Right?

In my case, I'll only disable internal 2x USB3 ports and I'll have 14 ports in total. I wish there is there a simpler way of just disabling the internal USB3 ports without plugging and unplugging for 8 times...
 
@UtterDisbelief Things are getting complicated. I disabled the Port Limit Patch and restarted to see what will happen and nothing has changed. Turns out PLP wasn't working at all. Then I installed USBInjectAll and restarted and I saw something odd... Now I have 3 controllers EH01 joined us and HS01-HS14, here we expect to see SS ports right? No! We have PR01, PR11-PR18, PR21-26, SS01 and SSP1. I searched PR11 in this thread and found out that yet another HUB situation going on here! And they are the same guys, PR11 and PR21.

Do you think my mobo also has some sort of other chip to boost USB2 ports to USB3 speeds? Rear USB2 ports are red and MSI states they are special for Gaming Device Port and USB Audio Power. I'll attach a picture. They somehow did something to that ports and here we are with HUB situation... What do you suggest?
 

Attachments

  • PRSituation.png
    PRSituation.png
    75.3 KB · Views: 46
  • XHC.png
    XHC.png
    55.1 KB · Views: 57
  • MSI-H97-GAMING-3-Motherboard.jpg
    MSI-H97-GAMING-3-Motherboard.jpg
    98 KB · Views: 45
@UtterDisbelief Things are getting complicated. I disabled the Port Limit Patch and restarted to see what will happen and nothing has changed. Turns out PLP wasn't working at all. Then I installed USBInjectAll and restarted and I saw something odd... Now I have 3 controllers EH01 joined us and HS01-HS14, here we expect to see SS ports right? No! We have PR01, PR11-PR18, PR21-26, SS01 and SSP1. I searched PR11 in this thread and found out that yet another HUB situation going on here! And they are the same guys, PR11 and PR21.

Do you think my mobo also has some sort of other chip to boost USB2 ports to USB3 speeds? Rear USB2 ports are red and MSI states they are special for Gaming Device Port and USB Audio Power. I'll attach a picture. They somehow did something to that ports and here we are with HUB situation... What do you suggest?

Hi there.

I'll try and step through this to make things clearer:

1) Yes, as I said, you need USBInjectAll to enable the (correct) port-limit removal patch to work.

2) The H97 has three USB controllers - EHC1, EHC2 and XHC

3) The H97 supplies 6x USB3 and 8x USB2 ports, however MSI only physically gives you access to 6x of those USB2 on your motherboard.

4) The PR11 and PR21 nodes are USB2 port hubs on each of EH01 and EH02 controllers. There is likely duplication here due to the nature of how macOS sees a mixed controller set-up.

5) Given the Specification MSI gives for your motherboard - 6x USB3 ports - it seems unlikely that they use a third-party add-on USB chip because Intel gives you that number already.

6) There may indeed be some extra chip to supply the regulated power to the Audio USB ports but there's no evidence we can see that this is a USB2 to USB3 "boost". There would be extra USB3 hubs hanging off USB2 ports visible.

7) The reason why you have HS01 to HS14 and only SS01 showing XHC is precisely because the port-limit removal patch is not working. If it was you would likely see 24x ports.

Suggestions?

A) Review what kexts you have in Library/Extensions and EFI/CLOVER/kexts/Other.

B) Check your port-limit removal patch is correct for the Mojave point version you are using.

:)
 
This is how my customac sees the usb drive that I use for a Time Machine backup. I just won't mount the volume. Works fine in Ubuntu or Windows 10.

I never could get my custom Mac to recognize my old time machine usb 3 disk. It was recognized under Ubuntu with no problem, but the volume just would never mount under the macOS, even after I fixed my ports using your excellent guide. I ended up erasing the drive and reformatting it losing all of the backed up data, but the drive works now and this is proof that all my ports are functioning OK. So thanks again for your excellent guide.
 
Last edited:
Hi there.

I'll try and step through this to make things clearer:

1) Yes, as I said, you need USBInjectAll to enable the (correct) port-limit removal patch to work.

2) The H97 has three USB controllers - EHC1, EHC2 and XHC

3) The H97 supplies 6x USB3 and 8x USB2 ports, however MSI only physically gives you access to 6x of those USB2 on your motherboard.

4) The PR11 and PR21 nodes are USB2 port hubs on each of EH01 and EH02 controllers. There is likely duplication here due to the nature of how macOS sees a mixed controller set-up.

5) Given the Specification MSI gives for your motherboard - 6x USB3 ports - it seems unlikely that they use a third-party add-on USB chip because Intel gives you that number already.

6) There may indeed be some extra chip to supply the regulated power to the Audio USB ports but there's no evidence we can see that this is a USB2 to USB3 "boost". There would be extra USB3 hubs hanging off USB2 ports visible.

7) The reason why you have HS01 to HS14 and only SS01 showing XHC is precisely because the port-limit removal patch is not working. If it was you would likely see 24x ports.

Suggestions?

A) Review what kexts you have in Library/Extensions and EFI/CLOVER/kexts/Other.

B) Check your port-limit removal patch is correct for the Mojave point version you are using.

:)
1. I tried both patches from USB port limit patch for 14.1, 14.2, 14.3, 14.5,14.6 thread with USBInjectAll but they did not work. I still can't see SS ports. I mean I only see SS01 and SSP1.

2. I need to disable PR ports. Can I do it with boot flag like -uia_exclude-hs, instead of hs, using pr? And should I keep enabled PR11 and PR21 as they are internal hubs?

3. Why do I see bunch of PR ports? What are those? Dummy USB2 ports that my H97 can theoretically support? They can't be the ports inside the hub because IOREG shows the ports inside the hub are HP11-18 and HP21-28. If there is duplication I have, how to fix it?

I think bunch of PR ports are the cause that I can't see SS ports and if I get rid of them then SS ports will be join us.

Well, I've checked my kexts and there seems nothing can cause an issue.

Thanks!

Ps: Not all numbers are related to your numbers.

The patches I've tried:

Patch 2
Comment: USB Port limit patch 10.14.5,10.14.6
Name: com.apple.driver.usb.AppleUSBXHCI
Find: 4183ff0f 0f839404 0000
Replace: 4183ff3f 0f839404 0000

Patch 3
Comment: USB port name 10.14.x (credit ydeng)
Name: IOUSBHostFamily
Find: 83 E3 0F D3 E3 41 09 DF
Replace: 83 E3 3F D3 E3 41 09 DF

After reading a few posts, one suggested using Hackintool for USB patches, I've added 4 USB patches from Hackintool and now I see SS ports too! Boom! Now let's start port detection process. Btw, I'll still need answers the question above.

Thanks!
 
Last edited:
1. I tried both patches from USB port limit patch for 14.1, 14.2, 14.3, 14.5,14.6 thread with USBInjectAll but they did not work. I still can't see SS ports. I mean I only see SS01 and SSP1.

2. I need to disable PR ports. Can I do it with boot flag like -uia_exclude-hs, instead of hs, using pr? And should I keep enabled PR11 and PR21 as they are internal hubs?

3. Why do I see bunch of PR ports? What are those? Dummy USB2 ports that my H97 can theoretically support? They can't be the ports inside the hub because IOREG shows the ports inside the hub are HP11-18 and HP21-28. If there is duplication I have, how to fix it?

I think bunch of PR ports are the cause that I can't see SS ports and if I get rid of them then SS ports will be join us.

Well, I've checked my kexts and there seems nothing can cause an issue.

Thanks!

Ps: Not all numbers are related to your numbers.

The patches I've tried:

Patch 2
Comment: USB Port limit patch 10.14.5,10.14.6
Name: com.apple.driver.usb.AppleUSBXHCI
Find: 4183ff0f 0f839404 0000
Replace: 4183ff3f 0f839404 0000

Patch 3
Comment: USB port name 10.14.x (credit ydeng)
Name: IOUSBHostFamily
Find: 83 E3 0F D3 E3 41 09 DF
Replace: 83 E3 3F D3 E3 41 09 DF

After reading a few posts, one suggested using Hackintool for USB patches, I've added 4 USB patches from Hackintool and now I see SS ports too! Boom! Now let's start port detection process. Btw, I'll still need answers the question above.

Thanks!

No, the PR ports will be those on EHCI. Getting rid of them will not make the SS ports appear because they are on the XHCI controller.

Which version of Mojave are you using?

For the port-limit patches it is not a case of trying one or two, they are needed cumulatively depending on which version of Mojave you use. All will require patch #1 for example. Some need all four patches. None are missed out.
 
No, the PR ports will be those on EHCI. Getting rid of them will not make the SS ports appear because they are on the XHCI controller.

Which version of Mojave are you using?

For the port-limit patches it is not a case of trying one or two, they are needed cumulatively depending on which version of Mojave you use. All will require patch #1 for example. Some need all four patches. None are missed out.
Don't mind the strike-through text.

Now I completed port discovery and 2 of those USB3s have different HS and SS port numbers. Guess which one? Course USB Audio Power ones... That costs me wasting 2 extra ports as in:

Rear:
HS01-SS01 (USB3)
HS02-SS02 (USB3)
HS03 (USB2 / Red Gaming Port 1)
HS04 (USB2 / Red Gaming Port 2)
HS05-SS03 (USB3 / USB Audio Power 1)
HS06-SS04 (USB3 / USB Audio Power 2)
Front:
HS07 (USB2 / Internal / Front 1)
HS08 (USB2 / Internal / Front 2)

Calculation:
HS01-SS01 = 2
HS02-SS02 = 2
HS03 = 1
HS04 = 1
HS05-SS03 = 3
HS06-SS04 = 3
HS07 = 1
HS08 = 1
In total= 14

+ HS09 (Internal USB2 port which I will use when I get the PCIe Wi-Fi Adapter w/ BT)
= 15

I wanted to leave all 4 internal USB2 ports active but I can't ATM. I can only leave 2 for Front1/2 and 1 which is HS09 that will be used with PCIe adapter.

Hackintool shows I have:
HS01-HS14 (HS01-HS08 Active and Connector=USB3)
PR11-PR18 (PR11 Active and Connector= Internal, Device= IOUSBHostDevice, AKA: Hub)
PR21-PR26 (PR21 Active and Connector= Internal, Device= IOUSBHostDevice, AKA: Hub)
SS01-SS06 (SS01-SS04 Active and Connector=USB3)

Q1: Is there something we can do to unmatched HS05-SS03 and HS06-SS04 ports?
Q2: Should I leave PR11 and PR21 active? If yes, then I pass 15 limit with the config I made above. So, What do you suggest?

Thanks!
 
Last edited:
Don't mind the strike-through text.

Now I completed port discovery and 2 of those USB3s have different HS and SS port numbers. Guess which one? Course USB Audio Power ones... That costs me wasting 2 extra ports as in:

Rear:
HS01-SS01 (USB3)
HS02-SS02 (USB3)
HS03 (USB2 / Red Gaming Port 1)
HS04 (USB2 / Red Gaming Port 2)
HS05-SS03 (USB3 / USB Audio Power 1)
HS06-SS04 (USB3 / USB Audio Power 2)
Front:
HS07 (USB2 / Internal / Front 1)
HS08 (USB2 / Internal / Front 2)

Calculation:
HS01-SS01 = 2
HS02-SS02 = 2
HS03 = 1
HS04 = 1
HS05-SS03 = 3
HS06-SS04 = 3
HS07 = 1
HS08 = 1

In total= 14
+ HS09 (Internal USB2 port which I will use when I get the PCIe Wi-Fi Adapter w/ BT)
= 15
I wanted to leave 2 internal USB2 ports active but I can't ATM. I can only leave one which is HS09.

Hackintool shows I have:
HS01-HS14 (HS01-HS08 Active and Connector=USB3)
PR11-PR18 (PR11 Active and Connector= Internal, Device= IOUSBHostDevice, AKA: Hub)
PR21-PR26 (PR21 Active and Connector= Internal, Device= IOUSBHostDevice, AKA: Hub)
SS01-SS06 (SS01-SS04 Active and Connector=USB3)

Q1: Is there something we can do to unmatched HS05-SS03 and HS06-SS04 ports?
Q2: Should I leave PR11 and PR21 active? If yes, then I pass 15 limit with the config I made above. So, What do you suggest?

Thanks!

Good work on the discovery :thumbup:

The unmatched ports - happens. I've seen it elsewhere even though it isn't logical. What I don't understand about your summary is HS05 and SS03 being 3x ports ? Similarly HS06 and SS04 ?

You have a choice about the EHCI controller ports. If you remove them from Hackintool they shouldn't be activated when USBPorts.kext is in place. However you have a total of 6x USB3 ports which also have USB2 alter-egos for a total of 12x. So you might want to keep 3x of the EHC ports. You can be selective using Hackintool.

:)
 
Back
Top