| /** @file | |
| * | |
| * Copyright (c) 2015, Hisilicon Limited. All rights reserved. | |
| * Copyright (c) 2015, Linaro Limited. All rights reserved. | |
| * | |
| * This program and the accompanying materials | |
| * are licensed and made available under the terms and conditions of the BSD License | |
| * which accompanies this distribution. The full text of the license may be found at | |
| * http://opensource.org/licenses/bsd-license.php | |
| * | |
| * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| * | |
| **/ | |
| #ifndef _PLATFORM_SYS_CTRL_LIB_H_ | |
| #define _PLATFORM_SYS_CTRL_LIB_H_ | |
| #define PACKAGE_16CORE 0 | |
| #define PACKAGE_32CORE 1 | |
| #define PACKAGE_RESERVED 2 | |
| #define PACKAGE_TYPE_NUM 3 | |
| UINT32 PlatformGetPackageType (VOID); | |
| VOID DisplayCpuInfo (VOID); | |
| UINT32 CheckChipIsEc(VOID); | |
| UINTN PlatformGetPll (UINT32 NodeId, UINTN Pll); | |
| #define DJTAG_READ_INVALID_VALUE 0xFFFFFFFF | |
| #define DJTAG_CHAIN_ID_AA 1 | |
| #define DJTAG_CHAIN_ID_LLC 4 | |
| #define SC_DJTAG_MSTR_EN_OFFSET 0x6800 | |
| #define SC_DJTAG_MSTR_START_EN_OFFSET 0x6804 | |
| #define SC_DJTAG_SEC_ACC_EN_OFFSET 0x6808 | |
| #define SC_DJTAG_DEBUG_MODULE_SEL_OFFSET 0x680C | |
| #define SC_DJTAG_MSTR_WR_OFFSET 0x6810 | |
| #define SC_DJTAG_CHAIN_UNIT_CFG_EN_OFFSET 0x6814 | |
| #define SC_DJTAG_MSTR_ADDR_OFFSET 0x6818 | |
| #define SC_DJTAG_MSTR_DATA_OFFSET 0x681C | |
| #define SC_DJTAG_TMOUT_OFFSET 0x6820 | |
| #define SC_TDRE_OP_ADDR_OFFSET 0x6824 | |
| #define SC_TDRE_WDATA_OFFSET 0x6828 | |
| #define SC_TDRE_REPAIR_EN_OFFSET 0x682C | |
| #define SC_DJTAG_RD_DATA0_OFFSET 0xE800 | |
| #define SC_TDRE_RDATA0_OFFSET 0xE830 | |
| UINTN PlatformGetI2cBase(UINT32 Socket,UINT8 Port); | |
| VOID PlatformAddressMapCleanUp (VOID); | |
| VOID PlatformDisableDdrWindow (VOID); | |
| VOID PlatformEnableArchTimer (VOID); | |
| EFI_STATUS | |
| DawFindFreeWindow (UINTN Socket, UINTN *DawIndex); | |
| VOID DawSetWindow (UINTN Socket, UINTN WindowIndex, UINT32 Value); | |
| VOID DJTAG_TDRE_WRITE(UINT32 Offset, UINT32 Value, UINT32 ChainID, UINT32 NodeId, BOOLEAN Repair); | |
| UINT32 DJTAG_TDRE_READ(UINT32 Offset, UINT32 ChainID, UINT32 NodeId, BOOLEAN Repair); | |
| VOID RemoveRoceReset(VOID); | |
| UINTN PlatformGetDdrChannel (VOID); | |
| VOID ITSCONFIG (VOID); | |
| VOID MN_CONFIG (VOID); | |
| VOID SmmuConfigForOS (VOID); | |
| VOID SmmuConfigForBios (VOID); | |
| VOID StartupAp (VOID); | |
| VOID LlcCleanInvalidate (VOID); | |
| UINTN PlatformGetCpuFreq (UINT8 Socket); | |
| VOID ClearInterruptStatus(VOID); | |
| UINTN PlatformGetCoreCount (VOID); | |
| VOID DAWConfigEn(UINT32 socket); | |
| VOID DResetUsb (); | |
| UINT32 PlatformGetEhciBase (); | |
| UINT32 PlatformGetOhciBase (); | |
| VOID PlatformPllInit(); | |
| // PLL initialization for super IO clusters. | |
| VOID SiclPllInit(UINT32 SclId); | |
| VOID PlatformDeviceDReset(); | |
| VOID PlatformGicdInit(); | |
| VOID PlatformLpcInit(); | |
| // Synchronize architecture timer counter between different super computing | |
| // clusters. | |
| VOID PlatformArchTimerSynchronize(VOID); | |
| VOID PlatformEventBroadcastConfig(VOID); | |
| UINTN GetDjtagRegBase(UINT32 NodeId); | |
| VOID LlcCleanInvalidateAsm(VOID); | |
| VOID PlatformMdioInit(VOID); | |
| #endif |