summaryrefslogtreecommitdiffstats
path: root/DEBUG_NOTES.md
diff options
context:
space:
mode:
Diffstat (limited to 'DEBUG_NOTES.md')
-rw-r--r--DEBUG_NOTES.md35
1 files changed, 35 insertions, 0 deletions
diff --git a/DEBUG_NOTES.md b/DEBUG_NOTES.md
index cd2b9ae..c9efdc1 100644
--- a/DEBUG_NOTES.md
+++ b/DEBUG_NOTES.md
@@ -664,3 +664,38 @@ hardware exposed this.
664tail): HID qTD at QH+0x80; control qTDs at +0x100/+0x140/+0x180 and the setup 664tail): HID qTD at QH+0x80; control qTDs at +0x100/+0x140/+0x180 and the setup
665packet at +0x1C0. The failure QR now prints `c64=` and the DMA bases 665packet at +0x1C0. The failure QR now prints `c64=` and the DMA bases
666(async/xfer/setup/buf) so the next run is self-describing. 666(async/xfer/setup/buf) so the next run is self-describing.
667
668### OptiPlex 7010 — second hardware QR (after the 64-bit layout fix)
669
670```
671EHCI fail stage=1 t=20ms sp=0 dev=0 in=true len=18 c64=1
672cmd=00000021 sts=00008003
673prtsc0=0x00001005 hp=0x00003000
674qh1=48084000 qh2=40800000 nqtd=012081c0
675setup=00080e42 data=80120d80 stat=80008c80
676dma a=01208000 x=01208080 s=01208240 b=0120b000
677```
678
679- `sts=0x8003`: USBINT|USBERRINT|ASS — **no HSE**, the 64-bit QH/qTD layout is
680 fixed and the controller runs.
681- `stage=1`: the **SETUP qTD halted**, `setup=0x00080e42` -> TBYTES 0,
682 Halted, C_ERR still 3, no XactErr/Babble/DBE (a split that got no valid
683 response).
684- `prtsc0=0x1005`: device connected + powered, **PED=0** (port never
685 enabled), speed field reads full-speed.
686
687On Intel PCH the USB2 physical ports sit behind the integrated Rate Matching
688Hub, so a healthy root port shows the hub as a **high-speed** device
689(`PED=1`). PED=0 with a connected device means the port did not enable, and
690a full/low-speed split has no valid TT to talk to -> SETUP halts.
691
692Follow-up hardening in the driver:
693- 100 ms power-up settle (RMHs are slow) and stale port-change bits cleared
694 before the reset walk
695- one reset retry after a settle
696- explicit log line when a connected port stays disabled
697- low-speed retry for a failed full-speed device (the PORTSC speed field is
698 only trustworthy once the port is enabled)
699- persistent bottom-row summary: per controller `64b=`/`leg=` handoff result,
700 every connected port's PORTSC, and the HID device count — hardware runs
701 without serial now show the whole picture, not just the first QR