Files
RedBear-OS/local/docs/HARDWARE-VALIDATION-MATRIX.md
T
vasilito 1790010483 docs: restore two wrongly-removed plans and de-dangle stale references
Round 18's N22 'stale-doc removal' deleted three docs on the stated
premise that they had 'no references anywhere in the repo'. That premise
was wrong for two of them, and SUPERSEDED-DOC-LOG.md's recorded
absorption destinations for those two do not exist:

- CUB-PACKAGE-MANAGER.md was said to be absorbed into a 'redbear-cub
  recipe README.md' and NETWORKING-IMPROVEMENT-PLAN.md section 8.2.
  Neither exists -- there is no cub README under local/recipes/system/cub,
  and that plan has no package-manager section (its 'cubic' matches are
  TCP congestion control). README.md meanwhile links the doc from its
  Documentation list and names cub in six places, so this left a headline
  component with no documentation at all.

- BLUETOOTH-IMPLEMENTATION-PLAN.md was said to be merged into
  NETWORKING-IMPROVEMENT-PLAN.md section 3.x. That file contains three
  passing mentions of Bluetooth, not a 703-line plan. local/AGENTS.md,
  docs/README.md and docs/07 all still list it as a first-class subsystem
  plan, and AGENTS.md forbids treating Bluetooth as secondary.

Both restored from aa480f7ca3^ and their SUPERSEDED-DOC-LOG entries
retracted with the reason. USB-VALIDATION-RUNBOOK.md's supersession is
genuine -- USB-IMPLEMENTATION-PLAN.md carries the runbook as section 6.x
test procedures -- so it stays removed and its one reference now points
there.

Also de-dangled references to docs the authorised 2026-07-27
consolidation (092d1b39c3) removed but which canonical docs still cited
as openable: the driver-manager ASSESSMENT-2026-07-22 and D5-AUDIT
evidence files and the archived migration plan, across eight documents.
They now name what they were and where the supersession is recorded.

Remaining unresolved references are upstream KWin's vendored README
pointing at upstream's own CONTRIBUTING.md, which is deliberately not
touched.
2026-08-03 13:41:01 +03:00

12 KiB
Raw Blame History

Hardware Validation Matrix — Red Bear OS

Component QEMU Bare Metal Hardware Notes
Storage
AHCI SATA 🔲 [MISSING] NCQ structure present, not runtime-validated. No AHCI-capable SATA controller inventoried for bare-metal testing.
NVMe 🔲 🔲 [AVAILABLE] (LG Gram: SK Hynix [1c5c:1959]) Basic driver, no multiqueue. NVMe is class-matched (class=1 subclass=8), initfs-capable. The LG Gram's NVMe is available for Phase 1 BM validation.
virtio-blk N/A N/A QEMU only
Network
e1000d (Intel Gigabit) (e1000e emul.) 🔲 [MISSING] ITR structure present, no offload validation. QEMU -device e1000e emulates 82574L 8086:10d3 — proven bounded (DHCP+ping). Physical e1000/e1000e NIC not identified in any inventoried bench. Modern I219/I225 NOT supported.
rtl8168d (Realtek Gigabit) 🔲 (no QEMU emul.) 🔲 [MISSING] PHY config present. QEMU has no rtl8168 model — must be tested bare metal. No physical RTL8168/8169 NIC identified in any bench.
rtl8139d (Realtek Fast Eth.) 🔲 (QEMU avail., not proven) 🔲 [DEFERRED] Legacy 10/100 NIC. QEMU -device rtl8139 available but not runtime-proven. Physical RTL8139: legacy PCI, deprioritized vs. gigabit.+
ixgbed (Intel 10GbE) 🔲 (no QEMU emul.) 🔲 [MISSING] Port of ixy.rs, <1000 LoC, MSI-X. 40 PCI IDs supported (82599 family). No physical 10GbE NIC (X520/X540/X550) inventoried.
virtio-netd (VirtIO) (MSI-X proven) N/A N/A QEMU only. MSI-X + bounded VM networking baseline proven.
redbear-iwlwifi (Intel Wi-Fi) 🔲 (VFIO only) 🔲 [AVAILABLE] (LG Gram BE201 [8086:7740]) MVM candidates: AX210/AX211/AX201/9462 (all [MISSING] hardware). MLD candidates: BE201 [8086:7740] (only MLD device — [AVAILABLE] in LG Gram). VFIO/passthrough framework exists; no emulated Wi-Fi in QEMU. Firmware pre-staged for BE201 c101c106. MLD Rust layer code-complete (23 tests), never HW-validated. See HARDWARE-NETWORKING-INVENTORY.md §2.6.
redbear-ecmd (USB CDC ECM) 🔲 (not tested) 🔲 [MISSING] USB CDC ECM/NCM driver for USB-Ethernet dongles. No dongle inventoried. Critical: only viable interim network for LG Gram (no wired NIC).
Audio
Intel HDA 🔲 🔲 [AVAILABLE] (LG Gram: cAVS/SOF [8086:7728]) Codec detection + jack sense added, not validated. LG Gram HDA is cAVS/DSP-based legacy HDA cannot reach ALC298 codec behind DSP; needs SOF port.
AC97 🔲 🔲 [MISSING] Basic driver. No AC97 hardware inventoried.
Input
PS/2 🔲 [AVAILABLE] (LG Gram: i8042 keyboard, AUX disabled) QEMU keyboard/mouse work. LG Gram has PS/2 keyboard (AUX port disabled — handled by ps2d).
USB HID 🔲 [AVAILABLE] (LG Gram: USB keyboard/mouse attachable) Keyboard/mouse autospawn via test-usb-qemu.sh (P1 hardening); not validated on real HW.
I2C-HID Touchpad 🔲 🔲 [AVAILABLE] (LG Gram: 04CA:00CC on LPSS DesignWare I2C) Full I2C chain code-complete (dw-i2c engine, LPSS PCI bring-up, i2c-hidd with multitouch parser). Runtime proof pending Phase 1 boot.
USB
xHCI host controller 🔲 [AVAILABLE] (LG Gram: 2× xHCI [8086:7ec0, 8086:777d]) 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. LG Gram quirks decoded (SPURIOUS_SUCCESS, INTEL_HOST, AVOID_BEI, LPM_SUPPORT).
EHCI/UHCI/OHCI controllers 🔲 🔲 [MISSING] Compile clean; runtime enumeration proofs planned (P8-B). No EHCI/UHCI/OHCI hardware identified in inventoried benches.
USB storage (BOT) 🔲 [AVAILABLE] (any USB mass-storage device) usbscsid autospawn + bounded sector readback proven (test-usb-storage-qemu.sh); guest-side write verify open.
USB hub (non-root) 🔲 [MISSING] 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). No physical hub inventoried.
GPU/Display
VESA 🔲 [AVAILABLE] (LG Gram: GOP framebuffer) QEMU framebuffer works. LG Gram VESA via GOP framebuffer — vesad fix for bare metal landed (2026-06-19).
virtio-gpu N/A N/A 2D only, QEMU
redox-drm (Intel MTL iGPU) 🔲 🔲 [AVAILABLE] (LG Gram: MTL [8086:7d51]) 0x7D51 in INTEL_GEN12_MTL_IDS. DMC load, GMBUS EDID, CPU PWM backlight, GuC/HuC/GSC manifest — all code-complete (2026-07-22). Display init assumes Gen8-era reg layout. No HW validation.
CPU/Power
cpufreqd 🔲 🟡 (BM MSR path fixed) [AVAILABLE] (LG Gram: Arrow Lake-H HWP) Governors implemented, MSR path fixed (2026-06-19). Bare-metal boot verified with HWP on Intel laptop. Not yet validated on LG Gram specifically.
thermald 🔲 🔲 [AVAILABLE] (LG Gram: TZ00 + MSR-based) ACPI thermal zones, not HW-validated. MSR fallback path exists.
SMP
x2APIC/SMP [AVAILABLE] (Threadripper 128-thread + LG Gram 16-core hybrid) Multi-core works. AMD Threadripper 128-thread bare-metal proven. Intel Arrow Lake-H 16-core hybrid (P/E/LP-E) expected.
Driver Manager (driver-manager vs pcid-spawner)
D1 P0 capabilities (C1 dynids + C2 remove + C3 enable + C4 BAR) 🔲 N/A (code) Code complete; 52 tests pass; see the D5 capability audit (removed in the 2026-07-27 consolidation; see local/docs/SUPERSEDED-DOC-LOG.md)
D1 P1 SpawnDecision + format coexistence + policy blacklist 🔲 N/A (code) spawn_decision_gate() consults env/CLI/blacklist; convert_legacy reads legacy pcid.d format
D1 P1 PciQuirkFlags wired into spawn 🔲 N/A (code) driver-manager/src/quirks.rs consumes redox-driver-sys; NEED_FIRMWARE defers probe; NO_MSIX/NO_MSI/FORCE_LEGACY_IRQ signal intx-fallback via env; DISABLE_ACCEL signals accel-disable
D1 P1 /etc/driver-manager.d/ policy loader 🔲 N/A (code) local/recipes/system/driver-manager/source/src/policy.rs; reads TOML blacklist; consulted at probe
D2 SMP concurrent probe (worker pool over std::thread::scope) 🔲 N/A (code) redox-driver-core/src/concurrent.rs with CountingSemaphore; tested on host; opt-in via --concurrent=N
D2 PM hooks (Driver::suspend/resume + signal_then_collect) 🔲 N/A (code) Real SIGTERM/SIGKILL in DriverConfig; needs iommu/pcid SetPowerState wiring for actual D3
D2 AER foundation (Driver::on_error + ErrorSeverity + RecoveryAction) 🔲 N/A (code) Trait API complete; needs pcid AER wake source
D2 C-state / P-state / IOMMU / MSI-X / NUMA helpers Library 🔲 HW N/A (code) redox-driver-core/src/modern_technology.rs — concrete implementations; no driver-manager wrapper (orchestrator removed at v1.4 per policy decision)
D3 hotplug 🟡 Polling fallback 🔲 N/A (code) Reduced to 250ms; Bus::subscribe_hotplug returns Unsupported until pcid event delivery lands
D4 audit-no-stubs N/A N/A (code) local/scripts/driver-manager-audit-no-stubs.py scans 38 files; 0 violations at v1.7
D4 SIGHUP reload worker N/A N/A (code) driver-manager/src/sighup.rs; worker polls AtomicBool and calls SharedBlacklist::replace(); 1 unit test; libc::signal install is left to the host program
D4 blackbox test scripts N/A N/A (code) 8 scripts in local/scripts/test-driver-manager-*.sh
D4 heartbeat publisher N/A N/A (code) driver-manager/src/heartbeat.rs; writes JSON to /var/run/driver-manager.heartbeat.json every 5s; 3 unit tests
D4 AER listener infrastructure N/A N/A (code) driver-manager/src/aer.rs; polls /scheme/acpi/aer; 7 unit tests; falls back to log-and-no-op when scheme is absent
C0 dormant service files N/A N/A (code) Committed in local/sources/base submodule (commit 0407d9cc); both ConditionPathExists-gated
D5 feature-complete gate Code 🔲 HW [AVAILABLE] (Threadripper AMD + LG Gram Intel Alder Lake class) All code + tests pass; awaiting real-hardware validation on AMD Threadripper + LG Gram Arrow Lake-H.

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

