Home | History | Annotate | Download | only in Library
      1 /** @file
      2 *
      3 *  Copyright (c) 2015, Hisilicon Limited. All rights reserved.
      4 *  Copyright (c) 2015, Linaro Limited. All rights reserved.
      5 *
      6 *  This program and the accompanying materials
      7 *  are licensed and made available under the terms and conditions of the BSD License
      8 *  which accompanies this distribution.  The full text of the license may be found at
      9 *  http://opensource.org/licenses/bsd-license.php
     10 *
     11 *  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     12 *  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     13 *
     14 **/
     15 
     16 #ifndef _PLATFORM_SYS_CTRL_LIB_H_
     17 #define _PLATFORM_SYS_CTRL_LIB_H_
     18 
     19 #define PACKAGE_16CORE      0
     20 #define PACKAGE_32CORE      1
     21 #define PACKAGE_RESERVED    2
     22 #define PACKAGE_TYPE_NUM    3
     23 
     24 UINT32 PlatformGetPackageType (VOID);
     25 
     26 VOID DisplayCpuInfo (VOID);
     27 UINT32 CheckChipIsEc(VOID);
     28 
     29 UINTN PlatformGetPll (UINT32 NodeId, UINTN Pll);
     30 
     31 #define DJTAG_READ_INVALID_VALUE 0xFFFFFFFF
     32 #define DJTAG_CHAIN_ID_AA        1
     33 #define DJTAG_CHAIN_ID_LLC       4
     34 
     35 
     36 #define SC_DJTAG_MSTR_EN_OFFSET             0x6800
     37 #define SC_DJTAG_MSTR_START_EN_OFFSET       0x6804
     38 #define SC_DJTAG_SEC_ACC_EN_OFFSET          0x6808
     39 #define SC_DJTAG_DEBUG_MODULE_SEL_OFFSET    0x680C
     40 #define SC_DJTAG_MSTR_WR_OFFSET             0x6810
     41 #define SC_DJTAG_CHAIN_UNIT_CFG_EN_OFFSET   0x6814
     42 #define SC_DJTAG_MSTR_ADDR_OFFSET           0x6818
     43 #define SC_DJTAG_MSTR_DATA_OFFSET           0x681C
     44 #define SC_DJTAG_TMOUT_OFFSET               0x6820
     45 #define SC_TDRE_OP_ADDR_OFFSET              0x6824
     46 #define SC_TDRE_WDATA_OFFSET                0x6828
     47 #define SC_TDRE_REPAIR_EN_OFFSET            0x682C
     48 #define SC_DJTAG_RD_DATA0_OFFSET            0xE800
     49 #define SC_TDRE_RDATA0_OFFSET               0xE830
     50 
     51 
     52 UINTN PlatformGetI2cBase(UINT32 Socket,UINT8 Port);
     53 
     54 VOID PlatformAddressMapCleanUp (VOID);
     55 VOID PlatformDisableDdrWindow (VOID);
     56 
     57 VOID PlatformEnableArchTimer (VOID);
     58 
     59 EFI_STATUS
     60 DawFindFreeWindow (UINTN Socket, UINTN *DawIndex);
     61 
     62 VOID DawSetWindow (UINTN Socket, UINTN WindowIndex, UINT32 Value);
     63 
     64 VOID DJTAG_TDRE_WRITE(UINT32 Offset, UINT32 Value, UINT32 ChainID, UINT32 NodeId, BOOLEAN Repair);
     65 
     66 UINT32 DJTAG_TDRE_READ(UINT32 Offset, UINT32 ChainID, UINT32 NodeId, BOOLEAN Repair);
     67 
     68 VOID RemoveRoceReset(VOID);
     69 
     70 UINTN PlatformGetDdrChannel (VOID);
     71 
     72 VOID ITSCONFIG (VOID);
     73 
     74 VOID MN_CONFIG (VOID);
     75 
     76 VOID SmmuConfigForOS (VOID);
     77 VOID SmmuConfigForBios (VOID);
     78 
     79 VOID StartupAp (VOID);
     80 
     81 VOID LlcCleanInvalidate (VOID);
     82 
     83 UINTN PlatformGetCpuFreq (UINT8 Socket);
     84 VOID ClearInterruptStatus(VOID);
     85 
     86 UINTN PlatformGetCoreCount (VOID);
     87 VOID DAWConfigEn(UINT32 socket);
     88 
     89 VOID DResetUsb ();
     90 UINT32 PlatformGetEhciBase ();
     91 UINT32 PlatformGetOhciBase ();
     92 VOID PlatformPllInit();
     93 // PLL initialization for super IO clusters.
     94 VOID SiclPllInit(UINT32 SclId);
     95 VOID PlatformDeviceDReset();
     96 VOID PlatformGicdInit();
     97 VOID PlatformLpcInit();
     98 // Synchronize architecture timer counter between different super computing
     99 // clusters.
    100 VOID PlatformArchTimerSynchronize(VOID);
    101 VOID PlatformEventBroadcastConfig(VOID);
    102 UINTN GetDjtagRegBase(UINT32 NodeId);
    103 VOID LlcCleanInvalidateAsm(VOID);
    104 VOID PlatformMdioInit(VOID);
    105 
    106 #endif
    107