1790010483
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.
12 KiB
12 KiB
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 c101–c106. 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.mdis 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 hostexpecttool — no external dependency, per-step timeouts, and safe retry on premature QEMU death. Seelocal/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-miniISO — once more on 2026-07-20 ~09:10 JST viatest-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-miniruns becausebuild/x86_64/redbear-full/harddrive.imgis absent — aredbear-fullbuild is required to re-confirm that leg. - Display boots (
-vga std) can freeze at the fbcondPerforming handoffstep (thereopen_for_handoff()path can block rather than returnEAGAINfor retry). Headless (-vga none) boots avoid it. Tracked separately on the graphics stack.