Contribute
Register

The New Beginner's Guide to USB Port Configuration

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
4,782
Motherboard
Gigabyte Z390M Gaming - Clover UEFI 5102
CPU
i5-9600K
Graphics
RX 570 8gb HDMI 1920x1080
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Hello @UtterDisbelief! Thanks so much for this write up. Just did a clean install of Catalina and decided to tackle the USB issue for the first time ever. I'm a bit confused about some things on my motherboard, wondering if you could help.

Not sure if I should post here or start a new thread. I've attached screenshots of Hackintool, Clover Configurator, my Clover/kexts/Other folder & my config.plist file (anything else you need I'll get when I get home from work tonight). I did the port limit removal kext patches and the EHC1 & EHC2 renames in Clover Configurator.

I have a Gigabyte GA-Z97X-Gaming G1 motherboard. It has the following USB ports:
(2) USB 3.0 front (off the internal header)
(2) USB 3.0 rear
(2) USB 2.0 rear
(4) USB 2.0 internal - will remain unused
(4) USB 3.0 rear - unsupported Renesas chipset - not working, and I don't need them to

Ignoring the Renesas and internal 2.0 ports, neither of which I can test/map anyway, here are the things I cannot figure out.

1) in the screenshots, the only thing physically plugged in is the receiver for my wireless keyboard. Why are there four "IOUSBHostDevice" showing active? What do I do with them? Keep? Remove?

2) in Hackintool, I can map the rear 2.0 ports fine. I can map the front two physical ports separately with a USB 2.0 & 3.0 flash drive just fine. However, the two rear USB 3.0 ports work just fine in macOS (mounting the USB drives, reading, writing, using a USB web cam, etc) but never show up as active in Hackintool. So I have no idea their names/numbers are.

The maps for the front USB ports are:
As 2.0: EH01 HP11 0x1D110000, EH01 HP12 0x1D120000
As 3.0: XHC SS01 0x14F00000, XHC SS02 0x14000000

The maps for the two rear 2.0 ports are: EH02 HP25 0x1A150000, EH02 HP26 0x1A160000

Any help with those two issues would be greatly appreciated.

Thanks!

Hi there.

The first thing you need to do is remove the FakePCIID_XHCIMux.kext and rebuild your kext caches using Terminal command: sudo kextcache -i /

Then reboot and take another look.

This will clear-up the confusion of ports and hopefully the ones that remain wil be more understandable.

The "IOUSBHostDevice" entries are "hooks" or hubs for other ports. You have a good grasp of what those Renesas ports are. They actually "attach" to the EHC controllers to provide the USB3 functionality to otherwise USB2 ports. You've done your research so know that there are only 2x Intel USB3 ports on the back-panel, with 2x on an internal header.

Third-party chipsets, like the Renesas one, can cause confusion when they don't simply provide USB3 and USB2 ports but "hook" onto pre-existing USB2 ports, as in this case.

Sorry that sounds confusing. I think you understand, from what you've said.

You can visualise the connections in more clarity with IORegistryExplorer.

FakePCIID_XHCIMux.kext is a particular solution for a particular problem and I do not think it helps here.

So to answer:

1) keep them.

2) Check again once you have removed FakePCIID_XHCIMux.kext.

:)
 
Joined
Sep 28, 2011
Messages
58
Motherboard
Gigabyte GA-Z97X-Gaming G1
CPU
i7 4770K
Graphics
HD 4600 / Sapphire Pulse RX Vega 56
Mobile Phone
iOS
Hi there.

The first thing you need to do is remove the FakePCIID_XHCIMux.kext and rebuild your kext caches using Terminal command: sudo kextcache -i /

Then reboot and take another look.

This will clear-up the confusion of ports and hopefully the ones that remain wil be more understandable.

The "IOUSBHostDevice" entries are "hooks" or hubs for other ports. You have a good grasp of what those Renesas ports are. They actually "attach" to the EHC controllers to provide the USB3 functionality to otherwise USB2 ports. You've done your research so know that there are only 2x Intel USB3 ports on the back-panel, with 2x on an internal header.

Third-party chipsets, like the Renesas one, can cause confusion when they don't simply provide USB3 and USB2 ports but "hook" onto pre-existing USB2 ports, as in this case.

Sorry that sounds confusing. I think you understand, from what you've said.

You can visualise the connections in more clarity with IORegistryExplorer.

FakePCIID_XHCIMux.kext is a particular solution for a particular problem and I do not think it helps here.

So to answer:

1) keep them.

2) Check again once you have removed FakePCIID_XHCIMux.kext.

:)
OK, will do. Thanks! I will report back after I see what happens.

So quick clarification for my own curiosity - the Renesas chipset USB ports still show up in Hackintool even though they are inactive in macOS?

P.S. - I did use IORegistryExplorer at first when I was going to try and create an SSDT. Then I found this guide and scrapped the SSDT route. I'll take a look at it again just to see what things look like.
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
4,782
Motherboard
Gigabyte Z390M Gaming - Clover UEFI 5102
CPU
i5-9600K
Graphics
RX 570 8gb HDMI 1920x1080
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
OK, will do. Thanks! I will report back after I see what happens.

So quick clarification for my own curiosity - the Renesas chipset USB ports still show up in Hackintool even though they are inactive in macOS?

P.S. - I did use IORegistryExplorer at first when I was going to try and create an SSDT. Then I found this guide and scrapped the SSDT route. I'll take a look at it again just to see what things look like.

Sometimes Hackintool does show third-party chipsets, sometimes it doesn't. Not sure why. If you check the top panel in the USB pane - as far as I could see in your screengrabs, there were no scroll-bars to indicate further details, so it does look as though the Renesas controller is not being shown. See if anything changes with the kext removal and reboot.

Hackintool as a great suite of really useful utilities and because it presents it's data so clearly was why it was chosen for the Beginner's Guide. My previous "old-fashioned" guide was a bit harder to use and has the disadvantage that it may stop working going beyond Catalina. Hackintool's USBPorts.kext should have a longer life.

You see more with IORegistryExplorer - even though it uses the same basic data as Hackintool - because it goes deeper.:thumbup:
 
Joined
Sep 28, 2011
Messages
58
Motherboard
Gigabyte GA-Z97X-Gaming G1
CPU
i7 4770K
Graphics
HD 4600 / Sapphire Pulse RX Vega 56
Mobile Phone
iOS
Sometimes Hackintool does show third-party chipsets, sometimes it doesn't. Not sure why. If you check the top panel in the USB pane - as far as I could see in your screengrabs, there were no scroll-bars to indicate further details, so it does look as though the Renesas controller is not being shown. See if anything changes with the kext removal and reboot.

Hackintool as a great suite of really useful utilities and because it presents it's data so clearly was why it was chosen for the Beginner's Guide. My previous "old-fashioned" guide was a bit harder to use and has the disadvantage that it may stop working going beyond Catalina. Hackintool's USBPorts.kext should have a longer life.

You see more with IORegistryExplorer - even though it uses the same basic data as Hackintool - because it goes deeper.:thumbup:
Well, no luck. I removed FakePCIID_XHCIMux.kext, rebuilt the kext cache, rebooted. Things were much cleaner in Hackintool --> USB. Only things active were my keyboard receiver and four IOUSBHostDevice (an EH01, an EH02, an XHC HS and an XHC SS) which all made sense. However, the two rear Intel USB ports, while working in macOS, are still not showing up as active in Hackintool when I plug various things in. Even when refreshing, clearing and refreshing, etc. I also tried the following:

- unplugging my SATA DVD drives
- enabled EHC handoff in the BIOS
- switched XHC handoff in the BIOS from Smart Auto to Auto
- could not find anything in my BIOS to do with disabling any serial ports

