summaryrefslogtreecommitdiff
path: root/docs/superpowers
diff options
context:
space:
mode:
authorhathach <[email protected]>2026-08-28 00:38:35 +0700
committerhathach <[email protected]>2026-08-28 00:38:35 +0700
commit3ec0a85a2aa32b7b7f7506a08dfbc6beb5c19b79 (patch)
treeffd8a8fd4fc4a070677506c6bd7e26ca31441e22 /docs/superpowers
parentd44390584a352415d746d994358555a95908bc46 (diff)
docs: drop the usbh enum-timeout handoff - its fix is PR #3862etmtrace-rp2350
Diffstat (limited to 'docs/superpowers')
-rw-r--r--docs/superpowers/followup/pr3851-usbh-enum-timeout.md33
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.