diff --git a/StandaloneMmPkg/Drivers/StandaloneMmIplPei/MmFoundationHob.c b/StandaloneMmPkg/Drivers/StandaloneMmIplPei/MmFoundationHob.c index 9a904f60ab9..b53029183d0 100644 --- a/StandaloneMmPkg/Drivers/StandaloneMmIplPei/MmFoundationHob.c +++ b/StandaloneMmPkg/Drivers/StandaloneMmIplPei/MmFoundationHob.c @@ -1024,11 +1024,14 @@ CreateMmFoundationHobList ( UsedSize += HobLength; // + // MU_CHANGE: only check on this variable when S3 needs it. // Build ACPI variable HOB // - HobLength = GetRemainingHobSize (*FoundationHobSize, UsedSize); - MmIplCopyGuidHob (FoundationHobList + UsedSize, &HobLength, &gEfiAcpiVariableGuid, FALSE); - UsedSize += HobLength; + if (PcdGetBool (PcdAcpiS3Enable)) { + HobLength = GetRemainingHobSize (*FoundationHobSize, UsedSize); + MmIplCopyGuidHob (FoundationHobList + UsedSize, &HobLength, &gEfiAcpiVariableGuid, FALSE); + UsedSize += HobLength; + } if (FeaturePcdGet (PcdCpuSmmProfileEnable)) { // diff --git a/StandaloneMmPkg/Drivers/StandaloneMmIplPei/StandaloneMmIplPei.c b/StandaloneMmPkg/Drivers/StandaloneMmIplPei/StandaloneMmIplPei.c index 496cf21396b..02633776333 100644 --- a/StandaloneMmPkg/Drivers/StandaloneMmIplPei/StandaloneMmIplPei.c +++ b/StandaloneMmPkg/Drivers/StandaloneMmIplPei/StandaloneMmIplPei.c @@ -914,7 +914,8 @@ MmIplDispatchMmDrivers ( // Size = sizeof (CommunicateHeader); Status = Communicate (NULL, &CommunicateHeader, &Size); - ASSERT_EFI_ERROR (Status); + // MU_CHANGE: Do not double assert on dispatch request as it will be handled by the caller. + // ASSERT_EFI_ERROR (Status); return Status; } @@ -1028,7 +1029,12 @@ StandaloneMmIplPeiEntry ( // Dispatch StandaloneMm drivers in MM // Status = MmIplDispatchMmDrivers (); - ASSERT_EFI_ERROR (Status); + // MU_CHANGE: Do not assert on dispatch request returned with not_ready as we may need to do it through other channels. + if (Status == EFI_NOT_READY) { + DEBUG ((DEBUG_WARN, "%a Failed with not ready, may need further intention\n", __func__)); + } else { + ASSERT_EFI_ERROR (Status); + } return EFI_SUCCESS; }