Files
rosenblatt/kernel/dt-overlays/rk3588-rosenblatt-npu-enable.dtso
T
marfrit c9a3f5c600 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.
2026-05-19 12:41:31 +00:00

55 lines
1.3 KiB
Plaintext

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Rosenblatt: enable all three RK3588 RKNN cores + their IOMMUs.
*
* Apply on top of any rk3588 board DT that uses the mainline
* rk3588-base.dtsi labels. Verified against boltzmann
* (model "Radxa ROCK 5 ITX", compatible "radxa,rock-5-itx").
*
* Pre-conditions before applying on a system with >4 GB RAM
* (boltzmann has 32 GB):
* - The IOMMU v1.0 hazard MUST be mitigated first.
* See docs/npu-mainline-status.md "IOMMU v1.0 hazard".
* Either boot with `mem=4G`, OR carry the discriminator-compat
* patch series (Simon Xue per-device-ops +
* Midgy BALON `rockchip,rk3568-iommu-v1`).
*
* After applying:
* - `modprobe rocket`
* - expect `/dev/accel/accel0` (single facade, schedules across cores)
* - dmesg: rocket-driven probe per `npu@fdab0000`, `..fdac0000`,
* `..fdad0000`
*
* Keep the assigned-clock-rate at the rk3588-base.dtsi default of
* 200 MHz for first-bringup. Lift to 1 GHz (`SCMI_CLK_NPU` max) only
* after the rocket bringup, IOMMU, and a baseline matmul are
* verified stable.
*/
/dts-v1/;
/plugin/;
&rknn_core_0 {
status = "okay";
};
&rknn_mmu_0 {
status = "okay";
};
&rknn_core_1 {
status = "okay";
};
&rknn_mmu_1 {
status = "okay";
};
&rknn_core_2 {
status = "okay";
};
&rknn_mmu_2 {
status = "okay";
};