Rosenblatt Phase-1 closeout: rocket-driver substrate inventory

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.
This commit is contained in:
2026-05-19 12:41:31 +00:00
parent 24adc74812
commit c9a3f5c600
8 changed files with 731 additions and 61 deletions
+25 -17
View File
@@ -1,24 +1,32 @@
# kernel/
Mainline-bound kernel patches: DT bindings, rknpu driver tweaks,
power-domain wiring for boltzmann's `rk3588-rock-5-itx-plus.dts`.
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.
Empty until Phase 1 audit identifies what's actually missing in mainline.
Current contents:
If Tomeu Vizoso's rknpu series is far enough along to use as-is, this
directory may stay nearly empty — we'd just carry a small DT-overlay
patch for boltzmann's board file.
If we end up writing a driver from scratch (worst case), the structure
will mirror an upstream submission layout:
```
0001-dt-bindings-npu-add-rockchip-rk3588-npu.patch
0002-arm64-dts-rockchip-rk3588-add-npu-node.patch
0003-arm64-dts-rockchip-rock-5-itx-plus-enable-npu.patch
0004-accel-rknpu-add-rockchip-rk3588-driver.patch
...
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).
```
Tracking-wise these go through `marfrit/kernel-agent` as scope
`patches/driver/accel/rknpu/`, with `fleet/boltzmann-rosenblatt.yaml`
as the consuming manifest.
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 for `rknn_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`.