Contribute
Register

The New Beginner's Guide to USB Port Configuration

No, you are not limited to XHC under OC. I would recommend you re-enable the USB2 controller in the Bios. So all the physical ports are working.

I may just have my head too far up my own rear end, with regards your USB setup. I should know better, what works for one persons system may not work with another. No matter how similar.

The screenshot showing the 8# USB ports under the XHC controller does look good. Pity you can't get them showing like this with the USB2 ports enabled.

Did you extract a USBPorts.kext when you had this setup in place? As I am wondering if this and your other USBPorts kext, containing the USB2 port setup can be joined to proved an all-in-one USB solution to your issues. A bit like when using the USB exclude boot argument options, so all the usable ports are detected and whittled down to those required. Especially as each USB controller can contain up to 15 ports, and this USB3 controller is obviously separate to the EH01 and EH02 USB2 port controllers.
@Edhawk

Thanks for your reply. I'm always very appreciative. As usual I see you are involved in multiple assistance cases, and I even get confused reading your responses to others, as many topics being covered also apply to me. It's easy to to get lost! So, to take this process as slowly as possible, and to ensure mutual understanding I want to address only a few points of your response, and see where that directs us.

"The screenshot showing the 8# USB ports under the XHC controller does look good. Pity you can't get them showing like this with the USB2 ports enabled."

I can! Please see attached from this morning after re-enabling the Intel controller. Note: Port limit is set to True, and I have no/no USBPorts.kext. As far as the XHC controller presentation, I think it looks identical to what you "liked". Would you agree?

Notes:

  • XHC: Just FYI. In previous presentations port HSP2/SSP2 was not present. This was on purpose as part of my USBPorts.kext, as the actual physical port is damaged, and cannot be used. So I deleted it.

  • Previously you mentioned that you did not like seeing that I had multiple references to the same port in my Hackintool display. I believe the duplication is not present within a single controller, but since I have three controllers I could have (unless deleted via USBPorts.kext) up to three ports. For instance, in the current attachment I have three 0x01 ports with three controllers.

  • I'm still wondering if its correct for Hackintool to only show items up to a HUB, and nothing below. To demonstrate I attached IOReg shot showing the deeper dive.

  • You mention the 15 port limit is per controller, wow, I had always thought it was system wide. Thats really good to know when creating my USBPorts.kext. I assume that includes items below HUBS in that are not listed in Hackintool, but are shown in IOReg? Simply put, do I count my 15 port limit per controller based on Hackintool (stops at HUBS), or IOReg (shows all devices)?
 

Attachments

  • Screen Shot 2021-02-22 at 10.02.34.png
    Screen Shot 2021-02-22 at 10.02.34.png
    110.8 KB · Views: 30
  • Screen Shot 2021-02-22 at 10.31.58.png
    Screen Shot 2021-02-22 at 10.31.58.png
    114.1 KB · Views: 38
You mention the 15 port limit is per controller, wow, I had always thought it was system wide. Thats really good to know when creating my USBPorts.kext. I assume that includes items below HUBS in that are not listed in Hackintool, but are shown in IOReg? Simply put, do I count my 15 port limit per controller based on Hackintool (stops at HUBS), or IOReg (shows all devices)?
The problem with this thinking is that Apple haven't made a Mac with both Intel controllers present, so the 15-limit is actually system wide. People will often argue the theoretical 2x EHCI and 1x XHCI controllers case for 45x ports but they are mistaken. And if you understand fixed arrays in coding parlance you will see the potential problem I'm hinting at.
 
Okay. To go deeper and explain - but hopefully not lecture!

Looking at Hackintool, it is not able to locate the ASMedia ports but you know they are PXSX because you found them :thumbup: . You might want to search further to find out what has caused that ASMX controller line, otherwise try and delete it before creating USBPorts.kext or SSDT-UIAC.aml etc.

As for SSDTs for ASMedia power ... There are some great guides but honestly you don't need to torture yourself trying to learn it. The ASMedia ports which control those blue back-panel ports are basically loose-cannons. Yes, GenericUSBXHCI.kext gave you some power delivery but not uniformly. Part of its present unreliability, having not been updated recently. It is possible to write an SSDT to access the power delivery settings for the ASMedia but you have to find the settings in IOReg (as in the guide I linked to) then patch them. You could also examine the source code for GenericUSBXHCI.kext and recompile. BUT that is no fun and would take too long, realistically.

Your add-on FL1100 card should work properly. Nothing to add there except that it is treated by macOS as an external device, just as if it was a card inserted in a real Mac Pro. Therefore its ports do not count in your 15-limit, just the same as the ASMedia.

Moving on to EHCI ...

This is something we can positively address. The IOReg output you uploaded looks wrong at the PR11 entry. It should be a 'hub' not a port, just as PR21 is. The X79 EHCI consists of two hubs from which 6x and 8x USB2 ports would hang. Check Hackintool. PR11's should be HP11 to HP16 and PR21's ports are HP21 to HP28.

So something is causing this. Likely it is an errant kext or ACPI patch. Make sure you do not have FakePCIIDXHCIMux.kext installed. Check EFI as well as Library/Extensions. Check for any other USB-related kexts and SSDTs.

That the FL1100 works better when you run Windows is just down to drivers. Did you install any for Windows or did it, like macOS, have its own built-in?

To go any deeper into this we'd need to see a full IORegistryExplorer export file.

:)
Not a lecture at all, very informative, thankyou for taking the time!

I will need to spend some time investigating the ASMX controller line issue! and will take a look at the guide you suggested, thankyou for that.

In terms of kexts causing issues, i looked but couldnt find any errant Kexts. My build is pretty much a cookie cutter of shilohh's i7 4930k build from years ago, that i recently updated to catalina. I havent used anything he didnt recommend in his guide, and since your advice removed GenericUSBXCHI of course.

In L/E and S/L/E I dont have any erroneous kexts, and havent added any USB related, although there is the usual AppleUSBXXXX etc in S/L/E and a BlackmagicUSBIO kext for my Blackmagic PCIe deck link HDMI card. I did install 'SafeSleepUSB' to make sure they eject before sleep, so dont know if thats likely to add any issues? I dont have FakePCIIDXHCIMux.kext installed.

RE PR11 - I see, thats interesting! Both PR11 and PR21 come up labelled as a IOUSBHostDevices in Hackintool, so I wonder how the system has got it muddled in IORegistry! I identified HP11 to HP14 when doing the port testing as those are USB2 only so showed up. Hp15+16 and 21-28 just wouldnt show up with usb2 or usb3 devices inserted.

The interesting thing is that a notice pops up if i put a USB3 harddrive into one of the USB3 ports, saying it needs power to connect, but wont show up in hackintool. It does show up in IORegistry but on a misc port like 31 (see screenshot after removing the drive) but this is only for some usb3 ports and not others :S

Screenshot 2021-02-23 at 18.05.33.png


I did have to install a driver on windows for the FL1100 card but im on windows 7 so thats probably why!

I have attached an export of my IORegistry, once again I appreciate your help here!
 

Attachments

  • mac pro ioregistry.ioreg
    5.1 MB · Views: 43
Not a lecture at all, very informative, thankyou for taking the time!

I will need to spend some time investigating the ASMX controller line issue! and will take a look at the guide you suggested, thankyou for that.

In terms of kexts causing issues, i looked but couldnt find any errant Kexts. My build is pretty much a cookie cutter of shilohh's i7 4930k build from years ago, that i recently updated to catalina. I havent used anything he didnt recommend in his guide, and since your advice removed GenericUSBXCHI of course.

In L/E and S/L/E I dont have any erroneous kexts, and havent added any USB related, although there is the usual AppleUSBXXXX etc in S/L/E and a BlackmagicUSBIO kext for my Blackmagic PCIe deck link HDMI card. I did install 'SafeSleepUSB' to make sure they eject before sleep, so dont know if thats likely to add any issues? I dont have FakePCIIDXHCIMux.kext installed.

RE PR11 - I see, thats interesting! Both PR11 and PR21 come up labelled as a IOUSBHostDevices in Hackintool, so I wonder how the system has got it muddled in IORegistry! I identified HP11 to HP14 when doing the port testing as those are USB2 only so showed up. Hp15+16 and 21-28 just wouldnt show up with usb2 or usb3 devices inserted.

The interesting thing is that a notice pops up if i put a USB3 harddrive into one of the USB3 ports, saying it needs power to connect, but wont show up in hackintool. It does show up in IORegistry but on a misc port like 31 (see screenshot after removing the drive) but this is only for some usb3 ports and not others :S

View attachment 510322

I did have to install a driver on windows for the FL1100 card but im on windows 7 so thats probably why!

I have attached an export of my IORegistry, once again I appreciate your help here!

Well for sure the PR11 node is now in the correct position, so something changed somewhere for the better. However we are seeing way too many sub-nodes PR11-PR18 and PR21-PR26, with all the actual ports hanging of further hubs beneath PR11 and PR21. You can see all of this in Hackintool and it's just way too cluttered.

What I would do is remove all the PR** nodes except PR11 and PR21 in Hackintool.

The Fresco Logic is at NPE9
ASMX is at PEX1, and the two ASMedia hubs are at PEX2 and PEX3 - which I'm sure you've seen.

The ASMX controller has no active ports so it's probably safe to leave as-is for now.

So, to address your initial query about power to the ports. All hubs - USB2 and USB3 - appear to be suffering the same problem - 2 of each 4 get the low power. On the USB3 ports specifically 2 of the 4 get get full USB3 power while the other 2 do not.

Frankly we are missing something here - either a kext or a DSDT edit, or an SSDT - which is causing these problems. I'll be honest, I haven't spotted it yet. o_O
 
Well for sure the PR11 node is now in the correct position, so something changed somewhere for the better. However we are seeing way too many sub-nodes PR11-PR18 and PR21-PR26, with all the actual ports hanging of further hubs beneath PR11 and PR21. You can see all of this in Hackintool and it's just way too cluttered.

What I would do is remove all the PR** nodes except PR11 and PR21 in Hackintool.

The Fresco Logic is at NPE9
ASMX is at PEX1, and the two ASMedia hubs are at PEX2 and PEX3 - which I'm sure you've seen.

The ASMX controller has no active ports so it's probably safe to leave as-is for now.

So, to address your initial query about power to the ports. All hubs - USB2 and USB3 - appear to be suffering the same problem - 2 of each 4 get the low power. On the USB3 ports specifically 2 of the 4 get get full USB3 power while the other 2 do not.

Frankly we are missing something here - either a kext or a DSDT edit, or an SSDT - which is causing these problems. I'll be honest, I haven't spotted it yet. o_O

Thanks again for your replies, they have been really helpful in navigating this mess for my not so inclined brain!

So, have tinkered away some more, I removed the SafeSleepEject app and think that may have allowed some progress, that was ejecting the usb ports and power routing right before sleep, but i havent got sleep working anyway so I think it was just causing some mess.

I havent edited or used any DSDTs on this build.

Currently this is where I am -
I removed the excess PR ports, disabled PLRP and swapped in the USBPort kext, nice and tidy in Hackintool now
Screenshot 2021-02-24 at 16.53.10.png

HP11 keeps assigning itself ExpressCard label, im not sure why, and in IOReg it comes up as under PRT01 when i put the mouse in it, not sure if thats of any consequence.

I now get power to 2 USB3 ports under PEX4 (its no longer under PEX3, not sure why!)
I also get power under PXSX on the two case front ports.
So things are looking up!

However, any of the above USB3 ports i plug my drive into dont show up on Hackintool unless plugged into the USB2 ports becuase then routed under Hp11-18 The weird thing is that I only have 4 usb2 ports so not sure why theres so many other ones listed?

Now when i plug my 5400 rpm USB3 harddrive into the FL1100 card ports, weirdly it lists the drive under USB2 instead of USB3 in IOReg (when this same drive shows up under USB3 on the now working mobo ports) - and i did a disk speed test, the FL1100 is only seeing that drive as a USB2. But if i use a USB3 stick or another USB3 7400rpm drive they come up under USB3 on the FL1100

The other 4 USB3 ports on the Mobo dont get any power, but thats fine, i can forget those happily as i now have 8 working usb3 ports total.

I've attached the updated IOReg in case its of any insight, at least im making progress now, thanks to your advice!

