Linux Inches Closer to USB4 and Thunderbolt Support on Apple Silicon Macs

Support for USB4 and Thunderbolt on Linux for Macs with Apple M1, M2, and M3 chips has taken an important step toward the official kernel. Developer Sven Peter, associated with the Asahi Linux project, submitted an initial series of 19 patches for review on the kernel mailing lists on August 30, 2026. The work brings upstream code that until now depended largely on development done specifically around Asahi Linux, although features such as PCIe and DisplayPort tunneling are still missing.

Apple Silicon Thunderbolt support in 30 seconds

  • Sven Peter has submitted 19 patches to bring initial USB4/Thunderbolt support for Apple M1, M2, and M3 into the Linux kernel.
  • The code includes support for the ACIO complex, the NHI interface, and quirks specific to Apple’s controllers.
  • For now, XDomain connections and USB3 tunneling over USB4 work.
  • PCIe and DisplayPort tunneling are not yet implemented.
  • The patches are under review: submitting them to the kernel doesn’t mean they’re already part of a stable release.

That last point matters. The original post circulating on social media claims the code “is landing in mainline Linux,” but for now the series is under review. In fact, it has already received technical feedback, and Peter has said he’ll prepare a second version to address it.

If it’s ultimately accepted, the change will matter for more than just getting one more peripheral working. Integrating the support into the official kernel reduces reliance on patches maintained specifically outside the main tree, and it lets Linux distributions benefit from the work later through their regular kernel releases.

Apple Silicon Forces Linux to Understand an Unconventional Architecture

USB4 on an Apple Silicon Mac isn’t simply a matter of using the Thunderbolt controller Linux already has.

The technical description of the patches shows part of the work involved.

Every USB4-capable USB-C port includes a block called ACIO (Apple Converged I/O). Inside it sit a Cortex-M3 coprocessor and the hardware that handles the USB4 router.

Also part of that block are the NHI (Native Host Interface) and Apple’s DART memory management unit.

The difficulty is that these components don’t simply show up as independent devices permanently accessible to Linux. The SoC’s main bus has a 16 MiB window into ACIO’s MMIO space while its coprocessor is running.

The driver has to power on the block, boot the coprocessor via RTKit, and then make the necessary secondary devices accessible.

The series adds precisely a platform driver for the ACIO complex and the NHI.

Peter also explains that Apple’s implementation differs from the generic behavior expected by Linux’s Thunderbolt subsystem. The NHI, for example, uses a separate interrupt for each ring and requires adapting register layout, ring configuration, and interrupt handling.

Working around the SoCs’ power management system was also necessary.

Before this main series, Peter had submitted separate patches for the reset controller of the CIO blocks used by USB4 and Thunderbolt. On the t8103 and t8112 chips, each port has a dedicated register page, while other families such as t600x and t602x use shared registers within the PMGR power manager’s MMIO region.

These are details that normally stay hidden under macOS, because Apple controls both the hardware and the operating system — much like the way the XNU kernel that powers macOS combines pieces most users never have to think about. For Linux to use them, it needs to understand how those pieces work and represent them within the kernel’s existing subsystems.

That process is part of the work Asahi Linux has been doing around Apple Silicon for years.

USB4 Works Partially, but PCIe and DisplayPort Will Have to Wait

The 19 patches also don’t mean an M1, M2, or M3 Mac will immediately have every Thunderbolt capability under Linux.

The driver itself currently draws a clear line.

The first version supports XDomain connections and USB3 tunneling over USB4.

Other important pieces still need to be implemented.

One of them is DisplayPort tunneling, needed for certain video scenarios over Thunderbolt. Peter had previously explained that he hadn’t yet implemented this support while working on the Apple Silicon NHI.

Also still pending is PCIe tunneling, a feature especially relevant for Thunderbolt devices that expose PCI Express hardware.

So talking about full Thunderbolt support at this stage would be premature.

The series has also uncovered Apple-specific behavior that requires adapting the generic code. One patch introduces, for example, QUIRK_NO_USB3_BW_ALLOC, because Apple Silicon host routers don’t implement the USB3 bandwidth allocation registers the way standard code expects. Without that exception, creating USB3 tunnels ends up failing on timeout.

There are also outstanding issues related to suspend when certain connections are active.

All of this explains why the work is explicitly presented as initial support.

The good news for Linux isn’t that every box is already checked, but that the architecture needed to keep completing them is being discussed directly with the maintainers of the relevant kernel subsystems.

From Asahi Linux’s Work to the Official Kernel

The broadest angle here is precisely the upstream process.

Asahi Linux has for years made it possible to run Linux on Apple Silicon through a combination of reverse engineering, driver development, and collaboration with various open source projects.

The work isn’t limited to USB.

The project has had to tackle graphics components, power management, audio, storage, and numerous drivers specific to Apple’s SoCs.

USB4 and Thunderbolt are another especially complex piece of that effort.

The gap between having code in a specific tree and getting it into the mainline kernel is considerable.

An externally maintained patch has to be adapted every time the code it’s built on changes. Linux distributions also don’t necessarily get it just by using a recent kernel version.

Going upstream changes that picture.

Once a driver is accepted into Linux, it lives alongside the rest of the kernel code and its changes have to stay compatible with it. Other developers can review the implementation, spot problems, and adapt shared subsystems when needed.

Peter’s series already shows that process in action.

Mika Westerberg, one of the maintainers of Linux’s Thunderbolt subsystem, has reviewed the driver and proposed changes to bring some operations closer to the generic code. Peter replied on September 1, 2026, that he would incorporate several of those comments into a future v2.

That’s why it still can’t be said the 19 patches will be merged exactly as they are.

They may change during review, get split up, go through new revisions, or need extra work before being accepted.

But their publication means that a significant part of the USB4/Thunderbolt support developed for Apple Silicon Macs has reached a different stage: it’s now being discussed as code headed for official Linux.

And that may end up mattering more in the long run than getting some particular Thunderbolt accessory working a few weeks sooner.

Frequently Asked Questions

Does Linux already support Thunderbolt on M1, M2, and M3 Macs?

There is an initial series of 19 patches to bring that support into the mainline kernel, but it is currently under review. Submitting the patches should not be confused with their final inclusion in a stable release.

What actually works with these patches right now?

The initial implementation covers XDomain connections and USB3 tunneling over USB4. Sven Peter’s own submitted code specifies these capabilities.

Do Thunderbolt eGPUs work on Apple Silicon with these patches?

PCIe tunneling is not yet part of this initial support, so the patches don’t amount to general support for PCIe-based Thunderbolt devices.

Does DisplayPort work over Thunderbolt?

DisplayPort tunneling support isn’t implemented yet either. Sven Peter has explicitly noted this while developing the Apple Silicon NHI controller.

Scroll to Top