USB4 and Thunderbolt support in Linux for Apple Silicon

  • A set of 19 patches seeks to integrate USB4 and Thunderbolt support into the Linux kernel for the M1, M2, and M3 chips.
  • The work, led by Sven Peter, was based on reverse engineering the ACIO block without Apple's help.
  • XDomain connections and USB3 tunnels are already working, but PCIe, DisplayPort and safe suspend are missing.
  • The nodes for M1 and M2 are already ready, while those for M3 will arrive when the stack is stable.

USB4 and Thunderbolt support in Linux

The Linux kernel is about to take a significant leap forward in its support for Apple computers. The Asahi Linux project, which has been working for years to ensure optimal Linux performance on the M1, M2, and M3 chips, has released a series of 19 patches that aim to officially integrate USB4 and Thunderbolt connectivity. This proposal, authored by developer Sven Peter, is already on the main kernel mailing list, representing a firm step toward the compatibility many users have been waiting for.

This news is especially relevant for the Linux ecosystem in Europe, where a growing number of professionals are using these Macs as workstations . Until now, the lack of a dedicated driver limited the use of high-speed peripherals, external storage, and displays. With these patches, the situation is beginning to change, although there are still some hurdles to overcome, such as the lack of support for PCIe and DisplayPort tunneling , which will be resolved over time.

Linux 6.18
Related article:
Linux 6.18 solidifies its position as a key kernel with profound improvements in performance, security, and hardware support.

The ACIO block, the key to connectivity

The main technical challenge lies in the ACIO (Apple Converged I/O) block . This component, which integrates a Cortex-M3 coprocessor , acts as an intermediary between the system and the physical controllers. The patches implement direct communication with this block, allowing the kernel to manage USB4 link negotiation. However, the current implementation does not include PCIe or DisplayPort tunnels, which are essential for connecting external graphics cards (eGPUs) or high-resolution monitors. The community hopes that the next steps will address these limitations, but for now, it's a solid step forward.

USB4 and Thunderbolt support in Linux

The reverse engineering work has been monumental, as Apple is not collaborating on the project. Sven Peter has had to observe the hardware's behavior and reconstruct its operation piece by piece. The initialization sequence must address the specific characteristics of the ACIO's memory space before registering the hardware with Linux. The main controller powers up the ACIO, starts the coprocessor, and creates the secondary devices DART and NHI when their memory regions become accessible—a chain of steps that explains why support has taken so long to arrive.

What works and what's still to come

The current series allows the NHI controller to register with the Thunderbolt and USB4 software connection manager. For now, the code supports XDomain connections and USB3 tunneling over USB4, two capabilities that provide a functional foundation for linking compatible devices. System suspend remains disabled when an active connection exists due to the risk of a SError error during resumption, an issue the developers hope to address in future iterations.

USB4 and Thunderbolt support in Linux

The last three patches in the series add the device tree nodes corresponding to the M1 and M2 chips. Nodes for M3 will be added when the rest of the stack reaches the main kernel, although the current Thunderbolt and USB4 code has already been successfully tested on devices based on that chip. This means that, while not yet fully implemented, the foundation is in place for future standard Linux releases to offer this functionality without relying on external modifications.

The developer community continues to demonstrate that, with patience and collaborative work, it's possible to bring Linux closer to a level of full compatibility with Apple hardware. While some tasks remain, such as PCIe tunneling, DisplayPort, and secure sleep management, the progress is tangible and lays the groundwork for future kernel versions to offer a much more complete experience to Mac users with M1, M2, and M3 chips.


Add as preferred source in Google