Skip to content

acpi: eliminate split-brain platform inventory (UEFI handoff + ACPI mix); make ACPI authoritative #7

@emilf

Description

@emilf

Theseus currently assembles hardware/platform inventory from multiple sources (UEFI handoff + ACPI tables + acpi crate platform_info + custom MADT parsing). This has led to a "split-brain" situation where ACPI is not treated as the single trustworthy source, largely due to past difficulty/reliability issues with ACPI parsing (both with and without the acpi crate).

Goal: make ACPI parsing trustworthy and define clear source-of-truth boundaries so we can rely on ACPI for platform discovery rather than mixing in UEFI inventory as a fallback.

Examples in current code:

  • ACPI PlatformInfo is built from acpi crate platform_info().interrupt_model OR custom MADT parsing fallback.
  • PCI ECAM regions collected from ACPI MCFG.
  • Legacy USB handoff + IA-PC Boot Arch flags (incl. prohibit_msi) from FADT.
  • Additional scanning for "XHCI" SDTs.

Acceptance:

  • Document an explicit policy: which subsystems use ACPI vs UEFI handoff, and why.
  • Reduce duplication: prefer ACPI for platform discovery when possible; keep UEFI only for things ACPI cannot provide post-ExitBootServices.
  • Add robust logging/diagnostics for ACPI parse failures so issues can be fixed instead of worked around.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions