USB4/Thunderbolt Notes

Collecting some notes about USB4 and issues that may be relevant on embedded Linux systems.

USB4 systems can tunnel the following types of data:

  • USB3 connections
  • DisplayPort connections
  • PCIe connections
  • Ethernet/Network connections according to the included USB4Net and Cross-Domain specifications.

Links

Tools

Connection manager

From the Linux docs:

Connection manager is an entity running on the host router (host controller) responsible for enumerating routers and establishing tunnels. A connection manager can be implemented either in firmware or software. Typically PCs come with a firmware connection manager for Thunderbolt 3 and early USB4 capable systems. Apple systems on the other hand use software connection manager and the later USB4 compliant devices follow the suit.

(This post is a Wiki, feel free to update)

I tried running tbman (from tbtools) on my computers here:

On a MSI Prestige 14Evo A11MO which has a USB-C monitor and a USB-C Network adapter plugged into the ports, I get:

Looked up the specs, and it is a USB 3.1 Ethernet adapter.

There are thunderbolt compatible devices – not sure what the difference would be.

In Arch/KDE, there is a Thunderbolt config page:

I suspect this talks to boltd, which is installed on system and the bolt.service is running.

On an older AMD workstation:

In the linux kernel, the USB4 config option causes a kernel module to be built named “thunderbolt”.

On the MSI laptop, this kernel module is installed.