summaryrefslogtreecommitdiffstats
path: root/DEBUG_NOTES.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--DEBUG_NOTES.md23
1 files changed, 23 insertions, 0 deletions
diff --git a/DEBUG_NOTES.md b/DEBUG_NOTES.md
index c9efdc1..b72a979 100644
--- a/DEBUG_NOTES.md
+++ b/DEBUG_NOTES.md
@@ -699,3 +699,26 @@ Follow-up hardening in the driver:
699- persistent bottom-row summary: per controller `64b=`/`leg=` handoff result, 699- persistent bottom-row summary: per controller `64b=`/`leg=` handoff result,
700 every connected port's PORTSC, and the HID device count — hardware runs 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 701 without serial now show the whole picture, not just the first QR
702
703### OptiPlex — "dies at the prompt" (third run)
704
705Same QR (stage=1, PED=0), but now the machine never reaches the shell. Two
706boot-time hazards, both introduced/exposed by the hardware diagnostics:
707
7081. **Count-based MMIO waits.** `reset_port` polled PED for 2,000,000
709 iterations and the controller reset used 10,000,000-iteration loops.
710 On real silicon each iteration is an uncached MMIO read; with the new
711 reset retry that is seconds per port. The boot-phase watchdog panics
712 when task 0 keeps a fixed stack frame for 750 ticks (7.5 s), and its
713 panic band is the only visible trace (serial carries the rest).
7142. **Automatic re-scan every second.** While no HID was found the cursor
715 task re-ran the entire EHCI scan (including port resets), so a rate
716 matching hub never got a chance to settle.
717
718Fixes: all EHCI waits are wall-clock bounded (halt/reset/run 500 ms, PED
719200 ms, control transfer 500 ms), a per-controller 3 s port-scan budget, no
720automatic re-scan (hotplug is explicit via `usb rescan`), a 300 ms power-up
721settle, and the boot watchdog window raised to 20 s. The xHCI controller
722also gets a persistent bottom-row summary. QEMU `make test-usb` is green
723again (the 2 M-iteration PED poll had also eaten the 2 s scan budget and
724skipped the keyboard).