Well here we are again. Linux 7.3 is out and it's been an eventful few months, so let's get stuck in to another Asahi Linux progress report! Upstreaming continues as always, upstreaming work continues to progress. Aside from the usual patches for low-level So C blocks, two major drivers made it on to the list this cycle: macaudio and avd.
Getting macaudio ready for submission has been a challenge. The audio subsystem on Apple Silicon devices is rather special, and required quite a number of core ALSA changes to properly support it. Apple also uses special variants of speaker and headset amplifiers that were already supported upstream, and these drivers also needed some pretty significant modifications.
We have previously discussed a lot of this work at length, and we are finally in a position where we can submit the main driver for review. The driver and Devicetree changes represent a hefty chunk of our total patchset, about 3100 lines. AVD is a whole different beast.
The AVD driver has spent barely 3 months in our downstream tree and is already on the list. This is our shortest turnaround time yet for a major So C component and bodes well for a transition to upstream-first development some time in the future. This is fantastic news, as the AVD driver and related Devicetree changes are around 13000 lines of code.
Also making an appearance on the list this cycle are initial Devicetrees not only for M4 Pro and Max devices but also M5 thanks to Yureka's tireless efforts. As usual these initial Devicetrees are barebones and only sufficient to boot the So C to a TTY, however work is progressing on further enablement. Watch this space! We have also begun shifting to an upstream-first approach where practical.
Changes to the TI USB-PD and SPMI drivers required for new devices, as well as initial support for Thunderbolt, were all developed upstream-first. We are so thrilled to see our focus on upstreaming starting to pay off! M3 goes GA last time, we announced initial support for M3 series machines via the EXPERT flag on the Asahi installer. We are pleased to announce that we received almost no issues from early adopters, so M3 support is now generally available without the EXPERT flag! We have also made a number of improvements to M3 support, most notably enabling DCP.
On top of performance and battery life improvements, this also allows us to enable sleep on M3 series devices and make the area around the notch useable on the Mac Books! Keep an eye out for m1n1 and kernel updates in the coming days. Crowded House Last time, we teased support for virtualising SPT M-enabled versions of mac OS in m1n1, which enables reverse engineering on M4 series machines. M5 presents a new challenge, as the versions of mac OS which support it all require the use of Exclaves.
Exclaves are small applications running in an isolated environment controlled by the Secure Kernel. On M5 series So Cs and above, mac OS uses them for sensitive tasks such as drawing the "camera in use" indicator to the screen. XNU communicates with the Secure Kernel and its Exclaves via SPT M, using yet another IPC protocol called Tightbeam.
Much as with SPT M, XNU will panic if it cannot find the running Exclaves. This is all starting to look very similar in concept to Arm's own Trust Zone feature. While some Exclaves can be bypassed by changing some settings on the command line, we predict that this will not always be the case.
As such, Sven started looking at how we could fit all of this in to m1n1. First line of investigation, try putting the Secure Kernel and Exclave userspace in another VM next to SPT M and mac OS. Oh, that worked, and we're now up to spawning three VMs in EL1 under m1n1! Maybe we can start selling m1n1 to companies fleeing VMWare...
With that, we can now virtualise and reverse engineer mac OS on both M4 and M5 series machines. Hello Triangle(s)! While M3 support is now mostly at feature parity with M1 and M2, the very obvious exception to this is the GPU. Apple's GPU team seems to follow a t...
Source: Hacker News · Summarized by HeadlinesBriefing