fleet/ohm: switch bes2600 to cumulative-c5x interim + close besser#1 + GCC 15 SCS fix (closes #5 partial) #28
+30
-48
@@ -25,63 +25,43 @@ baseline:
|
||||
|
||||
# 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.
|
||||
# 2026-05-18 audit: the per-series -danctnix mirrors in
|
||||
# patches/driver/bes2600/*-danctnix/ created by kernel-agent#17 use
|
||||
# DKMS-style root paths (bes2600/foo.c) rather than in-tree staging
|
||||
# paths (drivers/staging/bes2600/foo.c), and at least one has corrupted
|
||||
# mixed-prefix headers (a/drivers/staging/bes2600/... b/bes2600/...).
|
||||
# They do NOT apply cleanly against the linux-pinetab2 baseline.
|
||||
#
|
||||
# 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.
|
||||
# Until the per-series mirrors are reconstructed (kernel-agent followup
|
||||
# issue), the bes2600 driver scope is satisfied by a single-file
|
||||
# cumulative captured from the working hand-managed
|
||||
# danctnix-besser-pkgbuild flow on boltzmann (see
|
||||
# patches/driver/bes2600/cumulative-c5x-danctnix/README.md). This is
|
||||
# the c5x stack as it shipped in pkgrel=3 on 2026-05-18.
|
||||
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.
|
||||
# bes2600 driver (c5x stack as shipped in pkgrel=3) — single-file
|
||||
# interim cumulative; per-series reconstruction tracked separately.
|
||||
- driver/bes2600/cumulative-c5x-danctnix/
|
||||
# close besser#1 — refuse multi-channel 5 GHz scans at driver boundary.
|
||||
- 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.
|
||||
# GCC 15.2.1 build-fix for arm_neon.h + SHADOW_CALL_STACK interaction.
|
||||
# Runtime no-op as long as the config has CONFIG_SHADOW_CALL_STACK=n
|
||||
# (current ohm setting). Kept in the manifest for the day SCS gets
|
||||
# re-enabled. See reference_arm64_scs_arm_neon_gcc15 memory.
|
||||
- arch/arm64/scs-arm-neon-build-fix/
|
||||
# close besser#18 — pending_record_lock SOFTIRQ-safe -> -unsafe inversion.
|
||||
# Mirror of marfrit/bes2600-dkms#11 (d95453c). 5-site spin_lock -> _bh.
|
||||
- driver/bes2600/queue-pending-record-lock-bh-danctnix/
|
||||
|
||||
# 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
|
||||
# - bare (non-danctnix) variants of the per-series mirrors: same
|
||||
# root-path bug as the -danctnix variants per the 2026-05-18 audit
|
||||
|
||||
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
|
||||
@@ -109,9 +89,11 @@ verify:
|
||||
- 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
|
||||
bar5_burn_in:
|
||||
mode: opt-in
|
||||
tests:
|
||||
- "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
|
||||
|
||||
+4322
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,35 @@
|
||||
# cumulative-c5x-danctnix — interim single-file cumulative
|
||||
|
||||
**Series role**: ohm manifest's bes2600 driver patchset, c5x stack as
|
||||
shipped in `linux-pinetab2-danctnix-besser` pkgrel=3 on 2026-05-18.
|
||||
|
||||
## Why this is a single .patch and not split per-fix
|
||||
|
||||
The 12-ish per-series mirror PR (kernel-agent#17) of the boltzmann-side
|
||||
`marfrit/besser` series produced patches with DKMS-style paths
|
||||
(`bes2600/*` at root) rather than in-tree staging paths
|
||||
(`drivers/staging/bes2600/*`), and at least one entry has corrupted
|
||||
mixed-prefix headers (`a/drivers/staging/bes2600/foo.c b/bes2600/foo.c`).
|
||||
Those series do NOT apply cleanly to the linux-pinetab2 baseline.
|
||||
|
||||
Audit performed 2026-05-18 during ohm migration:
|
||||
- ka-promote ohm (using the per-series includes) produces a
|
||||
172 644-byte cumulative touching 27 file paths, of which 11 are
|
||||
bogus DKMS-style or mixed-prefix.
|
||||
- The hand-curated `0001-bes2600-besser-cumulative-series.patch` from
|
||||
the working `danctnix-besser-pkgbuild` (boltzmann) is 148 149 bytes
|
||||
touching 48 distinct in-tree staging files — and is what pkgrel=3
|
||||
actually builds with.
|
||||
|
||||
This single-file cumulative is staged here so the ohm migration can
|
||||
ship through the kernel-agent flow today without first reconstructing
|
||||
12 series-dirs. The proper per-series split is tracked separately —
|
||||
see kernel-agent issue (TBD) for the rewrite.
|
||||
|
||||
## Provenance
|
||||
|
||||
- Source file: `boltzmann:~/src/besser/marfrit-besser/danctnix-besser-pkgbuild/kernel/0001-bes2600-besser-cumulative-series.patch`
|
||||
- Reflects c5x driver state in `marfrit/bes2600-dkms-mobian` branch as
|
||||
of 2026-05-08, applied against `drivers/staging/bes2600/` in-tree.
|
||||
- Series legend (A, B, C v3, F, G, D, E, C2, c5.x, c6.x, c7, H — NOT
|
||||
alphabetical) per the danctnix-besser-pkgbuild changelog comments.
|
||||
@@ -0,0 +1,19 @@
|
||||
# scan-filter-5ghz-danctnix — close besser#1
|
||||
|
||||
Refuses multi-channel 5 GHz scan requests at the driver boundary with
|
||||
`-EOPNOTSUPP`, eliminating the WSM 0x0007 reject storm. Single-channel
|
||||
5 GHz scans still pass through (NM `802-11-wireless.band=a` BSS
|
||||
verification path stays functional).
|
||||
|
||||
Phase 7 baseline on ohm: Pattern A 14.3/h → 0/h (verified 2026-05-18,
|
||||
30 min window). 5 GHz association achieves 150 Mbit/s MCS 7 HT40 SGI vs
|
||||
72.2 on 2.4 GHz.
|
||||
|
||||
Single combined patch file because the two commits in the source
|
||||
(initial filter + `n_channels > 1` refinement) form a 2-commit
|
||||
follow-up series and git apply concatenation handles both. Splitting
|
||||
into two .patch files would mean a fragile dependency on cross-file
|
||||
sequencing inside the same series-dir.
|
||||
|
||||
Provenance: closes besser#1. Mirror of source-of-truth in
|
||||
`marfrit/bes2600-dkms` branch `bes2600/scan-filter-5ghz`.
|
||||
Reference in New Issue
Block a user