Files
bfe-core1106-sdk/kernel/rv1106-enablement/DRIVER-PARITY.md
T
BFE EngineeringandClaude Fable 5 5155224594 public-readiness: scrub internal details, split licensing, hosted kernel-build
Preparing the repo to go public (ADR-0007):

- CI: kernel-build moves from the self-hosted runner to ubuntu-latest
  (installs its own cross toolchain + qemu, caches the pristine tarball).
  On a public repo a registered self-hosted runner is reachable from
  approved fork-PR workflows — i.e. arbitrary code on private
  infrastructure — and the build never actually needed the SDK host.
  ADR-0004 marked superseded-in-part; docs/ci-cd.md rewritten (site
  specifics now live only in the private deployment log).
- Licensing: LICENSE gains the GPL-2.0 carve-out for patches/ and the
  kernel source excerpts (Linux derivatives; per-driver provenance was
  already tracked in PROVENANCE.md); patches/README.md states it too.
- Scrubbed from the tip: bench-unit dev credentials and its gadget IP
  (m2-boot notes), the site AP SSID+BSSID and a neighboring AP's BSSID
  and the device WLAN MAC (wifi bring-up evidence — BSSIDs are
  geolocatable), the runner mesh IP. NOTE: these remain in git history;
  decision on a pre-publication history rewrite is separate.
- Emoji cleanup across 21 tracked files (kernel port docs, review report,
  enforce-mcdc.sh) per repo text conventions: status marks became
  [x]/[wip]/[ ]/OK plain text.
- "[maintainer]-gated" process phrasing normalized to "maintainer-gated"
  (attributions in dated evidence docs kept).

Verified: zero emojis tracked; scrub grep clean; patches carry no internal
references; ci.yml parses; shellcheck unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018HUayid7W5w7jBdb9Rrj1K
2026-08-30 07:25:57 -06:00

4.1 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); [x] means confirmed on c8a3, not just compiled.

Driver / node 5.10 evidence mainline? 6.18 status
CRU clock (clk-rv1106) ported [x] M2
pinctrl-rockchip (rv1106) ported [x] M2
GIC-400 / arch_timer arch_timer mainline [x] M2
dw_mmc (eMMC) dw-mci mainline [x] M3
8250 uart2 (console) ttyS2 mainline [x] M2
GPIO (rockchip, ×5 banks) gpio-rockchip mainline [x] batch1 (chips 04)
DMA (pl330, ff420000) ff420000.dma-controller mainline [x] batch1
uart1 / uart4 ttyS1, ttyS4 mainline [x] batch1
I2C (dw-apb, ff460000=i2c3) ff460000.i2c mainline [x] batch1 (i2c-3)
watchdog (dw-wdt, ff5a0000) ff5a0000.watchdog mainline [x] batch1 (watchdog0)
tsadc thermal (ff3c8000) rockchip_thermal ported (data+init+macros) [x] soc-thermal reads 39.8°C
SARADC (ff3c0000) ff3c0000.saradc ported (2-ch v2 data) [x] iio:device0 reads 2ch (adc-keys); fixed -22 via vref-supply
TRNG (rng@ff448000) rockchip,trngv1 mainline (rk3588 IP) [x] /dev/hwrng, real entropy (rng-otp/)
OTP/nvmem (ff3d0000) rockchip,rv1106-otp ported (px30_otp_read) [x] rockchip-otp0, reads chip id
GMAC (ffa80000) rockchip,rv1106-gmac ported (dwmac-rk rv1106_ops) [x] eth0 Link Up 100M/Full (gmac/)
GPIO_SYSFS (legacy /sys/class/gpio) mainline (config) [ ] goodix script needs it
PWM (rockchip) mainline (=m) [ ] batch2 =y (backlight)
RTC (rv1106-rtc) ported (vendor driver) [x] /dev/rtc0 registers + reads
USB2 phy (inno, rv1106) rockchip_usb2phy_* ported (data, no tuning) [x] probes → USB up
USB host (DWC3→xhci, ffb00000) xhci-hcd:usb1 mainline [x] xhci host registered
USB OTG gadget (DWC3, eth0) eth0 mainline dwc3 [wip] host works; eth0 needs dr_mode=peripheral
crypto (aes/ccm/ctr/arc4) modules mainline [ ] batch2 (config =y)
PSCI node (removed) [x] deleted (no secure monitor → SMC fault)
VOP display (ff990000) ff990000.vop ported (rv1126 sibling) [wip] binds+DRM+card0; connector WIP
PWM backlight (pwm1) mainline (rk3328 fallback) [x] backlight up (brightness)
RGB666 720×720 panel panel-dpi [wip] probes; bus_format + connector WIP
GT911 touch (goodix) goodix, gt911 mainline [ ] M4 (needs GPIO_SYSFS [x] + node)
GPIO_SYSFS / crypto / CFG80211 mainline (config) [x] =y (batch2)
AIC8800 wifi (bsp/fdrv) aic8800_* out-of-tree [x] M5 — wlan0 up, scanned the site AP at 43dBm (modules, wifi/VERIFIED-on-c8a3.md)
AIC8800 BT (btlpm) aic8800_btlpm out-of-tree [wip] module built (6.18 vermagic); HCI bring-up not yet exercised
NPU (rknpu, ff660000) rknpu, ff660000.npu out-of-tree [wip] M6 built, 0 errors/0 warnings, 99 rknpu-prefixed symbols in System.map, &npu {status="okay"} in the dtb — not yet flashed/probed on hardware (build-only session; see npu/PORT-PROGRESS.md)
RGA 2D (rga2) rga2 ported (vendor char-dev) [x] /dev/rga, hw 3.3.87975
I2S audio (i2s-tdm) i2s rv1126 fallback (=y) [x] cpu DAI registers (part of the card below)
Audio codec (acodec) rockchip,rv1106-codec ported (rv1106_codec.c) [x] card rv1106-acodec, pcmC0D0p/c (audio/); audible test @ bench
HPMCU mailbox (ff5c0000) rockchip,rv1106-mailbox rk3368 fallback +rv1106 num_chans=1 [x] A7<->SCR1 round-trip, 5/5 exact (mailbox/VERIFIED.md)
PVTM (core+pmu ring-osc) rockchip,rv1106-*-pvtm ported (vendor, no mainline) [x] both probe; debugfs reads (pvtm/)
FIQ debugger (ttyFIQ0) fiq_glue rockchip [ ] optional (we use ttyS2)

Legend: [x] verified on hardware · [wip] built, not yet verified · [ ] not started.