Skip to content

v21.0.0

Choose a tag to compare

@mu-automation mu-automation released this 19 Dec 22:16
· 52 commits to refs/heads/main since this release
c98530e

What's Changed

  • MmSupervisorPkg/SeaPkg: Remove gMmSupervisorCommunicationRegionTableGuid @kuqin12 (#591)
    Change Details
      ## Description

    With the removal of MM core private data, the current module no longer produces gMmSupervisorCommunicationRegionTableGuid configuration table.

    This change removed the dependencies on such table from the test applications and instead grab it through the supervisor protocol.

    For details on how to complete these options and their meaning refer to CONTRIBUTING.md.

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

    How This Was Tested

    This was tested with QEMU Q35.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • SeaPkg: GenSeaArtifacts: Update scroll versions @kuqin12 (#594)
    Change Details
      ## Description

    This change updates the scroll versions inside the Cargo.toml files for both test_aux and gen_manifest.

    This is to be consistent with the scroll version specified in other modules.

    For details on how to complete these options and their meaning refer to CONTRIBUTING.md.

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

    How This Was Tested

    This was tested on the platform and fixed the build break.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • Replace all `__FUNCTION__` with `__func__` @kuqin12 (#582)
    Change Details
      ## Description

    EDK2 started to use FUNCTION for the entire codebase.

    This change is created to follow the same scheme, paving the way for incoming code to use __func__ consistently.

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

    How This Was Tested

    Macro rename, not functional change.

    Integration Instructions

    N/A




  • Rename MM Unblock data hob GUID to be supervisor centric @kuqin12 (#583)
    Change Details
      ## Description

    This change is made because the EDK2 used exactly the same GUID name as ours and the StandaloneMmIplPei is trying to parse the GUID and mark it as accessible data.

    This change renamed the data hob GUID to avoid such collision and paves way for adopting StandaloneMmIplPei.

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

    How This Was Tested

    This was tested on QEMU Q35 platform and booted to UEFI shell.

    Integration Instructions

    N/A




  • Remove custom definition of MmDispatch and their usages @kuqin12 (#579)
    Change Details
      ## Description

    MmDispatch.h is supposed to be a temporary workaround. This change removes it and switch to return EFI_STATUS directly, which follows the implementation of StandaloneMmIplPei from edk2.

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

    How This Was Tested

    This was tested on QEMU Q35 and booted to UEFI shell.

    Integration Instructions

    N/A.




⚠️ Breaking Changes

  • [Rebase \& FF] SeaPkg: Decouple from MU\_TIANO\_PLUS and MU\_PLUS usage @kuqin12 (#593)
    Change Details
      ## Description

    Ever since we moved away from the TPM dependent implementation, the SecurityPkg dependency is no longer needed.

    In addition, the UefiTestingPkg is not needed from SeaPkg. So such package dependency should be cleaned up as well.

    This change removes all the references to create a cleaner package layout.

    For details on how to complete these options and their meaning refer to CONTRIBUTING.md.

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

    How This Was Tested

    This was tested on hardware physical platform and QEMU Q35.

    Integration Instructions

    Replace the HashLib|SeaPkg/Library/HashLibTpm2Raw/HashLibTpm2Raw.inf with HashLibRaw|SeaPkg/Library/HashLibRaw/HashLibRaw.inf from platform DSC file.

      </blockquote>
      <hr>
    </details>
    

🚀 Features & ✨ Enhancements

  • Skip AP validation if the registers matches BSP @kuqin12 (#588)
    Change Details
      ## Description

    This change intends to resolve a performance issue where the current flow runs validation on all cores.

    The change moves the validation to BSP routine only and APs will go over the register validation only and verify if the supervisor base addresses are consistent across all cores.

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

    How This Was Tested

    This was tested on QEMU Q35 shell based application.

    Integration Instructions

    N/A




🐛 Bug Fixes

  • MmSupervisorPkg: DxeMmSupervisorVersionPublicationLib: Fix buffer size @kuqin12 (#592)
    Change Details
      ## Description

    The current implementation did not populate the message length properly. With the hardened MMI entrypoint, this is caught by the supervisor core and caused some asserts.

    This change fixed the size calculation for supervisor version querying.

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

    How This Was Tested

    This was tested on physical hardware and no longer break the boot process.

    Integration Instructions

    N/A




  • Fixing failing unit test for not populating correct `MessageLength` @kuqin12 (#580)
    Change Details
      ## Description

    This change fixes a bug in the unit test where the MessageLength for the corresponding MMI request is not being properly populated, causing the test case to fail on the pipeline.

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

    How This Was Tested

    The test passed on QEMU Q35 platform.

    Integration Instructions

    N/A




🔐 Security Impacting

  • Skip AP validation if the registers matches BSP @kuqin12 (#588)
    Change Details
      ## Description

    This change intends to resolve a performance issue where the current flow runs validation on all cores.

    The change moves the validation to BSP routine only and APs will go over the register validation only and verify if the supervisor base addresses are consistent across all cores.

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

    How This Was Tested

    This was tested on QEMU Q35 shell based application.

    Integration Instructions

    N/A




  • Add a dummy `AsmInvd` function to suffice the usage from secondary libraries @kuqin12 (#595)
    Change Details
      ## Description

    The CacheMaintenaceLib is implementing its own functions based on a few BaseLib primitives.

    Thus for any supervised standalone MM module that links cache maintenance library, the build could break.

    This change bring back the function symbol but do not provide any implementation to resolve the build break but does not change the functionality of the original code.

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

    How This Was Tested

    This was tested on physical hardware platform and fixed the build.

    Integration Instructions

    N/A




📖 Documentation Updates

  • [Rebase \& FF] SeaPkg: Decouple from MU\_TIANO\_PLUS and MU\_PLUS usage @kuqin12 (#593)
    Change Details
      ## Description

    Ever since we moved away from the TPM dependent implementation, the SecurityPkg dependency is no longer needed.

    In addition, the UefiTestingPkg is not needed from SeaPkg. So such package dependency should be cleaned up as well.

    This change removes all the references to create a cleaner package layout.

    For details on how to complete these options and their meaning refer to CONTRIBUTING.md.

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

    How This Was Tested

    This was tested on hardware physical platform and QEMU Q35.

    Integration Instructions

    Replace the HashLib|SeaPkg/Library/HashLibTpm2Raw/HashLibTpm2Raw.inf with HashLibRaw|SeaPkg/Library/HashLibRaw/HashLibRaw.inf from platform DSC file.

      </blockquote>
      <hr>
    </details>
    

Full Changelog: v20.0.0...v21.0.0