Skip to content

T1: 8814AU path-C/D mirrors in canary mask sets#76

Merged
josephnef merged 1 commit into
masterfrom
t1-canary-mask-pathcd
Jun 2, 2026
Merged

T1: 8814AU path-C/D mirrors in canary mask sets#76
josephnef merged 1 commit into
masterfrom
t1-canary-mask-pathcd

Conversation

@josephnef
Copy link
Copy Markdown
Collaborator

Summary

Extends both canary mask classes to the path-C/D registers captured for 8814AU, mirroring what's already in place for paths A/B. With paths A/B masked but C/D unmasked, every 8814 diff was reporting four spurious divergences on regs that have well-understood asymmetry.

Capture-state asymmetry (5G only)

CAPTURE_STATE_5G_ARTIFACTS gains:

  • BB 0x1820 — rTxAGC_C_CCK11_CCK1_Jaguar2 (path C)
  • BB 0x1a20 — rTxAGC_D_CCK11_CCK1_Jaguar2 (path D)

Same long-lived-kernel-iface vs fresh-devourer-process asymmetry as 0xc20 / 0xe20: CCK-only TX-AGC that's never written at 5G by either side but kernel iface retains a prior 2.4G value.

Runtime-ephemeral (BB-swing thermal)

RUNTIME_EPHEMERAL gains:

  • BB 0x181c bits 31:21 — rC_TxScale_Jaguar2 (path C)
  • BB 0x1a1c bits 31:21 — rD_TxScale_Jaguar2 (path D)

PowerTracking8812a is gated to CHIP_8812 only, so on 8814 the kernel's phydm watchdog walks the path-C/D TX-swing thermal index while devourer leaves it static. Same divergence class, same masking applies. Lower bits (AGC table select, static base) stay diffed.

Test plan

  • python3 -m pytest tests/test_canary_diff.py -v — 20 / 20 passing locally (was 17)
  • New tests: test_5g_capture_state_artifact_8814_path_c_d_masked, test_8814_pathcd_bb_swing_thermal_masked, test_8814_pathcd_bb_swing_lower_bits_still_diffed
  • Hosted CI green on the Canary diff unit tests job

Extends the existing mask classes to the path-C/D registers
captured for 8814AU, mirroring what's already in place for paths
A/B:

  - CAPTURE_STATE_5G_ARTIFACTS gains 0x1820 / 0x1a20
    (rTxAGC_C_CCK11_CCK1 / rTxAGC_D_CCK11_CCK1) — CCK-only
    TX-AGC for paths C/D, same long-lived-kernel-iface asymmetry
    at 5G as 0xc20 / 0xe20.
  - RUNTIME_EPHEMERAL gains 0x181c / 0x1a1c bits 31:21 —
    path-C/D TX scaling, the pwrtrk-tracked thermal-swing field.
    Devourer's PowerTracking8812a is gated to CHIP_8812 only, so
    on 8814 the kernel walks paths C/D while devourer leaves them
    static — same divergence class, same masking applies.

Test suite grows from 17 to 20 cases.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@josephnef josephnef merged commit f5b36f9 into master Jun 2, 2026
6 checks passed
@josephnef josephnef deleted the t1-canary-mask-pathcd branch June 2, 2026 19:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant