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
- USB4 - Wikipedia
- USB4 and Thunderbolt — The Linux Kernel documentation
- https://www.reddit.com/r/hardware/comments/14qxrga/phoronix_linux_65_adding_initial_support_for_usb4/
- USB4 and Thunderbolt on AMD - Framework Laptop 13 - Framework Community
- https://www.phoronix.com/news/Intel-Linux-thunderbolt-utils
- Thunderbolt - ArchWiki
Tools
- GitHub - intel/tbtools: Thunderbolt/USB4 debugging tools (written in Rust)
- GitHub - jannau/thunderbolt-utils: Thunderbolt/USB4 Linux user-space utilities (does not appear to be maintained any more)
- bolt / bolt · GitLab (Thunderbolt 3 device manager, written in C)
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)