Epic: #113 · Milestone: MC3 — Pi 5 platform drivers
Why
A media library of any size wants NVMe rather than SD (throughput, endurance). drivers/nvme.home exists (unrun); the PCI host from #67 gives the second controller (pcie@… for the FPC slot) the same code path. On x86 QEMU -device nvme allows CI-first development.
Tasks
- Bring
nvme.hometo life on x86 QEMU (-device nvme,drive=…): controller reset, admin queue, identify, create IO SQ/CQ, PRP lists, MSI-X, read/write; block-layer integration;storage-roundtripvariant. - Pi: second PCIe controller bring-up (Gen 2 default; Gen 3 via
pciex1_gen=3in config.txt), NVMe on it. - Mount as
/media/library; the scanner in #102 prefers it when present. - Optional: boot the root filesystem from NVMe (EEPROM
BOOT_ORDERincludes NVMe) — the boot partition stays on whatever the bootloader loads from.
Acceptance
QEMU + hardware round-trip gates; ≥ 400 MB/s sequential read on hardware at Gen 3.
Size: M · Depends on: #67 · Blocks: — (nice-to-have for MC8)