diff options
Diffstat (limited to 'Silicon/Intel/PurleySktPkg/Include/Guid/SocketMpLinkVariable.h')
-rw-r--r-- | Silicon/Intel/PurleySktPkg/Include/Guid/SocketMpLinkVariable.h | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/Silicon/Intel/PurleySktPkg/Include/Guid/SocketMpLinkVariable.h b/Silicon/Intel/PurleySktPkg/Include/Guid/SocketMpLinkVariable.h new file mode 100644 index 0000000000..3f51792d8b --- /dev/null +++ b/Silicon/Intel/PurleySktPkg/Include/Guid/SocketMpLinkVariable.h @@ -0,0 +1,117 @@ +/** @file + +Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> +This program and the accompanying materials are licensed and made available under +the terms and conditions of the BSD License that 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 __SOCKET_MP_LINK_CONFIG_DATA_H__ +#define __SOCKET_MP_LINK_CONFIG_DATA_H__ + +#include <UncoreCommonIncludes.h> +#include "SocketConfiguration.h" + +extern EFI_GUID gEfiSocketMpLinkVariableGuid; +#define SOCKET_MP_LINK_CONFIGURATION_NAME L"SocketMpLinkConfig" + +#pragma pack(1) +typedef struct { + // SKXTODO: rename to Kti when removing HSX code + UINT8 QpiSetupNvVariableStartTag; // This must be the very first one of the whole KTI Setup NV variable! + + // + // Used by the PciHostBridge DXE driver, these variables don't need to be exposed through setup options + // The variables are used as a communication vehicle from the PciHostBridge DXE driver to an OEM hook + // which updates the KTI resource map + // + // + // KTI host structure inputs + // + UINT8 BusRatio[MAX_SOCKET]; + UINT8 LegacyVgaSoc; // Socket that claims the legacy VGA range; valid values are 0-3; 0 is default. + UINT8 LegacyVgaStack; // Stack that claims the legacy VGA range; valid values are 0-3; 0 is default. + UINT8 MmioP2pDis; // 1 - Disable; 0 - Enable + UINT8 DebugPrintLevel; // Bit 0 - Fatal, Bit1 - Warning, Bit2 - Info Summary; Bit 3 - Info detailed. 1 - Enable; 0 - Disable + UINT8 DegradePrecedence; // Use DEGRADE_PRECEDENCE definition; TOPOLOGY_PRECEDENCE is default + + // + // Phy/Link Layer Options + // + UINT8 QpiLinkSpeedMode; // Link speed mode selection; 0 - Slow Speed; 1- Full Speed + UINT8 QpiLinkSpeed; // One of SPEED_REC_96GT, SPEED_REC_104GT, MAX_KTI_LINK_SPEED (default), FREQ_PER_LINK + UINT8 KtiLinkL0pEn; // 0 - Disable, 1 - Enable, 2- Auto (default) + UINT8 KtiLinkL1En; // 0 - Disable, 1 - Enable, 2- Auto (default) + UINT8 KtiFailoverEn; // 0 - Disable, 1 - Enable, 2- Auto (default) + UINT8 KtiLbEn; // 0 - Disable(default), 1 - Enable + UINT8 KtiCrcMode; // 0 - 8 bit CRC 1 - 16 bit CRC Mode + UINT8 QpiCpuSktHotPlugEn; // 0 - Disable (default), 1 - Enable + UINT8 KtiCpuSktHotPlugTopology; // 0 - 4S Topology (default), 1 - 8S Topology + UINT8 KtiSkuMismatchCheck; // 0 - No, 1 - Yes (default) + UINT8 KtiLinkVnaOverride; // 0x100 - per link, 0xff - max (default), 0x00 - min + UINT8 SncEn; // 0 - Disable (default), 1 - Enable + UINT8 IoDcMode; // 0 - Disable IODC, 1 - AUTO (default), 2 - IODC_EN_REM_INVITOM_PUSH, 3 - IODC_EN_REM_INVITOM_ALLOCFLOW + // 4 - IODC_EN_REM_INVITOM_ALLOC_NONALLOC, 5 - IODC_EN_REM_INVITOM_AND_WCILF + UINT8 DirectoryModeEn; // 0 - Disable; 1 - Enable (default) + UINT8 XptPrefetchEn; // XPT Prefetch : 1 - Enable (Default); 0 - Disable + UINT8 KtiPrefetchEn; // KTI Prefetch : 1 - Enable (Default); 0 - Disable + UINT8 RdCurForXptPrefetchEn; // RdCur for XPT Prefetch : 0 - Disable, 1 - Enable, 2- Auto (default) + UINT8 IrqThreshold; // KTI IRQ Threshold setting + UINT8 TscSyncEn; // TSC Sync Enable: 0 - Disable; 1 - Enable; 2 - AUTO (default) + UINT8 StaleAtoSOptEn; // HA A to S directory optimization + UINT8 LLCDeadLineAlloc; // Never fill dead lines in LLC: 1 - Enable, 0 - Disable + +#define CSICPUPRTVARIABLE(x) x##KtiPortDisable;x##KtiLinkSpeed;x##KtiLinkVnaOverride; + + UINT8 KtiCpuPerPortStartTag; + CSICPUPRTVARIABLE(UINT8 Cpu0P0) + CSICPUPRTVARIABLE(UINT8 Cpu0P1) + CSICPUPRTVARIABLE(UINT8 Cpu0P2) +#if MAX_SOCKET > 1 + CSICPUPRTVARIABLE(UINT8 Cpu1P0) + CSICPUPRTVARIABLE(UINT8 Cpu1P1) + CSICPUPRTVARIABLE(UINT8 Cpu1P2) +#endif +#if MAX_SOCKET > 2 + CSICPUPRTVARIABLE(UINT8 Cpu2P0) + CSICPUPRTVARIABLE(UINT8 Cpu2P1) + CSICPUPRTVARIABLE(UINT8 Cpu2P2) +#endif +#if MAX_SOCKET > 3 + CSICPUPRTVARIABLE(UINT8 Cpu3P0) + CSICPUPRTVARIABLE(UINT8 Cpu3P1) + CSICPUPRTVARIABLE(UINT8 Cpu3P2) +#endif +#if (MAX_SOCKET > 4) + CSICPUPRTVARIABLE(UINT8 Cpu4P0) + CSICPUPRTVARIABLE(UINT8 Cpu4P1) + CSICPUPRTVARIABLE(UINT8 Cpu4P2) +#endif +#if (MAX_SOCKET > 5) + CSICPUPRTVARIABLE(UINT8 Cpu5P0) + CSICPUPRTVARIABLE(UINT8 Cpu5P1) + CSICPUPRTVARIABLE(UINT8 Cpu5P2) +#endif +#if (MAX_SOCKET > 6) + CSICPUPRTVARIABLE(UINT8 Cpu6P0) + CSICPUPRTVARIABLE(UINT8 Cpu6P1) + CSICPUPRTVARIABLE(UINT8 Cpu6P2) +#endif +#if (MAX_SOCKET > 7) + CSICPUPRTVARIABLE(UINT8 Cpu7P0) + CSICPUPRTVARIABLE(UINT8 Cpu7P1) + CSICPUPRTVARIABLE(UINT8 Cpu7P2) +#endif + + UINT8 QpiSetupNvVariableEndTag; // This must be the last one of the whole KTI Setup NV variable +} SOCKET_MP_LINK_CONFIGURATION; + +#pragma pack() + +#endif // __SOCKET_MP_LINK_CONFIG_DATA_H__ + |