patina-v0.1.0
What's Changed
-
ReleaseWorkflow.yml: Add parameterized prefix filtering @Javagedes (#430)
Change Details
## Description
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Ran the full step from the release workflow in git bash -
settings 1:
- tag_name = "patina-v0.1.1"
- prefix = "patina-v"
settings 2:
- tag_name = "v0.1.1"
- prefix = "v"
tag_name="${{ github.event.release.tag_name }}" prefix="${{ inputs.ignore-prefix}}" # remove leading prefix if it exists release_tag="${tag_name#"$prefix"}" echo "Release Tag: $release_tag" echo "tag=$release_tag" >> $GITHUB_OUTPUT
Integration Instructions
N/A - default prefix continues to be "v"
🚀 Features & ✨ Enhancements
-
Make performance lib into a component. @magravel (#405)
Change Details
## Description
Change the performance library into a component, refactor parts of the code for it to be more testable and add unit tests.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- Unit tests
- On QEMU Q35
- Intel devkit
Integration Instructions
This Performance component replaced DxeCorePerformanceLib.c. This means that if the device is not built using performance, this component should not be added and if it is built with performance, it should be there. This is because the component publishes the fbpt but when perf is not enabled, FirmwarePerformanceDxe.c creates that table. This is the PCD that tells whether perf is enabled or not: gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask. Note that in rust the value of the pcd is not used and to enable some measurement, config must be used.
🐛 Bug Fixes
-
Make copy of device path in LoadImage for loaded image protocol @cfernald (#429)
Change Details
## Description
This change makes a copy of the device path in the
LoadImagefunction for the loaded image protocol. This is not explicitly state for loaded_image_protocol, but is mentioned for the required by the UEFI specification forEFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL.This specifically revolves a use after free issue that presented in the shell which happend to overwrite a device path when it was re-allocated this memory while the pointer was still in the loaded image protocol. Whenever this protocol is next inspected it can cause unexpected behavior. Specifically, the
dhcommand would cause the device to get stuck in a loop trying to parse the invalid path and eventually assert.Relevant UEFI Description:
This is also done by the C Core:
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Tested on Q35
Integration Instructions
N/A
📖 Documentation Updates
-
Quick cleanup to readme.md file @rogurr (#424)
Change Details
## Description
Quick cleanup to readme.md file to include links to other repositories, change to compilation steps, and update formatting.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Ran through steps on a personal PC with no access to Microsoft internal servers to confirm everything is accessible through GitHub or public access points.
Integration Instructions
N/A
-
Make performance lib into a component. @magravel (#405)
Change Details
## Description
Change the performance library into a component, refactor parts of the code for it to be more testable and add unit tests.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- Unit tests
- On QEMU Q35
- Intel devkit
Integration Instructions
This Performance component replaced DxeCorePerformanceLib.c. This means that if the device is not built using performance, this component should not be added and if it is built with performance, it should be there. This is because the component publishes the fbpt but when perf is not enabled, FirmwarePerformanceDxe.c creates that table. This is the PCD that tells whether perf is enabled or not: gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask. Note that in rust the value of the pcd is not used and to enable some measurement, config must be used.
Full Changelog: patina-v0.0.1...v0.1.0

