
Mac mini review for general purpose driver#
This driver handles the general purpose I/O pins of the M1, which are used for things like controlling reset lines for external peripherals. Pinctrl driver ( apple-gpio-pinctrl, in review): Joey Gouly has been busy cleaning up and rewriting the GPIO/pinctrl driver. Bet you hadn’t heard of that USB standard before! This makes charging and USB2 hotplugging work - although an extra patch is needed for the latter, due to a handshake that needs to happen on M1 machines between the USB-C controller and the USB hardware in the M1, to configure the eUSB2 repeater between them. Sven Peter has been hard at work adapting the existing driver to support them. Linux already has a basic driver for the TPS6598X versions, but the chips in M1 machines are special Apple variants (CD3217/CD3218) which are slightly different. USB-C PD driver ( tps6598x, merged): M1 machines use Texas Instruments USB-C controller chips, which handle things like USB-PD negotiation and alternate modes.
Mac mini review for general purpose drivers#
With this ready, the USB-A and Ethernet ports on the Mac Mini now work, as those are standard PCIe chips that Linux already has drivers for. The job of this driver is to set up the physical PCIe ports, handle MSI interrupt mapping to the M1’s AIC interrupt controller, and work together with the DART IOMMU driver to put devices in the right IOMMU groups. PCIe driver ( pcie-apple, merged): Marc Zyngier polished up the PCIe driver and all the little dependencies and changes that came along with it. These bindings are effectively the standard that allows multiple open OSes to agree on how the hardware is described, so they can boot from the same bootloader. PCIe bindings ( merged): Mark Kettenis has been working on porting U-Boot and OpenBSD to the M1, and he contributed the Device Tree bindings for the PCI Express hardware in the M1. The goal of the Asahi Linux project is to upstream everything into the Linux kernel, so all our drivers are eventually headed for upstream review.

Over September we’ve seen a lot of action on this front, with many important drivers now in review or even already merged for Linux 5.16.

Those are important for bring-up, but to get a usable system we need many more. Linux drivers galoreĮarlier this year we saw the absolute lowest level drivers being merged into the kernel. Let’s take a look at what’s been going on. At this point, Asahi Linux is usable as a basic Linux desktop (without GPU acceleration)! The ground had been shifting until now, but we’re seeing drivers settle down. It’s been a busy month! We’ve had a lot of movement in kernel land, as well as some tooling improvements and reverse engineering sessions.
