Skip to content

patina-v1.0.0

Choose a tag to compare

@github-actions github-actions released this 27 May 19:29
· 954 commits to refs/heads/main since this release
e00e341

What's Changed

  • Remove TPL lock from uninstall\_multiple\_protocol\_interfaces @joschock (#453)
    Change Details
      ## Description

    This removes the TPL lock from uninstall_multiple_protocol_interfaces. This brings the behavior of this function with respect to TPL in line with EDK2 C reference behavior.

    Acquiring the lock in unisntall_multiple_protocol_interfaces can lead to issues with drivers that are coded against the EDK2 behavior.

    An example of such an issue is in the FAT driver (https://github.com/tianocore/edk2/tree/master/FatPkg/EnhancedFatDxe) which attempts to acquire its own lock at TPL_CALLBACK as part of DriverBindingStop() functionality. This will trigger a TPL inversion if uninstall_multiple-protocol_interfaces is used to remove a BlockIo instance that is being used by the FAT driver - this will cause the FAT driver to be stopped while the TPL is NOTIFY and when it tries to acquire its own lock at TPL_CALLBACK a TPL inversion occurs.

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

    How This Was Tested

    Functional testing with USB hot remove - prior to this change, USB hot remove will cause a TPL assert in FAT driver binding as described above. After this change, TPL assert in FAT driver no longer occurs.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • Temporarily use goblin 0.9.3-hotfix.1 @makubacki (#454)
    Change Details
      ## Description

    Based on this commit which is currently the goblin/master tip:

    m4b/goblin@bc33409

    Hotfix in the patina-fw registry is temporarily used until m4b/goblin@f06b768 is released.

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

    How This Was Tested

    • cargo make all

    Integration Instructions

    N/A




  • chore: Release v0.1.1 @kouchekiniad (#456)
    Change Details
      ## Description

    Version change to v0.1.1.

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

    How This Was Tested

    N/A

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    

⚠️ Breaking Changes

  • RFC Implementation: Consolidate SDK Crates into patina\_sdk and patina\_sdk\_macro as Modules @vineelko (#449)
    Change Details
      ## Description

    This PR implements the RFC(#437) consolidating the existing crates inside the
    Patina sdk directory into the patina_sdk and patina_sdk_macro crates,
    organized by modules. No functional changes to the modules are intended.

    Closes: #418, #437

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

    How This Was Tested

    Validated on Q35/SBSA

    Integration Instructions

    The crates inside sdk have been consolidated into patina_sdk and patina_sdk_macro. Any new code should adhere to the module hierarchy below.

    patina_sdk

      </blockquote>
      <hr>
    </details>
    

🐛 Bug Fixes

  • Debugger: Invalidate TLB and instruction caches on exit @cfernald (#414)
    Change Details
      ## Description

    The debugger may edit the page table mappings or instructions in the instruction cache. These caches are not inherently coherent with the data cache and so these should be invalidated on returning from the debugger.

    Notably, the x64 memory model does guarantee writes will invalidate the icache so long as they use the same linear address, which will be true since we only operate identity mapped.

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

    How This Was Tested

    Tested on QEMU

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    

Full Changelog: patina-v0.1.1...v1.0.0