PeiCpuPolicyBoardConfig.c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /** @file
  2. Intel PEI CPU Policy update by board configuration
  3. Copyright (c) 2019 - 2020 Intel Corporation. All rights reserved.<BR>
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #include "PeiPolicyBoardConfig.h"
  7. #include <Library/ConfigBlockLib.h>
  8. /**
  9. This function performs PEI CPU Policy update by board configuration.
  10. @param[in, out] SiPolicy The SI Policy PPI instance
  11. @retval EFI_SUCCESS The SI Policy is successfully updated.
  12. @retval Others The SI Policy is not successfully updated.
  13. **/
  14. EFI_STATUS
  15. EFIAPI
  16. UpdatePeiCpuPolicyBoardConfig (
  17. IN OUT SI_POLICY_PPI *SiPolicyPpi
  18. )
  19. {
  20. EFI_STATUS Status;
  21. SA_MISC_PEI_PREMEM_CONFIG *MiscPeiPreMemConfig;
  22. SI_PREMEM_POLICY_PPI *SiPreMemPolicyPpi;
  23. CPU_CONFIG *CpuConfig;
  24. DEBUG((DEBUG_INFO, "Updating CPU Policy by board config in Post Mem\n"));
  25. Status = PeiServicesLocatePpi(
  26. &gSiPreMemPolicyPpiGuid,
  27. 0,
  28. NULL,
  29. (VOID **)&SiPreMemPolicyPpi
  30. );
  31. ASSERT_EFI_ERROR(Status);
  32. Status = GetConfigBlock((VOID *) SiPreMemPolicyPpi, &gSaMiscPeiPreMemConfigGuid, (VOID *) &MiscPeiPreMemConfig);
  33. ASSERT_EFI_ERROR(Status);
  34. Status = GetConfigBlock ((VOID *) SiPolicyPpi, &gCpuConfigGuid, (VOID *) &CpuConfig);
  35. ASSERT_EFI_ERROR (Status);
  36. return Status;
  37. }