evidence · 3.5 KiB

README.md

Committed at docs/evidence/mainline-system-trial/boot-boundary-sbi-only-build-2026-10-03/README.md. This is what grounds the requirements that cite it.

Open raw source

SBI-only boot markers — matching full build

2026-10-03 UTC. Coordinator worktree /home/jadams/tmp/k230-mainline-probe-integration, branch integrate/mainline-probe-path; source c6896fbc3b4a3e0fe7b3579f0add791adafbef12 at master 7a660a6a638617d3ca32325fc1672dbfb6ce713f. Root held /tmp/k230-nix-build.lock for the full build and released it on completion. Owned paths are this evidence directory and the mainline task progress note.

flock -n /tmp/k230-nix-build.lock nix build \
  .#kernelMainlineBootTraceSbiOnlyTrialBootFiles --no-link --print-out-paths \
  --max-jobs 1 --cores 16
python3 tools/mainline-drm-trial-inspect.py \
  /nix/store/brmp1qf9cz65yciazabc8yg5j39nn643-k230-mainline-drm-trial-boot-files

Both passed. Exact selected system/kernel/config/source and artifact hashes are in result.json. Inspector verified Image equality, matching initrd payload and U-Boot header/data CRC, DT/environment arguments, SHA256SUMS and inventory. The 629-path inventory plus bundle gives 630 recursive closure paths. Hardware DT equals the previous j0ad6h3s… candidate after removing only /chosen/bootargs. All twenty fixed public SBI-only records are in the linked Image; the four outer-record variant is absent. The actual dev config matches source/object proof, enabling RISCV_SBI/64BIT/VMAP_STACK/4KiB pages with KUnit disabled. Realized init/main.c matches the reviewed source/native/object proof.

Both actual rd.prepare_trial(...) and ordinary-controller prepare(...) passed against exact artifacts and the last verified protected normal identity baseline. Preparation is host-only and validates immutable init, required executables, sole serial console, exactly both base/new flags and the three original qualified controls. No earlycon/keep_bootcon, global clock bypass, observer, new console or controller change is present. The command remains below the 512-byte U-Boot input bound. Subsequent user reset passed fresh protected normal postflight, recorded separately in reset recovery; the new report now carries that verified normal boot ID.

Private full-build log: ~/tmp/k230-mainline-boot-trace-sbi-only-full-build.log. Host GC root: ~/tmp/k230-mainline-boot-trace-sbi-only-bundle-root. Private helper/manifest/export directory: ~/tmp/k230-mainline-boot-trace-sbi-only-board. Delta export contains eight new paths / 103,844,240 bytes relative to the already staged j0ad6h3s… bundle. Separate board archive and GC root names are prepared. This export is not transfer or board-staging proof.

Remaining physical gate

SBI-only output, ordinary login/root, deliberate glass and automatic return remain UNVERIFIED. Task 5b.5 stays unchecked. With the board/UART reserved, first stage and recheck fresh protected normal identities; then run:

python3 tools/mainline-drm-system-trial.py begin \
  --bundle /nix/store/brmp1qf9cz65yciazabc8yg5j39nn643-k230-mainline-drm-trial-boot-files \
  --manifest <private-exact-manifest> --normal-report <private-normal-report> \
  --state <private-state> --log <private-uart-log> --result <private-result>

Keep the 180-second readiness deadline and exact fresh Linux/login/root gates. Unknown readiness stops all input; operator recovery may still be necessary. A visible last record does not prove its firmware ECALL returned. If ready, real glass touch --real-touch and protected finish postflight remain required. No production or archive acceptance is implied.