Skip to content

patina-v7.0.0

Choose a tag to compare

@github-actions github-actions released this 02 Sep 16:36
· 775 commits to refs/heads/main since this release
c153a95

What's Changed

  • patina\_internal\_collections: Remove static mut usage @Javagedes (#712)
    Change Details
      ## Description

    Removes static mut usage during benchmarks by leaking the memory as needed

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    benchmarks continue to run

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • [REBASE\&FF] Update to rust version 1.89 @Javagedes (#705)
    Change Details
      ## Description

    Upgrades from 1.85 to 1.89 in a commit chain, applying necessary lint fixes before for each version before upgrading the version.

    This theoretically has no impactful / breaking changes, but there were many areas of the code base where nested if statements were flattened.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    CI and boot QemuQ35.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • chore: Release v6.2.1 @os-d (#698)
    Change Details
      ## Description

    Release.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    N/A.

    Integration Instructions

    See release notes.

      </blockquote>
      <hr>
    </details>
    

⚠️ Breaking Changes

  • Refactor FFS support per RFC 14 @joschock (#706)
    Change Details
      ## Description

    Initial draft PR for FFS refactor based on RFC 14

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    Passes all unit tests, tested boot on hardware platform.

    Integration Instructions

    To follow: main change is instantiation of section extractor.

    (skip cargo release dry run)




🚀 Features & ✨ Enhancements

  • allocator: Remove static memory type info table @Javagedes (#653)
    Change Details
      ## Description

    This commit removes the static memory type info table. Due to the need
    to keep all memory type information in a single table (as it is
    published as a system table), this commit opts to give ownership of
    the entire table to the GCD. When the GCD creates a new allocator, it
    passes a pointer to the memory type info for that allocator, to the
    allocator. This allows the allocator to self update it's memory type
    information as needed, while still keeping the entire table together.

    For dynamically generated allocators (e.g. the allocators not a part
    of the 17 tracked memory types), a new MemoryTypeInfo is created and
    leaked, for them to use.

    Additionally, this removes the page_change_callback in favor of a
    function that does the same.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    1. CI Passes
    2. Verified boot to UEFI Shell

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    

🐛 Bug Fixes

  • patina\_internal\_collections: Update function signature @Javagedes (#711)
    Change Details
      ## Description

    Updates the function signature of get_mut in both bst.rs and rbt.rs to take a mutable reference to self. This change aligns with Rust's safety principles, ensuring that mutable access to the data structure is properly managed.

    This should be considered a bug fix, as the previous signature was invalid and could cause UB. No internal usage of get_mut being called with an immutable reference was found, however.

    closes #704

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    CI passes. Platform compiles. While this was a bug that clippy caught, but it was not being actively misused.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • Fix end of BootServices not reported. @magravel (#684)
    Change Details
      ## Description

    Before the end of exit boot services was not reported. This was caused by some status code not executed. After some investigation, I found that the status code listed was unregister in an event run at the end of boot services. This causes status code to set the end of exit boot services to not be called.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    A perf record was generated.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    

📖 Documentation Updates

  • RFC: Patina release process [FCP] @makubacki (#628)
    Change Details
      ## Description

    Closes #594

    An RFC to define the Patina release process.

    Status: Final

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    N/A

    Integration Instructions

    N/A




  • RFC: Firmware File System support crate in Patina. @joschock (#522)
    Change Details
      ## Description

    RFC for moving FFS support from mu_rust_pi into Patina and adding modification/generation support for FFS.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    N/A

    Integration Instructions

    N/A




  • Docs: Document Stack Trace Flags Needed @os-d (#709)
    Change Details
      ## Description

    This ensures consistent documentation between stacktrace and the debugger.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    N/A.

    Integration Instructions

    N/A.

      </blockquote>
      <hr>
    </details>
    
  • Add Start Image ConnectController() Requirement @makubacki (#701)
    Change Details
      ## Description

    Explain a difference in behavior for connecting handles created or modified during image start between Patina and EDK II.

    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    • cargo make all

    Integration Instructions

    N/A




Full Changelog: patina-v6.2.1...v7.0.0