understanding the output of lsusb in relation to motherboard chipset

I have a motherboard with Intel H97 chipset. The chipset supports maximum of eight USB 2.0 ports and maximum of six USB 3.0 ports. According to motherboard manual, it has two USB 2.0 ports and four USB 3.0 ports on the I/O panel and rest of the USB ports are available via connectors on the motherboard. Now regardless if I connect the USB devices to USB 2.0 or 3.0 ports on the rear I/O panel or to USB headers on the motherboard, then the devices always appear under root hub of bus #2. Example where Mass Storage type of device is connected to one of the USB ports on the motherboard I/O panel:

# lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
    |__ Port 1: Dev 18, If 0, Class=Communications, Driver=cdc_ether, 480M
    |__ Port 1: Dev 18, If 1, Class=CDC Data, Driver=cdc_ether, 480M
    |__ Port 1: Dev 18, If 2, Class=Mass Storage, Driver=usb-storage, 480M
    |__ Port 12: Dev 27, If 0, Class=Mass Storage, Driver=usb-storage, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

However, what are the buses #1, #3 and #4? For bus #4 there seems to be a single Linux Foundation 3.0 root hub type of device connected:

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

For buses #3 and #1 there seems to be a 8-port(8p in the output of lsusb -t) Intel USB 2.0 hub(8087:8001) and 6-port Intel USB 3.0(8087:8009) hub connected:

Bus 003 Device 002: ID 8087:8001 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8009 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

I don’t know if this is a coincidence, but the number of ports in Intel hub in bus #3 and in Intel hub in bus #1 add up to 14. This aligns with the chipset documentation and with the number of ports seen in the output of lsusb -t for bus #2.

Asked By: Martin


The Intel H97 chipset still provides the old EHCI USB 2.0 controller implementation for backward compatibility with older OSs that don’t have USB 3 support, like Windows 7 for example.

If the OS only supports EHCI and older USB controller types, then the motherboard can (either by a BIOS setting, or automatically) allow all the USB ports be accessed through the EHCI controllers, and in that situation, USB buses #1 and #3 would be used. (In that situation, buses #2 and #4 would not even appear.)

The XHCI controller could still be activated later by an add-on driver, and there would be a specific hand-over protocol to switch the ports to it.

But a modern OS that has drivers for XHCI controllers, so it will activate the XHCI controller straight away, which apparently causes all devices that use USB 2 or older speeds to appear on bus #2, and the buses #1 and #3 (i.e. the same USB ports viewed through the EHCI controllers) will be left unused.

The bus #4 is for USB 3 SuperSpeed devices only. It appears as a separate bus, because it uses the extra wires in the USB 3 connectors.

To connect to bus #4, you need an USB 3.0 (or higher) device that is actually capable of SuperSpeed (or higher) speeds, and a cable that includes the new SuperSpeed wires and connectors.

For marketing reasons, any USB 2.x device that implements a few USB protocol refinements included in the USB 3.0 specification will be able to legitimately claim USB 3 support. But to use bus #4, you will need specifically USB 3 SuperSpeed support.

The USB 3.1 and 3.2 specifications confused the naming further by retroactively changing the recommended labeling of older USB 3.x devices: the original USB 3.0 SuperSpeed is now also known as "USB 3.1 Gen 1", "USB 3.2 Gen 1×1" and (the currently preferred name) "SuperSpeed USB 5 Gbps".

Likewise, the new mode introduced by the USB 3.1 specification was originally "SuperSpeed+", but it can be also known as "USB 3.2 Gen 2×1" or (preferred) "SuperSpeed USB 10 Gbps".

Answered By: telcoM
Categories: Answers Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.