Anyone know if there are BIOS settings that would force the USB ports from the header and the USB ports on the rear I/O panel to be handled by separate USB controllers?
I took a look at the block diagram for the board (page 11 in the manual) and, though I have very little experience reading hardware architecture diagrams, it looks like the USB 3.1 Gen 2 ports are connected directly to the CPU while the USB 3.1 Gen 1 header is connected to the X570 chipset.
The output of lspci
(below) seems to show that there are two USB controllers on the board:
root@mycomputer:~# lspci | grep USB
2a:00.1 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
2a:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
2f:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
Note that I believe 2a:00.1
and 2a:00.3
are the same controller since they have the same bus number and device number.
In the BIOS I see a few options related to XHCI (USB 3.0) controllers in the “X570/X590 Chipset USB Configuration Options” submenu and the “FCH Common Options” submenu. In the X570/X590 menu there are options to enable/disable Controller0
and Controller1
which further suggests to me that there are two controllers on the board:
Additionally, in the FCH submenu there is a separate option to enable/disable XHCI
Controller0
From the block diagram, I thought that the ports connected to the CPU indirectly via the X570 chipset might be handled by the Fusion Controller Hub (southbridge).
My experiments have shown that disabling Controller0
via the “FCH Common Options” menu removes the controller at 2f:00.3
from the system. However, regardless of which port I plug my USB peripherals into, they are all handled by controller 2a:00.3
. USB 2.0 peripherals and USB 3.0 peripherals are attached to separate buses but they are all serviced by that same aforementioned controller.
Bus 3 --> 0000:2a:00.3 (IOMMU group 20)
Bus 003 Device 011: ID 046b:ff10 American Megatrends, Inc. Virtual Keyboard and Mouse
Bus 003 Device 010: ID 046b:ffb0 American Megatrends, Inc. 4-Port USB 2.0 Hub
Bus 003 Device 009: ID 046b:ff20 American Megatrends, Inc.
Bus 003 Device 007: ID 046b:ff01 American Megatrends, Inc. Virtual Hub
Bus 003 Device 005: ID 413c:3010 Dell Computer Corp. Optical Wheel Mouse
Bus 003 Device 008: ID 0b05:190e ASUSTek Computer, Inc. Dell USB Keyboard Hub
Bus 003 Device 006: ID 20f4:808a TRENDnet
Bus 003 Device 003: ID 0bda:5411 Realtek Semiconductor Corp. 4-Port USB 2.0 Hub
Bus 003 Device 004: ID 413c:2010 Dell Computer Corp. Keyboard
Bus 003 Device 002: ID 413c:1003 Dell Computer Corp. Keyboard Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 4 --> 0000:2a:00.3 (IOMMU group 20)
Bus 004 Device 005: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge
Bus 004 Device 004: ID 05e3:0749 Genesys Logic, Inc. 4-Port USB 3.0 Hub
Bus 004 Device 003: ID 0bda:0411 Realtek Semiconductor Corp. 4-Port USB 3.0 Hub
Bus 004 Device 002: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Flash Drive
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
I’m aiming to pass-through two of the ports on the board to a VM and am hunting for the magic BIOS settings that might split these ports onto distinct controllers. It would be acceptable for my rig if the passed-through ports had to run at USB 2.0 speeds and to that end I searched for “XHCI/EHCI handoff” options in the BIOS but could not find anything.
Any suggestions or help would be greatly appreciated!