Skip to content

patina-v0.1.0

Choose a tag to compare

@github-actions github-actions released this 21 May 00:33
· 970 commits to refs/heads/main since this release
c338582

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 LoadImage function for the loaded image protocol. This is not explicitly state for loaded_image_protocol, but is mentioned for the required by the UEFI specification for EFI_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 dh command would cause the device to get stuck in a loop trying to parse the invalid path and eventually assert.

    Relevant UEFI Description:

    image

    This is also done by the C Core:

    image

    • 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