The Linux Kernel will soon natively support the high-speed USB4 protocol directly on devices utilizing Apple’s M1, M2, and M3 chips. This significant milestone results directly from the diligent, ongoing efforts of developers driving the Asahi Linux project. While this crucial functionality existed previously within Asahi Linux’s downstream repositories, this latest comprehensive patch submission marks a critical turning point. Its primary objective is officially integrating these essential drivers directly into the mainline Linux kernel repository.
Understanding Apple’s Unique USB4 Architecture
Apple fundamentally altered the standard USB4 implementation within its proprietary M-series processors, diverging sharply from conventional PC architectures. Every individual USB4 Type-C port on an Apple device seamlessly integrates a complex hardware module designated as ACIO. This sophisticated ACIO module compactly houses a dedicated Cortex-M3 coprocessor, native host control planes, USB4 host routing mechanisms, and the crucial DART IOMMU.
Dynamic Power Management and Device Creation
Critically, these integrated hardware components do not remain continuously exposed or accessible to the primary processor. The main processor can exclusively access these internal devices through a restricted 16MiB MMIO window, and only after the dedicated ACIO coprocessor successfully initiates operation. Consequently, the software driver must intelligently supply power to the ACIO module based directly upon the physical interface connection status. Following activation, it must boot the RTKit coprocessor before dynamically generating the necessary DART and NHI devices.
Furthermore, when a user physically disconnects a device, the driver must meticulously reverse this complex process. It must systematically destroy the virtual devices and entirely sever power to the module. This exceptionally complex operational requirement explains why providing upstream Linux support for Apple Silicon devices has historically proven so challenging.
Addressing NHI Driver Complexities
The extensive patch submitted by Asahi Linux engineers introduces over 1,000 lines of highly specialized code explicitly designed for the proprietary Apple Thunderbolt protocol. Simultaneously, this vital patch heavily modifies the existing, foundational Thunderbolt core currently operating within the Linux Kernel. Apple’s unique NHI design mandates an entirely independent interrupt sequence for every single active ring. Therefore, its specific register layout, detailed ring configuration, and fundamental interrupt handling methodologies differ completely from any standardized, generic USB4 controller.
Enhanced Isolation in M3 Chips
Apple introduced even more stringent management protocols within the newer M3 architecture. The M3 hardware meticulously allocates up to 24 separate IOMMU entries dedicated to various TX/RX rings. This sophisticated design significantly enhances operational isolation between distinct data channels. Additionally, Apple’s hardware completely ignores certain specific USB3 bandwidth allocation registers that the existing Linux USB4 code inherently expects to utilize. Consequently, the Asahi Linux engineers strategically incorporated specialized “quirks” directly into the submitted patch to safely bypass these specific, problematic processes.
The Current State of Thunderbolt Support
Users must understand that this initial code integration does not yet provide comprehensive, universal Thunderbolt support. Currently, the system exclusively supports direct XDomain host-to-host connections alongside standard USB3-over-USB4 tunneling functionalities. Crucially, complex PCIe device tunneling and DisplayPort (DP) video tunneling remain unfinished and unsupported at this time.
Therefore, several common hardware scenarios remain unreliable. Users cannot yet depend upon complex Thunderbolt docking stations, external graphics processing units (eGPUs), high-speed external PCIe devices, or monitors connected directly via the Thunderbolt protocol to function correctly. Asahi Linux engineers have successfully developed and thoroughly tested this submitted patch across the M1, M2, and M3 platforms. However, the patch currently resides entirely within the rigorous Linux kernel mailing list review phase. The maintainers have not yet formally merged this code into the active Linux kernel.
Support Our Threat Intelligence
Find our zero-day alerts and CVE reports helpful? Support our work today and unlock a 100% ad-free reading experience!