PeiMultiBoardInitPreMemLib.c 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /** @file
  2. Board pre-memory initialization.
  3. Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #include <PiPei.h>
  7. #include <Library/BaseLib.h>
  8. #include <Library/IoLib.h>
  9. #include <Library/BoardInitLib.h>
  10. #include <Library/MultiBoardInitSupportLib.h>
  11. #include <Library/PcdLib.h>
  12. #include <Library/DebugLib.h>
  13. #include <PlatformBoardId.h>
  14. EFI_STATUS
  15. EFIAPI
  16. GalagoPro3BoardDetect (
  17. VOID
  18. );
  19. EFI_STATUS
  20. EFIAPI
  21. GalagoPro3MultiBoardDetect (
  22. VOID
  23. );
  24. EFI_BOOT_MODE
  25. EFIAPI
  26. GalagoPro3BoardBootModeDetect (
  27. VOID
  28. );
  29. EFI_STATUS
  30. EFIAPI
  31. GalagoPro3BoardDebugInit (
  32. VOID
  33. );
  34. EFI_STATUS
  35. EFIAPI
  36. GalagoPro3BoardInitBeforeMemoryInit (
  37. VOID
  38. );
  39. BOARD_DETECT_FUNC mGalagoPro3BoardDetectFunc = {
  40. GalagoPro3MultiBoardDetect
  41. };
  42. BOARD_PRE_MEM_INIT_FUNC mGalagoPro3BoardPreMemInitFunc = {
  43. GalagoPro3BoardDebugInit,
  44. GalagoPro3BoardBootModeDetect,
  45. GalagoPro3BoardInitBeforeMemoryInit,
  46. NULL, // BoardInitAfterMemoryInit
  47. NULL, // BoardInitBeforeTempRamExit
  48. NULL, // BoardInitAfterTempRamExit
  49. };
  50. EFI_STATUS
  51. EFIAPI
  52. GalagoPro3MultiBoardDetect (
  53. VOID
  54. )
  55. {
  56. GalagoPro3BoardDetect ();
  57. if (LibPcdGetSku () == BoardIdGalagoPro3) {
  58. RegisterBoardPreMemInit (&mGalagoPro3BoardPreMemInitFunc);
  59. }
  60. return EFI_SUCCESS;
  61. }
  62. EFI_STATUS
  63. EFIAPI
  64. PeiGalagoPro3MultiBoardInitPreMemLibConstructor (
  65. VOID
  66. )
  67. {
  68. return RegisterBoardDetect (&mGalagoPro3BoardDetectFunc);
  69. }