ata(4)
MILESTONE-QUALIFIED
Rendered from the page's mdoc source at milestone/general-usability-qemu-20260927 (platform ff025b1)
with GNU groff version 1.23.0, using the same command the image build uses; an ABSD session running
man 4 ata prints this text. It is dated 2026-09-27; the build commands and
repository files it mentions are in private sources, and later work is not in it.
All pages.
ATA(4) Kernel Interfaces Manual ATA(4) NAME ata -- polled ATA disk driver for the primary IDE channel DESCRIPTION The ata driver in the kernel drives one ATA disk: the master of the primary IDE channel (I/O ports 0x1f0 to 0x1f7 and 0x3f6), with 28-bit LBA addressing and PIO transfers of one 512-byte sector per command. At boot it identifies the disk (IDENTIFY DEVICE) and takes its size from the identify data; a missing drive, an ATAPI or SATA signature, or a disk larger than 2^28 sectors (128 GiB) is not used. Each read or write waits for the drive's status, polling after every timer tick or IRQ 14, at most 20000 times; a drive that never becomes ready is an I/O error, never a hang. A flush is FLUSH CACHE waited to completion. The kernel uses an NVMe namespace when a usable controller is present (nvme(4)), and otherwise this disk. Above the driver nothing knows which is in use: the block device is a kernel object whose one read- write handle belongs to the file server (filesystem(7)). DIAGNOSTICS On the console: `BLOCK DEVICE OK sectors=N' a disk was found, N sectors of 512 bytes. `BLOCK BACKEND ata access=read-write' the block device is this disk. `block: no device' no usable disk: the boot has no block device. `BLOCK DEVICE FAILED: error' the disk failed at boot; the machine stops. QUALIFICATION QEMU-qualified on QEMU's PIIX IDE controller with a raw image attached as `-drive file=IMAGE,format=raw,if=ide,index=0': this is the disk of the operator image (afterboot(8)) and of every SSH, file server, and crash-consistency matrix of the platform, and of the kernel's durable- boot tests. Under QEMU a write completes only after QEMU's own write() of that sector returned, so an acknowledged sector survives QEMU ending abruptly, and a flush becomes the host's fdatasync(). No claim is made about power loss on real hardware. Physical hardware qualification: none. The physical boot image refuses every disk write and has not yet been booted on hardware. SEE ALSO nvme(4), filesystem(7), afterboot(8) CAVEATS PIO, one sector per command, polled: throughput is low by design. No secondary channel, no slave drive, no DMA, no 48-bit addressing, no SATA (AHCI) controller. ABSD September 27, 2026 ATA(4)