/** @file System Infor Var Hearder File @copyright Copyright 2017 - 2021 Intel Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef __SYSTEM_INFO_VAR_INCLUDES__ #define __SYSTEM_INFO_VAR_INCLUDES__ #include #include #include #define SYS_INFO_NVRAM_VAR_NAME L"InfoVarNvramData" #pragma pack (push,1) typedef enum BootMode { NormalBoot = 0, // Normal path through RC with full init, mem detection, init, training, etc. // Some of these MRC specific init routines can be skipped based on MRC input params // in addition to the sub-boot type (WarmBoot, WarmBootFast, etc). S3Resume = 1 // S3 flow through RC. Should do the bare minimum required for S3 // init and be optimized for speed. } BootMode; // // This is used to determine what type of die is connected to a UPI link // typedef enum { UpiConnectionTypeCpu, UpiConnectionTypePcieGen4, UpiConnectionTypeFpga, UpiConnectionTypeMax } UPI_CONNECTION_TYPE; typedef struct { UINT16 stackPresentBitmap[MAX_SOCKET]; ///< bitmap of present stacks per socket UINT8 StackBus[MAX_SOCKET][MAX_LOGIC_IIO_STACK];///< Bus of each stack UINT32 StackMmiol[MAX_SOCKET][MAX_IIO_STACK]; ///< mmiol of each IIO stack, if it works as CXL, the mmiol base is RCRBBAR UINT8 SocketFirstBus[MAX_SOCKET]; UINT8 Socket10nmUboxBus0[MAX_SOCKET]; //10nm CPU use only UINT8 SocketLastBus[MAX_SOCKET]; UINT8 segmentSocket[MAX_SOCKET]; UINT8 KtiPortCnt; UINT32 socketPresentBitMap; UINT32 SecondaryDieBitMap; UINT32 FpgaPresentBitMap; UINT32 mmCfgBase; UINT32 mmCfgBaseH[MAX_SOCKET]; UINT32 mmCfgBaseL[MAX_SOCKET]; UINT8 DdrMaxCh; UINT8 DdrMaxImc; UINT8 DdrNumChPerMc; UINT8 imcEnabled[MAX_SOCKET][MAX_IMC]; UINT8 mcId[MAX_SOCKET][MAX_CH]; MRC_MST MemSsType[MAX_SOCKET]; UINT32 MmioBar[MAX_SOCKET][TYPE_MAX_MMIO_BAR]; UINT8 HbmMaxCh; UINT8 HbmMaxIoInst; UINT8 HbmNumChPerMc; UINT8 HbmNumChPerIo; UINT32 LastCsrAddress[2]; UINT32 LastCsrMmioAddr; UINT8 CsrCachingEnable; UINT32 LastCsrMcAddress[2]; UINT32 LastCsrMcMmioPhyAddr; UINT8 CsrPciBarCachingEnable; UINT32 LastCsrPciBarAddr[2]; UINT64 LastCsrPciBarPhyAddr; UINT32 LastSBPortId[MAX_SOCKET]; UPI_CONNECTION_TYPE UpiConnectionType[MAX_SOCKET]; BOOLEAN PostedCsrAccessAllowed; // SW is allowed to use posted CSR writes method when TRUE BOOLEAN PostedWritesEnabled; // All CSR writes use posted method when TRUE, non-posted when FALSE BOOLEAN DataPopulated; // CPU_CSR_ACCESS_VAR is unavailable when FALSE BOOLEAN HbmSku; UINT8 SocketConfig; UINT8 HcxType[MAX_SOCKET]; } CPU_CSR_ACCESS_VAR; typedef struct { UINT32 MeRequestedSizeNv; UINT32 MeRequestedAlignmentNv; UINT32 IeRequestedSizeNv; UINT32 IeRequestedAlignmentNv; UINT8 SbspSocketIdNv; } SYS_INFO_VAR_NVRAM; #pragma pack (pop) #endif //#ifndef __SYSTEM_INFO_VAR_INCLUDES__