diff options
| author | hathach <[email protected]> | 2026-08-28 00:38:35 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2026-08-28 00:38:35 +0700 |
| commit | 3ec0a85a2aa32b7b7f7506a08dfbc6beb5c19b79 (patch) | |
| tree | ffd8a8fd4fc4a070677506c6bd7e26ca31441e22 /docs | |
| parent | d44390584a352415d746d994358555a95908bc46 (diff) | |
docs: drop the usbh enum-timeout handoff - its fix is PR #3862etmtrace-rp2350
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/superpowers/followup/pr3851-usbh-enum-timeout.md | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/docs/superpowers/followup/pr3851-usbh-enum-timeout.md b/docs/superpowers/followup/pr3851-usbh-enum-timeout.md deleted file mode 100644 index 5dc7b1d35..000000000 --- a/docs/superpowers/followup/pr3851-usbh-enum-timeout.md +++ /dev/null @@ -1,33 +0,0 @@ -# usbh: enumeration control-transfer timeout - -Split out of PR #3851 (found while debugging the rig's pico PIO-USB fixture, 2026-08-27). - -## Established - -- `src/host/usbh.c` (`TODO timeout_ms is not supported yet`, ~line 873) — enumeration - control transfers have no timeout. -- Observed wedge on real hardware (rig ci.lan, raspberry_pi_pico PIO-USB host, - GDB autopsy in ci.lan:`~/dbg-pico/`): a fixture device (048d:04d2) ACKs the SETUP of - the first 8-byte GET_DESCRIPTOR and never answers the EP0 IN data stage. State - freezes at `_usbh_data.enumerating_daddr = 0`, `ctrl_xfer_info.stage = DATA`, - `failed_count = 0`; the PIO-USB ep pool keeps `daddr 0 ep 0x80 has_transfer=1` - armed forever. -- Consequence: ALL enumeration stops — including the parent hub's interrupt-EP - status polling — so one dead device blanks every other port. Core stays healthy - (main loop runs). -- Only the NAK-forever case wedges: Pico-PIO-USB already errors out after - `TRANSACTION_MAX_RETRY` for a *silent* device. - -## Remains - -- Add a timeout to enumeration control transfers (or a watchdog on - `enumerating_daddr`): on expiry, fail the enumeration, free dev0/EP0, and let the - hub continue polling. Respect the existing retry/error path so a normal slow - device is not broken. -- Coverage: needs a HIL-style repro (device that ACKs SETUP then NAKs IN forever); - consider a unit test on the usbh control state machine if the timeout is tick-based. - -## Why split - -PR #3851 is a board+clock PR; this is a host-stack robustness fix with its own -review surface and test needs. |
