phase 2 ask #1: bootstrap ampere kernel-agent recipe (CoolPi GenBook RK3588) #8

Merged
marfrit merged 1 commits from claude-noether/kernel-agent:noether/phase2-ampere-bootstrap into main 2026-05-15 16:47:14 +00:00
Collaborator

Issue #6 ask #1 only. VP9 enablement (ask #2) and AV1 dec integration (ask #3) are explicitly deferred to a separate session per user direction. The fleet/ampere.yaml manifest documents what's excluded and why.

Sibling PR coming in marfrit-packages for arch/linux-ampere-fourier/ (PKGBUILD, flat patches, config, mkinitcpio preset, extlinux-add hook adapted for ampere's /boot/firmware/ vfat partition).

Patches promoted

Six patches from boltzmann:~/src/misc_patches/genbook/kernel/, scope-tagged:

Scope Patches
soc/rockchip/rk3588/ 0001-...Add-pwm15-pinctrl-entries.patch
module/coolpi-cm5/ 0003-...Fix-power-off-by-enabling-RK806-as-system-power-controller.patch
board/coolpi-cm5-genbook/ 0002-...Add-pwm-fan.patch, 0004-...Enable-speaker.patch, 0005-...USB-C-PD.patch, 0008-...lid-switch.patch

Each new scope dir gets a README.md.

Note on the "uncommitted modifications" flag

Issue body warned: "Patches 0001-0004 have uncommitted working-tree modifications. Either commit and tag before kernel-agent ingestion, or the agent's first job is to surface the diff so the user can review."

The diffs are trivial: malformed From: PATCH 000X/000Y placeholder strings replaced with proper From: Markus Fritsche <mfritsche@localhost> RFC-2822 headers. The working-tree versions with proper headers are what this PR ships — they pass strict patch-header parsing whereas the unfixed on-disk variants don't. Markus can commit the cleanup back to misc_patches separately; this PR's ingestion doesn't depend on it.

Patches NOT promoted (with rationale in manifest)

  • 0006 (arm64 Kconfig: do not select HAVE_GCC_PLUGINS) — different scope (arch/arm64/); possibly already on the linux-rk3588-marfrit branch base; not needed for ampere bootstrap
  • 0009 (Bluetooth btrtl) — different subsystem (driver/bluetooth/); promote when a campaign demands
  • 0010 (multi-driver suspend/wakeup) — needs scope split between soc/rockchip/rk3588/ and per-driver dirs; defer to RockHard campaign

fleet/ampere.yaml highlights

  • baseline: marfrit/linux-rockchip branch linux-rk3588-marfrit @ f8f3ad934433 (18 commits ahead of v7.0-rc3)
  • Kernel suffix: -ampere-fourier
  • Bootloader path: /boot/firmware/extlinux/extlinux.conf (vfat partition on mmcblk0p1) — different from fresnel which uses /boot/extlinux/ on the root partition. The PKGBUILD's extlinux-add hook must adapt accordingly.
  • build_host: self-hosts on ampere (primary), boltzmann as secondary, fermi as fallback. First manifest where the target host is also a primary build candidate; pragmatic given native arch + same uarch + 32 GB RAM.

What this PR does NOT do

  • No linux-ampere-fourier PKGBUILD changes (sibling PR in marfrit-packages)
  • No build / publish / install — sequenced after both PRs merge

Bot: claude-noether

**Issue #6 ask #1 only.** VP9 enablement (ask #2) and AV1 dec integration (ask #3) are explicitly deferred to a separate session per user direction. The `fleet/ampere.yaml` manifest documents what's excluded and why. Sibling PR coming in `marfrit-packages` for `arch/linux-ampere-fourier/` (PKGBUILD, flat patches, config, mkinitcpio preset, extlinux-add hook adapted for ampere's `/boot/firmware/` vfat partition). ## Patches promoted Six patches from `boltzmann:~/src/misc_patches/genbook/kernel/`, scope-tagged: | Scope | Patches | |---|---| | `soc/rockchip/rk3588/` | `0001-...Add-pwm15-pinctrl-entries.patch` | | `module/coolpi-cm5/` | `0003-...Fix-power-off-by-enabling-RK806-as-system-power-controller.patch` | | `board/coolpi-cm5-genbook/` | `0002-...Add-pwm-fan.patch`, `0004-...Enable-speaker.patch`, `0005-...USB-C-PD.patch`, `0008-...lid-switch.patch` | Each new scope dir gets a README.md. ## Note on the "uncommitted modifications" flag Issue body warned: *"Patches 0001-0004 have uncommitted working-tree modifications. Either commit and tag before kernel-agent ingestion, or the agent's first job is to surface the diff so the user can review."* The diffs are trivial: malformed `From: PATCH 000X/000Y` placeholder strings replaced with proper `From: Markus Fritsche <mfritsche@localhost>` RFC-2822 headers. The working-tree versions with proper headers are what this PR ships — they pass strict patch-header parsing whereas the unfixed on-disk variants don't. Markus can commit the cleanup back to `misc_patches` separately; this PR's ingestion doesn't depend on it. ## Patches NOT promoted (with rationale in manifest) - `0006` (arm64 Kconfig: do not select HAVE_GCC_PLUGINS) — different scope (`arch/arm64/`); possibly already on the linux-rk3588-marfrit branch base; not needed for ampere bootstrap - `0009` (Bluetooth btrtl) — different subsystem (`driver/bluetooth/`); promote when a campaign demands - `0010` (multi-driver suspend/wakeup) — needs scope split between `soc/rockchip/rk3588/` and per-driver dirs; defer to RockHard campaign ## fleet/ampere.yaml highlights - baseline: `marfrit/linux-rockchip` branch `linux-rk3588-marfrit` @ `f8f3ad934433` (18 commits ahead of v7.0-rc3) - Kernel suffix: `-ampere-fourier` - Bootloader path: `/boot/firmware/extlinux/extlinux.conf` (vfat partition on mmcblk0p1) — *different from fresnel* which uses `/boot/extlinux/` on the root partition. The PKGBUILD's extlinux-add hook must adapt accordingly. - `build_host:` self-hosts on ampere (primary), boltzmann as secondary, fermi as fallback. First manifest where the target host is also a primary build candidate; pragmatic given native arch + same uarch + 32 GB RAM. ## What this PR does NOT do - No `linux-ampere-fourier` PKGBUILD changes (sibling PR in marfrit-packages) - No build / publish / install — sequenced after both PRs merge Bot: claude-noether
claude-noether added 1 commit 2026-05-15 16:03:27 +00:00
Brings the second customized fleet host into kernel-agent's
scope-tagged tree. Sibling PR coming in marfrit-packages with the
arch/linux-ampere-fourier/ PKGBUILD + flat patch + config + extlinux
hook (build-tree-ready form).

Issue #6 ask #1 only — VP9 enablement (ask #2) and AV1 dec integration
(ask #3) are explicitly deferred to a separate session per the user's
direction. The ampere.yaml manifest documents what's excluded and why.

## Patches promoted

Six patches from boltzmann:~/src/misc_patches/genbook/kernel/ get
scope-tagged into kernel-agent's tree:

  soc/rockchip/rk3588/
    0001-...Add-pwm15-pinctrl-entries.patch         (prereq for 0002)
  module/coolpi-cm5/
    0003-...Fix-power-off-by-enabling-RK806-as-system-power-controller.patch
  board/coolpi-cm5-genbook/
    0002-...Add-pwm-fan.patch
    0004-...Enable-speaker-output-via-audio-graph-card.patch
    0005-...Enable-USB-C-PD-charging-via-FUSB302.patch
    0008-...Add-lid-switch-and-USB3-PHY-lane-config.patch

Each new scope dir gets a README.md documenting what it carries and
why the scope-level granularity makes sense (pwm15 is SoC-wide,
RK806 power-off is SoM-level not board-level, the rest are
board-specific GenBook quirks).

Note on uncommitted-modifications flag in issue body: patches 0001-0004
have working-tree-only changes in misc_patches that fix malformed
'From: PATCH 000X/000Y' headers (placeholder text instead of an
RFC-2822 author identity). The working-tree versions with proper
'From: Markus Fritsche <mfritsche@localhost>' headers are what we ship
here — the unfixed-on-disk variants would fail patch -i header parsing
on stricter implementations and are user-side cleanup that hasn't been
committed back to misc_patches yet. Markus can commit the cleanup
to that personal repo separately; this PR's ingestion does not depend
on it.

Patches 0006 (HAVE_GCC_PLUGINS Kconfig), 0009 (Bluetooth btrtl),
0010 (multi-driver suspend/wakeup) from the misc_patches series are
intentionally NOT promoted here — they need different scope tags
(arch/arm64/, driver/bluetooth/, soc/rockchip/rk3588/ + driver/ split)
and will follow when their respective campaigns demand them. The
ampere.yaml manifest documents the explicit-defer for each.

## fleet/ampere.yaml manifest

Same shape as fleet/fresnel.yaml. Baseline pinned at marfrit/linux-rockchip
branch linux-rk3588-marfrit @ f8f3ad934433 (the working tree on
boltzmann; 18 commits ahead of v7.0-rc3, current 2026-05-15 tip).
Six scope-tagged patch includes per the apply-order in the package
(pwm15 pinctrl must precede the pwm-fan node consumer).

## ampere-specific bootloader path

Documented in manifest. ampere boots from /boot/firmware/ (vfat
partition on mmcblk0p1), not /boot/ (root partition) like fresnel.
The marfrit-packages PKGBUILD's extlinux-add hook needs to write to
/boot/firmware/extlinux/extlinux.conf, not /boot/extlinux/.

## ampere as 2nd aarch64 build host

Per the README update in PR #7, ampere is now a secondary aarch64
build host. The manifest's build_host: section pins ampere as
self-hosting primary for its own kernel, with boltzmann as secondary
and fermi as fallback. This is the first manifest that has its own
host listed as the primary build target — not ideologically pretty,
but pragmatic: native arch, same uarch, full RAM, no cross-compile
step, no need to wake another host.
marfrit merged commit ad7c61a81b into main 2026-05-15 16:47:14 +00:00
Sign in to join this conversation.