Files
bfe-core1106-sdk/kernel/rv1106-enablement/dts/README.md
T
BFE EngineeringandClaude Opus 4.8 79ef2df67a kernel: full-SoC DT transplant — batch-1 peripherals at parity on 6.18
Move from the hand-built minimal DT to the vendor rv1106.dtsi (full SoC:
pinctrl, gpio×5, dmac, cru+grf_cru, all peripherals), with our lean board DTS
(rv1106-warden.dts) enabling only the wall-HMI's needs — no camera/ISP/CSI.

Two deltas made it boot on 6.18: overwrite boot-mode.h with the vendor's (extra
BOOT_* constants) and DELETE the psci node (no secure monitor → SMC fault →
"Attempted to kill the idle task"). Recipe in dts/README.md.

Verified on warden-c8a3 (uname 6.18.46, full WardenOS userspace): pinctrl,
gpio0-4, pl330 DMA, uart1/2/4 (ttyS1/2/4), i2c3, dw-wdt (watchdog0) all probe.
DRIVER-PARITY.md tracks the remaining ports (VOP display, AIC8800 wifi, rknpu,
usb2phy, saradc-compat, RGA) toward full parity with the 5.10 kernel.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017wB8KB3MMQztRDXCMCkPrf
2026-08-24 21:12:49 -06:00

27 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RV1106 6.18 devicetree
- **`rv1106-warden.dts`** — our board DT. `#include`s the vendor `rv1106.dtsi`
(the full SoC: pinctrl, gpio×5, dmac, cru+grf_cru, uart, emmc, i2c, saradc,
watchdog, usb, vop, npu, rga, …), then enables only what the wall-HMI needs.
No camera/ISP/CSI. Grows one driver batch at a time (see `../DRIVER-PARITY.md`).
- **`rv1106-warden-m2.dts`** — the earlier standalone minimal DT used to bring up
M2/M3 before the full-SoC transplant; kept for reference.
## Transplanting the vendor SoC DT onto 6.18 (recipe)
Copy into `arch/arm/boot/dts/rockchip/` of the 6.18 tree:
`rv1106.dtsi`, `rv1106-pinctrl.dtsi`, `rockchip-pinconf.dtsi`. Copy the
vendor-only dt-bindings headers into `include/dt-bindings/`:
`soc/rockchip-system-status.h`, `suspend/rockchip-rv1106.h`,
`display/media-bus-format.h`, and **overwrite** `soc/rockchip,boot-mode.h`
with the vendor's (it has extra BOOT_CHARGING/UMS/PANIC/WATCHDOG constants the
DT uses). Then the two hardware deltas:
1. **Delete the `psci` node** from `rv1106.dtsi`. RV1106 has no secure monitor in
our boot chain, so `arm,psci-1.0` + `method="smc"` makes the SMC call fault →
`Oops - bad mode``Attempted to kill the idle task`. (Confirmed on c8a3.)
2. Enable the peripherals in the board DTS (`&uart2`, `&emmc`, …).
Verified on warden-c8a3: pinctrl, gpio04, pl330 DMA, uart1/2/4, i2c3, dw-wdt all
probe; full WardenOS userspace boots.