evidence · 4.4 KiB

marker-free-controller-host-2026-10-03.md

Committed at docs/evidence/mainline-system-trial/marker-free-controller-host-2026-10-03.md. This is what grounds the requirements that cite it.

Open raw source

Same-image marker-free comparison — controller host proof

2026-10-03 UTC. Coordinator worktree /home/jadams/tmp/k230-mainline-probe-integration, branch integrate/mainline-probe-path, implementation base b837f213865c200a084b6b98055bfc717b8617ad. Owned paths: ordinary system trial controller, focused tests, this note and mainline task progress. Independent read-only review approved the source and all 36 focused tests. No kernel build, transfer or board command was used for this source increment.

The preceding same-image initramfs_async=0 comparison reached init-exec-exit but no login. Its retval, final SBI return and first userspace instruction remain unknown; see physical comparison. A subsequent user reset passed protected normal recovery and restored Home.

Begin-only --without-boot-markers requires --wait-initramfs-in-initcall. It first qualifies the original exact base/SBI-only enable tokens, immutable init/root and sole serial console, then removes both exact enable tokens from volatile arguments. It retains initramfs_async=0, all three original qualified controls, ordinary logging and the same staged artifacts. In exact source 26hzn5…/init/main.c:1510 the false base gate makes all helper sites return immediately. Appending =0 would not clear a previously parsed =1; removing only SBI-only would restore the legacy printk path. This is runtime diagnostic suppression, not removal of kernel source.

The literal full-value U-Boot command is validated before any serial input: strict safe characters, no expansion/quotes/semicolon/backtick/newline, no residual flag names and length below 512 bytes. Default/previous mode keeps its original command. Printed arguments and subsequent live cmdline must match exactly. Five loads/five CRCs, single bootm, passive 180-second readiness, exact normal/candidate identity and persistent-file gates remain. Typed mode provenance is saved/restored for touch/finish; old states default false, invalid combinations reject before UART, resume CLI reselection rejects. No saveenv, protected profile/boot-file rewrite, console-null or loglevel change.

python3 -m unittest discover -s tests -p 'test_mainline_drm_system_trial.py'
openspec validate the-board-runs-a-mainline-kernel --strict
openspec validate --all
git diff --check

36 focused tests passed, including independent review. Seven new tests exercise actual command transport, original-token qualification/removal, unsafe/oversize rejection before initial input, printed mismatch before bootm, unknown readiness with no later input, exact live cmdline, typed saved-mode finish and CLI begin-only constraints. This is host/mock evidence, not board or deliberate-glass proof. CI already runs this focused test command.

Actual prepare() against the realized matching bundle passed in both modes. System/kernel/PID1/manifest/helper/normal and diagnostic controls are identical; arguments differ only by removal of the two exact enabling tokens. The actual literal command is 317 bytes. Private result: ~/tmp/k230-mainline-marker-free-board/host-prepare.json. The already staged Image/initrd/DT/wrapper/bootargs and complete closure are reused; no new build or staging is needed. Fresh protected normal baseline was updated after this comparison’s operator reset.

Physical gate and operator command

Reserve board/UART for one attempt:

python3 tools/mainline-drm-system-trial.py begin \
  --wait-initramfs-in-initcall --without-boot-markers \
  --bundle /nix/store/brmp1qf9cz65yciazabc8yg5j39nn643-k230-mainline-drm-trial-boot-files \
  --manifest ~/tmp/k230-mainline-marker-free-board/candidate-manifest.json \
  --normal-report ~/tmp/k230-mainline-marker-free-board/normal-report.json \
  --state ~/tmp/k230-mainline-marker-free-board/ordinary-state.json \
  --log ~/tmp/k230-mainline-marker-free-board/ordinary-uart.log \
  --result ~/tmp/k230-mainline-marker-free-board/ordinary-result.json

No diagnostic labels are expected. A positive login/guarded ordinary-root result would establish progress with this changed instrumentation. Another quiet failure would remain unknown. A ready candidate still needs its own panel capture, deliberate glass touch --real-touch and protected finish. No production, root/glass/automatic-return or archive acceptance is claimed; task 5b.5 stays open. Unknown readiness releases UART without guessed recovery.