evidence · 6.7 KiB

README.md

Committed at docs/evidence/mainline-uart-progress-post-sample/exact-full-host/README.md. This is what grounds the requirements that cite it.

Open raw source

Exact configured objects and matching full host artifacts

Evidence class: completed matching host artifacts and exact selected-header RISC-V object compilation. No board/UART/camera action, worker execution, receipt, physical counters, root/touch or recovery was tested here. Physical 5h.5–6, positive controller preparation and task 5b.5 remain UNVERIFIED.

The coordinator’s full matching bundle/dev invocation used frozen revision 75cc49df12972235be411e6eca739935ce75614d and returned 0, from 2026-10-04T03:00:57.305156+00:00 to 2026-10-04T03:33:55.986861+00:00. Its exact public-safe command, times and returned paths are in proof.json. That full build was not duplicated.

The narrow object invocation used worktree /home/jadams/tmp/k230-mainline-uart-progress-post-sample, branch mainline-uart-progress-post-sample, source revision e3edc5e6e71219216c78cddae6cf14166c82144d. Only after the actual successful receipt and installed dev availability did we acquire the shared lock. Offline dry run selected only the exact-object derivation. Narrow receipt records return 0, 2026-10-04T03:35:05.945773+00:00–03:35:18.333116+00:00. The lock was released.

flock -n /tmp/k230-nix-build.lock nix build \
  .#kernelMainlineUartProgressPostSampleExactObjects --offline --no-link \
  --print-out-paths --max-jobs 1 --cores 2
python3 docs/evidence/mainline-uart-progress-post-sample/exact-full-host/verify.py \
  /nix/store/jaxswy1k0vj56460sxc80mh4za57nrga-k230-mainline-uart-progress-exact-objects \
  ~/tmp/k230-mainline-uart-post-sample-board/full-build-result.private.json \
  docs/evidence/mainline-uart-progress-post-sample/exact-full-host

The read-only verifier passed. Owned changes are this evidence and only task 5h.2–3 entries; source, protocol, recipes, defaults, controllers and protected card files were not changed. The first verifier attempt incorrectly assumed kernel.dev’s source was a symlink to the complete selected source. It is the installed build skeleton directory. The corrected check compares its Makefile with the selected source, while the exact recipe compiles the actual three selected C files against that installed dev’s config/generated headers. The selected complete source is independently pinned by the object output, source derivation layering and worker digest; no artifact was altered.

ArtifactExact installed identity
Bundle/nix/store/fjmxf6kn1yq0xk9v783amgymybhcrwkb-k230-mainline-drm-trial-boot-files
System/nix/store/5ha786snzrp5c8gkfamlzrmdw1anyj6m-nixos-system-nixos-26.11.20260919.20b1ddd
Kernel/nix/store/xhglqk1w6xvvr1f3nbbazgf2mm9fz225-linux-riscv64-unknown-linux-gnu-7.3.0-rc5
Dev/nix/store/js4by9macr407x7zp8hraykh23bb9an7-linux-riscv64-unknown-linux-gnu-7.3.0-rc5-dev
Source/nix/store/wnvbxaiqgbhhajsajy5mlpn36zf8alga-linux-mainline-k230-uart-progress-post-sample-src
Exact objects/nix/store/jaxswy1k0vj56460sxc80mh4za57nrga-k230-mainline-uart-progress-exact-objects

Kernel/dev share derivation 0ldhm7ay…; bundle matches zgkkp2km…. Actual worker SHA-256 is aee68aaec5c5c0e2b23919901eb99189265fd2b4787a0e50bc11159afd81ef9b. The realized source derivation layers exactly over immutable k5a5… Breadcrumbs source with only the new PostSample patch. Six cached getter/timer source/header/Kconfig dependencies are byte-identical to that parent, with per-file SHA-256 receipts retained.

All three objects are ELF64 little-endian RISC-V relocatables from GCC 15.3.0, W=1. Actual config/autoconf bytes match selected installed dev before/after compilation, without a CONFIG overlay; both also match the parent xl3cy… dev. Config SHA-256: 52e7470b108ad094dbdf88b94e3e8838564edbda9e7a015b4279012e6765c9f1; autoconf SHA-256: 99f44d781b246202edab1d5ef8c4836b15ae99c590999ff268541dfd673865d0. Effective config differences from parent are empty. Reporter/SBI/8250/DW/OF/ timer dependencies remain built-in, pages are 4KiB, VMAP_STACK=y and KUNIT is disabled. The compile log retains the pahole-version mismatch (kernel131/object environment0); no C warning was observed. Checksums passed.

The worker ELF inspection shows four ordinary .rodata arrays, section alignment64: worker-entry offset0 size31, third-post-sleep offset64 size35, first-post-sleep offset128 size35, after-n1-write offset192 size33 (sizes include NUL). Exact bytes match the four reviewed records, each <=64 and page-contained, with no stack/init-freed storage. Worker is .text; flags are .sbss; helpers are inlined into that ordinary worker. Only setup/late-init functions use .init.text. Original sample buffer remains ordinary .bss, size256/alignment256. Complete section/header tables and K230 symbol excerpts ground ordinary 8250 getter and timer getter/state lifetimes.

The existing inspector passed selected kernel Image and selected system initrd payload equality, uImage header/data CRCs and sizes, DT bootargs, all checksums, nonempty registration and all 629 closure paths including selected system/kernel. Selected init is executable. Image contains each of the four complete records and all three reporter setup keys uniquely. Original numeric reporter strings remain linked. Artifact arguments exactly match inherited parameters plus sole selected init: original two trace tokens and sole ttyS0; no rdinit/async/reporter/Breadcrumbs/PostSample/retained-console comparison flags are baked in.

Complete decoded hardware DT matches parent mhq… after copying both immutable DTBs to temporary files, deleting only /chosen/bootargs with fdtput -d, and comparing sorted dtc -I dtb -O dts -s output. Canonical SHA-256: c36085249e61fc1ed6f8f586b1ccbf11f22a4e27428a3e7e23b046384268fc02. Original DTBs were not modified. The source identity receipt preserves all 95 old package and 11 exposed kernel source/config identities.

These actual host gates justify only 5h.2–3. Root owns review/integration/push, CI, positive controller preparation, manifest/staging and any explicit --mode minimal --same-image-shell-pid1 --uart-progress --uart-progress-breadcrumbs --uart-progress-post-sample physical comparison after its protected preflight. A visible after-n1 point proves the previous numeric call returned, not its full count or this call’s return; a later point proves later progress. Missing output remains unknown, and finite attempts provide no firmware wall-clock deadline. No physical RX, Bash delivery, usable root or automatic recovery follows from host proof.