diff options
| author | salmonik <salmonik@tuta.io> | 2026-11-01 16:55:14 +0100 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-11-01 16:55:14 +0100 |
| commit | e53161d6b9191533caeea0ef6148f247f4e22441 (patch) | |
| tree | 4b6b251fe9fccca6520f9c0efffb3bb6c06495e3 /bins/pci/src/main.rs | |
| parent | ehci: reserve the 64-bit QH/qTD layout (fixes hardware HSE) (diff) | |
| download | rs-dos-e53161d6b9191533caeea0ef6148f247f4e22441.tar.gz rs-dos-e53161d6b9191533caeea0ef6148f247f4e22441.zip | |
ehci: diagnostics + hardening for the port-not-enabled case
Second OptiPlex QR: the Host System Error is gone (the 64-bit QH/qTD layout
fix worked), but the SETUP qTD now halts with TBYTES=0, C_ERR=3 and no
XactErr/Babble/DBE -- a split transaction with no valid response. PORTSC
shows CCS=1, PP=1 but PED=0, i.e. the port never enabled, so the split has no
TT to address. On Intel PCH a healthy USB2 port shows the rate-matching hub
as high-speed (PED=1), so the next step is to see every port's state.
- settle 100 ms after powering ports and clear stale change bits before the
reset walk (RMHs come up slower than direct devices)
- retry the port reset once after settling
- log a clear line when a connected port remains disabled
- retry a failed full-speed device as low-speed (the PORTSC speed field is
only valid once the port is enabled)
- persistent bottom-row summary: controller count, caps64, USB legacy handoff
result, every connected port's PORTSC and the HID device count. A hardware
run without serial now reports the whole picture instead of one QR.
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions
