Progress Report: Linux 7.3
Key points
Asahi Linux's progress report for the Linux 7.3 cycle covers several changes. M3 support is now generally available. Partial Thunderbolt support is shipping. The project has begun moving all its code from MIT to GPL-2.0-or-later. The report also covers upstreaming work, M3 GPU reverse engineering and an experiment with per-process page sizes for x86 games.
Upstreaming
- Two major drivers were submitted for upstream review this cycle:
macaudio, at about 3,100 lines with Devicetree changes, andavd, at about 13,000 lines. macaudioneeded many core ALSA changes. It also needed significant changes to existing upstream drivers for Apple's variants of speaker and headset amplifiers.- The AVD driver reached the mailing list after only about 3 months in the downstream tree. This is the project's fastest turnaround for a major SoC component so far.
- Initial Devicetrees for M4 Pro, M4 Max and M5 were posted, with the M5 work by Yureka. They only boot the SoC to a TTY.
- Some work is now developed upstream-first: TI USB-PD and SPMI driver changes for new devices, and initial Thunderbolt support.
M3 support
- M3 machines no longer need the EXPERT flag in the Asahi installer, because early adopters reported almost no issues.
- DCP is now enabled on M3. This improves performance and battery life, enables sleep, and makes the area around the notch on MacBooks usable.
- Updates to
m1n1and the kernel carrying these changes are expected in the coming days. - The GPU is the main remaining gap between M3 and M1/M2 support.
M3 GPU
- The M3 GPU differs substantially from the M1/M2 designs and is being reverse engineered by a separate group of contributors.
- Alyssa Millburn, Anna Maniscalco and TellowKrinkle presented their progress at XDC.
m1n1can now initialise the GPU, and the team has drawn a triangle.- Some of Apple's design choices will take significant work to integrate into upstream Mesa.
Reverse engineering on M4 and M5
- macOS versions that support M5 require Exclaves. These are small isolated applications run by the Secure Kernel, and XNU reaches them through SPTM using an IPC protocol called Tightbeam.
- XNU panics if the Exclaves are not running.
- Sven got
m1n1to run the Secure Kernel and Exclave userspace in a separate VM alongside SPTM and macOS, so three VMs now run at EL1. - macOS can now be virtualised and reverse engineered on both M4 and M5 machines.
Thunderbolt
- Apple's Thunderbolt controller is a Cortex-M3 running RTKit plus a custom Thunderbolt/USB4 router, with one per Thunderbolt-capable USB-C port.
- It breaks many assumptions in the kernel's Thunderbolt subsystem, which was built around Intel hardware. Its reset lines are also controlled through bits inside PMGR's MMIO range.
- Sven's patchset was sent upstream first. It is also included in the downstream kernel now shipping to users.
- Supported: USB3, XDomain and Thunderbolt Networking.
- Not yet supported: PCIe and DisplayPort tunnelling, which most Thunderbolt docks require.
x86 games and page sizes
- Games currently run through FEX, WINE (using ARM64EC) and
muvm.muvmprovides a VM with 4 KiB pages. muvmcosts about 20% performance depending on the workload. It cannot use Wayland, has slow I/O and struggles with some input devices.- Google's P3S (Per Process Page Size) patchset for Android lets individual processes use 4 KiB pages on a 16 KiB kernel by switching TCR bits on context switch, at effectively no performance cost.
- Rebased on the Asahi tree with bug fixes, P3S ran Star Wars Battlefront, Wolfenstein: The New Order, GTA IV and Fallout: New Vegas outside
muvm. - Wolfenstein reached 144+ FPS on an M2 Max Mac Studio. GTA IV performance is still weak, but much better than under
muvm. - P3S is not being shipped, for three reasons:
- It is hard-coded for 16 KiB hosts with 4 KiB processes.
- It is unsuitable for upstream in its current form.
- Google's plans for upstreaming it are unclear.
- P3S would also need a userspace shim to force it on, because modern arm64 binaries are 64 KiB-aligned. The project has contacted Google with questions.
Microphones
- Triforce, the Rust beamformer for the MacBook microphone array, now uses IIR filters instead of an FFT-based analytic transform.
- Linkmauve added SIMD code for arm64 and amd64, and Frédéric Bour contributed further optimisations.
- Triforce is now almost twice as fast and uses less CPU time.
Fedora Asahi Remix
- Fedora Linux 45 was released on 3 November, and Fedora Asahi Remix shipped the same day. This is the first same-day release.
Licensing change
- Asahi Linux has started relicensing all its repositories from MIT to GNU GPL version 2 or later. All future code will use strong copyleft licences only.
- The project cites several attempts to exploit the permissive licence to take over its work and monetise Linux on Apple Silicon. In some cases, unreleased feature code was copied from developers' forks without attribution or rewritten with LLM help.
- The report compares the move to WINE's switch from MIT to LGPL in 2002.
Summary by DistroNews, based on the original post.
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 SoC 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.
This is the summary Asahi Linux Blog published with the story. The full text is on the original page.
Read the original at asahilinux.org