Files
bfe-core1106-sdk/kernel/rv1106-enablement/DRIVER-PARITY.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

2.6 KiB
Raw Blame History

RV1106 6.18 driver parity vs the 5.10 vendor kernel

Goal: every driver the panel's 5.10 kernel runs must work at ≥ parity on our self-built 6.18. Source of truth = the running 5.10 system on warden-c8a3 (lsmod + /proc/interrupts, captured 2026-08-24). Verify each on hardware via the A/B _b-slot loop (../docs/m2-boot-on-c8a3.md); means confirmed on c8a3, not just compiled.

Driver / node 5.10 evidence mainline? 6.18 status
CRU clock (clk-rv1106) ported M2
pinctrl-rockchip (rv1106) ported M2
GIC-400 / arch_timer arch_timer mainline M2
dw_mmc (eMMC) dw-mci mainline M3
8250 uart2 (console) ttyS2 mainline M2
GPIO (rockchip, ×5 banks) gpio-rockchip mainline batch1 (chips 04)
DMA (pl330, ff420000) ff420000.dma-controller mainline batch1
uart1 / uart4 ttyS1, ttyS4 mainline batch1
I2C (dw-apb, ff460000=i2c3) ff460000.i2c mainline batch1 (i2c-3)
watchdog (dw-wdt, ff5a0000) ff5a0000.watchdog mainline batch1 (watchdog0)
thermal governor rockchip_thermal mainline 🔨 gov up; tsadc node TODO
SARADC (ff3c0000) ff3c0000.saradc mainline (no rv1106 compat) needs compat fallback
GPIO_SYSFS (legacy /sys/class/gpio) mainline (config) goodix script needs it
PWM (rockchip) mainline (=m) batch2 =y (backlight)
RTC (rv1106-rtc) no mainline driver port (low prio)
USB2 phy (inno, rv1106) rockchip_usb2phy_* mainline (no rv1106 data) port (data + tuning)
USB OTG gadget (DWC3, eth0) eth0 mainline dwc3 (needs phy) M6 (after phy)
USB host (xhci, usb1) xhci-hcd:usb1 mainline M6
crypto (aes/ccm/ctr/arc4) modules mainline batch2 (config =y)
PSCI node (removed) deleted (no secure monitor → SMC fault)
VOP display (ff990000) ff990000.vop rockchip DRM M4
RGB666 720×720 panel + backlight panel-simple/rockchip M4
GT911 touch (goodix) goodix, gt911 mainline M4
AIC8800 wifi (bsp/fdrv) aic8800_* out-of-tree M5
AIC8800 BT (btlpm) aic8800_btlpm out-of-tree M5
NPU (rknpu, ff660000) rknpu, ff660000.npu out-of-tree M6
RGA 2D (rga2) rga2 rockchip M6
I2S audio i2s rockchip M6
FIQ debugger (ttyFIQ0) fiq_glue rockchip optional (we use ttyS2)

Legend: verified on hardware · 🔨 built, not yet verified · not started.