Files
RedBear-OS/local/docs/HARDWARE-VALIDATION-MATRIX.md
T
vasilito 6446d440bf usb: hub-child enumeration proven end-to-end in QEMU + tighten hub test
The usb-kbd behind the QEMU usb-hub now enumerates fully: debounce ->
port reset -> enable -> second debounce -> pre-attach -> attach ->
ATTACH 5.2 -> slot 3 -> addressed -> descriptors read -> HID class match
-> 'Loading subdriver "USB HID" for port 5.2' (class 3.1 proto 1,
keyboard boot protocol).

Root cause of the final stall: an unconditional SetPortFeature
(PORT_INDICATOR) for every connected+enabled port NAK-hung on QEMU's
indicator-less hub (no control-transfer timeout), blocking the flow
before the post-enable debounce. Now gated on
wHubCharacteristics.HUB_CHAR_PORTIND like Linux has_indicators.

test-usb-hub-qemu.sh: check #5 now requires the hub-child subdriver
line ('Loading subdriver "USB HID" for port <root>.<child>') so a
root-port HID (tablet) can no longer satisfy it — closes a false-
positive hole. Timeout raised to 360s for slow TT-path driver bring-up.

Docs (plan P3-A runtime validation + matrix): full hub + hub-child
chain recorded as QEMU-proven; remaining items (intermittent reactor
startup race, slow TT-path Evaluate Context) noted.
2026-07-19 19:55:27 +09:00

1.9 KiB

Hardware Validation Matrix — Red Bear OS

Component QEMU Bare Metal Notes
Storage
AHCI SATA 🔲 NCQ structure present, not runtime-validated
NVMe 🔲 🔲 Basic driver, no multiqueue
virtio-blk N/A QEMU only
Network
e1000 🔲 🔲 ITR structure present, no offload validation
rtl8168 🔲 🔲 PHY config present, not runtime-tested
virtio-net N/A QEMU only
Audio
Intel HDA 🔲 🔲 Codec detection + jack sense added, not validated
AC97 🔲 🔲 Basic driver
Input
PS/2 🔲 QEMU keyboard/mouse work
USB HID 🔲 Keyboard/mouse autospawn via test-usb-qemu.sh (P1 hardening); not validated on real HW
USB
xHCI host controller 🔲 Interrupt-driven mode proven (test-xhci-irq-qemu.sh); 51-flag quirk table + HCCPARAMS2 gating (P2-A/B); 36-code error recovery (P2-C); not HW-validated
EHCI/UHCI/OHCI controllers 🔲 🔲 Compile clean; runtime enumeration proofs planned (P8-B)
USB storage (BOT) 🔲 usbscsid autospawn + bounded sector readback proven (test-usb-storage-qemu.sh); guest-side write verify open
USB hub (non-root) 🔲 Hub + hub-child enumeration proven in QEMU (test-usb-hub-qemu.sh): hub descriptor/EP1/scan/debounce/reset→enable, and usb-kbd behind hub enumerates to HID subdriver (class 3.1 keyboard); intermittent xhcid reactor startup race noted
GPU/Display
VESA 🔲 QEMU framebuffer works
virtio-gpu N/A 2D only, QEMU
CPU/Power
cpufreqd 🔲 🔲 Governors implemented, not HW-validated
thermald 🔲 🔲 ACPI thermal zones, not HW-validated
SMP
x2APIC/SMP Multi-core works

= validated 🔲 = implemented, not validated N/A = not applicable