Skip to content

Integrate patina_boot::SreBootManager into surface_patina_intel for Won #83

@kat-perez

Description

@kat-perez

Wire patina_boot::SreBootManager into the Intel Surface DXE-core binary so the SRE flow ships on Won (Msft931WonPkg) and sister Ptl boards.

Source repo: dev.azure.com/MSFTDEVICES/UEFI-Intel/_git/surface_patina_intel (Cargo workspace; entry patina_bin/bin/patina_x64.rs). Currently registers only AdvancedLogger + Performance — Surface is still on legacy EDK II BDS, no Patina boot orchestration yet.

Won FDF (Msft931WonPkg.fdf line 1304) already embeds surface_patina_intel_x64.efi as the [FV.PATINA] FV_IMAGE, so once the binary updates, Won and sister boards (Maa/Pue) pick it up automatically via BLD_*_PATINA_BINARY_PATH. No per-board FDF/DSC changes needed.

Steps:

  1. Add patina_boot as a workspace dep in surface_patina_intel/Cargo.toml. Use path = "../patina/components/patina_boot" during local development; switch to version = "..." once patina_boot lands on the registry (likely post-EDC).
  2. Register the BDS architectural protocol in patina_bin/bin/patina_x64.rs's ComponentInfo::components impl:
    add.component(patina_boot::BootDispatcher::new(
        Arc::new(patina_boot::SreBootManager::new(boot_partition_path, main_os_path))
    ));
    Boot partition + main OS device paths come from platform PCDs / config HOBs (likely via MsSurfaceCorePkg/Library/PeiPatinaConfigLib).
  3. Bump surface_patina_intel/Cargo.toml and patina_bin/Cargo.toml versions so CI publishes a new Universal Package to the UEFI-Intel feed.
  4. Smoke-test on Won by updating BLD_*_PATINA_BINARY_PATH to point at the new UPack and confirming the firmware boots.

Out of scope (follow-up sub-issues):

Depends on: #62 (PR #1492) merged or available via path dep.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions