Contribute
Register

The New Beginner's Guide to USB Port Configuration

I try to use USBToolBox 0.1.1 to create a UTBMap.Kext (attached)
it has all IOKitPersonalities :
That is true, but what is missing from the UTBMap.kext/Contents/info.plist is the SMBIOS data for your system.

Screenshot 2023-10-27 at 20.53.30.png Screenshot showing the three USB controllers XHC1, SLT1 & SLT7

Compare this to how the USB controllers are displayed in USBPorts.kext and USBMap.kext, where the SMBIOS is included in the USB controller definition. Screenshots below are taken from an AMD B550 system, which has 3 x USB controllers from the motherboard and 1 x USB controller from a PCIe card (Fresco Logic FL1100)

Screenshot 2023-10-27 at 20.54.17.png USBPorts.kext/Contents/info.plist

Screenshot 2023-10-27 at 20.54.42.png USBMap.kext/Contents/info.plist

Possibly the fact the other two USB configuration kexts include the SMBIOS/system name helps them to display non-Intel USB controllers/ports in a more favourable manner.

I would recommend you do the following:
  1. Remove your current UTBMap.kext and USBToolBox.kext from your setup.
  2. Remove any other USB configuration related kexts, SSDTs, patches or fixes.
    • Do not add USBInjectAll.kext to your system, as it is not needed.
  3. Reboot your system with the XhciPortLimit Quirk enabled.
  4. Download Corpnewt's USBMap python script.
  5. Follow the guidance linked in the Quick Start section on the USBMap Github page:
  • Map all the ports, don't start reducing the number of ports under any of the USB controllers.
  • Include realistic descriptions of the ports location/type with each and every port you discover.
    • This is usually accomplished by selecting 'N' after each port is discovered.
    • See the screenshot below for what I mean about realistic descriptions.
    • Screenshot 2023-10-27 at 21.12.43.png Port descriptions/names highlighted
These are the USB ports present in your ASRock X299 motherboard:

Rear I/O plate:
- 2 x USB 2.0 Ports (13)
- 2 x USB 3.2 Gen2 Thunderbolt 3 Type-C Ports (8)
- 4 x USB 3.2 Gen1 Type-A Ports (11 & 12)

Screenshot 2023-10-27 at 21.22.18.pngrear I/O Panel connectors

Internal Headers:
- 2 x USB 2.0 Headers (Support 4 USB 2.0 ports) (29 & 30)
- 1 x USB 3.2 Gen1 Header (Supports 2 USB 3.2 Gen1 ports) (14)
- 1 x Front Panel Type C USB 3.2 Gen2 Header (ASMedia ASM3142) (12)
- Plus USB port from M.2 WiFi_1 connector for Bluetooth module

Screenshot 2023-10-27 at 21.24.03.png Motherboard USB headers and connectors.

Screenshot 2023-10-27 at 21.23.20.png USB header connector details from manual, with port numbers

Hope this all helps and makes sense.
 
That is true, but what is missing from the UTBMap.kext/Contents/info.plist is the SMBIOS data for your system.

View attachment 573505 Screenshot showing the three USB controllers XHC1, SLT1 & SLT7

Compare this to how the USB controllers are displayed in USBPorts.kext and USBMap.kext, where the SMBIOS is included in the USB controller definition. Screenshots below are taken from an AMD B550 system, which has 3 x USB controllers from the motherboard and 1 x USB controller from a PCIe card (Fresco Logic FL1100)

View attachment 573506 USBPorts.kext/Contents/info.plist

View attachment 573507 USBMap.kext/Contents/info.plist

Possibly the fact the other two USB configuration kexts include the SMBIOS/system name helps them to display non-Intel USB controllers/ports in a more favourable manner.

I would recommend you do the following:
  1. Remove your current UTBMap.kext and USBToolBox.kext from your setup.
  2. Remove any other USB configuration related kexts, SSDTs, patches or fixes.
    • Do not add USBInjectAll.kext to your system, as it is not needed.
  3. Reboot your system with the XhciPortLimit Quirk enabled.
  4. Download Corpnewt's USBMap python script.
  5. Follow the guidance linked in the Quick Start section on the USBMap Github page:
  • Map all the ports, don't start reducing the number of ports under any of the USB controllers.
  • Include realistic descriptions of the ports location/type with each and every port you discover.
    • This is usually accomplished by selecting 'N' after each port is discovered.
    • See the screenshot below for what I mean about realistic descriptions.
    • View attachment 573508 Port descriptions/names highlighted
These are the USB ports present in your ASRock X299 motherboard:

Rear I/O plate:
- 2 x USB 2.0 Ports (13)
- 2 x USB 3.2 Gen2 Thunderbolt 3 Type-C Ports (8)
- 4 x USB 3.2 Gen1 Type-A Ports (11 & 12)

View attachment 573509rear I/O Panel connectors

Internal Headers:
- 2 x USB 2.0 Headers (Support 4 USB 2.0 ports) (29 & 30)
- 1 x USB 3.2 Gen1 Header (Supports 2 USB 3.2 Gen1 ports) (14)
- 1 x Front Panel Type C USB 3.2 Gen2 Header (ASMedia ASM3142) (12)
- Plus USB port from M.2 WiFi_1 connector for Bluetooth module

View attachment 573510 Motherboard USB headers and connectors.

View attachment 573511 USB header connector details from manual, with port numbers

Hope this all helps and makes sense.
Thanks I'll try that on Monday and report
 
@Edhawk If you have an E Type internal port connected to a short E Type adapter cable to a front panel Type C port and the port itself does not deliver any more than USB 3.1 controller's speed ie USB 3.0 and the C connector does not allow a flip, should that connector be mapped as a 10 or as a 3 in the map? Asrock Z590 Phantom Gaming – ITX/TB4 (There are 2 separate Intel controllers on this board a 3.1 and a 3.2) 3.1 is Thunderbolt C on back IO
1707593771301.png

 
It should be mapped as a (9) Type-c+sw, if the same port is highlighted when the Type-C device is removed, flipped 180° and reinserted in the same front connector.

You only use (10) Type-c, if a different port is highlighted when the device is removed, flipped and reinserted in the same connector.
 
Back
Top