/** @file * * Copyright (c) 2015, Hisilicon Limited. All rights reserved. * Copyright (c) 2015, Linaro Limited. All rights reserved. * * SPDX-License-Identifier: BSD-2-Clause-Patent * **/ #ifndef _OEM_MISC_LIB_H_ #define _OEM_MISC_LIB_H_ #include #include #include #define HCCS_PLL_VALUE_2600 0x52240681 #define HCCS_PLL_VALUE_2800 0x52240701 #define HCCS_PLL_VALUE_3000 0x52240781 typedef enum { EmHilink0Hccs1X8 = 0, EmHilink0Pcie1X8 = 2, EmHilink0Pcie1X4Pcie2X4 = 3, EmHilink0Sas2X8 = 4, EmHilink0Hccs1X8Width16, EmHilink0Hccs1X8Width32, EmHilink0Hccs1X8Speed5G, } HILINK0_MODE_TYPE; typedef enum { EmHilink1Sas2X1 = 0, EmHilink1Hccs0X8 = 1, EmHilink1Pcie0X8 = 2, EmHilink1Hccs0X8Width16, EmHilink1Hccs0X8Width32, EmHilink1Hccs0X8Speed5G, } HILINK1_MODE_TYPE; typedef enum { EmHilink2Pcie2X8 = 0, EmHilink2Hccs2X8 = 1, EmHilink2Sas0X8 = 2, EmHilink2Hccs2X8Width16, EmHilink2Hccs2X8Width32, EmHilink2Hccs2X8Speed5G, } HILINK2_MODE_TYPE; typedef enum { EmHilink5Pcie3X4 = 0, EmHilink5Pcie2X2Pcie3X2 = 1, EmHilink5Sas1X4 = 2, } HILINK5_MODE_TYPE; typedef struct { HILINK0_MODE_TYPE Hilink0Mode; HILINK1_MODE_TYPE Hilink1Mode; HILINK2_MODE_TYPE Hilink2Mode; UINT32 Hilink3Mode; UINT32 Hilink4Mode; HILINK5_MODE_TYPE Hilink5Mode; UINT32 Hilink6Mode; UINT32 UseSsc; } SERDES_PARAM; #define SERDES_INVALID_MACRO_ID 0xFFFFFFFF #define SERDES_INVALID_LANE_NUM 0xFFFFFFFF #define SERDES_INVALID_RATE_MODE 0xFFFFFFFF typedef struct { UINT32 MacroId; UINT32 DsNum; UINT32 DsCfg; } SERDES_POLARITY_INVERT; #define PCIEDEVICE_REPORT_MAX 8 #define MAX_PROCESSOR_SOCKETS MAX_SOCKET #define MAX_MEMORY_CHANNELS MAX_CHANNEL #define MAX_DIMM_PER_CHANNEL MAX_DIMM typedef struct _REPORT_PCIEDIDVID2BMC{ UINTN Bus; UINTN Device; UINTN Function; UINTN Slot; }REPORT_PCIEDIDVID2BMC; extern REPORT_PCIEDIDVID2BMC PcieDeviceToReport[PCIEDEVICE_REPORT_MAX]; extern VOID GetPciDidVid (REPORT_PCIEDIDVID2BMC *Report); BOOLEAN OemIsSocketPresent (UINTN Socket); VOID CoreSelectBoot(VOID); VOID OemPcieResetAndOffReset(void); extern I2C_DEVICE gRtcDevice; UINTN OemGetSocketNumber(VOID); UINTN OemGetDdrChannel (VOID); UINTN OemGetDimmSlot(UINTN Socket, UINTN Channel); BOOLEAN OemIsMpBoot(); UINT32 OemIsWarmBoot(); VOID OemBiosSwitch(UINT32 Master); BOOLEAN OemIsNeedDisableExpanderBuffer(VOID); extern EFI_STRING_ID gDimmToDevLocator[MAX_SOCKET][MAX_CHANNEL][MAX_DIMM]; EFI_HII_HANDLE EFIAPI OemGetPackages (); UINTN OemGetCpuFreq (UINT8 Socket); UINTN OemGetHccsFreq ( VOID ); EFI_STATUS OemGetSerdesParam ( SERDES_PARAM *ParamA, SERDES_PARAM *ParamB, UINT32 SocketId ); #endif