Skip to content

Conversation

@kuqin12
Copy link
Contributor

@kuqin12 kuqin12 commented Dec 1, 2025

Description

Current implementation of the StandaloneMmIplPei has a few design differences compared to MM supervisor.

This will introduce more maintenance burden as we move to the next phase of MM supervisor.

This change is made to try to converge the 2 designs, at least from the perspective of IPL, in order to use the IPL as is and still conform to the MM supervisor modelity.

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 is tested on QEMU Q35 and booted to UEFI shell.

Integration Instructions

N/A

// //
// // Build ACPI variable HOB
// //
// HobLength = GetRemainingHobSize (*FoundationHobSize, UsedSize);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be guarded by the s3 PCD.

HobLength = GetRemainingHobSize (*FoundationHobSize, UsedSize);
MmIplBuildResourceHobForUnblockedRegion (FoundationHobList + UsedSize, &HobLength);
// MmIplBuildResourceHobForUnblockedRegion (FoundationHobList + UsedSize, &HobLength);
MmIplCopyGuidHob (FoundationHobList + UsedSize, &HobLength, &gMmUnblockRegionHobGuid, TRUE);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will rename the GUID...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A different PR is created here: microsoft/mu_feature_mm_supv#583

Size = sizeof (CommunicateHeader);
Status = Communicate (NULL, &CommunicateHeader, &Size);
ASSERT_EFI_ERROR (Status);
// ASSERT_EFI_ERROR (Status);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure what to do with this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is PRed as is. Will see if others have different opinions.

The current module checks the value of gEfiAcpiVariableGuid hobs and
could assert if there is no such hob available.

However, these hobs are only available if a platform elects to support
S3. Thus this change moves the hob copy logic behind a PCD check to
prevent unnecessary asserts.

Signed-off-by: Kun Qin <[email protected]>
The current module checks the return status of MmIplDispatchMmDrivers.
Any failure would cause the system to assert.

However, this should not be deemed as fatal since the result could be
entirely implementation defined on the Standalone MM core side.

This change loosens the check and not to do asserts on dispatcher
requests.

Signed-off-by: Kun Qin <[email protected]>
@kuqin12 kuqin12 changed the title [test] Dxe mm merge [Rebase & FF] Making StandaloneMmIplPei usable Dec 9, 2025
@kuqin12 kuqin12 changed the title [Rebase & FF] Making StandaloneMmIplPei usable [Rebase & FF] Making StandaloneMmIplPei compatible with supervisor Dec 9, 2025
@kuqin12 kuqin12 marked this pull request as ready for review December 9, 2025 01:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant