SiliconPolicyInitLib.c 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /** @file
  2. Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
  3. SPDX-License-Identifier: BSD-2-Clause-Patent
  4. **/
  5. #include <Library/DebugLib.h>
  6. #include <Library/IoLib.h>
  7. #include <Library/PeiServicesLib.h>
  8. #include <Library/MemoryAllocationLib.h>
  9. /**
  10. Performs silicon pre-mem policy initialization.
  11. The meaning of Policy is defined by silicon code.
  12. It could be the raw data, a handle, a PPI, etc.
  13. The returned data must be used as input data for SiliconPolicyDonePreMem(),
  14. and SiliconPolicyUpdateLib.SiliconPolicyUpdatePreMem().
  15. 1) In FSP path, the input Policy should be FspmUpd.
  16. Value of FspmUpd has been initialized by FSP binary default value.
  17. Only a subset of FspmUpd needs to be updated for different silicon sku.
  18. The return data is same FspmUpd.
  19. 2) In non-FSP path, the input policy could be NULL.
  20. The return data is the initialized policy.
  21. @param[in, out] Policy Pointer to policy.
  22. @return the initialized policy.
  23. **/
  24. VOID *
  25. EFIAPI
  26. SiliconPolicyInitPreMem (
  27. IN OUT VOID *Policy OPTIONAL
  28. )
  29. {
  30. return Policy;
  31. }
  32. /*
  33. The silicon pre-mem policy is finalized.
  34. Silicon code can do initialization based upon the policy data.
  35. The input Policy must be returned by SiliconPolicyInitPreMem().
  36. @param[in] Policy Pointer to policy.
  37. @retval RETURN_SUCCESS The policy is handled consumed by silicon code.
  38. */
  39. RETURN_STATUS
  40. EFIAPI
  41. SiliconPolicyDonePreMem (
  42. IN VOID *Policy
  43. )
  44. {
  45. return RETURN_SUCCESS;
  46. }
  47. /**
  48. Performs silicon post-mem policy initialization.
  49. The meaning of Policy is defined by silicon code.
  50. It could be the raw data, a handle, a PPI, etc.
  51. The returned data must be used as input data for SiliconPolicyDonePostMem(),
  52. and SiliconPolicyUpdateLib.SiliconPolicyUpdatePostMem().
  53. 1) In FSP path, the input Policy should be FspsUpd.
  54. Value of FspsUpd has been initialized by FSP binary default value.
  55. Only a subset of FspsUpd needs to be updated for different silicon sku.
  56. The return data is same FspsUpd.
  57. 2) In non-FSP path, the input policy could be NULL.
  58. The return data is the initialized policy.
  59. @param[in, out] Policy Pointer to policy.
  60. @return the initialized policy.
  61. **/
  62. VOID *
  63. EFIAPI
  64. SiliconPolicyInitPostMem (
  65. IN OUT VOID *Policy OPTIONAL
  66. )
  67. {
  68. return Policy;
  69. }
  70. /*
  71. The silicon post-mem policy is finalized.
  72. Silicon code can do initialization based upon the policy data.
  73. The input Policy must be returned by SiliconPolicyInitPostMem().
  74. @param[in] Policy Pointer to policy.
  75. @retval RETURN_SUCCESS The policy is handled consumed by silicon code.
  76. */
  77. RETURN_STATUS
  78. EFIAPI
  79. SiliconPolicyDonePostMem (
  80. IN VOID *Policy
  81. )
  82. {
  83. return RETURN_SUCCESS;
  84. }