mtk-wifi-fw/docs/reports/mt7981-2024-2026-handler-changelog.md

47 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

# mt7981 firmware 2024-08 → 2026-05: handler-level changelog
Method: {id,fn} registration arrays (F9) for WM; dense dispatch table @0x10201304 (F7) for WA. Id-level diff — robust to code relayout (2026 build shifted all code addresses; ~95% of region 0xe003b000 differs byte-wise).
## WM (main firmware)
- Command id surface: **identical** — 169 ids present in both builds, 0 added, 0 removed.
- Registration arrays: 4 of 15 arrays sit at the same address with the same count; array @0x022320e0 grew (24, 25)
- Per-handler code comparison deferred: requires function matching across the relayout (string-anchor matching is the planned method). The byte-diff headline (region 0xe003b000 ~95% changed) is dominated by shift, not rewrite — do not read it as a near-total rewrite.
## WA (offload core)
- Handled ids: 29 → 30, with **migration**: 14 newly handled, 13 dropped.
- Newly handled in 2026:
- `+ 0x00 (internal id)`
- `+ 0x05 ID_RADIO_ON_OFF_CTRL`
- `+ 0x06 (internal id)`
- `+ 0x09 (internal id)`
- `+ 0x0c (internal id)`
- `+ 0x0d (internal id)`
- `+ 0x20 (internal id)`
- `+ 0x21 EFUSE_BUFFER_MODE`
- `+ 0x26 BSS_INFO_UPDATE`
- `+ 0x27 EDCA_UPDATE`
- `+ 0x2f (internal id)`
- `+ 0x30 (internal id)`
- `+ 0x3e PROTECT_CTRL`
- `+ 0x3f (internal id)`
- No longer handled in 2026:
- `- 0x03 (internal id)`
- `- 0x04 RF_TEST`
- `- 0x07 PM_STATE_CTRL`
- `- 0x08 CHANNEL_SWITCH`
- `- 0x0b (internal id)`
- `- 0x18 (internal id)`
- `- 0x19 (internal id)`
- `- 0x22 (internal id)`
- `- 0x23 THERMAL_PROT`
- `- 0x2b (internal id)`
- `- 0x2c THERMAL_CTRL`
- `- 0x31 (internal id)`
- `- 0x32 WTBL_UPDATE`
Semantic read (labelled interpretation): responsibility for several commands moved between cores — e.g. WA dropped CHANNEL_SWITCH / WTBL_UPDATE / THERMAL_* handling while gaining BSS_INFO / EDCA / EFUSE_BUFFER_MODE — consistent with MTK rebalancing WM/WA workloads across builds. Verification (decompile the specific handlers) is follow-up work.
Cross-reference: byte/string-level diffs in `mt7981_wm-20240823-vs-20260515.md`.