[feature/patina-boot] patina_boot: Add connect-dispatch interleaving with DxeServices#1422
Draft
kat-perez wants to merge 1 commit intoOpenDevicePartnership:feature/patina-bootfrom
Conversation
Contributor
⌛ QEMU Validation PendingQEMU validation is pending on successful CI completion.
This comment was automatically generated by the Patina QEMU PR Validation workflow. |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
5a64ce3 to
ab271e5
Compare
…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.
ab271e5 to
ab45f4f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
DxeServicestrait that platform binaries implement tocall back into the PI dispatcher.
SimpleBootManageruses this ininterleave_connect_and_dispatch()to alternate between connectingcontrollers and dispatching newly-discovered drivers until both are
exhausted.
How This Was Tested
BootDispatcher+SimpleBootManagerreplacing TianoCore BdsDxeIntegration Instructions
Depends on #1421 (
Core::dispatch()exposure) for platform binary integration.Remove TianoCore
BdsDxe.inffrom platform DSC/FDF since theBootDispatcherprovides the BDS architectural protocol.