Skip to content

[feature/patina-boot] patina_boot: Add connect-dispatch interleaving with DxeServices#1422

Draft
kat-perez wants to merge 1 commit intoOpenDevicePartnership:feature/patina-bootfrom
kat-perez:kp/connect-dispatch-interleaving
Draft

[feature/patina-boot] patina_boot: Add connect-dispatch interleaving with DxeServices#1422
kat-perez wants to merge 1 commit intoOpenDevicePartnership:feature/patina-bootfrom
kat-perez:kp/connect-dispatch-interleaving

Conversation

@kat-perez
Copy link
Contributor

Description

Interleave controller connection with DXE driver dispatch during device
enumeration. Connecting controllers can discover new firmware volumes
(e.g., PCI option ROMs) that contain drivers for devices behind that
controller. Those drivers must be dispatched before the next round of
enumeration, otherwise the devices they serve will not be found.

Introduces a DxeServices trait that platform binaries implement to
call back into the PI dispatcher. SimpleBootManager uses this in
interleave_connect_and_dispatch() to alternate between connecting
controllers and dispatching newly-discovered drivers until both are
exhausted.

  • Impacts functionality?
  • Impacts security?
  • Breaking change?
  • Includes tests?
  • Includes documentation?

How This Was Tested

  • Built SBSA DXE core binary with BootDispatcher + SimpleBootManager replacing TianoCore BdsDxe
  • Booted Windows ARM64 under QEMU SBSA-ref emulation with Patina BDS handling the full boot flow
  • Verified interleaving: controller connection discovered AHCI device, partial device path expanded to full path, Windows bootloader loaded, ExitBootServices completed
  • 106 on-system unit tests passed (0 fails)

Integration Instructions

Depends on #1421 (Core::dispatch() exposure) for platform binary integration.

Remove TianoCore BdsDxe.inf from platform DSC/FDF since the BootDispatcher provides the BDS architectural protocol.

@patina-automation
Copy link
Contributor

patina-automation bot commented Mar 19, 2026

⌛ QEMU Validation Pending

QEMU validation is pending on successful CI completion.

Note: Any previous results are available in this comment's edit history.

This comment was automatically generated by the Patina QEMU PR Validation workflow.

@github-actions github-actions bot added the impact:testing Affects testing label Mar 19, 2026
@kat-perez kat-perez changed the title patina_boot: Add connect-dispatch interleaving with DxeServices [feature/patina-boot] patina_boot: Add connect-dispatch interleaving with DxeServices Mar 19, 2026
@codecov
Copy link

codecov bot commented Mar 19, 2026

Codecov Report

❌ Patch coverage is 94.28571% with 4 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
components/patina_boot/src/boot_dispatcher.rs 42.86% 4 Missing ⚠️

📢 Thoughts on this report? Let us know!

@kat-perez kat-perez force-pushed the kp/connect-dispatch-interleaving branch from 5a64ce3 to ab271e5 Compare March 20, 2026 18:43
…with DxeServices (OpenDevicePartnership#1282)

Interleave controller connection with DXE driver dispatch during device
enumeration. Connecting controllers can discover new firmware volumes
(e.g., PCI option ROMs) that contain drivers for devices behind that
controller. Those drivers must be dispatched before the next round of
enumeration, otherwise the devices they serve will not be found.
@kat-perez kat-perez force-pushed the kp/connect-dispatch-interleaving branch from ab271e5 to ab45f4f Compare March 20, 2026 19:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

impact:testing Affects testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant