evidence · 2.9 KiB

README.md

Committed at docs/evidence/mainline-shell-parity-2026-10-06/README.md. This is what grounds the requirements that cite it.

Open raw source

Mainline shell parity: board results (2026-10-06)

Physical evidence for openspec/changes/the-mainline-shell-reaches-parity. Every boot used guarded staging, volatile U-Boot selection and the reviewed recovery checker; raw serial captures stay private and are bound by SHA256 in board-results.json. No Wi-Fi identifier, address or credential is recorded.

Full shell, no operator input

On the full coherent shell over the mainline kernel the serial console showed: firewall active and no failed units; k230-wifi active with the RTL8189FTV associated, an IPv4 address and a reachable gateway (each stage checked separately); the K230 PMU Power Key input registered; and the K230_I2S_INNO sound card listed.

Console variant and thermal

The console mainline variant reached a qualified login with ordinary clock cleanup once the SD five-clock ownership moved into the base kernel, and it rebooted itself into the normal system once the restart handler did too. With the thermal driver converting the TS code (Canaan’s documented polynomial) the zone read 52.4 °C idle and 54.5 °C after 60 s of CPU load.

Operator session

Audio

The board has no onboard speaker or buzzer (the MAX98357A amplifier is on an optional LILYGO base board that is not fitted; LILYGO lists a 3.5 mm jack, untested). On the vendor kernel speaker-test completes. On mainline with the generic DesignWare I2S driver, starting playback froze the SoC, also with clk_ignore_unused pd_ignore_unused; the operator reset the board each time. The vendor driver (dwc_canaan) differs: DMA xor IRQ, K230 CCR bits, 32-bit data and burst 4. It was ported; two more defects then surfaced and were fixed. First, the card bound before the DMA PCM registered, so every open failed with -EINVAL (kprobe traces: snd_pcm_hw_constraint_mask(ACCESS, 0); dmaengine_pcm_open never ran) — the PCM now registers first. Second, the first transfer hung the bus silently (no soft-lockup report); with clk_ignore_unused playback completed, and clk_summary showed the shared-memory APB/AXI-slave/SRAM gates unclaimed — the PDMA now holds them. With ordinary cleanup, speaker-test -D plughw:0,0 exits 0 with a 48000-frame buffer and 2.09 s periods (vendor: 2.0 s), the console stays responsive and no unit fails. Audible output is not claimed.