redbear-info: pcid-spawner → driver-manager label; plan P2-1 done

redbear-info's integration check list still labeled the PCI spawner as
'pcid-spawner' and pointed at /usr/bin/pcid-spawner (deleted). Updated
to 'driver-manager' with /usr/bin/driver-manager and a note about
/scheme/driver-manager/bound. Plan v3.2 marks P2-1 done (pcid AER +
pciehp producers validated in QEMU).
This commit is contained in:
2026-07-24 13:32:45 +09:00
parent 275e9eedf7
commit ad3321a5ce
2 changed files with 20 additions and 4 deletions
@@ -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=<level> device=<bdf>` lines, W1C-clears),
the pciehp scanner reads Slot Status on hot-plug-capable ports (emits
`kind=<event> device=<bdf>` 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):
@@ -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 {