DxeSiliconPolicyUpdateLib.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /** @file
  2. DXE silicon policy update library.
  3. Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #include <Library/SiliconPolicyUpdateLib.h>
  7. #include <Library/PcdLib.h>
  8. #include <Library/DebugLib.h>
  9. #include "DxeSaPolicyInit.h"
  10. #include "DxeGopPolicyInit.h"
  11. /**
  12. Performs silicon late policy update.
  13. The meaning of Policy is defined by silicon code.
  14. It could be the raw data, a handle, a Protocol, etc.
  15. The input Policy must be returned by SiliconPolicyDoneLate().
  16. In FSP or non-FSP path, the board may use additional way to get
  17. the silicon policy data field based upon the input Policy.
  18. @param[in, out] Policy Pointer to policy.
  19. @return the updated policy.
  20. **/
  21. VOID *
  22. EFIAPI
  23. SiliconPolicyUpdateLate (
  24. IN VOID *Policy
  25. )
  26. {
  27. SA_POLICY_PROTOCOL *SaPolicy;
  28. EFI_STATUS Status;
  29. SaPolicy = Policy;
  30. UpdateDxeSaPolicy (SaPolicy);
  31. if (PcdGetBool(PcdIntelGopEnable)) {
  32. //
  33. // GOP Dxe Policy Initialization
  34. //
  35. Status = GopPolicyInitDxe(gImageHandle);
  36. DEBUG((DEBUG_INFO, "GOP Dxe Policy Initialization done\n"));
  37. ASSERT_EFI_ERROR(Status);
  38. }
  39. return Policy;
  40. }