and just in case theres something im missing here that could interfere, this is my Kexts folder in EFI

Screenshot 2021-02-24 at 17.16.31.png
 

Attachments

  • Screenshot 2021-02-24 at 16.58.28.png
    Screenshot 2021-02-24 at 16.58.28.png
    36.9 KB · Views: 31
  • Mac Pro IOReg v2.ioreg
    6 MB · Views: 37
Thanks again for your replies, they have been really helpful in navigating this mess for my not so inclined brain!

So, have tinkered away some more, I removed the SafeSleepEject app and think that may have allowed some progress, that was ejecting the usb ports and power routing right before sleep, but i havent got sleep working anyway so I think it was just causing some mess.

I havent edited or used any DSDTs on this build.

Currently this is where I am -
I removed the excess PR ports, disabled PLRP and swapped in the USBPort kext, nice and tidy in Hackintool now
View attachment 510392
HP11 keeps assigning itself ExpressCard label, im not sure why, and in IOReg it comes up as under PRT01 when i put the mouse in it, not sure if thats of any consequence.

I now get power to 2 USB3 ports under PEX4 (its no longer under PEX3, not sure why!)
I also get power under PXSX on the two case front ports.
So things are looking up!

However, any of the above USB3 ports i plug my drive into dont show up on Hackintool unless plugged into the USB2 ports becuase then routed under Hp11-18 The weird thing is that I only have 4 usb2 ports so not sure why theres so many other ones listed?

Now when i plug my 5400 rpm USB3 harddrive into the FL1100 card ports, weirdly it lists the drive under USB2 instead of USB3 in IOReg (when this same drive shows up under USB3 on the now working mobo ports) - and i did a disk speed test, the FL1100 is only seeing that drive as a USB2. But if i use a USB3 stick or another USB3 7400rpm drive they come up under USB3 on the FL1100

The other 4 USB3 ports on the Mobo dont get any power, but thats fine, i can forget those happily as i now have 8 working usb3 ports total.

I've attached the updated IOReg in case its of any insight, at least im making progress now, thanks to your advice!

and just in case theres something im missing here that could interfere, this is my Kexts folder in EFI

View attachment 510397

Hackintool looks a lot better. :thumbup:

Yes, I noticed PRT1=HP11 previously. It shouldn't be there. There simply are not 15x EHCI ports on the X79 chipset. The only thing I can think of is this special ROG Connect white port feature. Compared with the other ports it doesn't have the usual USB power parameters. As for it being an expressport - that sounds like laptop-speak. o_O

I read through @shilohh 's excellent Golden Build and note: "SSDT-8.aml = Fixes on-board USB 2 devices for El Capitan" I'm sure you've seen that too. Worth examining. So is "<string>npci=0x2000</string>". Is this for current versions macOS?

As for the Fresco Logic chipset, yes I can see what you mean. That will be caused by ... something we can't yet see, because we don't have access to your EFI folder. That's fine by the way, but it's a given something is causing the problem.

As for the ASMedia ports - I can 'see' why Hackintool can't. The Generic' "hooks" are not there.

To conclude: X79 systems are as tricky as any X99, X299 etc system to get running smoothly. @shilohh 's guide is as good as they come and so handy for you with the same hardware. There are so many DSDT edits performed by various patches that it comes as no wonder that some parts of ACPI are left in a somewhat precarious state. I don't think the full USB port map was done in the original guide so, like yours, relied on the Inatek PCI card for USB3. Back then GenericUSBXHCI worked well with ASMedia 1042's.
 
I've decided only to go a step at a time, so:

Just checking in on what my next steps should be as I feel that I should be creating a USBPorts.kext, but my EH01 & EH02 controllers don't show ports in Hackintool, so what can I even attempt to clean up?

Attachment shows my Open Core system with a config:

  • USBPorts.kext set to false.
  • SSDT-EHCx_OFF set to false as if I don't my EHCI, EH01 & EH02 controllers do not respond. I can set SSDT-EHCx_OFF to true, but only if I outright disable my Intel Controllers in the Bios, then I loose EH01 & EH02 controllers.
  • XHCIPortlimit set to true.


