There is a set of 19 patches out for review on the Linux kernel mailing list that would finally allow the mainline kernel running on Apple Silicon M1 / M2 / M3 SoCs to enjoy USB4/Thunderbolt support. While the downstream Asahi Linux code has been carrying the USB4/Thunderbolt enablement patches, they still are working their way into the upstream Linux kernel. On Sunday was the patch series posting by prominent Apple Silicon Linux developer Sven Peter for bringing up USB4/Thunderbolt across M1 / M2 / M3 as the Apple M-series SoCs currently supported by the mainline Linux kernel. It's taken quite a while in getting the Apple Silicon USB4/Thunderbolt support brought-up given complexities with its design: "Each USB4 capable Type-C port comes with an ACIO ("Apple Converged I/O") block which contains a Cortex-M3 co-processor and the hardware implementing the USB4 router. The NHI and DART IOMMU are part of this ACIO block as well. Instead of being exposed as independent always-accessible devices the main SoC bus only gets a 16 MiB window into ACIO's MMIO space while its co-processor is running. It is not entirely clear whether this is ACIO's own address space or a window into the co-processor's address space." There are some caveats with the USB4/Thunderbolt support for Apple Silicon on Linux right now including the lack of suspend support as well as no PCIe or DisplayPort tunneling yet and in need of further reverse engineering: "The main driver powers up ACIO, boots the co-processor, populates the DART and NHI children once their MMIO regions are accessible and registers the NHI with the software connection manager. The last three patches add the device tree nodes for the M1 and M2. M3 nodes will follow once the rest of the stack is upstream, but the current Thunderbolt/USB4 code has already been successfully tested on those. Right now only XDomain connections and USB3-via-USB4 tunnels are supported. Both PCIe and DisplayPort tunnels will come later since those require additional work and reverse engineering that is not done yet. Suspend is also not supported yet and we actually have to prevent suspending whenever an active connection is present because we would otherwise resume into an SError." For those interested in this support it can be found out for review on the Linux kernel mailing list.
Linux Kernel Patches Out For Review To Enable USB4/Thunderbolt For Apple M1 / M2 / M3
Full Article
Original Source
Read the full article at Phoronix →KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.