evidence · 6.0 KiB

README.md

Committed at docs/evidence/cpu-extensions/normal-image-build/README.md. This is what grounds the requirements that cite it.

Open raw source

Normal-image vector build, host evidence

This records cross-build results for the proposed ordinary RVV board graph. It is host build evidence only: no candidate boot, installed system, physical vector result or recovery is claimed here. The relevant source changes are 86aca3a2 (normal kernel/Pixman graph), baebf364 (normal-graph card package), and 55de932c (target-only overlay guard). The combined build branch includes the independently reviewed charged-input instrumentation cherry-pick a34e900e; its landed master equivalent is c292ebcb.

Normal kernel: PASS

nix build .#kernel --max-jobs 1 --cores 4 --no-link --print-out-paths

The host cross-build completed successfully on 2026-09-23/24 UTC and printed /nix/store/nyka2ipsrg8i5w5grrc4y18pspyv9gxj-linux-riscv64-unknown-linux-gnu-6.6.36-xuantie. Its matching module output is /nix/store/4b9ijyimxs95dmd7pafc5pjm8yrk9c1f-linux-riscv64-unknown-linux-gnu-6.6.36-xuantie-modules. The exact kernel derivation is /nix/store/rai03djhpx5hf4jpk3x10wf0rb43vdx2-linux-riscv64-unknown-linux-gnu-6.6.36-xuantie.drv. The evaluated config is /nix/store/gqrjmbw5k0k6i9m66sp5fyhza6202dbh-linux-config-riscv64-unknown-linux-gnu-6.6.36-xuantie; it contains RISCV_ISA_V=y, RISCV_ISA_V_DEFAULT_ENABLE=y, DYNAMIC_SIGFRAME=y, ERRATA_THEAD_VECTOR=y, and dynamic RISCV_ISA_ZBB=y, RISCV_ISA_ZICBOM=y, RISCV_ISA_ZICBOZ=y, RISCV_ISA_SVPBMT=y. The ordinary kernel and diagnostic trial aliases evaluate to this same derivation, avoiding a second application of the toolchain-probe source patch. This does not prove a physical boot.

Initial compositor attempt: FAIL, corrected

The first nix build .#shell-compositor --max-jobs 1 --cores 4 --no-link --print-out-paths failed in native x86 Pixman derivation /nix/store/5mspjxgk0i24acz5ibx9xvsayigb49sc-pixman-0.46.4.drv. Meson reported RISC-V Vector Support unavailable, but required while identifying its host machine as x86_64. The board overlay had also applied to native buildPackages, so the host tool dependency was incorrectly asked to build RVV. This failure is retained; it was not a target Pixman failure or a board result.

Commit 55de932c restricts the RVV override to prev.stdenv.hostPlatform.system == "riscv64-linux". Evaluation after that correction yields the unchanged, tested target RVV Pixman derivation /nix/store/3vhbn7qrav9g876s4kd6snp3rx6hhyvv-pixman-riscv64-unknown-linux-gnu-0.46.4.drv and native scalar Pixman derivation /nix/store/c69ckksfgkwwdp84gxi33m9m1zc2cjlh-pixman-0.46.4.drv.

Corrected normal compositor: PASS

nix build .#shell-compositor --max-jobs 1 --cores 4 --no-link --print-out-paths
nix-store -q --requisites /nix/store/6y0ba1gg2bgiqm2qc7hkwk022frrz4sp-sway-1.12 |
  rg 'pixman.*riscv64|pixman-0.46'

The corrected cross-build passed from combined source revision b1b3770fb5a324b29d147189dd9591623d6ce5d2 and produced /nix/store/6y0ba1gg2bgiqm2qc7hkwk022frrz4sp-sway-1.12. Its runtime closure contains exactly one target Pixman provider: /nix/store/brhzfimak2r3c23lmn80y1g6ww6nmb1r-pixman-riscv64-unknown-linux-gnu-0.46.4. This is the identical library derivation/output previously used in the physical pixel and on/off card trials. Those trials proved a scalar PIXMAN_DISABLE=rvv control and the runtime hwprobe gate for their trial kernel; this host build alone does not show which path the new ordinary image will select after boot.

Rebuilt card trial: PASS

nix build .#card-shell --max-jobs 1 --cores 4 --no-link --print-out-paths
nix-store -q --requisites /nix/store/45lxhyx6887089d0yd9bx47rh753m1vg-k230-card-shell |
  rg 'pixman.*riscv64|pixman-0.46'

The card package built from the board’s overlaid package set with the charged input timing adapter source in the combined branch. It produced /nix/store/45lxhyx6887089d0yd9bx47rh753m1vg-k230-card-shell; the compatibility card-shell-rvv output evaluates to the same path. Its runtime closure contains exactly one target Pixman provider, the same /nix/store/brhzfimak2r3c23lmn80y1g6ww6nmb1r-pixman-riscv64-unknown-linux-gnu-0.46.4. The card’s unwrapped Sway binary is /nix/store/6cg9j8ximdm8s4dy0d7rbf83318lknlx-sway-unwrapped-riscv64-unknown-linux-gnu-1.12/bin/sway. This package remains an opt-in card experiment; building it does not place cards in the normal session or prove its physical runtime behavior.

Coherent normal system closure: PASS

nix build .#toplevel --max-jobs 1 --cores 4 --no-link --print-out-paths
nix-store -q --requisites /nix/store/32w7diij07p9cjpyi3xzr4hipidyd9m5-nixos-system-nixos-26.11.20260919.20b1ddd |
  rg 'pixman.*riscv64|k230-wifi-driver|linux-riscv64-unknown-linux-gnu-6.6.36'

The cross-build passed from combined branch revision 7d28a44e16674794bad104d10a766037fc9e37da, with later documentation and standalone-probe commits leaving these normal derivations unchanged. The output is /nix/store/32w7diij07p9cjpyi3xzr4hipidyd9m5-nixos-system-nixos-26.11.20260919.20b1ddd. Its boot.json selects the kernel nyka2ipsrg8i5w5grrc4y18pspyv9gxj Image above and matching initrd /nix/store/36p4258i2ldxsi5vid9nq5l4dh2vayfm-initrd-linux-riscv64-unknown-linux-gnu-6.6.36-xuantie/initrd. The closure includes rebuilt Wi-Fi driver /nix/store/169mynmksdh5psqg6wyw61jnk21s578x-k230-wifi-driver-riscv64-unknown-linux-gnu-94cc959d and exactly one target Pixman provider, /nix/store/brhzfimak2r3c23lmn80y1g6ww6nmb1r-pixman-riscv64-unknown-linux-gnu-0.46.4. Its normal closure contains neither the opt-in card package nor the standalone bit-manipulation diagnostic. The kernel Image SHA256 is 29727ff3313e8d8d5a171eab736df244812dbbcc1280bf28f88b358700054857; the Pixman lib/libpixman-1.so SHA256 is 983f88f4f8628824022644297993aa367963288c6d8a61c87ccbac47fa9beb56.

This closes host build integration only. The ordinary image has not been booted on this board, its actual mapped library and dispatch are not yet observed, and physical recovery is still open.