evidence · 6.3 KiB

README.md

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

Open raw source

Exact configured objects and full matching 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, usable root/touch or recovery was tested here. Physical tasks 5g.5–6 and task 5b.5 remain UNVERIFIED.

The coordinator built the matching bundle/dev from frozen revision 2a54813575deecce790d4f0df048e5d3746e3d0e. Its initial session ended 143 without a completion receipt; the coordinator reported a 78-byte broken-pipe message after the log showed all 13 derivations built. That interruption is retained privately by the coordinator; no cause or successful completion is inferred from it. The same frozen command resumed with protected file stdout and completed return 0, 2026-10-04T02:13:45.683156Z–02:14:09.485195Z, using cached outputs. Its actual command/times/paths are in proof.json.

The exact-object invocation used worktree /home/jadams/tmp/k230-mainline-uart-progress-breadcrumbs, branch mainline-uart-progress-breadcrumbs, source revision 071086bc64418c04f7affd67ef56cddac960c896. Only after the successful receipt and immutable dev availability did we acquire the shared lock. The offline dry run listed only the exact-object derivation; the narrow command passed return 0 and released the lock. Narrow invocation receipt records that observed result. No full build was duplicated.

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

The reproducible read-only verifier passed. Owned changes are this exact/full host evidence and only task 5g.2–3 entries. Source/protocol, existing outputs, controllers and protected card files were not changed.

ArtifactExact installed identity
Bundle/nix/store/mhq10143lsmgr6wlll431a8s3ggb8q6m-k230-mainline-drm-trial-boot-files
System/nix/store/ac7radxa3iazk4gd5m8scg8yad9h3q5j-nixos-system-nixos-26.11.20260919.20b1ddd
Kernel/nix/store/n8f93vnx87nq5n36zsal7idp2s6c9dkv-linux-riscv64-unknown-linux-gnu-7.3.0-rc5
Dev/nix/store/xl3cyf9bbksb5yy2nxc6dgy0fbfd0ii8-linux-riscv64-unknown-linux-gnu-7.3.0-rc5-dev
Source/nix/store/k5a5zrhqy9ypr3mja1r50mdlcgi74i1f-linux-mainline-k230-uart-progress-breadcrumbs-src
Exact objects/nix/store/wi55m1p11zsi5shqrip4da6c4j420n2w-k230-mainline-uart-progress-exact-objects

Kernel/dev share the reviewed 4hc3qsi5… derivation; bundle matches c4zr3pa3…. Actual worker SHA-256 is 7207dcae9462694a07bd4f7d37d1d9ea43a536496f1b96dd94fed3dfa78c6a22. The cached getter/timer sources, headers and reporter Kconfig are byte-identical to original 4av3 source, with per-file digests retained in the receipt.

All three returned objects are ELF64 little-endian RISC-V relocatables from GCC 15.3.0, W=1. Actual copied config/autoconf match the selected installed dev bytes before/after compilation; no forced overlay is used. Config SHA-256: 52e7470b108ad094dbdf88b94e3e8838564edbda9e7a015b4279012e6765c9f1; autoconf SHA-256: 99f44d781b246202edab1d5ef8c4836b15ae99c590999ff268541dfd673865d0. Effective config is unchanged from the original installed reporter, including K230_UART_PROGRESS and its SBI/8250/DW/OF/timer dependencies built-in, 4KiB pages, VMAP_STACK=y and KUNIT disabled. Compile log retains the pahole-version mismatch (kernel 131/object environment0); no C warning was observed. Checksums pass.

Worker ELF inspection records ordinary .text worker, .sbss flags, aligned 256 ordinary BSS sample buffer, and .rodata breadcrumbs at offsets 0/64 with section alignment64, sizes 31/35 including NUL. Their exact bytes match the reviewed records, each <=64 and page-contained; neither uses VMAP_STACK or init-freed storage. GCC inlines the breadcrumb helper into the ordinary worker; no separate helper symbol exists. Only setup/late-init functions use .init.text. The complete header/section tables (trailing whitespace removed) and K230 symbol excerpts also ground ordinary 8250 getter and timer getter/state lifetimes.

The existing inspector passed Image equality to selected kernel, initrd payload equality to selected system, uImage header/data CRCs and sizes, DT bootargs equality, all checksums, nonempty registration and all 629 inventoried closure paths including selected system/kernel. The selected system init is executable. Inspector output and receipt retain exact sizes/hashes/arguments. Image contains each complete breadcrumb and setup key uniquely, plus original reporter strings. Artifact arguments exactly match the prior evaluated parameters plus sole selected init: original two trace tokens and sole ttyS0, with no rdinit/async/reporter/breadcrumb/retained-console comparison flags baked in.

Complete decoded hardware DT matches original gmsmq… bundle after copying both immutable DTBs to temporary files, deleting only /chosen/bootargs via fdtput -d, then comparing sorted dtc -I dtb -O dts -s output. Canonical SHA-256 is c36085249e61fc1ed6f8f586b1ccbf11f22a4e27428a3e7e23b046384268fc02. Original DTBs were not modified. The source evaluation receipt preserves all 91 existing package and ten kernel source/config identities.

These host gates justify tasks 5g.2–3 only. Coordinator review/integration/push and CI remain; root owns manifest preparation/staging and the explicit --mode minimal --same-image-shell-pid1 --uart-progress --uart-progress-breadcrumbs physical comparison after its protected preflight. A breadcrumb proves only reaching that call; a later record proves progress past an earlier call, not its full write count. Missing output is unknown, finite attempts are not a firmware wall-clock deadline, and no RX/Bash delivery or automatic recovery is inferred from these host artifacts.