None of the above helped. I did not get a chance to try IORegistryExplorer last night to see if it shows my rear USB ports as active. Beyond that, any other suggestions?
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
4,782
Motherboard
Gigabyte Z390M Gaming - Clover UEFI 5102
CPU
i5-9600K
Graphics
RX 570 8gb HDMI 1920x1080
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Well, no luck. I removed FakePCIID_XHCIMux.kext, rebuilt the kext cache, rebooted. Things were much cleaner in Hackintool --> USB. Only things active were my keyboard receiver and four IOUSBHostDevice (an EH01, an EH02, an XHC HS and an XHC SS) which all made sense. However, the two rear Intel USB ports, while working in macOS, are still not showing up as active in Hackintool when I plug various things in. Even when refreshing, clearing and refreshing, etc. I also tried the following:

- unplugging my SATA DVD drives
- enabled EHC handoff in the BIOS
- switched XHC handoff in the BIOS from Smart Auto to Auto
- could not find anything in my BIOS to do with disabling any serial ports

None of the above helped. I did not get a chance to try IORegistryExplorer last night to see if it shows my rear USB ports as active. Beyond that, any other suggestions?

Hi there,

Not without more to go on, no.

Perhaps consider uploading an IORegistryExplorer *.ioreg export file to examine.
 
Joined
Sep 28, 2011
Messages
58
Motherboard
Gigabyte GA-Z97X-Gaming G1
CPU
i7 4770K
Graphics
HD 4600 / Sapphire Pulse RX Vega 56
Mobile Phone
iOS
OK, here you go. ioreg file attached. I also plugged in a USB 2.0 drive to the back USB 3.0 port again, and accidentally found it in IORegistryExplorer when I picked IOUSB from the top left drop-down menu. See attached screenshot 1. I then switched back the menu to IOService and figured out where the USB drive was showing up. It was buried under IOResources rather than under AppleACPIPlatformExpert like all of the other USB ports. See attached screenshot 2. I have no idea what all of that means, or why the rear two USB ports are not grouped with the others. Incidentally, the Location ID of the missing port was 0x14910000. I checked, that does not show up in Hackintool.
 

Attachments

Joined
Sep 28, 2011
Messages
58
Motherboard
Gigabyte GA-Z97X-Gaming G1
CPU
i7 4770K
Graphics
HD 4600 / Sapphire Pulse RX Vega 56
Mobile Phone
iOS
I also tried disabling Legacy USB Support in the bios too, just for kicks. Made no difference. Any other ideas? I have no idea how to move forward on this. Any suggestions would be greatly appreciated.
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
4,782
Motherboard
Gigabyte Z390M Gaming - Clover UEFI 5102
CPU
i5-9600K
Graphics
RX 570 8gb HDMI 1920x1080
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
I also tried disabling Legacy USB Support in the bios too, just for kicks. Made no difference. Any other ideas? I have no idea how to move forward on this. Any suggestions would be greatly appreciated.

Hi there.

Looks interesting ...

I think you are using a later version of IORegistryExplorer because I am not able to load it. I generally recommend v2.1 for historical reasons - plus it is easily available around here, and linked in post #1, unlike the later developer versions.

:)
 
Joined
May 17, 2011
Messages
57
Motherboard
Gigabyte Z370 AORUS Gaming 7
CPU
i7-8700K
Graphics
AMD Radeon VII
Mac
Mac Pro
Mobile Phone
iOS
I dove right into this thread because no USB3.0 devices were recognized after upgrading from Mojave 10.14.5 to Catalina 10.15.4.

Somewhere around updating my USBInjectAll.kext, all of my USB3.0 devices started showing up again.
Now as far as I can tell, occupying all of my I/O ports with USB3.0 devices all show up and they all perform at USB 3.0 speed verified by BlackMagic Disk Speed Test. I still recorded the port names I could discover. But seeing as how all of my devices are showing up and seemingly performing at USB3.0 speeds, should I even bother trying to make an SSDT or should I just leave things as they are?
 

Attachments

Top