diff --git a/local/docs/DRIVER-MANAGER-MIGRATION-PLAN.md b/local/docs/DRIVER-MANAGER-MIGRATION-PLAN.md index 47e7c28608..2fc71b45b5 100644 --- a/local/docs/DRIVER-MANAGER-MIGRATION-PLAN.md +++ b/local/docs/DRIVER-MANAGER-MIGRATION-PLAN.md @@ -18,6 +18,22 @@ deferred), registers `scheme:driver-manager`, and enters the resident hotplug loop. pcid-spawner stays dormant on both phases via `ConditionPathExists`. +**P2-1 ✅ (2026-07-24): pcid produces AER + pciehp events.** A 500 ms +poller thread in pcid scans every enumerated device: the AER scanner +reads uncorrectable/correctable status from the PCIe AER extended +capability (emits `severity= device=` lines, W1C-clears), +the pciehp scanner reads Slot Status on hot-plug-capable ports (emits +`kind= device=` lines for presence-detect, DLL state, +attention button, MRL sensor, power fault, W1C-clears). Both streams +are capped 64-line logs served read-only at `/scheme/pci/aer` and +`/scheme/pci/pciehp`; device strings use the scheme dir-name format so +`route_to_driver` matches bound paths. driver-manager's AER listener +moved from the nonexistent `/scheme/acpi/aer` to `/scheme/pci/aer`. +Extended capabilities need ECAM; fallback machines produce nothing +gracefully. QEMU gate: poller running (6 devices, 500 ms), listener on +the producer path, zero errors. MSI-based delivery remains the +follow-up once pcid grows an IRQ path for AER/hotplug. + Four runtime bugs found and fixed by the gate (none visible at compile grade — exactly why the runtime column exists): diff --git a/local/recipes/system/redbear-info/source/src/main.rs b/local/recipes/system/redbear-info/source/src/main.rs index 4b5cb898fb..6b0971988f 100644 --- a/local/recipes/system/redbear-info/source/src/main.rs +++ b/local/recipes/system/redbear-info/source/src/main.rs @@ -353,13 +353,13 @@ const INTEGRATIONS: &[IntegrationCheck] = &[ functional_probe: Some(probe_smolnetd_surface), }, IntegrationCheck { - name: "pcid-spawner", + name: "driver-manager", category: "Core", - description: "PCI driver autoload daemon", - artifact_path: Some("/usr/bin/pcid-spawner"), + description: "PCI driver match/claim/spawn daemon", + artifact_path: Some("/usr/bin/driver-manager"), control_path: Some("/scheme/pci"), test_hint: "lspci", - note: "The PCI scheme proves discovery is live, but not which driver handled each device.", + note: "The PCI scheme proves discovery is live; /scheme/driver-manager/bound shows which drivers are bound.", functional_probe: Some(probe_directory_readable), }, IntegrationCheck {