91fe815c4c
First of the three [ka:cli-build-out] verbs (umbrella #21). Reads fleet/<host>.yaml, resolves includes[] (single-file + series-dir), concatenates in apply order, emits build/<host>/<ref>/{cumulative.patch, manifest.lock}. Phase-3 ground truth on fresnel parity: b2sum 4d9d93c655ea701b… matches bit-for-bit. Five tests in tests/ka-promote/ (fresnel parity, series-dir resolver, bad-include, missing-patch, dup-include) all pass. Validator (--validate-against <linux-checkout>) hard-fails on: missing .git, baseline.ref not in checkout, HEAD-tree != baseline.ref tree, or uncommitted/untracked changes. Verified on boltzmann against the torvalds v7.0 worktree (all 3 negative paths exit 3 with clear errors). Side fix: fleet/fresnel.yaml baseline.tree mmind/linux-rockchip → torvalds/linux. mmind doesn't ship a plain v7.0 tag; baseline was actually torvalds the whole time. mmind kept as informational patch_authoring_context. Phase-5 reviewer (sonnet outside-look, #22 comment 1135) followups addressed: series-dir fixture count 7 (not 6), divergence = hard error, raw-bytes manifest hash, duplicate-include pre-flight check, explicit yaml.dump(sort_keys=True). Language choice (vs ka-status's bash): pure python3 — YAML round-trip, dict construction, and per-file hashing made bash+heredoc python quoting hell with no readability gain. Phase 7 (verify on ampere parity) + Phase 8 (close + README rewrite + PR) to follow. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
71 lines
3.1 KiB
YAML
71 lines
3.1 KiB
YAML
# kernel-agent manifest for fresnel (Pinebook Pro / Rockchip RK3399)
|
|
#
|
|
# Status: ka-promote-consumable. Used as Phase-3 parity reference for ka-promote
|
|
# bring-up (issue #22). ka-build / ka-install CLI still pending.
|
|
#
|
|
# baseline.tree corrected 2026-05-18: mmind/linux-rockchip does not ship a
|
|
# plain v7.0 tag; baseline is torvalds/linux v7.0. mmind kept as informational
|
|
# patch_authoring_context.
|
|
|
|
host: fresnel
|
|
arch: arm64
|
|
soc: rockchip/rk3399
|
|
board: pinebook-pro
|
|
distro: archlinux-arm # EndeavourOS pacman base
|
|
|
|
baseline:
|
|
tree: torvalds/linux
|
|
url: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
|
|
ref: v7.0
|
|
upstream_compat: linux-7.0 # what the patches target
|
|
patch_authoring_context: mmind/linux-rockchip # informational — patches authored against Rockchip rebase
|
|
|
|
# Scope-tagged patch includes. Each entry resolves to
|
|
# patches/<scope>/.../<file>.patch in marfrit/kernel-agent.
|
|
includes:
|
|
- board/pinebook-pro/0001-arm64-dts-rk3399-pinebook-pro-add-OC-OPP-tables-1704-2184.patch
|
|
- board/pinebook-pro/0002-arm64-dts-rk3399-pinebook-pro-enable-hdmi-sound.patch
|
|
- board/pinebook-pro/0003-arm64-dts-rk3399-pinebook-pro-spi1-max-freq-10MHz.patch
|
|
# vb2_dma_resv RFC v2 series — added 2026-05-15 (Markus iterated v2 locally
|
|
# on boltzmann reaching pkgrel=14; pre-v2 decision was "defer". v2 attaches
|
|
# the fence at device_run in slept-OK context per Dufresne's v1 review).
|
|
- subsystem/media/videobuf2/dma-resv-release-fence/0004-media-videobuf2-add-opt-in-dma_resv-producer-fence-h.patch
|
|
- subsystem/media/videobuf2/dma-resv-release-fence/0005-media-hantro-attach-dma_resv-release-fence-at-device.patch
|
|
- subsystem/media/videobuf2/dma-resv-release-fence/0006-media-rockchip-rga-attach-dma_resv-release-fence-at-.patch
|
|
|
|
# Explicitly NOT included (tracked elsewhere, decision logged):
|
|
# - driver/panfrost/iommu-cache-rk3399/ (sibling kernel work; ship together
|
|
# once it lands. Targets the readback transitive-proof gap that vb2_dma_resv
|
|
# alone doesn't close.)
|
|
|
|
config:
|
|
source: /proc/config.gz on running fresnel kernel (linux-eos-arm 6.19.9-99)
|
|
strategy: snapshot, fold to baseline, accept-new with rationale on diff
|
|
|
|
package:
|
|
name: linux-fresnel-fourier
|
|
versioning: "${baseline_ref}.kafr${pkgrel}" # e.g. 7.0.kafr1
|
|
install_mode: alongside # coexists with linux-eos-arm in /boot
|
|
conflicts: []
|
|
provides: []
|
|
kernel_suffix: -fresnel-fourier # /boot/vmlinuz-7.0.0-fresnel-fourier
|
|
bootloader: extlinux # default Pinebook Pro layout
|
|
|
|
verify:
|
|
bar1_ssh_heartbeat: required
|
|
bar2_pkg_version: required
|
|
bar3_dtb_match:
|
|
- cpufreq cluster0 max == 1704000
|
|
- cpufreq cluster1 max == 2184000
|
|
bar4_per_patch_probe: opt-in
|
|
bar5_burn_in: skip # laptop, runtime not constant
|
|
|
|
build_host:
|
|
primary: boltzmann # kbuild-aarch64 surrogate today (native)
|
|
fallback: fermi # hertz LXD, ALARM aarch64
|
|
# No distcc for kernel-agent builds — native make on the assigned host only.
|
|
# Per feedback_kernel_agent_no_distcc.md (2026-05-09).
|
|
|
|
backup:
|
|
pre_install: hertz:/sparfuxdata/kernel-agent-backups/fresnel/${replaced_version}/
|