![]() ![]() It’s currently being tested by the folks with AmigaOne hardware to make sure nothing broke along the way, and should be ready to merge after that. Sven has submitted a patch series to decouple the existing driver from the PCI part and add platform device support. I☬ driver ( i2c-pasemi in review): The M1 borrows its I☬ hardware from… none other than the PA Semi PWRficient PA6T-1682M, used in the AmigaOne X1000! Turns out there is some clear PA Semi legacy in these chips! Linux already has a driver for this hardware, but on the PowerPC chips it is a PCI device, while on the M1 it is a platform device. The driver is looking good and is likely to be ready to merge in the next patchset version. Joey and I (marcan) spent some time, multimeter and oscilloscope in hand, working out exactly what all the bits in the GPIO controller do, so now we have a firm understanding of what features are supported by the hardware and how they work. It’s a requirement to make PCIe work properly, as this is how peripheral resets are controlled. 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. 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. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |