Drops the f8f3ad9 baseline ("18 commits ahead, BLACK-SCREENS ampere"
per fleet/ampere.yaml bisect note) in favor of the kernel-agent-
managed 10-patch set produced by ka-promote from fleet/ampere.yaml.
Baseline: mainline v7.0-rc3 (3daa4f5dc6cc), plus the 10 scope-tagged
patches under marfrit/kernel-agent/patches/{soc,module,board,driver}/:
- 1 soc/rk3588 pwm15 pinctrl
- 6 board/coolpi-cm5-genbook DTS patches
- 3 driver/media Sarma VP9-on-VDPU381 patches (PR #24 closure)
New _commit 48a8c78 reflects this tree state in ~/src/linux-rockchip
(branch vp9-build on ampere, exactly v7.0-rc3 + 10 manifest patches).
End-to-end verified before this iteration was cut (hand-build of the
same tip on 2026-05-18 booted ampere via arch_vp9_test extlinux
label):
- VP9 decode bit-exact HW==SW==libva (sha c8624d7c42db66525f53a02a515bc38d0a17ef39f692660cc7bebb1e2d2e1b48)
- AV1 decode bit-exact HW==SW via kdirect (sha 30d2091158d92f3c5e0a807217c3e7307f873267673d92632e7fb147383e7dd1, av1-vpu-dec is mainline 7.0)
prebuild.sh canonical sha256 cleared — gzip-version-dependent, the
script warns-not-fails on mismatch. First successful kafr2 build can
pin a canonical sha here if a reproducibility audit ever needs it.
Cross-references:
- marfrit/kernel-agent#12 (VP9 enablement closure)
- marfrit/kernel-agent PR #24 (Sarma patch import + ampere.yaml bump)
Sibling to kernel-agent PR #8 which lands the scope-tagged board
patches + fleet/ampere.yaml manifest. This PR carries the
makepkg-side recipe.
## Baseline
marfrit/linux-rk3588-marfrit @ f8f3ad9 (mainline v7.0-rc3 + 18 commits):
10 by Markus Fritsche (board DTS + Kconfig + suspend/wakeup + bt)
4 by Shawn Lin (phy: rockchip-snps-pcie3 stability)
2 by Cristian Ciocaltea (clk + dw-dp bridge — Collabora)
1 by Sebastian Reichel (Rock 5 ITX hdmirx — unused by ampere)
1 by Pedro Alves (CLK_SET_RATE_PARENT VOP2 fix)
The 6 board-relevant patches (pwm15 pinctrl + RK806 power-off +
genbook pwm-fan/speaker/USB-C/lid) are scope-tagged in
kernel-agent. The 12 others are 'cherry-picks-in-baseline'
currently — splitting them into scope-tagged patches is a
follow-up.
## Source distribution
The kernel tree isn't pushable to Gitea (boltzmann's working clone
is shallow). Tarball (260MB) doesn't belong in marfrit-packages
either. Pragmatic shortcut: ship prebuild.sh that produces the
tarball locally from $LINUX_RK3588_MARFRIT_TREE (default
~/src/linux-rockchip) just before makepkg runs. PKGBUILD source
array references the tarball by name; makepkg picks it up from
the PKGBUILD dir.
Build flow:
cd arch/linux-ampere-fourier
./prebuild.sh # produces 260MB tarball; idempotent w/ sha check
makepkg -s --noconfirm
Future iteration: host the tarball on Gitea release assets or
packages.reauktion.de/sources/ and switch source to URL.
## What the PR ships
PKGBUILD — the recipe (linux-rk3588-marfrit @ f8f3ad9)
config — snapshot of ampere's /proc/config.gz
linux-ampere-fourier.preset — mkinitcpio preset, /boot/firmware/ paths
extlinux-add.hook — alpm hook, fires on /boot/firmware/Image* changes
extlinux-add.sh — idempotent managed-label injector for
/boot/firmware/extlinux/extlinux.conf
(vfat on mmcblk0p1, ampere-specific path)
prebuild.sh — source-staging helper (see above)
README.md — build + install runbook
## ampere-specific boot path differences vs fresnel
ampere boots from /boot/firmware/ (vfat partition), not /boot/ (root
partition) like fresnel. The PKGBUILD installs Image + initramfs + DTB
under /boot/firmware/ directly. The extlinux-add hook fires on
/boot/firmware/<X> path changes and edits
/boot/firmware/extlinux/extlinux.conf. The mkinitcpio preset writes
initramfs to /boot/firmware/.
Only one PRESET ('default') — no fallback image — because
/boot/firmware is ~1G total and two ~20MB initramfs files plus the
DTB and a couple of kernel-image backups would squeeze it tight.
## Out of scope this PR
- Ask 2 (VP9 enablement) and Ask 3 (AV1 dec) from kernel-agent issue #6
- Build + publish + install (sequenced after this PR + kernel-agent PR #8 merge)
- Splitting the 12 non-board commits into scope-tagged kernel-agent patches