evidence · 3.8 KiB

README.md

Committed at docs/evidence/mainline-restart/physical-clock-comparison-2026-10-02/README.md. This is what grounds the requirements that cite it.

Open raw source

Automatic mainline restart passes with unused-clock cleanup skipped

On 2026-10-02 the operator pressed the reset button after the preceding traced shutdown timeout. Protected manual recovery passed before this trial. Root ran the reviewed 9cd4a3f8 controller in ~/tmp/k230-mainline-probe-integration, branch integrate/mainline-probe-path, bounded base 9cd4a3f8, holding the single board/UART reservation. No build slot, flash, protected boot-file/profile change or persistent boot-selection write was used.

python3 tools/mainline-drm-initrd-shell-trial.py --mode minimal \
  --runtime-shutdown-trace --ignore-unused-clocks \
  --bundle /nix/store/asj7l4zj5jrjkgng4nrcx3y72p7jf7aa-k230-mainline-drm-trial-boot-files \
  --manifest "$HOME/tmp/k230-mainline-restart-board/candidate-manifest.json" \
  --normal-report "$HOME/tmp/k230-mainline-restart-board/normal-report.json" \
  --log "$HOME/tmp/k230-mainline-restart-board/runtime-clock-20261002T195123Z-uart.log" \
  --result "$HOME/tmp/k230-mainline-restart-board/runtime-clock-20261002T195123Z-result.json"

The controller exited 0, recovery-verified-diagnostic-passed. Matching artifact count/CRC and exact volatile bootargs checks passed. The candidate printed clk: Not disabling unused clocks, independently confirming the argument affected kernel cleanup. Candidate readiness, fresh receipt, true/proc/uptime and all six runtime tracing stages passed; the parameter’s independent Y readback passed before the one reboot request.

The shutdown log passed the preceding MMC block-device boundary and all remaining devices. At 5.756131 seconds the candidate printed reboot: Restarting system, followed by U-Boot SPL and the normal boot. Within the bounded 180-second return window, protected postflight verified a fresh normal boot ID, exact system/profile/kernel/init, all three shell services active and all eight protected hashes unchanged. No operator reset or further trial was needed for this automatic return.

Result is the controller-generated record with only its private raw-log pathname removed, plus explicit source/hash/timestamp/observation fields. Console excerpt selects candidate shutdown and subsequent SPL lines; raw normal output stays private. The selected bundle and system are the same asj… / v9qc… artifacts as the failed baseline. Its matching artifact hashes remain recorded there and in the parent restart evidence.

After serial postflight, the normal shell’s Home IPC completed with exit 0. The reviewed camera still shows normal Home; provenance records crop, source time/hash and glare/angle/blur limits. It is not a mainline shell or a new real-finger acceptance claim.

This completes task 5d.4’s automatic restart proof for this explicitly qualified diagnostic boot. The baseline without clk_ignore_unused still failed its return deadline. The comparison demonstrates dependence on global unused-clock cleanup; it does not identify one clock or prove the MMC callback caused the stall. Permanent global clock bypass is not enabled. The next source fix must claim the K230 SD1 clocks required by its binding, then independently repeat restart and usable-root probes without the flag. The reviewed five-clock audit records the exact proposed IDs, balanced resource lifecycle, binding/legacy compatible limits and separate build/physical proof plan. Source implementation is underway in its own worktree; this packet does not claim it is installed. Task 5b.5, usable mainline root and deliberate touch, remains UNVERIFIED and open. The change cannot be archived yet.