The Device Tree (DT) files needed by the Linux kernel for Apple Macs powered by the M1 Pro, Max, and Ultra SoCs have been submitted to the kernel mailing list for review and upstream.
This is part of the enabling job to get Apple M1 Pro/Max/Ultra powered devices working with upstream Linux kernel. Thanks to the Asahi Linux project and their patched distribution based on Arch Linux, it is already possible to run these new Apple Mac devices powered by the high-end M1 components while the upstream effort to the kernel continues.
The “request for comment” patches sent out on Friday add the necessary Device Tree files for the Apple M1 Pro, Max, and Ultra SoC, but it’s still not the final enabler job. Janne Grunau commented on sending DT patches:
Even with t6000-dart support, t600x devices aren’t very useful upstream. There is no input device support. Laptop keyboard and touchpad lack SPI and HID over SPI drivers. dwc3 USB-C ports are not yet added as they require special handling after disconnection. The PCIe-based xhci USB controller in Mac Studio requires a firmware download similar to USB_XHCI_PCI_RENESAS.
Beyond numerous non-upstream fixes, one of the biggest hurdles to daily use of Apple M1 and M2-powered hardware on Linux remains support for GPU acceleration. There’s hope for OpenGL 2.1 on their reverse-engineered open source driver by the end of the calendar year, but even then it’s likely to be even longer until it’s released. upstream…Especially with the intended graphics/display driver for the DRM kernel which plans to use the Rust programming language, which in turn also needs the Rust infrastructure ready and upstream in the kernel.
It’s a long and ongoing process to get Apple-powered devices working properly on Linux. The last bits for upstream are the DT files for the high-end M1 chips used by Apple Mac Studio (pictured).
People interested in DT patches can see them on the kernel mailing list.
Those wondering about the current Linux downstream support on Apple M1/M2 when using Asahi Linux can check their Wiki page for the current feature matrix.