thanks,
RDP
 

Attachments

  • Screen Shot 2021-02-25 at 8.33.13.png
    Screen Shot 2021-02-25 at 8.33.13.png
    220 KB · Views: 44
Last edited:
Hackintool looks a lot better. :thumbup:

Yes, I noticed PRT1=HP11 previously. It shouldn't be there. There simply are not 15x EHCI ports on the X79 chipset. The only thing I can think of is this special ROG Connect white port feature. Compared with the other ports it doesn't have the usual USB power parameters. As for it being an expressport - that sounds like laptop-speak. o_O

I read through @shilohh 's excellent Golden Build and note: "SSDT-8.aml = Fixes on-board USB 2 devices for El Capitan" I'm sure you've seen that too. Worth examining. So is "<string>npci=0x2000</string>". Is this for current versions macOS?

As for the Fresco Logic chipset, yes I can see what you mean. That will be caused by ... something we can't yet see, because we don't have access to your EFI folder. That's fine by the way, but it's a given something is causing the problem.

As for the ASMedia ports - I can 'see' why Hackintool can't. The Generic' "hooks" are not there.

To conclude: X79 systems are as tricky as any X99, X299 etc system to get running smoothly. @shilohh 's guide is as good as they come and so handy for you with the same hardware. There are so many DSDT edits performed by various patches that it comes as no wonder that some parts of ACPI are left in a somewhat precarious state. I don't think the full USB port map was done in the original guide so, like yours, relied on the Inatek PCI card for USB3. Back then GenericUSBXHCI worked well with ASMedia 1042's.
Good point RE the ROG Connect port, I thought that but funnily enough thats labelled on a seperate port from the one that showed as PRT1, who knows!!

I appreciate your patience with me here - I am not very experienced with ACPI and SSDT edits, my initial build relied heavily on shilohh's guide and so I will admit that I am not very confident when it comes to solving problems like this!

I have attached my EFI.

My system wont complete booting without npci=0x2000 or SSDT-8 and In all honesty I dont know what im looking at with ACPI other than the basics. I am grateful for all the help you have given me so far and appreciate how tricky it is to get these systems running smoothly, I've already made a lot of progess thanks to you so if Im asking too much for further help I totally understand if youd prefer to leave it where it is!
 

Attachments

  • satkins EFI.zip
    18.4 MB · Views: 43
Good point RE the ROG Connect port, I thought that but funnily enough thats labelled on a seperate port from the one that showed as PRT1, who knows!!

I appreciate your patience with me here - I am not very experienced with ACPI and SSDT edits, my initial build relied heavily on shilohh's guide and so I will admit that I am not very confident when it comes to solving problems like this!

I have attached my EFI.

My system wont complete booting without npci=0x2000 or SSDT-8 and In all honesty I dont know what im looking at with ACPI other than the basics. I am grateful for all the help you have given me so far and appreciate how tricky it is to get these systems running smoothly, I've already made a lot of progess thanks to you so if Im asking too much for further help I totally understand if youd prefer to leave it where it is!

No problem. Happy to help where I can.

This thread is for USB configuration using Hackintool so happy to work on that :thumbup:

Other X79 related stuff needs to go in the relevant forum to attract the help you need from people who know.

Okay. The EFI is fine. I can see the original EFI you used in there and the USBPorts.kext you've created is fine. You've disabled the Catalina port-limit removal patch.:thumbup:

Interestingly the PRT1 port is being configured elsewhere in the DSDT as originally coded by ASUS, which to me, points at that ROG Connect doobry.

Thanks for trying to remove the items I mentioned. Sorry they stopped boot. I think we have hit a barrier here in that the X79 and ASUS's implementation of the USB ports, is what may be affecting your power delivery - which was your original issue. It was never designed for macOS after all.

The only other experiments I can suggest (and remember I don't have access to an X79 motherboard) is to explore the BIOS and see if you can Disable the ASMedia USB3 controller. I wonder what difference that would make overall?

Sorry if all that is a bit vague, but you have already got everything well-sorted, within the parameters of your hardware. Even @shilohh didn't map USB or do anything other than add the FL1100 PCIe card.

:)
 
Last edited:
Back
Top