Skip to content

Linux 7.4 adds Apple M4 NVMe support in its block pull

Linux 7.4's block pull adds a driver for the Apple M4's ANS2 NVMe controller, plus 33 fixes for an old Mac floppy driver tested on four classic Macs.

By Tech AI Wire Team

4 min read

XLinkedIn
A silver M4 Mac mini with the Apple logo on top sits on a wooden table, two USB-C ports and a headphone jack on its front.
Photo: Kyu3a / Wikimedia Commons, CC BY-SA 4.0

By the numbers

maximum queue depth the new driver sets for the M4 controller
64
fixes to the SWIM floppy driver for classic Macs
33
files changed by the 7.4 block pull
66

Linux 7.4 has merged support for the NVMe storage controller in Apple's M4 chip, as part of the block subsystem pull that Phoronix reported on October 24, 2026. The same pull fixes floppy disk drivers, including one for classic Macintosh computers. For people running Linux on Apple Silicon, the M4 driver is a needed step toward reading and writing the internal drive.

What the block pull contains

The block subsystem is the part of the kernel that handles storage devices: SSDs, hard drives and floppy disks. Jens Axboe collects the block changes for each release and sends them to Linus Torvalds as a pull request.

His 7.4 pull, tagged "for-7.4/block-20261021", landed in the mainline kernel on October 25, according to the merge commit. It touches 66 files, with 3,793 lines added and 1,541 removed. Its summary lists "Apple M4 (t8132) ANS2 NVMe support" among the NVMe updates collected by Keith Busch.

Change in the 7.4 block pullWho did itWhat it fixes or adds
Apple M4 ANS2 NVMe supportYureka LilianStorage controller in the M4 chip
Floppy driver memory fixDenis Efremov, OracleA possible stack memory overrun
Floppy regression fixDenis Efremov, OracleA bug from a 2017 refactoring of drive flags
Floppy data-race fixesCen ZhangRaces between code running at the same time
SWIM driver fixesFinn Thain33 fixes for the old Macintosh floppy controller

io_uring, the kernel's fast interface for asynchronous input and output, also had its updates merged in this window. Phoronix does not list those changes.

How the M4 storage driver differs

NVMe is the standard way fast SSDs talk to a computer. The computer places commands in submission queues and reads results from completion queues. ANS2 is the name the kernel uses for the NVMe controller inside the M4 system-on-chip, whose chip ID is t8132.

The commit explains what makes the M4 version unusual. "This variant requires the IO queues to be registered using additional MMIO writes," it says. MMIO, or memory-mapped input/output, means the driver talks to hardware by writing to special memory addresses.

Normally a driver tells an NVMe drive how big each queue is inside the command that creates it. On the M4, that size field is ignored. Instead, the driver writes the queue sizes to a register at offset 0x1210. The kernel previously knew that register as APPLE_ANS_MAX_PEND_CMDS_CTRL.

The change is small: one file, 35 lines added and 4 removed in the existing Apple NVMe driver. It sets a maximum queue depth of 64 for the M4. Yureka Lilian wrote it on September 6, 2026, Sven Peter reviewed it, and Keith Busch committed it. A matching one-line change adds the "apple,t8132-nvme-ans2" device description, acked by Conor Dooley.

The driver lands in the same release as the first device trees for M4 Macs. A device tree is a file that tells the kernel what hardware a machine has and where to find it. Sven Peter, an Asahi Linux developer, submitted trees for six M4 Macs, Phoronix reported on October 2. They are the 14-inch MacBook Pro, two 24-inch iMacs, the 13-inch and 15-inch MacBook Air, and the Mac Mini. The trees cover only basic blocks, such as the CPU cores, interrupt controller, serial port and frame-buffer. Phoronix's list does not include NVMe, and the GPU is not enabled.

Floppy fixes, found by tools and tested on old Macs

The rest of the pull is a reminder of how long Linux keeps hardware alive. Denis Efremov's memory fix came from KASAN, the Kernel Address Sanitizer. KASAN is a debugging tool that catches code reading or writing memory it should not touch.

Cen Zhang's data-race fixes were found with "our tools," Phoronix reports. The outlet guesses these were AI tools, but no tool is named.

Finn Thain, from the community that keeps Linux running on Motorola 68000-family Macs, sent 33 fixes for the SWIM driver. SWIM is the floppy controller in classic Macintosh computers. He tested them on a Mac Quadra 650, a Mac LC III, a Mac Quadra 700 and a Mac IIvx.

The merge window has also brought a Nintendo Switch 2 controller driver and faster workqueue flushes for large servers.

What this means for developers

The M4 driver matters most to the Asahi Linux community and to anyone who wants Linux on a recent Mac.

  • Do not expect M4 Macs to run Linux on 7.4 alone. The 7.4 device trees are enough to start booting the kernel, Phoronix says, and most other hardware waits for later kernels. Asahi Linux, the project porting Linux to Apple Silicon, reached official M3 support only in September, and it still listed missing features there.
  • Watch the upstream path. This driver went into the mainline kernel, not a fork. Code that lands upstream gets reviewed and maintained with everything else, which helps distributions ship it.
  • Read the commit if you write drivers. It is a compact example of handling a hardware variant with a flag in an existing driver rather than a new one.
  • Test old hardware if you still run it. If you keep a Linux machine with a floppy drive, 7.4 changes the floppy and SWIM drivers. Try it on the release candidates, starting with 7.4-rc1.
  • Expect more tool-found bugs. KASAN caught one fix and unnamed tools caught others. Projects that maintain old drivers should run sanitizers in their own test setups too.

Sources

  1. Linux 7.4 Block Updates Range From Floppy Disk Driver Fixes To Apple M4 NVMe Support - Phoronix
  2. nvme: apple: add t8132 (M4) ANS2 NVMe support - Linux kernel (GitHub mirror)
  3. Linux 7.4 To Introduce Initial Device Trees For Apple M4, A18 Pro For MacBook Neo - Phoronix
  4. Merge tag 'for-7.4/block-20261021' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux - Linux kernel (GitHub mirror)

Related articles

The weekly digest

One email every Friday with the week's top stories from all six desks: AI, dev tools, coding, the tech industry, startups and what's next. Free, no spam.

Unsubscribe anytime with one click.