Contribute
Register

The New Beginner's Guide to USB Port Configuration

What should we do if we are running Big Sur? Are there any port limit patch?

Hi there.

There is now an OC Quirk which is used for the port limit removal and I have highlighted it in the Guide.

Although I know the latest Clover builds are now hybrid Clover/OpenCore code I have not seen or found a direct ACPI patch for Big Sur.
 
Hi there.

There is now an OC Quirk which is used for the port limit removal and I have highlighted it in the Guide.

Although I know the latest Clover builds are now hybrid Clover/OpenCore code I have not seen or found a direct ACPI patch for Big Sur.

Hi,

Thanks I figured out the quirk was made for that later, however it wasn't working on my system.

I ended up using these flags in combination of Hackintool + USBInjectAll

Code:
# uia_include=HS04: to keep HS04 working for mouse/keyboard when using -uia_exclude_hs
# -uia_exclude_hs: excludes all HSxx ports
# -uia_exclude_ss: excludes all SSxx ports

to get all my ports discovered, highlight those I wanted to keep and generate and SSDT.

We shouldn't botter having USB Port Limit patch with these
 
Hi,

Thanks I figured out the quirk was made for that later, however it wasn't working on my system.

I ended up using these flags in combination of Hackintool + USBInjectAll

Code:
# uia_include=HS04: to keep HS04 working for mouse/keyboard when using -uia_exclude_hs
# -uia_exclude_hs: excludes all HSxx ports
# -uia_exclude_ss: excludes all SSxx ports

to get all my ports discovered, highlight those I wanted to keep and generate and SSDT.

We shouldn't botter having USB Port Limit patch with these

Yes, USBInjectAll can include or exclude ports, and this was the "old" way to actually see the ports available - exclude all the USB 2 ports to then see all the USB 3 ports. Good work :thumbup:.

Sadly Big Sur is really turning the screws on third-party kexts and things will only become more difficult going forward. The proper way to configure ports is to rewrite the USB section of the hardware's DSDT table. This is partly what the OC Quirk does. It means writing the necessary XML code and merging it in during boot. I experimented with this a year or so back and it works perfectly. The problem is, it isn't easy to do. If you wish to have a look yourself, dump the DSDT of your system using a Clover bootloader and then check the resulting files for the one with all the USB data in it.

:)
 
Hi all

The transition to Opencore went smoothly but there is one thing I am not able to fix and this is USB port mapping

I know I should have fixed this a long time ago but I was lazy and relying on the USB port limit patch which was working well with Clover up until Catalina but sadly with Big Sur it’s not.

I’ve tried several guides but none have worked for me and I hope someone here can assist me to make a working kext.

My motherboard is an MSI Z87 Mpower max and has an Intel chipset providing 4x USB3 and 6x USB2 ports, an ASMedia ASM1074 Chip giving 4x USB 3.0 back-panel ports and a Renesas uPD720202 Chip providing 2x USB 3.0 ports on the back-panel too.

Most of the ports are XHC ones and do not need to be renamed but I also have EHC1 and 2 ports which need to be renamed to EH01 and 2 but when I do this, my PS/2 ports where my mouse and Logitech dongle are plugged are somehow disabled (but listed and highlighted in Hackintool).

Looking at Hackintool, I also have PXSX ports but my understanding is that Hackintool doesn’t see this type and will not list them, also it’s not used by Apple apparently. These are the Renesas ports but I’m not using them so if they cannot be enabled it’s not an issue.
Screen Shot 2020-11-27 at 10.46.53.png

Screen Shot 2020-11-27 at 12.50.29.png


I have XhciPortLimit enabled in my plist and USBInjectAll (0.7.3) loaded and according to Hackintool’s USB port patching guide I should also have FakePCIID and FakePCIID_XHCIMux kexts because the XHC device ID is 0x8C31 but I’m not sure about that.

I hope someone can assist me getting rid of this headache… thanks a million.
 

Attachments

  • plist-ioreg.zip
    895.6 KB · Views: 43
Hi all

The transition to Opencore went smoothly but there is one thing I am not able to fix and this is USB port mapping

I know I should have fixed this a long time ago but I was lazy and relying on the USB port limit patch which was working well with Clover up until Catalina but sadly with Big Sur it’s not.

I’ve tried several guides but none have worked for me and I hope someone here can assist me to make a working kext.

My motherboard is an MSI Z87 Mpower max and has an Intel chipset providing 4x USB3 and 6x USB2 ports, an ASMedia ASM1074 Chip giving 4x USB 3.0 back-panel ports and a Renesas uPD720202 Chip providing 2x USB 3.0 ports on the back-panel too.

Most of the ports are XHC ones and do not need to be renamed but I also have EHC1 and 2 ports which need to be renamed to EH01 and 2 but when I do this, my PS/2 ports where my mouse and Logitech dongle are plugged are somehow disabled (but listed and highlighted in Hackintool).

Looking at Hackintool, I also have PXSX ports but my understanding is that Hackintool doesn’t see this type and will not list them, also it’s not used by Apple apparently. These are the Renesas ports but I’m not using them so if they cannot be enabled it’s not an issue.
View attachment 498629
View attachment 498631

I have XhciPortLimit enabled in my plist and USBInjectAll (0.7.3) loaded and according to Hackintool’s USB port patching guide I should also have FakePCIID and FakePCIID_XHCIMux kexts because the XHC device ID is 0x8C31 but I’m not sure about that.

I hope someone can assist me getting rid of this headache… thanks a million.

Hi there.

Personally I would not use FakePCIID_XHCIMux.kext. Remove it and recheck. You should find things look a lot simpler.

Third-party chipsets - ASMedia and Renesas - are not easy to configure. A kext called GenericUSBXHCI.kext was created to tame them but it hasn't been updated for 5-years and can no-longer be relied on.

IORegistryExplorer will show you ports Hackintool can't - those PXSX ports and RP** ones too - but they aren't easily configurable.

Map only your Intel ports. EHCI 1 & 2 controllers are usually divided as 6+4 ports. XHCI depends on the chipset.
Remember XHCI ports are 2x USB - USB2 and USB3. Use Hackintool to get to your 15.
 
Thanks UtterDisbelief, but what about the EHC ports? Shouldn't I rename them to EH01 and 2? It's just that when I do this, the USB ports (not PS/2 lol) where my mouse and keyboard are connected (hs05 and 06) are not working but strangely the USB2 ports on the front are... shall I plug them there to do the mapping or can I skip the EHC renaming? Hopefully when the mapping is done these will work. By the way I have tried the GenericUSBXHCI.kext, when I use it, the PXSX line doesn't show in Hackintool but I'll try without it
 
Thanks UtterDisbelief, but what about the EHC ports? Shouldn't I rename them to EH01 and 2? It's just that when I do this, the USB ports (not PS/2 lol) where my mouse and keyboard are connected (hs05 and 06) are not working but strangely the USB2 ports on the front are... shall I plug them there to do the mapping or can I skip the EHC renaming? Hopefully when the mapping is done these will work. By the way I have tried the GenericUSBXHCI.kext, when I use it, the PXSX line doesn't show in Hackintool but I'll try without it

Yes, I think you should rename the EHCI controllers to EH01 and EH02. I understand this seems to give you knock-on problems but looking at that Hackintool screengrab I think there's quite a lot of something else going on ...

A kext or ACPI patch is making the EHCI controllers appear incorrectly in Hackintool - EHC1 = PRT1 and EHC2 = PR01 - is not correct. These two lines should be the hub roots each for a set of USB2 ports, but only shows HP11-18 and PR12, which in themselves look wrongly labelled.

So more information is needed. There's a kext hiding somewhere causing this. Check both EFI/OC/kexts and L/E or even S/L/E. And review your ACPI patches.

:)
 
I'll try the renaming ad see what happens. Hmmm I only have the two necessary ssdt's for Haswell CPU, no patches that I know of.

As for the kexts, I only have Lilu, Apple ALC, Whatevergreen, VirtualSMC , ethernet kext and USBInjectAll (0.7.3) under EFI/OC/kext. Nothing in L/E or S/L/E as this is a fresh install and all used kexts are the ones in the OC folder.

However, looking at L/E, I noticed that there are less kexts there with Big Sur than with Catalina. I only have HighPointIOP.kext, HighPointRR.kext, SoftRAID.kext and kexts related to mouse and printer, I don't know if this is normal, has Apple placed less kexts in L/E with the update?
 
However, looking at L/E, I noticed that there are less kexts there with Big Sur than with Catalina. I only have HighPointIOP.kext, HighPointRR.kext, SoftRAID.kext and kexts related to mouse and printer, I don't know if this is normal, has Apple placed less kexts in L/E with the update?
Yes, that's all Apple puts in L/E for Big Sur :thumbup:

Okay, if there are no patches and no kexts then you have what you have courtesy of MSI. I've checked the Specs over on their website and I can't see a reason why their implementation of the Z87 Express should be any different to the norm so that leads me on ...

I begin to wonder if Hackintool is getting confused. I've taken a look through your IORegistryExplorer output and it looks pretty normal from there. You have HS01-HS14 and SS01-SS06 just as you would expect. There is also a third-party hub at RP04 which is the Renesas controller with 4x ports.

I suggest you clear Hackintool and reload it to refresh the ports. Otherwise what it is showing you is way too many ports (a reason to ensure FakePCIID_XHCIMux.kext is removed). The Z87 has 8x USB2.0 ports and 6xUSB3.0 ports - these USB3.0 ports also double-up as USB2.0 when needed so we get a grand total of 20x ports max - just like IORegistryExplorer. However your Hackintool output shows 11x USB2.0 and 20x USB3.0 - those 20x obviously have USB2.0 capabilities.

Something is wrong here but I'm unsure if it is Hackintool, hence my question about kexts. By using IORegistryExplorer you can build a USBPorts.kext or SSDT in Hackintool by only copying across the ports you need etc. Sorry that sounds half-baked but it is at least a way forward.

:)
 
I'm really unlucky with this ports thing :(
When you say "you can build a USBPorts.kext or SSDT in Hackintool by only copying across the ports you need etc."

How exactly do I do that? I get how I can copy ports under XHC in ioreg but how do I paste it in Hackintool? Shall I test all USB ports with a USB2 device then a USB3 device and copy what changes? Also if I go this way, do I still need to rename the EHCI controllers? Sorry for all the questions, this is something I struggle with a lot, thanks
 
Back
Top