Theseus is MSI-first (no intent to implement a non-MSI fallback interrupt delivery path). When MSI/MSI-X cannot be enabled or appears broken (delivery failure), the user needs a prominent explanation of the boot failure / degraded state.
Request:
- Add a centralized "critical boot error" reporting path for MSI-related failures (and similar early-critical issues).
- Ensure messages are emitted to both serial and ISA debugcon (0xE9) so failures are visible even if framebuffer output is minimal/nonexistent.
Triggers to report prominently:
- ACPI FADT IA-PC Boot Arch 'prohibit_msi' set (ignored, but should warn loudly).
- pci::enable_msi() or MSI-X setup failures for essential devices (e.g., xHCI).
- MSI/MSI-X self-test indicates interrupt delivery not observed (if the test is enabled).
Acceptance:
- A helper like
report_critical_boot_error(kind, details) that prints to:
- serial (COM1)
- ISA debugcon (0xE9)
- (future) on-screen banner when text rendering exists
- Call sites in xHCI MSI setup + ACPI init path.
- Logs are high severity and hard to miss.