PeiMePolicyUpdate.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /** @file
  2. Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
  3. SPDX-License-Identifier: BSD-2-Clause-Patent
  4. **/
  5. #include "PeiMePolicyUpdate.h"
  6. #include <ConfigBlock/MePeiConfig.h>
  7. #include <Library/PeiServicesLib.h>
  8. #include <Library/DebugLib.h>
  9. #include <Library/ConfigBlockLib.h>
  10. #include <Library/PmcLib.h>
  11. /**
  12. Update the ME Policy Library
  13. @param[in, out] SiPolicyPpi The pointer to SiPolicyPpi
  14. @retval EFI_SUCCESS Update complete.
  15. **/
  16. EFI_STATUS
  17. UpdatePeiMePolicy (
  18. IN OUT SI_POLICY_PPI *SiPolicyPpi
  19. )
  20. {
  21. EFI_STATUS Status;
  22. ME_PEI_CONFIG *MePeiConfig;
  23. DEBUG ((DEBUG_INFO, "UpdatePeiMePolicy\n"));
  24. Status = EFI_SUCCESS;
  25. Status = GetConfigBlock ((VOID *) SiPolicyPpi, &gMePeiConfigGuid, (VOID *) &MePeiConfig);
  26. ASSERT_EFI_ERROR (Status);
  27. if (EFI_ERROR (Status)) {
  28. return Status;
  29. }
  30. if (!PmcIsRtcBatteryGood ()) {
  31. //
  32. // For non coin battery design, this can be skipped.
  33. //
  34. MePeiConfig->MeUnconfigOnRtcClear = 2;
  35. }
  36. return Status;
  37. }