Skip to content

Conversation

@kat-perez
Copy link
Contributor

@kat-perez kat-perez commented Nov 4, 2025

Description

This RFC proposes modular components for UEFI spec compliant boot functionality in Patina firmware. Platforms can
use reference implementations for console initialization, boot option discovery, and boot orchestration,
or implement custom boot flows using the provided library functions.

  • Impacts functionality?
  • Impacts security?
  • Breaking change?
  • Includes tests?
  • Includes documentation?
  • Creates a new crate?

How This Was Tested

N/A

Integration Instructions

N/A

@github-actions github-actions bot added impact:non-functional Does not have a functional impact type:documentation Improvements or additions to documentation labels Nov 4, 2025
@codecov
Copy link

codecov bot commented Nov 4, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copy link
Contributor

@os-d os-d left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The biggest part of BDS that I did not see enumerated in this RFC is the connect management, driving binding protocols, etc. That requires careful thought as it is another form of driver dispatch that is unique to the BDS phase.

I think that before we move this forward, we need to include what that story is.

@makubacki makubacki added the rfc A request-for-change proposal label Nov 4, 2025
@kat-perez kat-perez force-pushed the rfc-boot-manager branch 5 times, most recently from ec79517 to db8fc97 Compare November 6, 2025 14:50
@kat-perez
Copy link
Contributor Author

i've changed the design quite a bit, added more goals and requirements to further constrain the design to be limited to the most fundamental Patina components that can achieve a successful boot

@kat-perez kat-perez changed the title RFC: Boot Manager RFC: Boot Manager Components Nov 6, 2025
@kat-perez kat-perez requested review from kuqin12 and os-d November 6, 2025 15:15

To discover bootable media, the Boot Manager connects storage device controllers (via `ConnectController()`) to
enable file system drivers and scan for boot loaders. BootOptionDiscovery accepts connection strategies as
configuration, allowing platforms to customize which devices get connected while using the shared ProtocolServices
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For a first implementation, I think it is fine to leave the connect controller flow to the protocol, but if we look forward to how Patina components would be implemented that interact with the connect controller flow, we wouldn't want a protocol, we'd want a service and it may look very different from the protocol.

It's fine not to define that here, if that is not in scope initially, but I would at least note that that work is deferred to a future RFC and this RFC does not support native Patina components interacting with the connect controller flow.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good point. I've added an explicit "Future Work: Connect Controller Service" section noting that this is deferred and native Patina components cannot participate in the connect controller flow in this RFC.

## Goals

1. Provide UEFI spec compliant boot functionality
2. Enable platforms to boot with zero custom code using reference components
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This statement may read as a platform does not need any custom code to boot, i.e. just taken patina as is and you are good, which is not what you intend. Consider rewriting this as something like:

Enable platforms to use a common boot manager without customization

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Goal #2 reworded like this:

  1. Enable platforms to use a common boot manager without customization

@kat-perez kat-perez requested a review from os-d January 15, 2026 21:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

impact:non-functional Does not have a functional impact rfc A request-for-change proposal type:documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants