Skip to content

Kestrel (8852BU/8832CU): bimodal deaf RX bring-up — loop starts green, 0 frames until VBUS cold (sometimes) #294

Description

@josephnef

Symptom

On both Kestrel dies (8852BU TX20U Nano 35bc:0108, 8832CU TX50UH 35bc:0101), an RX bring-up sometimes completes fully green — tune OK, Kestrel: starting RX loop on chN, 8 async URBs submitted — yet zero frames arrive, including a known-good control TX and ambient traffic. init.timing shows demo.first_rx_frame never fires. The same binary + adapter delivers ~5 600 frames/15 s on the next bring-up.

Facts established (2026-07-16 bench session, during HE ER SU validation)

  • Pre-existing, not a regression: reproduced on pristine master (f738cb9) with a bare rxdemo (git-stash bisect) — 0 frames, ch6.
  • Bimodal per bring-up: probability of a deaf bring-up worsens with accumulated soft re-inits; a VBUS cold (uhubctl, hub 3-2.3) usually restores, but a fresh-from-cold bring-up can still come up deaf — it's per-bring-up roulette, not a pure retained-state latch.
  • Affects both dies: the 8832CU was deaf standalone (35 s, 0 ambient) after a TX session; the 8852BU went deaf after ~5 RX bring-up cycles.
  • The 8832CU additionally falls into ZeroCD (0bda:1a2b DISK, dmesg device firmware changed) after VBUS-cold + libusb_reset_device; another VBUS cycle flips it back to 35bc:0101.
  • Kestrel coex: LTE interface not ready [E] appears twice per 8832CU bring-up in both working and deaf sessions — not the discriminator.
  • TX side is unaffected in the same sessions (bulk-OUT drains, SDR shows 85 % duty).

Impact

Any per-cell RX harness reads false zeros. tests/he_er_su_cross_rx.sh works around it (control-cell gate + zero-cell retry with REGRESS_VBUS_MAP VBUS cold), and this trait is why several ER SU cells read 0 before the DUTs were cold-cycled.

Next steps

  • Bisect where the deaf path diverges: RXAGG engine state? halbb gain-cache apply? A MAC RX-filter/RCR word that a prior session leaves latched? Diff a deaf vs healthy bring-up register dump (golden-diff the canary blocks).
  • Check whether the vendor driver's bring-up on the same adapter is also bimodal (rules DUT hardware in/out — build/doctor + tests/adapter_doctor_cold.sh grading).
  • Understand the LTE interface not ready error (B_AX_ENBT arming order) even if it isn't the discriminator.

Kaeru ref: kestrel-RX-bringup-bimodal-deafness-harness-trap-vbus-roulette-zerocd-0101.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions