Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

oregonduckman

macrumors newbie
Original poster
Jan 27, 2022
3
1
I have noticed that my 2019 iMac has 2 USB 3.1 busses. It also appears that one of the USB busses is activated when an device is plugged into one of the ports. Is the other bus used internally?
 
It should have at least 3 USB 3.1 busses. One for the top Thunderbolt ports. One for the Thunderbolt ports of the I/O card. Another for the USB type A ports (two on the I/O card and one internal). There could be USB for bluetooth? I would have to check a dump from ioreg to be sure. If you have GPUs with Thunderbolt ports then each pair of Thunderbolt ports will have its own USB 3.1 bus.

Double check my guess by plugging a USB 3.0 device into each port and using IORegistryExplorer.app (from Xcode tools) or run the following command after each connection:
ioreg -w0 | sed -E "/, id 0x.*/s///" | grep -i usb > usb_test1.txt
Give each test a different name to describe what port is being used.

Maybe repeat the test with a USB 2.0 device. Or do the tests with a USB 3.x hub which will count as a USB 3.x hub and a USB 2.0 hub.

You should be able to use any and all ports / busses. If you are testing USB Mass Storage devices, you can test multiple devices simultaneously using ATTO Disk Benchmark.app to see the max total bandwidth.
Two devices connected to a hub will be limited by the hub's upstream USB connection (9.7 Gbps for USB 3.1 gen 2, 4 Gbps for USB 3.0)
Two devices connected to different ports of a bus will be limited by the USB controller's upstream PCIe connection. A Thunderbolt host controller's upstream PCIe connection is 31.5 Gbps - a Thunderbolt peripheral controller's upstream PCIe connection is ≈23 Gbps so in either case more than one USB controller needs to be connected to reach the limit. You have to follow the PCIe connections through all PCIe bridges up to the CPU to see if there's any bottle necks. Slot 1, Slot 3, Pool A, and Pool B are four separate 126 Gbps connections to the CPU (all Thunderbolt devices are connected to Pool B - even those on GPUs in Slot 1 and Slot 2). There's also a 31.5 Gbps DMI connection for devices of the PCH (the type A USB ports and also USB 2.0 to the Thunderbolt controllers, T2 chip + NVMe, SATA storage).

https://www.apple.com/mac-pro/pdf/Mac_Pro_White_Paper_Aug_2021.pdf
 
The link in your response refers to the Mac Pro but I am referring to an a iMac. My goal is to figure out how to attach an external mass storage device to one of the ports on the back and have it detected by the the usb 3.1 bus in the USB device tree that does not have any usb devices connected to it as shown by the following screen capture:
Screen Shot 2022-01-28 at 14.59.34.png
 
  • Like
Reactions: profcutter
Oh sorry. Not sure how I read Mac Pro in that... but some of what I said still applies.

The iMac has one USB 3.0 controller from the PCH for the type A ports and for internal USB devices such as the camera.

The second USB controller you have selected is for the two Thunderbolt ports (remember I said there's usually one USB controller per pair of Thunderbolt ports).

XHCI is the standard interface that USB 3.0 controllers use (eXtended Host Controller Interface). Which means the same driver can be used for different USB 3.0 controllers.
TR stands for Titan Ridge. I guess Apple's XHCI driver for the USB 3.x controller of the Titan Ridge has some minor additions.
8086:15ec is the PCIe vendor and device ID of the USB controller of the Titan Ridge Thunderbolt controller.

You can look up PCIe IDs at https://pci-ids.ucw.cz
https://pci-ids.ucw.cz/read/PC/8086/15ec

You can look up USB IDs at http://www.linux-usb.org/usb-ids.html

The USB controller of the Titan Ridge Thunderbolt controller is interesting. It can be setup to provide USB 2.0 ports (as in a Thunderbolt dock) but usually when it's used as a host controller, the USB 2.0 ports are provided by the PCH USB controller. I don't know what benefit this has. So if you connect a USB 3.x device directly to the Thunderbolt ports, the USB controller will be the Titan Ridge USB controller but if you connect a USB 2.0 device, it may be connected to the USB controller of the PCH.
 
  • Like
Reactions: profcutter
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.