aboutsummaryrefslogtreecommitdiff
path: root/src/vendorcode/intel/fsp/fsp2_0/cooperlake_sp/FspmUpd.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/vendorcode/intel/fsp/fsp2_0/cooperlake_sp/FspmUpd.h')
-rw-r--r--src/vendorcode/intel/fsp/fsp2_0/cooperlake_sp/FspmUpd.h558
1 files changed, 551 insertions, 7 deletions
diff --git a/src/vendorcode/intel/fsp/fsp2_0/cooperlake_sp/FspmUpd.h b/src/vendorcode/intel/fsp/fsp2_0/cooperlake_sp/FspmUpd.h
index bdd80ece7d..c4c23dfb94 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/cooperlake_sp/FspmUpd.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/cooperlake_sp/FspmUpd.h
@@ -1,22 +1,566 @@
+/** @file
+
+Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this
+ list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ THE POSSIBILITY OF SUCH DAMAGE.
+
+ This file is automatically generated. Please do NOT modify !!!
+
+**/
+
#ifndef __FSPMUPD_H__
#define __FSPMUPD_H__
-#include <FspEas.h>
#include <FspUpd.h>
-#pragma pack (1)
+#define SPEED_REC_96GT 0
+#define SPEED_REC_104GT 1
+#define ADAPTIVE_CTLE 0x3f
+
+#define CPXSP_2S6KTI_EPARAM_TABLE \
+ /* Socket 0 */ \
+ {0x0, (1 << SPEED_REC_96GT) | (1 << SPEED_REC_104GT), (1 << KTI_LINK0), 0x2C33383F, ADAPTIVE_CTLE}, \
+ {0x0, (1 << SPEED_REC_96GT) | (1 << SPEED_REC_104GT), (1 << KTI_LINK1), 0x2B35353F, ADAPTIVE_CTLE}, \
+ {0x0, (1 << SPEED_REC_96GT) | (1 << SPEED_REC_104GT), (1 << KTI_LINK2), 0x2D37353F, ADAPTIVE_CTLE}, \
+ {0x0, (1 << SPEED_REC_96GT) | (1 << SPEED_REC_104GT), (1 << KTI_LINK3), 0x2D37353F, ADAPTIVE_CTLE}, \
+ {0x0, (1 << SPEED_REC_96GT) | (1 << SPEED_REC_104GT), (1 << KTI_LINK4), 0x2D37353F, ADAPTIVE_CTLE}, \
+ {0x0, (1 << SPEED_REC_96GT) | (1 << SPEED_REC_104GT), (1 << KTI_LINK5), 0x2C35363F, ADAPTIVE_CTLE}, \
+ /* Socket 1 */ \
+ {0x1, (1 << SPEED_REC_96GT) | (1 << SPEED_REC_104GT), (1 << KTI_LINK0), 0x2C33383F, ADAPTIVE_CTLE}, \
+ {0x1, (1 << SPEED_REC_96GT) | (1 << SPEED_REC_104GT), (1 << KTI_LINK1), 0x2B35353F, ADAPTIVE_CTLE}, \
+ {0x1, (1 << SPEED_REC_96GT) | (1 << SPEED_REC_104GT), (1 << KTI_LINK2), 0x2D35373F, ADAPTIVE_CTLE}, \
+ {0x1, (1 << SPEED_REC_96GT) | (1 << SPEED_REC_104GT), (1 << KTI_LINK3), 0x2D35373F, ADAPTIVE_CTLE}, \
+ {0x1, (1 << SPEED_REC_96GT) | (1 << SPEED_REC_104GT), (1 << KTI_LINK4), 0x2A2F3A3F, ADAPTIVE_CTLE}, \
+ {0x1, (1 << SPEED_REC_96GT) | (1 << SPEED_REC_104GT), (1 << KTI_LINK5), 0x2C35363F, ADAPTIVE_CTLE}
+
+#define CPXSP_2S6KTI_EPARAM_TABLE_COUNT 12 // NOTE - needs to match number of elements in CPXSP_2S6KTI_EPARAM_TABLE
+
+
+#pragma pack(1)
typedef struct {
-uint8_t padding[208];
-} FSPM_CONFIG;
+ UINT8 SocketID;
+ UINT8 Freq;
+ UINT32 Link;
+ UINT32 AllLanesTXEQ;
+ UINT8 CTLEPEAK;
+} ALL_LANES_EPARAM_LINK_INFO;
+
+typedef enum {
+ KTI_LINK0 = 0x0,
+ KTI_LINK1,
+ KTI_LINK2,
+ KTI_LINK3,
+ KTI_LINK4,
+ KTI_LINK5
+} KTI_LOGIC_LINK;
+#define IIO_BIFURCATE_xxxxxxxx 0xFE
+#define IIO_BIFURCATE_x4x4x4x4 0x0
+#define IIO_BIFURCATE_x4x4xxx8 0x1
+#define IIO_BIFURCATE_xxx8x4x4 0x2
+#define IIO_BIFURCATE_xxx8xxx8 0x3
+#define IIO_BIFURCATE_xxxxxx16 0x4
+#define IIO_BIFURCATE_x2x2x4x8 0x5
+#define IIO_BIFURCATE_x4x2x2x8 0x6
+#define IIO_BIFURCATE_x8x2x2x4 0x7
+#define IIO_BIFURCATE_x8x4x2x2 0x8
+#define IIO_BIFURCATE_x2x2x4x4x4 0x9
+#define IIO_BIFURCATE_x4x2x2x4x4 0xA
+#define IIO_BIFURCATE_x4x4x2x2x4 0xB
+#define IIO_BIFURCATE_x4x4x4x2x2 0xC
+#define IIO_BIFURCATE_x2x2x2x2x8 0xD
+#define IIO_BIFURCATE_x8x2x2x2x2 0xE
+#define IIO_BIFURCATE_x2x2x2x2x4x4 0xF
+#define IIO_BIFURCATE_x2x2x4x2x2x4 0x10
+#define IIO_BIFURCATE_x2x2x4x4x2x2 0x11
+#define IIO_BIFURCATE_x4x2x2x2x2x4 0x12
+#define IIO_BIFURCATE_x4x2x2x4x2x2 0x13
+#define IIO_BIFURCATE_x4x4x2x2x2x2 0x14
+#define IIO_BIFURCATE_x2x2x2x2x2x2x4 0x15
+#define IIO_BIFURCATE_x2x2x2x2x4x2x2 0x16
+#define IIO_BIFURCATE_x2x2x4x2x2x2x2 0x17
+#define IIO_BIFURCATE_x4x2x2x2x2x2x2 0x18
+#define IIO_BIFURCATE_x2x2x2x2x2x2x2x2 0x19
+#define IIO_BIFURCATE_AUTO 0xFF
+
+typedef struct {
+ UINT8 Socket;
+ UINT8 IouNumber;
+ UINT8 Bifurcation;
+} UPD_IIO_BIFURCATION_DATA_ENTRY;
+
+typedef enum {
+ Iio_Socket0 = 0,
+ Iio_Socket1,
+ Iio_Socket2,
+ Iio_Socket3,
+ Iio_Socket4,
+ Iio_Socket5,
+ Iio_Socket6,
+ Iio_Socket7
+} IIO_SOCKETS;
+
+typedef enum {
+ Iio_Iou0 = 0,
+ Iio_Iou1,
+ Iio_Iou2,
+ Iio_Iou3,
+ Iio_Mcp0,
+ Iio_Mcp1,
+ Iio_IouMax
+} IIO_IOUS;
+
+/** FSP-M Configuration
+**/
typedef struct {
+
+/** Offset 0x0040 - Customer Revision
+ The Customer can set this revision string for their own purpose.
+**/
+ UINT8 CustomerRevision[32];
+
+/** Offset 0x0060 - Bus Ratio
+ Indicates the ratio of Bus/MMIOL/IO resource to be allocated for each CPU's IIO
+**/
+ UINT8 BusRatio[8];
+
+/** Offset 0x0068 - D2K Credit Config
+ Set the D2K Credit Config
+ 1:Min, 2:Med, 3:Max
+**/
+ UINT8 D2KCreditConfig;
+
+/** Offset 0x0069 - Snoop Throttle Config
+ Set the Snoop Throttle Config
+ 0:DIS, 1:Min, 2:Med, 3:Max
+**/
+ UINT8 SnoopThrottleConfig;
+
+/** Offset 0x006A - Legacy VGA Soc
+ Socket that claims the legacy VGA range
+**/
+ UINT8 LegacyVgaSoc;
+
+/** Offset 0x006B - Legacy VGA Stack
+ Stack that claims the legacy VGA range
+**/
+ UINT8 LegacyVgaStack;
+
+/** Offset 0x006C - Pcie P2P Performance Mode
+ Determine if to enable PCIe P2P Performance Mode
+ $EN_DIS
+**/
+ UINT8 P2pRelaxedOrdering;
+
+/** Offset 0x006D - Debug Print Level
+ Set Debug Print Level
+ 1:Fatal, 2:Warning, 4:Summary, 8:Detail, 0x0F:All
+**/
+ UINT8 DebugPrintLevel;
+
+/** Offset 0x006E - SNC
+ Enable or Disable SNC
+ $EN_DIS
+**/
+ UINT8 SncEn;
+
+/** Offset 0x006F - UMA Clustering
+ Set UMA Clusters
+ 0:Disable, 2:Two Clusters, 4:Four Clusters
+**/
+ UINT8 UmaClustering;
+
+/** Offset 0x0070 - IODC Mode
+ IODC Setup Option
+ 0:Disable, 1:Auto, 2:Push, 3:AllocFlow 4:NonAlloc, 5:WCILF
+**/
+ UINT8 IoDcMode;
+
+/** Offset 0x0071 - Degrade Precedence
+ Setup Degrade Precedence
+ 0:Topology, 1:Feature
+**/
+ UINT8 DegradePrecedence;
+
+/** Offset 0x0072 - Degrade 4 Socket Preference
+ Setup Degrade 4 Socket Preference
+ 0:Fully Connect, 1:Dual Link Ring
+**/
+ UINT8 Degrade4SPreference;
+
+/** Offset 0x0073 - Directory Mode
+ Enable or Disable Directory Mode
+ $EN_DIS
+**/
+ UINT8 DirectoryModeEn;
+
+/** Offset 0x0074 - XPT Prefetch Enable
+ Enable or Disable XPT Prefetch
+**/
+ UINT8 XptPrefetchEn;
+
+/** Offset 0x0075 - KTI Prefetch Enable
+ Enable or Disable KTI Prefetch
+ $EN_DIS
+**/
+ UINT8 KtiPrefetchEn;
+
+/** Offset 0x0076 - XPT Remote Prefetch Enable
+ Enable or Disable XPT Remote Prefetch Enable
+ $EN_DIS
+**/
+ UINT8 XptRemotePrefetchEn;
+
+/** Offset 0x0077 - KTI FPGA
+ Enable or Disable KTI FPGA
+ $EN_DIS
+**/
+ UINT8 KtiFpgaEnable[8];
+
+/** Offset 0x007F - DDRT QoS Mode
+ Setup DDRT QoS
+**/
+ UINT8 DdrtQosMode;
+
+/** Offset 0x0080 - KTI Link Speed Mode
+ Choose KTI Link Speed Mode
+**/
+ UINT8 KtiLinkSpeedMode;
+
+/** Offset 0x0081 - KTI Link Speed
+ Setup KTI Link Speed
+**/
+ UINT8 KtiLinkSpeed;
+
+/** Offset 0x0082 - KTI Link L0p
+ Enable or Disable KTI Link L0p
+**/
+ UINT8 KtiLinkL0pEn;
+
+/** Offset 0x0083 - KTI Link L1
+ Enable or Disable KTI Link L1
+**/
+ UINT8 KtiLinkL1En;
+
+/** Offset 0x0084 - KTI Failover
+ Enable or Disable KTI Failover
+**/
+ UINT8 KtiFailoverEn;
+
+/** Offset 0x0085 - KTI LB Enable
+ Enable or Disable KTI LB
+ $EN_DIS
+**/
+ UINT8 KtiLbEn;
+
+/** Offset 0x0086 - KTI CRC Mode
+ Select KTI CRC Mode
+ 0:16bit, 1:32bit, 2:Auto
+**/
+ UINT8 KtiCrcMode;
+
+/** Offset 0x0087 - KTI CPU Socket Hotplug
+ Enable or Disable KTI CPU Socket Hotplug
+ $EN_DIS
+**/
+ UINT8 KtiCpuSktHotPlugEn;
+
+/** Offset 0x0088 - KTI CPU Socket HotPlug Topology
+ Select KTI CPU Socket HotPlug Topology
+ 0:4Socket, 1:8Socket
+**/
+ UINT8 KtiCpuSktHotPlugTopology;
+
+/** Offset 0x0089 - KTI SKU Mismatch Check
+ Enable or Disable KTI SKU Mismatch Check
+ $EN_DIS
+**/
+ UINT8 KtiSkuMismatchCheck;
+
+/** Offset 0x008A - IRQ Threshold
+ Select IRQ Threshold
+ 0:Disable, 1:Auto, 2:Low, 3:Medium, 4:High
+**/
+ UINT8 IrqThreshold;
+
+/** Offset 0x008B - IRQ Threshold
+ Enable or Disable
+ 0:Disable, 1:Auto, 2:Low, 3:Medium, 4:High
+**/
+ UINT8 TorThresLoctoremNorm;
+
+/** Offset 0x008C - TOR threshold - Loctorem threshold empty
+ Select TOR threshold - Loctorem threshold empty
+ 0:Disable, 1:Auto, 2:Low, 3:Medium, 4:High
+**/
+ UINT8 TorThresLoctoremEmpty;
+
+/** Offset 0x008D - TSC Sync in Sockets
+ Enable or Disable TSC Sync in Sockets
+**/
+ UINT8 TscSyncEn;
+
+/** Offset 0x008E - HA A to S directory optimization
+ Enable or Disable HA A to S directory optimization
+**/
+ UINT8 StaleAtoSOptEn;
+
+/** Offset 0x008F - LLC Deadline Allocation
+ Enable or Disable LLC Deadline Allocation
+ $EN_DIS
+**/
+ UINT8 LLCDeadLineAlloc;
+
+/** Offset 0x0090 - Split Lock
+ Enable or Disable Split Lock
+**/
+ UINT8 SplitLock;
+
+/** Offset 0x0091 - MMCFG Base Address
+ Setup MMCFG Base Address
+ 0:1G, 1:1.5G, 2:1.75G, 3:2G, 4:2.25G, 5:3G, 6:Auto
+**/
+ UINT8 mmCfgBase;
+
+/** Offset 0x0092 - MMCFG Size
+ Select MMCFG Size
+ 0:64M, 1:128M, 2:256M, 3:512M, 4:1G, 5:2G, 6: Auto
+**/
+ UINT8 mmCfgSize;
+
+/** Offset 0x0093
+**/
+ UINT8 UnusedUpdSpace0;
+
+/** Offset 0x0094 - MMIO Low Base Address
+ Select MMIO Low Base Address
+ 0:, 1:, 2:, 3:, 4:, 5:, 6:
+**/
+ UINT32 mmiolBase;
+
+/** Offset 0x0098 - MMIO Low Size
+ Select MMIO Low Size
+ $EN_DIS
+**/
+ UINT32 mmiolSize;
+
+/** Offset 0x009C - MMIO High Base Address
+ Select MMIO High Base Address
+ 0:, 1:, 2:, 3:, 4:, 5:, 6:
+**/
+ UINT32 mmiohBase;
+
+/** Offset 0x00A0 - High Gap
+ Enable or Disable High Gap
+ $EN_DIS
+**/
+ UINT8 highGap;
+
+/** Offset 0x00A1
+**/
+ UINT8 UnusedUpdSpace1;
+
+/** Offset 0x00A2 - MMIO High Size
+ Select MMIO High Size
+ 0:, 1:, 2:, 3:, 4:, 5:, 6:
+**/
+ UINT16 mmiohSize;
+
+/** Offset 0x00A4 - } TYPE:{Combo
+ Enable or Disable
+ $EN_DIS
+**/
+ UINT8 isocEn;
+
+/** Offset 0x00A5 - DCA
+ Enable or Disable DCA
+ $EN_DIS
+**/
+ UINT8 dcaEn;
+
+/** Offset 0x00A6
+**/
+ UINT8 UnusedUpdSpace2[2];
+
+/** Offset 0x00A8 - } TYPE:{Combo
+ Enable or Disable
+ $EN_DIS
+**/
+ UINT32 BoardTypeBitmask;
+
+/** Offset 0x00AC - } TYPE:{Combo
+ Enable or Disable
+ $EN_DIS
+**/
+ UINT32 AllLanesPtr;
+
+/** Offset 0x00B0 - } TYPE:{Combo
+ Enable or Disable
+ $EN_DIS
+**/
+ UINT32 PerLanePtr;
+
+/** Offset 0x00B4 - } TYPE:{Combo
+ Enable or Disable
+ $EN_DIS
+**/
+ UINT32 AllLanesSizeOfTable;
+
+/** Offset 0x00B8 - } TYPE:{Combo
+ Enable or Disable
+ $EN_DIS
+**/
+ UINT32 PerLaneSizeOfTable;
+
+/** Offset 0x00BC - } TYPE:{Combo
+ Enable or Disable
+ $EN_DIS
+**/
+ UINT32 WaitTimeForPSBP;
+
+/** Offset 0x00C0 - } TYPE:{Combo
+ Enable or Disable
+ $EN_DIS
+**/
+ UINT8 IsKtiNvramDataReady;
+
+/** Offset 0x00C1
+**/
+ UINT8 UnusedUpdSpace3[3];
+
+/** Offset 0x00C4 - } TYPE:{Combo
+ Enable or Disable
+ $EN_DIS
+**/
+ UINT32 OemHookPostTopologyDiscovery;
+
+/** Offset 0x00C8 - } TYPE:{Combo
+ Enable or Disable
+ $EN_DIS
+**/
+ UINT32 OemGetResourceMapUpdate;
+
+/** Offset 0x00CC - } TYPE:{Combo
+ Enable or Disable
+ $EN_DIS
+**/
+ UINT8 BoardId;
+
+/** Offset 0x00CD - } TYPE:{Combo
+ Enable or Disable
+ $EN_DIS
+**/
+ UINT8 WaSerializationEn;
+
+/** Offset 0x00CE - } TYPE:{Combo
+ Enable or Disable
+ $EN_DIS
+**/
+ UINT8 KtiInEnableMktme;
+
+/** Offset 0x00CF
+**/
+ UINT8 UnusedUpdSpace4;
+
+/** Offset 0x00D0 - Address of IIoBifurcationTable.
+ The address of the table of IIoBifurcation.
+ $EN_DIS
+**/
+ UINT32 IIoBifurcationTablePtr;
+
+/** Offset 0x00D4 - Number of IIoBifurcationTable Entry
+ Number of IIoBifurcationTable Entry. If this is not zero, the IIoBifurcationTablePtr
+ must not be NULL.
+**/
+ UINT8 NumOfIIoBifurcationTable;
+
+/** Offset 0x00D5 - PchAdrEn
+ Enable or Disable PchAdr
+**/
+ UINT8 PchAdrEn;
+
+/** Offset 0x00D6 - } TYPE:{Combo
+ Enable or Disable
+ $EN_DIS
+**/
+ UINT8 PchPcieRootPortFunctionSwap;
+
+/** Offset 0x00D7 - PCH PCIE PLL Ssc
+ Valid spread range : 0x00-0x14 (A value of 0 is SSC of 0.0%. A value of 20 is SSC
+ of 2.0%), Auto : 0xFE(Set to hardware default), Disable : 0xFF
+**/
+ UINT8 PchPciePllSsc;
+
+/** Offset 0x00D8 - Usage type for PCH PCIE Root Port Index
+ Index assigned to every PCH PCIE Root Port
+**/
+ UINT8 PchPciePortIndex[20];
+
+/** Offset 0x00EC - Usage type for PCH PCIE Root Port Enable or Disable
+ 0-19: PCH rootport, 0x40-0x43: PEG port, 0x70:LAN, 0x80: unspecified but in use
+ (free running), 0xFF: not used
+**/
+ UINT8 PchPcieForceEnable[20];
+
+/** Offset 0x0100 - Usage type for PCH PCIE Root Port Link Speed
+ 0-19: PCH rootport, 0x40-0x43: PEG port, 0x70:LAN, 0x80: unspecified but in use
+ (free running), 0xFF: not used
+**/
+ UINT8 PchPciePortLinkSpeed[20];
+
+/** Offset 0x0114
+**/
+ UINT8 ReservedMemoryInitUpd[16];
+} FSP_M_CONFIG;
+
+/** Fsp M UPD Configuration
+**/
+typedef struct {
+
+/** Offset 0x0000
+**/
FSP_UPD_HEADER FspUpdHeader;
+
+/** Offset 0x0020
+**/
FSPM_ARCH_UPD FspmArchUpd;
- FSPM_CONFIG FspmConfig;
- uint16_t UpdTerminator;
+
+/** Offset 0x0040
+**/
+ FSP_M_CONFIG FspmConfig;
+
+/** Offset 0x0124
+**/
+ UINT8 UnusedUpdSpace5[2];
+
+/** Offset 0x0126
+**/
+ UINT16 UpdTerminator;
} FSPM_UPD;
-#pragma pack(1)
+#pragma pack()
#endif