PchPolicyInitDxe.c 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /** @file
  2. This file is SampleCode for PCH DXE Policy initialization.
  3. Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #include "PchPolicyInitDxe.h"
  7. //
  8. // Function implementations
  9. //
  10. /**
  11. Initialize PCH DXE Policy
  12. @param[in] ImageHandle Image handle of this driver.
  13. @retval EFI_SUCCESS Initialization complete.
  14. @retval EFI_OUT_OF_RESOURCES Do not have enough resources to initialize the driver.
  15. @retval EFI_DEVICE_ERROR Device error, driver exits abnormally.
  16. **/
  17. EFI_STATUS
  18. EFIAPI
  19. PchPolicyInitDxe (
  20. IN EFI_HANDLE ImageHandle
  21. )
  22. {
  23. EFI_STATUS Status;
  24. PCH_POLICY_PROTOCOL *PchPolicy;
  25. //
  26. // Call CreatePchDxeConfigBlocks to create & initialize platform policy structure
  27. // and get all Intel default policy settings.
  28. //
  29. Status = CreatePchDxeConfigBlocks (&PchPolicy);
  30. DEBUG((DEBUG_INFO, "PchPolicy->TableHeader.NumberOfBlocks = 0x%x\n", PchPolicy->TableHeader.NumberOfBlocks));
  31. ASSERT_EFI_ERROR (Status);
  32. if (mFirmwareConfiguration != FwConfigDefault) {
  33. UpdateDxePchPolicy (PchPolicy);
  34. }
  35. //
  36. // Install PchInstallPolicyProtocol.
  37. // While installed, RC assumes the Policy is ready and finalized. So please
  38. // update and override any setting before calling this function.
  39. //
  40. Status = PchInstallPolicyProtocol (ImageHandle, PchPolicy);
  41. ASSERT_EFI_ERROR (Status);
  42. return Status;
  43. }