OemMiscLibD05.c 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. /** @file
  2. *
  3. * Copyright (c) 2016 - 2018, Hisilicon Limited. All rights reserved.
  4. * Copyright (c) 2016 - 2018, Linaro Limited. All rights reserved.
  5. *
  6. * SPDX-License-Identifier: BSD-2-Clause-Patent
  7. *
  8. **/
  9. #include <PlatformArch.h>
  10. #include <Uefi.h>
  11. #include <Library/BaseMemoryLib.h>
  12. #include <Library/DebugLib.h>
  13. #include <Library/IoLib.h>
  14. #include <Library/LpcLib.h>
  15. #include <Library/OemAddressMapLib.h>
  16. #include <Library/OemMiscLib.h>
  17. #include <Library/PcdLib.h>
  18. #include <Library/PlatformPciLib.h>
  19. #include <Library/PlatformSysCtrlLib.h>
  20. #include <Library/SerialPortLib.h>
  21. #include <Library/TimerLib.h>
  22. #define OEM_SINGLE_SOCKET 1
  23. #define OEM_DUAL_SOCKET 2
  24. REPORT_PCIEDIDVID2BMC PcieDeviceToReport[PCIEDEVICE_REPORT_MAX] = {
  25. {67,0,0,0},
  26. {225,0,0,3},
  27. {0xFFFF,0xFFFF,0xFFFF,0xFFFF},
  28. {0xFFFF,0xFFFF,0xFFFF,0xFFFF}
  29. };
  30. REPORT_PCIEDIDVID2BMC PcieDeviceToReport_2P[PCIEDEVICE_REPORT_MAX] = {
  31. {0x79,0,0,0},
  32. {0xFF,0xFF,0xFF,1},
  33. {0xC1,0,0,2},
  34. {0xF9,0,0,3},
  35. {0xFF,0xFF,0xFF,4},
  36. {0x11,0,0,5},
  37. {0x31,0,0,6},
  38. {0x21,0,0,7}
  39. };
  40. VOID
  41. GetPciDidVid (
  42. REPORT_PCIEDIDVID2BMC *Report
  43. )
  44. {
  45. if (OemIsMpBoot ()) {
  46. (VOID)CopyMem ((VOID *)Report, (VOID *)PcieDeviceToReport_2P, sizeof (PcieDeviceToReport_2P));
  47. } else {
  48. (VOID)CopyMem ((VOID *)Report, (VOID *)PcieDeviceToReport, sizeof (PcieDeviceToReport));
  49. }
  50. }
  51. BOOLEAN OemIsSocketPresent (UINTN Socket)
  52. {
  53. if (PcdGet32(PcdSocketMask) & (1 << Socket)) {
  54. return TRUE;
  55. } else {
  56. return FALSE;
  57. }
  58. }
  59. UINTN OemGetSocketNumber (VOID)
  60. {
  61. if(!OemIsMpBoot()) {
  62. return OEM_SINGLE_SOCKET;
  63. }
  64. return OEM_DUAL_SOCKET;
  65. }
  66. UINTN OemGetDdrChannel (VOID)
  67. {
  68. return 4;
  69. }
  70. UINTN OemGetDimmSlot(UINTN Socket, UINTN Channel)
  71. {
  72. return 2;
  73. }
  74. VOID CoreSelectBoot(VOID)
  75. {
  76. if (!PcdGet64 (PcdTrustedFirmwareEnable)) {
  77. StartUpBSP ();
  78. }
  79. return;
  80. }
  81. BOOLEAN OemIsMpBoot()
  82. {
  83. return PcdGet32(PcdIsMPBoot);
  84. }
  85. VOID OemLpcInit(VOID)
  86. {
  87. LpcInit();
  88. return;
  89. }
  90. UINT32 OemIsWarmBoot(VOID)
  91. {
  92. return 0;
  93. }
  94. VOID OemBiosSwitch(UINT32 Master)
  95. {
  96. (VOID)Master;
  97. return;
  98. }
  99. BOOLEAN OemIsNeedDisableExpanderBuffer(VOID)
  100. {
  101. return TRUE;
  102. }