c9a3f5c600
Phase-1 audit closes with a substantively different picture than the original scaffold's TBDs: - Tomeu Vizoso's RK3588 NPU work merged in Linux 6.18 (Nov 2025) under codename `rocket` (NOT `rknpu`). All references updated. - Boltzmann's `linux-rk3588-marfrit-A1` (7.0.0-rc3-ARCH+) already ships `drivers/accel/rocket/rocket.ko` as a built-but-not-loaded module. - DT bindings + per-core nodes (`npu@fdab/c/d_0000`, compatible `rockchip,rk3588-rknn-core`) in mainline since 6.18 but ship `status = "disabled"` — board enable is the Phase-2 unblock, not a driver port. - Mesa 25.3 ships Rocket Gallium + Teflon TFLite delegate as the authoritative userspace reference for the uAPI shape. - Op coverage today is conv-centric (MobileNet-class); transformer matmul needs the conv-1×1 shoehorn (RKNPU2 BSP precedent) or rocket op-set additions. Surfaced as Phase-2-load-bearing risk. - IOMMU v1.0 hazard: 32 GB host needs `mem=4G` or local `rockchip,rk3568-iommu-v1` discriminator patches before the first NPU job, to avoid DMA-window faults. Files: - docs/npu-mainline-status.md: full audit table with upstream pointers (kernel.org / Mesa docs / dri-devel patch URLs / Tomeu's "we are in mainline" blog post). - docs/phases.md: per-phase log entry for Phase-1 closeout. - docs/op-coverage.md: matmul-vs-conv-vs-rocket-op-set framing. - fleet/boltzmann.yaml: audited kernel + npu_driver + dt_npu_nodes state. - kernel/dt-overlays/rk3588-rosenblatt-npu-enable.dtso: overlay to flip the three rknn-core nodes to "okay" (+ matching mmu nodes), carries the IOMMU-mitigation warning inline. - kernel/README.md: kernel-agent scope wiring + anticipated local carry patches. - README.md: phase-status table + "rknpu → rocket" rename note. - TODO.md: Phase-2 unblock concrete steps + standing upstream-watch items.
kernel/
Phase-1 audit closed the "do we need a driver?" question: Tomeu
Vizoso's rocket driver is in mainline since Linux 6.18, and
boltzmann's linux-rk3588-marfrit-A1 build (7.0.0-rc3-ARCH+)
already ships it as a module. See docs/npu-mainline-status.md for
the full audit.
Current contents:
kernel/
└── dt-overlays/
└── rk3588-rosenblatt-npu-enable.dtso
# Flips rknn_core_0/1/2 + rknn_mmu_0/1/2 to status="okay".
# Do NOT apply on >4 GB-RAM hosts without IOMMU v1.0
# mitigation (mem=4G or local discriminator-compat patches).
Anticipated next additions:
iommu/0001-iommu-rockchip-add-rk3568-iommu-v1-compatible.patch— local carry of Midgy BALON's discriminator-compat patch when it appears upstream, plus the matching DT update forrknn_mmu_*. Drop when the upstream series lands.- Patches against marfrit's
linux-rk3588-marfrit-*branch only if we need fixes beyond what mainline rocket provides. Kept minimal per the "mainline-clean from day 1" rule.
Patch handling routes through the kernel-agent subagent (per
feedback_agent_routing.md); board / host wiring lives in
fleet/boltzmann.yaml.