4c80458d1f
Patch I closes besser#1 — the wsm_generic_confirm 0x0007 dmesg storm. One-line guard in bes2600_hw_scan() refuses the 5 GHz iteration of mac80211's per-band hw_scan loop with -EOPNOTSUPP, so the firmware never sees the scan request that would be rejected with status 2 → -EINVAL cascade. Phase 7 verified 2026-05-18 on ohm running pkgrel=2: Pattern A 14.3/h → 0/h over 30-min window, no WARN/BUG, single-band 2.4 GHz scans still return BSSes cleanly. Two flavors imported (scan-filter-5ghz and scan-filter-5ghz-danctnix) matching the convention of other bes2600 series — the code path doesn't touch timer APIs so the two are byte-identical for now; flavor separation is kept to preserve consistency in ohm.yaml. The arm64 scs-arm-neon-build-fix series is a build-environment workaround: GCC 15.2.1 strictly validates that -fsanitize=shadow- call-stack requires -ffixed-x18, and arm_neon.h's #pragma target/ push/pop blocks lose x18 fixing inside the wrapped section. The Makefile tweak re-adds -ffixed-x18 explicitly for xor-neon.o. It's a no-op when SCS is off (current pkgrel=2 ohm config) and unblocks SCS=y once GCC upstream is fixed. ohm.yaml gains a CONFIG_SHADOW_CALL_STACK=n config override with a pointer to besser#20 (the re-enable tracking issue) so future manifest-driven kconfig generation honors the workaround without silently dropping it. Source-of-truth commit for Patch I: marfrit/bes2600-dkms branch bes2600/scan-filter-5ghz sha 093a503 PKGBUILD-side (already deployed to ohm via pkgrel=2): marfrit/besser branch claude-noether-14 sha ae175f9 Refs: besser#1 (closed), besser#20, kernel-agent#5
143 lines
7.0 KiB
YAML
143 lines
7.0 KiB
YAML
# kernel-agent manifest for ohm (PineTab2 / Rockchip RK3566 + BES2600 SDIO WiFi/BT)
|
||
#
|
||
# Status: scaffolding from 2026-05-16. Patches/scopes are mirrored;
|
||
# the build pipeline (cumulative-patch generation, makepkg invocation,
|
||
# sign+publish) still relies on the hand-managed flow in
|
||
# boltzmann:~/src/besser/marfrit-besser/danctnix-besser-pkgbuild/kernel/.
|
||
# Once ka-promote / ka-build land, switch this manifest to authoritative
|
||
# and retire the boltzmann-side checkouts (canonical + the orphan at
|
||
# ~/src/besser/danctnix-besser-pkgbuild/ that the fourier-campaign
|
||
# sibling agent accidentally created).
|
||
#
|
||
# See kernel-agent issue #5 for the full migration plan.
|
||
|
||
host: ohm
|
||
arch: arm64
|
||
soc: rockchip/rk3566
|
||
board: pinetab2
|
||
distro: archlinux-arm # DanctNIX PineTab2 variant on Arch Linux ARM aarch64
|
||
|
||
baseline:
|
||
tree: DanctNIX/linux-pinetab2
|
||
url: https://codeberg.org/DanctNIX/linux-pinetab2
|
||
ref: v7.0-danctnix1 # _srcname=linux-pinetab2 _srctag=v${pkgver%.*}-${pkgver##*.}
|
||
upstream_compat: linux-7.0 # DanctNIX rebases off mainline + per-tablet delta
|
||
|
||
# Scope-tagged patch includes. Resolves to patches/<scope>/<file>.patch.
|
||
#
|
||
# Series-ordering note: the current cumulative-patch generation order on
|
||
# boltzmann is A, B, C v3, F, G, D, E, C2, c5.x, c6.x, c7, H — explicitly
|
||
# NOT alphabetical. ka-promote MUST honor an apply_order field when
|
||
# concatenating series into the build's per-job cumulative patch. The
|
||
# legend mapping series-letter → series-name lives in the current
|
||
# danctnix-besser-pkgbuild changelog on boltzmann; promote to this
|
||
# manifest once auto-generation is wired.
|
||
#
|
||
# DanctNIX siblings (-danctnix suffix) are selected here because ohm
|
||
# runs on the DanctNIX kernel base; the non-suffixed variants exist for
|
||
# vanilla mainline consumers that ohm doesn't currently have.
|
||
includes:
|
||
# Default-on series (uncontroversial fixes that ohm already runs):
|
||
- driver/bes2600/staging-prep-series-danctnix/
|
||
- driver/bes2600/pm-state-resync-danctnix/
|
||
- driver/bes2600/pm-timeout-silence-danctnix/
|
||
- driver/bes2600/pm-wake-consume-state-danctnix/
|
||
- driver/bes2600/pm-gate-on-handshake/
|
||
- driver/bes2600/pm-detect-firmware-unsupported-danctnix/
|
||
- driver/bes2600/scan-defer-backoff-tune-danctnix/
|
||
- driver/bes2600/scan-defer-on-reject-danctnix/
|
||
- driver/bes2600/lmac-recover-via-mmc-hw-reset-danctnix/
|
||
- driver/bes2600/tx-sdio-dma-oob-danctnix/
|
||
- driver/bes2600/factory-series/
|
||
- driver/bes2600/factory-thread-dev/
|
||
- driver/bes2600/factory-drop-kernel-write-danctnix/
|
||
- driver/bes2600/drop-dpd-file-paths-danctnix/
|
||
- driver/bes2600/drop-orphan-file-io-danctnix/
|
||
- driver/bes2600/remove-chardev-user-interface/
|
||
- driver/bes2600/enable-testmode/
|
||
# Patch I — besser#1 closure. Filter 5 GHz scan iteration at the
|
||
# driver boundary (refuses 5 GHz drv_hw_scan with -EOPNOTSUPP).
|
||
# Eliminates the wsm_generic_confirm 0x0007 dmesg storm.
|
||
# Phase 7 verified 2026-05-18: Pattern A 14.3/h → 0/h.
|
||
- driver/bes2600/scan-filter-5ghz-danctnix/
|
||
|
||
# Build-environment workaround for GCC 15.2.1 + CONFIG_SHADOW_CALL_STACK=y
|
||
# + arm_neon.h #pragma pop_options interaction. See besser#20 for the
|
||
# re-enable-once-GCC-fixed tracking; for now we ship with SCS=n in the
|
||
# config and this Makefile tweak as belt-and-suspenders (no-op if SCS
|
||
# is off; allows SCS=on once GCC permits). Cross-arch fix, not bes2600.
|
||
- arch/arm64/scs-arm-neon-build-fix/
|
||
|
||
# Explicitly NOT included (decision logged):
|
||
# - debian-copyright-fsf-address: Debian packaging metadata, not kernel
|
||
# - bare (non-danctnix) variants of the above: ohm runs DanctNIX base
|
||
|
||
config:
|
||
source: hand-managed config file in boltzmann:~/src/besser/marfrit-besser/danctnix-besser-pkgbuild/kernel/config
|
||
strategy: snapshot, fold to baseline, accept-new with rationale on diff
|
||
TODO: migrate config into kernel-agent flow once kconfig-by-manifest lands
|
||
# Override applied for pkgrel=2 (2026-05-18): CONFIG_SHADOW_CALL_STACK=n
|
||
# to work around GCC 15.2.1 arm_neon.h pragma issue. Track besser#20
|
||
# for re-enable plan. Flip back to =y in the manifest once verified
|
||
# to build clean on current Arch ARM GCC.
|
||
overrides:
|
||
CONFIG_SHADOW_CALL_STACK: n # WORKAROUND besser#20 — restore to y when GCC is fixed
|
||
|
||
package:
|
||
name: linux-pinetab2-danctnix-besser
|
||
versioning: "${baseline_ref}.kafr${pkgrel}" # e.g. v7.0-danctnix1.kafr1
|
||
install_mode: alongside # coexists with linux-pinetab2 if user wants A/B
|
||
conflicts: []
|
||
provides: [linux-pinetab2] # drop-in replacement; pacman can satisfy linux-pinetab2 deps
|
||
kernel_suffix: -danctnix-besser # vmlinuz-linux-pinetab2-danctnix-besser
|
||
bootloader: extlinux # PineTab2 standard
|
||
|
||
# PKGBUILD currently at:
|
||
# boltzmann:~/src/besser/marfrit-besser/danctnix-besser-pkgbuild/kernel/PKGBUILD
|
||
# TARGET location (per issue #5):
|
||
# marfrit/marfrit-packages/arch/linux-pinetab2-danctnix-besser/PKGBUILD
|
||
# PENDING the kernel-agent template-rendering pipeline (b2sums regen,
|
||
# pkgrel bump, cumulative-patch generation from manifest scope).
|
||
template_at: TBD-marfrit-packages-arch-linux-pinetab2-danctnix-besser
|
||
replaces_dkms: bes2600-dkms # once cumulative series in this manifest is enough
|
||
|
||
verify:
|
||
bar1_ssh_heartbeat: required
|
||
bar2_pkg_version: required
|
||
bar3_module_loaded:
|
||
- bes2600 module loads
|
||
- wlan0 + bt0 (BT/UART) present after boot
|
||
- sdio_force_uhs=0 not needed (DMA-OOB-read fix in tx-sdio-dma-oob series)
|
||
bar4_per_patch_probe: opt-in
|
||
bar5_burn_in: opt-in
|
||
- WiFi: 24h iperf3 to LAN host without rxhang
|
||
- PM: lid-close → wake cycles × 100 without bes2600 confirm-loss
|
||
|
||
build_host:
|
||
primary: boltzmann # native aarch64 with ohm's identical .config
|
||
fallback: fermi # hertz LXD, ALARM aarch64
|
||
# No distcc per feedback_kernel_agent_no_distcc.md.
|
||
|
||
backup:
|
||
pre_install: hertz:/sparfuxdata/kernel-agent-backups/ohm/${replaced_version}/
|
||
|
||
# ─────────────────────────────────────────────────────────────────────
|
||
# OPEN — kernel-agent CLI work blocking full migration:
|
||
#
|
||
# 1. ka-promote: read includes[] above + apply_order field (to be added),
|
||
# concatenate referenced series into a single .patch in the build dir.
|
||
# Validate it applies cleanly on baseline.ref. Compute b2sum for
|
||
# template substitution.
|
||
#
|
||
# 2. PKGBUILD template renderer: stamp pkgrel, ${_cumulative_b2sum},
|
||
# ${_srctag} from manifest into a PKGBUILD draft at the
|
||
# template_at location. Sign + publish to packages.reauktion.de.
|
||
#
|
||
# 3. Orphan retirement: surface ~/src/besser/danctnix-besser-pkgbuild/
|
||
# (NO remote, ~/src/besser/marfrit-besser/... is canonical) to
|
||
# Markus / fourier campaign for working-state migration BEFORE
|
||
# deleting. See besser issue #17 for the regression that the
|
||
# orphan caused. After the kernel-agent flow is authoritative,
|
||
# delete both checkouts.
|
||
# ─────────────────────────────────────────────────────────────────────
|