123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- /** @file
- *
- * Copyright (c) 2015, Hisilicon Limited. All rights reserved.
- * Copyright (c) 2015, Linaro Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-2-Clause-Patent
- *
- **/
- #include <Uefi.h>
- #include <Library/BaseMemoryLib.h>
- #include <Library/DebugLib.h>
- #include <Library/IoLib.h>
- #include <Library/TimerLib.h>
- #include <Library/SerialPortLib.h>
- #include <Library/OemMiscLib.h>
- #include <PlatformArch.h>
- #include <Library/PlatformSysCtrlLib.h>
- #include <Library/OemAddressMapLib.h>
- #include <Library/LpcLib.h>
- REPORT_PCIEDIDVID2BMC PcieDeviceToReport[PCIEDEVICE_REPORT_MAX] = {
- {67,0,0,0},
- {225,0,0,3},
- {0xFFFF,0xFFFF,0xFFFF,0xFFFF},
- {0xFFFF,0xFFFF,0xFFFF,0xFFFF}
- };
- REPORT_PCIEDIDVID2BMC PcieDeviceToReport2P[PCIEDEVICE_REPORT_MAX] = {
- {0x79,0,0,0},
- {0xFF,0xFF,0xFF,1},
- {0xC1,0,0,2},
- {0xF9,0,0,3},
- {0xFF,0xFF,0xFF,4},
- {0x11,0,0,5},
- {0x31,0,0,6},
- {0x21,0,0,7}
- };
- VOID
- GetPciDidVid (
- REPORT_PCIEDIDVID2BMC *Report
- )
- {
- if (OemIsMpBoot ()) {
- (VOID)CopyMem (
- (VOID *)Report,
- (VOID *)PcieDeviceToReport2P,
- sizeof (PcieDeviceToReport2P)
- );
- } else {
- (VOID)CopyMem (
- (VOID *)Report,
- (VOID *)PcieDeviceToReport,
- sizeof (PcieDeviceToReport)
- );
- }
- }
- // Right now we only support 1P
- BOOLEAN OemIsSocketPresent (UINTN Socket)
- {
- if (0 == Socket)
- {
- return TRUE;
- }
- if(1 == Socket)
- {
- return TRUE;
- }
- return FALSE;
- }
- UINTN OemGetSocketNumber (VOID)
- {
- if(!OemIsMpBoot())
- {
- return 1;
- }
- return 2;
- }
- UINTN OemGetDdrChannel (VOID)
- {
- return 4;
- }
- UINTN OemGetDimmSlot(UINTN Socket, UINTN Channel)
- {
- return 2;
- }
- // Nothing to do for EVB
- VOID OemPostEndIndicator (VOID)
- {
- DEBUG((EFI_D_ERROR,"M3 release reset CONFIG........."));
- MmioWrite32(0xd0002180, 0x3);
- MmioWrite32(0xd0002194, 0xa4);
- MmioWrite32(0xd0000a54, 0x1);
- MicroSecondDelay(10000);
- MmioWrite32(0xd0002108, 0x1);
- MmioWrite32(0xd0002114, 0x1);
- MmioWrite32(0xd0002120, 0x1);
- MmioWrite32(0xd0003108, 0x1);
- MicroSecondDelay(500000);
- DEBUG((EFI_D_ERROR,"Done\n"));
- }
- VOID CoreSelectBoot(VOID)
- {
- if (!PcdGet64 (PcdTrustedFirmwareEnable))
- {
- StartUpBSP ();
- }
- return;
- }
- BOOLEAN OemIsMpBoot()
- {
- UINT32 Tmp;
- Tmp = MmioRead32(0x602E0050);
- if ( ((Tmp >> 10) & 0xF) == 0x3)
- return TRUE;
- else
- return FALSE;
- }
- VOID OemLpcInit(VOID)
- {
- LpcInit();
- return;
- }
- UINT32 OemIsWarmBoot(VOID)
- {
- return 0;
- }
- VOID OemBiosSwitch(UINT32 Master)
- {
- (VOID)Master;
- return;
- }
- BOOLEAN OemIsNeedDisableExpanderBuffer(VOID)
- {
- return TRUE;
- }
|