Hardware Status Codes (new, 2026-07-26)

Code Meaning
[AVAILABLE] Physical hardware present and accessible to operator
[MISSING] Hardware not present / not acquired — blocks bare-metal validation for this component
[DEFERRED] Hardware present or acquirable but not yet integrated into the test bench
N/A Not applicable: component is virtual (e.g. virtio), code-only, or has no hardware dependency

See local/docs/HARDWARE-NETWORKING-INVENTORY.md for full hardware bench inventory, per-driver PCI ID tables, Wi-Fi AP/card/firmware details, peer system specs, and acquisition recommendations. That document is the canonical hardware inventory for this validation matrix.

Status note (2026-07-26)

  • Hardware inventory created: local/docs/HARDWARE-NETWORKING-INVENTORY.md is the new Phase -1 gate. It enumerates all known hardware, marks missing items, and lists acquisition priorities.
  • Critical networking gaps: (1) Threadripper build host NIC inventory never collected — operator must check. (2) No USB-Ethernet dongle for LG Gram interim networking. (3) No dedicated Wi-Fi AP for bounded validation. (4) No physical Intel/Realtek NIC cards for bare-metal Ethernet validation.
  • LG Gram hardware available: Intel BE201 [8086:7740] Wi-Fi, NVMe SK Hynix, 2× xHCI, Intel MTL iGPU [8086:7d51], I2C-HID touchpad, PS/2 keyboard, Arrow Lake-H HWP — all mapped to drivers in this matrix. Phase 1 BM boot is the gate.
  • Network matrix expanded from 3 rows to 8 rows (added: rtl8139d, ixgbed, redbear-iwlwifi, redbear-ecmd) — per the systematic networking fix plan, all network drivers must be tracked individually with hardware availability.

Prior 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.