6446d440bf
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.
1.9 KiB
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