PeiPolicyInitPreMem.c 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /** @file
  2. This file is SampleCode for Intel PEI Platform Policy initialization.
  3. Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #include "PeiPolicyInit.h"
  7. /**
  8. Initialize Intel PEI Platform Policy
  9. @param[in] FirmwareConfiguration It uses to skip specific policy init that depends
  10. on the 'FirmwareConfiguration' varaible.
  11. **/
  12. VOID
  13. EFIAPI
  14. PeiPolicyInitPreMem (
  15. IN UINT8 FirmwareConfiguration
  16. )
  17. {
  18. EFI_STATUS Status;
  19. SI_PREMEM_POLICY_PPI *SiPreMemPolicyPpi;
  20. DEBUG ((DEBUG_INFO, "Silicon PEI Policy Initialization Start in Pre-Memory...\n"));
  21. //
  22. // Call SiCreatePreMemConfigBlocks to initialize platform policy structure
  23. // and get all intel default policy settings.
  24. //
  25. Status = SiCreatePreMemConfigBlocks (&SiPreMemPolicyPpi);
  26. ASSERT_EFI_ERROR (Status);
  27. //
  28. // Update policy by board configuration
  29. //
  30. UpdatePeiPchPolicyBoardConfigPreMem (SiPreMemPolicyPpi);
  31. UpdatePeiMePolicyBoardConfigPreMem (SiPreMemPolicyPpi);
  32. UpdatePeiSaPolicyBoardConfigPreMem (SiPreMemPolicyPpi);
  33. UpdatePeiCpuPolicyBoardConfigPreMem (SiPreMemPolicyPpi);
  34. //
  35. // Update and override all platform related and customized settings below.
  36. //
  37. UpdatePeiPchPolicyPreMem (SiPreMemPolicyPpi);
  38. UpdatePeiMePolicyPreMem (SiPreMemPolicyPpi);
  39. UpdatePeiSaPolicyPreMem (SiPreMemPolicyPpi);
  40. UpdatePeiCpuPolicyPreMem (SiPreMemPolicyPpi);
  41. //
  42. // Install SiPreMemPolicyPpi.
  43. // While installed, RC assumes the Policy is ready and finalized. So please
  44. // update and override any setting before calling this function.
  45. //
  46. Status = SiPreMemInstallPolicyPpi (SiPreMemPolicyPpi);
  47. ASSERT_EFI_ERROR (Status);
  48. DEBUG ((DEBUG_INFO, "Silicon PEI Policy Initialization Done in Pre-Memory\n"));
  49. }