Contribute
Register

Only 15 usb ports even with xhciportlimits = true

Status
Not open for further replies.
Joined
Dec 20, 2016
Messages
17
Motherboard
Asus Z97-P
CPU
i7-4790K
Graphics
RX580
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
I'm missing SS ports and USB devices are behaving weird. I only have 15 entries for each controller in corpnewts tool and the EHC1 is not working at all.

1650010481592.png


Code:
ioreg -l -p IOService -w0 | grep -i XHC1
and
Code:
ioreg -l -p IOService -w0 | grep -i EHC2
returns nothing.

Code:
ioreg -l -p IOService -w0 | grep -i EHC1
returns

1650010912679.png


I have tried these configs in different combinations:
- xhciportlimits = true
- EHCI rename
- XHCI rename

This is the current mapping when swapping 2.0 and 3.0 devices:
1650010638744.png


I'm on opencore 0.7.6, Monterey 12.0.1 (21A559).
Any advice on how to proceed?
 
Current config attached. I have not used USBinjectall since corpnewt's tool said it wasn't necessary, but maybe i should?
 

Attachments

  • config.plist
    29.6 KB · Views: 38
Current config attached. I have not used USBinjectall since corpnewt's tool said it wasn't necessary, but maybe i should?

Hi there.

You do not need the XhciPortLimit quirk enabled if you have created your bespoke USBMap.kext. Neither do you need USBInjectAll.kext once the configuration has been done.

For initial testing and troubleshooting you should use USBInjectAll.kext and the XhciPortLimit quirk set to enabled, but without USBMap.kext.

You need to ask yourself why you want the EHCI controller pair activated? The Z97 chipset has both XHCI and EHCI controllers, but the XHCI on it's own will give you the 15x ports you need.

Personally, I disagree with the idea that Apple designed macOS to use both the EHCI and XHCI controllers together. No memory array was set aside for this. They only ever configured a mix controller set-up when more USB ports were added using external PCIe card in a Mac Pro.

:)
 
Read this thread.

 
@Yomiro I did it from Windows (dual boot) and it worked like a charm! Verified with blackmagic that i now have 3.0 speed on all ports :) I hope the other quirks i've been dealing with will go away too....

1650138888816.png


@UtterDisbelief I thought that i needed the EHCI and that the USB 2.0 mappings would split to there clearing up XHCI space for 3.0 or something like that. Anyway the opencore guides suggest EHCI is good to have, so that's why i thought i needed it
 
@UtterDisbelief I thought that i needed the EHCI and that the USB 2.0 mappings would split to there clearing up XHCI space for 3.0 or something like that. Anyway the opencore guides suggest EHCI is good to have, so that's why i thought i needed it

Nothing is compulsory. You can do as you wish. :thumbup:

Yes, for certain mixed controller set-ups @RehabMan created a kext - FakePCIID_XHCIMux.kext - which diverted the USB2 personalities of ports off the XHCI controller and over to the EHCI. The theory being you could then use more USB3 personalities on the XHCI controller and keep within the 15x ports per controller rule.

He wrote the reference guide here:

https://www.tonymacx86.com/threads/...sdt-for-usbinjectall-kext.211311/post-1405329

Unless you directly edit the ACPI tables then you would need to install this kext to accomplish the task.

However, personally I'm not a fan of using more than one controller system.
 

Glad you got it working. And yes, dual booting and doing USB mapping is easier.

*Usually* HS01 and SS01 correspond to the same PHYSICAL USB Port. Therefore, if you are planning on attaching a USB 2.0 devices on HS01. Then it should be set to type 0. If you are planning on ONLY using USB 3.0 devices. Then you can remove HS01.

A physical USB 3.0 Ports is equal to 2 logical USB port (HS01 and SS01). The MacOs limit is 15 *logical* ports.

For example. Your Redox keyboard is USB 2.0 only. (HS03 -- type 0). If you are not plugging that keyboard to a different PHYSICAL port. You can the remove logical port SS03 and use it for something else.

A really nice Window tool that shows you the corresponding logical ports to physical ports is USB device tree Viewer. When you plug in a device. It will light up both type of logical ports or more (USB 3.2)


I don't know the layout of your USB ports. You can read more details of USB mappings from:

 
Last edited:
Screen Shot 2022-04-17 at 12.04.19 AM.png


Notice. HS07 and HS08. Those are physical USB 3.0 ports. But I am only using them for USB 2.0 devices. Therefore only HS07 and HS08 are present in my port mappings. I deleted SS07 and SS08.

If I plug in a USB 3.0 device into those USB ports. They will only work at USB 2.0 speeds. Because I deleted the USB 3.0 logical ports (SS07 and SS08).
 
View attachment 546066

Notice. HS07 and HS08. Those are physical USB 3.0 ports. But I am only using them for USB 2.0 devices. Therefore only HS07 and HS08 are present in my port mappings. I deleted SS07 and SS08.

If I plug in a USB 3.0 device into those USB ports. They will only work at USB 2.0 speeds. Because I deleted the USB 3.0 logical ports (SS07 and SS08).

Actually an HS** USB2 port personality, if it is on a physical USB3 port - i.e it has more than 4x pins and usually blue or red inside - should be set to UsbConnector type - "3" not "0".

It is correct that you can enable or disable whichever logical port you need to get to down to the 15-limit, however you should not specify a physical port - UsbConnector type - to be anything other than it physically is.

Hope that helps. :thumbup:
 
Status
Not open for further replies.
Back
Top