patina-v22.0.1
What's Changed
🐛 Bug Fixes
-
dxe\_core: dispatcher: Don't Re-Extract FV Files with FV2/3 HOBs @os-d (#1562)
Change Details
## Description
FV2 and extracted FV3 HOBs are produced by the HOB producer phase to indicate to the HOB consumer phase that an FV is already extracted. Patina has been ignoring this and re-extracting FV files if an FV HOB exists for an FV that contains compressed child FVs. On some platforms this has been observed to add
>1 second of boot time which is resolved by this change.This follows what edk2 does and does not re-process child FVs that already have FV2 or extracted FV3 HOBs for them.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Tested on an AARCH64 platform that was seeing a large perf delta between Patina and the C DXE Core. This change reduced overall boot time by 1.2 seconds. Tested on an Intel physical platform that did not have an FV produced for the parent FV of compressed child FVs, so there was no perf delta there.
Integration Instructions
N/A.
-
patina\_dxe\_core: fix CreateEvent and LoadImage UEFI conformance @Nir3613 (#1561)
Change Details
## Summary Fixes two UEFI conformance failures found via SystemReady ACS (SCT) on AARCH64.
CreateEvent (
event_db.rs)EventDb::create_eventonly validated the event type on the non-runtime path (viaEvent::new). An illegalEVT_RUNTIMEcombination (e.g.EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE | EVT_NOTIFY_WAIT) was routed to the runtime path and accepted. Per the UEFI spec (CreateEvent), such types must returnEFI_INVALID_PARAMETER. Validation is now performed before the runtime/non-runtime split.LoadImage (
pi_dispatcher/image.rs)When both
SourceBufferandDevicePathare NULL, the implementation returnedEFI_INVALID_PARAMETER.DevicePathis OPTIONAL (UEFI 2.11 7.4 / Mantis 2277); with nothing to load, LoadImage must returnEFI_NOT_FOUND.Testing
- Unit tests added/updated in both modules.
- Validated on hardware with SystemReady ACS SCT (
CreateEvent_Conf,CreateEventEx_Conf,LoadImage_Conf,LoadImage_Func): 19 failures -> 0.
Full Changelog: patina-v22.0.0...v22.0.1