# 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); "reactor race" root-caused to startup latency under load (not a deadlock) | | **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 ### Status note (2026-07-20) - The login-based QEMU proofs (PS/2 + serio, monotonic timer, IOMMU first-use, USB storage BOT) now run through `local/scripts/qemu-login-expect.py` (stdlib python) instead of the host `expect` tool β€” no external dependency, per-step timeouts, and safe retry on premature QEMU death. See `local/docs/IRQ-AND-LOWLEVEL-CONTROLLERS-ENHANCEMENT-PLAN.md` Β§ "Runtime proof status (2026-07-20)". - MSI-X (virtio-net) and xHCI interrupt-driven mode were re-confirmed on the current `redbear-mini` ISO β€” once more on 2026-07-20 ~09:10 JST via `test-lowlevel-controllers-qemu.sh` (log-grep legs, unaffected by host contention). - Re-confirmation of the login-based legs (PS/2, timer, BOT) with the new harness is pending an uncontended host β€” the current build host runs a parallel QEMU-testing workload (a concurrent agent session under `~/.claude/jobs/` with its own QMP-controlled guest) that SIGKILLs competing QEMU processes; boots reach getty but the login prompt is not observed within the timeout there. The βœ… marks above reflect prior validation of those legs. A retry loop (`/tmp/opencode/a2-retry.sh`) is armed to run the PS/2, timer, and USB-storage legs automatically once the foreign QEMU workload exits. - The IOMMU first-use leg currently skips on `redbear-mini` runs because `build/x86_64/redbear-full/harddrive.img` is absent β€” a `redbear-full` build is required to re-confirm that leg. - Display boots (`-vga std`) can freeze at the fbcond `Performing handoff` step (the `reopen_for_handoff()` path can block rather than return `EAGAIN` for retry). Headless (`-vga none`) boots avoid it. Tracked separately on the graphics stack.