summaryrefslogtreecommitdiff
path: root/BirchStreamFspBinPkg/sp/Include/FspmUpd.h
diff options
context:
space:
mode:
Diffstat (limited to 'BirchStreamFspBinPkg/sp/Include/FspmUpd.h')
-rw-r--r--BirchStreamFspBinPkg/sp/Include/FspmUpd.h1866
1 files changed, 1866 insertions, 0 deletions
diff --git a/BirchStreamFspBinPkg/sp/Include/FspmUpd.h b/BirchStreamFspBinPkg/sp/Include/FspmUpd.h
new file mode 100644
index 0000000..86c40eb
--- /dev/null
+++ b/BirchStreamFspBinPkg/sp/Include/FspmUpd.h
@@ -0,0 +1,1866 @@
+/** @file
+
+Copyright (c) 2024, 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 __FSPM_UPD_H__
+#define __FSPM_UPD_H__
+
+#include <FspUpd.h>
+
+#pragma pack(1)
+
+typedef struct {
+
+/** Customer Revision
+ The Customer can set this revision string for their own purpose.
+**/
+ UINT8 CustomerRevision[32];
+
+/** Bus Ratio
+ Indicates the ratio of Bus/MMIOL/IO resource to be allocated for each CPU's IIO
+**/
+ UINT8 BusRatio[8];
+
+/** Legacy VGA Soc
+ Socket that claims the legacy VGA range
+**/
+ UINT8 LegacyVgaSoc;
+
+/** Legacy VGA Stack
+ Stack that claims the legacy VGA range
+**/
+ UINT8 LegacyVgaStack;
+
+/** Pcie P2P Performance Mode
+ Determine if to enable PCIe P2P Performance Mode
+ $EN_DIS
+**/
+ UINT8 P2pRelaxedOrdering;
+
+/** UPI Debug Print Level
+ UPI Debug Print Level Bitmask. 0- Disable, 1- Fatal, 2- Warning, 4- Summary, 8-
+ Detail, <b>0xF- All(Default)</b>
+ 1:Fatal, 2:Warning, 4:Summary, 8:Detail, 0x0F:All
+**/
+ UINT8 DebugPrintLevel;
+
+/** NumaEn
+ Enable or Disable Numa
+ $EN_DIS
+**/
+ UINT8 NumaEn;
+
+/** SNC Enable
+ Enable or Disable SNC
+ 0x0:Disable, 0x1:Enable, 0x0F:Auto
+**/
+ UINT8 SncEn;
+
+/** IODC Mode
+ IODC Mode. 0- Disable, <b>1- Auto(Default)</b>, 2- Push, 3- AllocFlow, 4- NonAlloc, 5- WCILF
+ 0:Disable, 1:Auto, 2:Push, 3:AllocFlow, 4:NonAlloc, 5:WCILF
+**/
+ UINT8 IoDcMode;
+
+/** Degrade Precedence
+ Setup Degrade Precedence
+ 0:Topology, 1:Feature
+**/
+ UINT8 DegradePrecedence;
+
+/** Degrade 4 Socket Preference
+ Setup Degrade 4 Socket Preference
+ 0:Fully Connect, 1:Dual Link Ring
+**/
+ UINT8 Degrade4SPreference;
+
+/** Directory Mode
+ Enable or Disable Directory Mode
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 DirectoryModeEn;
+
+/** XPT Prefetch Enable
+ Enable or Disable XPT Prefetch
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 XptPrefetchEn;
+
+/** KTI Prefetch Enable
+ Enable or Disable KTI Prefetch
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 KtiPrefetchEn;
+
+/** XPT Remote Prefetch Enable
+ Enable or Disable XPT Remote Prefetch Enable
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 XptRemotePrefetchEn;
+
+/** Distress QoS Mode
+ Distress QoS. <b>0- Mode 0(Default)</b>, 2- Mode 2
+ 0:Mode 0, 2:Mode 2
+**/
+ UINT8 DistressQoS;
+
+/** KTI Link Speed Mode
+ Choose KTI Link Speed Mode
+ 0:Slow, 1:Full
+**/
+ UINT8 KtiLinkSpeedMode;
+
+/** KTI Link Speed
+ Setup KTI Link Speed - 2- 160GT, 3- 200GT, 4- 240GT, <b>0x7F- Max KTI Link Speed
+ (Default)</b>, 0x8F- Frequency Per Link
+ 2:160GT, 3:200GT, 4:240GT, 0x7F:Max KTI Link Speed, 0x8F:Frequency Per Link
+**/
+ UINT8 KtiLinkSpeed;
+
+/** KTI Link L0p
+ Enable or Disable KTI Link L0p
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 KtiLinkL0pEn;
+
+/** KTI Link L1
+ Enable or Disable KTI Link L1
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 KtiLinkL1En;
+
+/** Kti Link Speed Per Port
+ Setup KTI Link Speed to be allocated for each port, 2:160GT, 2:200GT, 3:240GT, 0X7f:Max
+ KTI Link Speed
+**/
+ UINT8 KtiLinkSpeedPerPort[48];
+
+/** DfxL0p Enable
+ Indicates the DfxL0p Enable to be allocated for each port, 0:Disable, 1:Enable
+**/
+ UINT8 DfxL0pEnable[48];
+
+/** DfxL1 Enable
+ Indicates the DfxL1 Enable to be allocated for each port, 0:Disable, 1:Enable
+**/
+ UINT8 DfxL1Enable[48];
+
+/** KTI Failover
+ Enable or Disable KTI Failover
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 KtiFailoverEn;
+
+/** KTI CRC Mode
+ Select KTI CRC Mode
+ 0:16bit, 1:32bit, 2:Auto
+**/
+ UINT8 KtiCrcMode;
+
+/** KTI CPU Socket Hotplug
+ Enable or Disable KTI CPU Socket Hotplug
+ $EN_DIS
+**/
+ UINT8 KtiCpuSktHotPlugEn;
+
+/** KTI CPU Socket HotPlug Topology
+ Select KTI CPU Socket HotPlug Topology
+ 0:4Socket, 1:8Socket
+**/
+ UINT8 KtiCpuSktHotPlugTopology;
+
+/** KTI SKU Mismatch Check
+ Enable or Disable KTI SKU Mismatch Check
+ $EN_DIS
+**/
+ UINT8 KtiSkuMismatchCheck;
+
+/** Sdsi Contrl Ib Lock
+ Enable or Disable Sdsi Contrl Ib Lock
+ $EN_DIS
+**/
+ UINT8 SdsiCtrlIbLock;
+
+/** TOR Threshold - Loctorem threshold Normal
+ Select TOR Threshold - Loctorem threshold Normal
+ 0:Disable, 1:Auto, 2:Low, 3:Medium, 4:High
+**/
+ UINT8 TorThresLoctoremNorm;
+
+/** TOR threshold - Loctorem threshold empty
+ Select TOR threshold - Loctorem threshold empty
+ 0:Disable, 1:Auto, 2:Low, 3:Medium, 4:High
+**/
+ UINT8 TorThresLoctoremEmpty;
+
+/** HA A to S directory optimization
+ Enable or Disable HA A to S directory optimization
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 StaleAtoSOptEn;
+
+/** LLC Deadline Allocation
+ Enable or Disable LLC Deadline Allocation
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 LLCDeadLineAlloc;
+
+/** MBA BW Calibration Profiles
+ Choice of MBA BW throttling curve
+ 0:Linear BW shaping, 1:Biased BW shaping, 2:Legacy BW shaping, 3:Auto
+**/
+ UINT8 MbeBWCalChoice;
+
+/** PMM MBA BW downscale
+ PMM BW downscaling vs the baseline Total memory BW profile. Eg- picking 1/2x results
+ in scaling PMM BW throttling in a 2:1 ratio vs. DDR throttling.
+ 0:PMM BW throttling in a 1/1 ratio vs. DDR throttling, 1:2/1 ratio, 2:4/1 ratio,
+ 3:8/1 ratio
+**/
+ UINT8 PmmMbaBWDownscale;
+
+/** CXL (Type3) MBA BW downscale
+ CXL (Type3) BW downscaling vs the baseline Total memory BW profile. Eg- picking
+ 1/2x results in scaling CXL (Type3) BW throttling in a 2:1 ratio vs. DDR throttling.
+ 0:CXL BW throttling in a 1/1 ratio vs. DDR throttling, 1:2/1 ratio, 2:4/1 ratio,
+ 3:8/1 ratio
+**/
+ UINT8 CxlMbaBWDownscale;
+
+/** Remote Target MBA BW downscale
+ Remote Target BW downscaling vs the baseline Total memory BW profile. Eg- picking
+ 1/2x results in scaling Remote Target BW throttling in a 2:1 ratio vs. DDR throttling.
+ 0:Remote Target BW throttling in a 1/1 ratio vs. DDR throttling, 1:2/1 ratio, 2:4/1
+ ratio, 3:8/1 ratio
+**/
+ UINT8 RemoteTargetMbaBWDownscale;
+
+/** Split Lock
+ Enable or Disable Split Lock
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 SplitLock;
+
+/** MMCFG Base Address
+ Setup MMCFG Base Address
+ 0:1G, 1:1.5G, 2:1.75G, 3:2G, 4:2.25G, 5:3G, 0xFF:Auto
+**/
+ UINT32 mmCfgBase;
+
+/** MMCFG Size
+ Select MMCFG Size
+ 0:64M, 1:128M, 2:256M, 3:512M, 4:1G, 5:2G, 0xFF:Auto
+**/
+ UINT32 mmCfgSize;
+
+/** MMIO High Base Address
+ MMIO High Base Address
+ 0:56T, 1:40T, 2:32T, 3:24T, 4:16T, 5:4T, 6:2T, 7:1T, 8:512G, 9:3584T, 10:30T, 11:60T,
+ 12:88T, 13:120T, 14:248T, 255:AUTO
+**/
+ UINT32 mmiohBase;
+
+/** CPU Physical Address Limit
+ CPU Physical Address Limit
+ $EN_DIS
+**/
+ UINT8 CpuPaLimit;
+
+/** MMIO High Size
+ MMIO High Size, Number of 1GB contiguous regions to be assigned for MMIOH space per CPU.
+ 0:1GB, 1:4GB, 2:16GB, 3:64GB, 4:256GB, 5:1024GB, 6:32GB, 255:AUTO
+**/
+ UINT32 mmiohSize;
+
+/** DCA
+ Enable or Disable DCA
+ $EN_DIS
+**/
+ UINT8 dcaEn;
+
+/** BoardTypeBitmask
+ BoardTypeBitmask
+**/
+ UINT32 BoardTypeBitmask;
+
+/** S3mClkSetupPtr
+ Pointer to clk setup variable data
+**/
+ UINT64 S3mClkSetupPtr;
+
+/** AllLanesPtr
+ Pointer to array of ALL_LANES_EPARAM_LINK_INFO
+**/
+ UINT64 AllLanesPtr;
+
+/** PerLanePtr
+ Pointer to array of PER_LANE_EPARAM_LINK_INFO
+**/
+ UINT64 PerLanePtr;
+
+/** AllLanesSizeOfTable
+ Number of elements in AllLanesPtr array.
+**/
+ UINT32 AllLanesSizeOfTable;
+
+/** PerLaneSizeOfTable
+ Number of elements in PerLanePtr array.
+**/
+ UINT32 PerLaneSizeOfTable;
+
+/** WaitTimeForPSBP
+ Enable or Disable WaitTimeForPSBP
+**/
+ UINT32 WaitTimeForPSBP;
+
+/** KtiInEnableMktme
+ Enable or Disable KtiInEnableMktme
+ $EN_DIS
+**/
+ UINT8 KtiInEnableMktme;
+
+/** HIOP STACK DISABLE
+ Enables/Disables given HIOP STACK. Default is AUTO no stack is disabled. 1 - The
+ stacks indicated by the bit locations are disabled. 0 - The stacks indicated by
+ the bit locations are not modified. The stack order is abstracted each bit 0 =
+ stack 0 ... bit n = stack n. The bit setting for each stack can be overriden by
+ BIOS based on part-knob compatibility. The array size must be MAX_SOCKET(Maximum:8) x UINT32.
+**/
+ UINT32 StackDisableBitMap[8];
+
+/** Processor VmxEnable Function
+ Enable(Default) or Disable Processor VmxEnable Function
+ $EN_DIS
+**/
+ UINT8 VmxEnable;
+
+/** Smm Relocation
+ Enable(Default)/Disable Smm Relocation
+ $EN_DIS
+**/
+ UINT8 SmmRelocationEnable;
+
+/** Processor HyperThreading Function
+ Enables Logical processor, 0- ALL LPs, 1- Single LP, 2- Two LPs
+ 0:ALL LPs, 1:Single LP, 2:Two LPs
+**/
+ UINT8 ProcessorLpEnable;
+
+/** Processor Safer Mode Extensions Function
+ Enable or Disable(Default) Processor Safer Mode Extensions Function
+ $EN_DIS
+**/
+ UINT8 ProcessorSmxEnable;
+
+/** Uncore Freq Control Compute
+ Mode 0: Power Limited Ordered Throttling Mode 1: Power Limited Proportional Throttling
+ 0:Mode 0, 1:Mode 1
+**/
+ UINT8 UncoreFreqCtrl;
+
+/** Uncore Freq Ratio Compute
+ 0: Set dynamic Uncore frequency range from max and min fused values. Otherwise Uncore
+ will run at a constant frequency ratio, the UFS algorithm will be disabled, but
+ physical limits may still reduce frequency. NOTE: The user input will be clipped
+ to the range accordingly during boot.
+**/
+ UINT8 UncoreFreqRatio;
+
+/** Uncore Freq Control IO
+ Mode 0: Power Limited Ordered Throttling Mode 1: Power Limited Proportional Throttling
+ 0:Mode 0, 1:Mode 1
+**/
+ UINT8 UncoreFreqCtrlIo;
+
+/** Uncore Freq Ratio IO
+ 0: Set dynamic Uncore frequency range from max and min fused values. Otherwise Uncore
+ will run at a constant frequency ratio, the UFS algorithm will be disabled, but
+ physical limits may still reduce frequency. NOTE: The user input will be clipped
+ to the range accordingly during boot.
+**/
+ UINT8 UncoreFreqRatioIo;
+
+/** DDR frequency limit
+ Select DDR frequency limit, <b>0x00- Auto(Default)</b>, 0x01:DDR_3200, 0x03:DDR_3600,
+ 0x05:DDR_4000, 0x07:DDR_4400, 0x08:DDR_4800, 0x09:DDR_5200, 0x0A:DDR_5600, 0x0B:DDR_6000,
+ 0x0C:DDR_6400
+**/
+ UINT8 HostDdrFreqLimit;
+
+/** DDR Over Clock Enable
+ DDR Over Clock Enable, 0- Disable, 1- Enable
+ 0:Disable, 1:Enable
+**/
+ UINT8 DdrOverClockEnable;
+
+/** Advanced Debug Function
+ Select Advanced Debug Function, 0- Disable, 1- Enable, 2- Auto
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 DfxAdvDebugJumper;
+
+/** Memory Serial Debug Message Level
+ Select Memory Serial Debug Message Level, 0- Disable, 1- Minimum, 2- Normal, 3-
+ Maximum, <b>4- Auto(Default)</b>, 5- Fixed PCD
+ 0:Disable, 1:Minimum, 2:Normal, 3:Maximum, 4:Auto, 5:Fixed PCD
+**/
+ UINT8 serialDebugMsgLvl;
+
+/** IIO IioPE0Bifurcation
+ IioPE0Bifurcation[MAX_SOCKET]- MAX_SOCKET=8, 0x00:x4x4x4x4, 0x01:x4x4xxx8, 0x02:xxx8x4x4,
+ 0x03:xxx8xxx8, 0x04:xxxxxx16, <b>0xFF:AUTO(Default)</b>
+**/
+ UINT8 IioPE0Bifurcation[8];
+
+/** IIO IioPE1Bifurcation
+ IioPE1Bifurcation[MAX_SOCKET]- MAX_SOCKET=8, 0x00:x4x4x4x4, 0x01:x4x4xxx8, 0x02:xxx8x4x4,
+ 0x03:xxx8xxx8, 0x04:xxxxxx16, <b>0xFF:AUTO(Default)</b>
+**/
+ UINT8 IioPE1Bifurcation[8];
+
+/** IIO IioPE2Bifurcation
+ IioPE2Bifurcation[MAX_SOCKET]- MAX_SOCKET=8, 0x00:x4x4x4x4, 0x01:x4x4xxx8, 0x02:xxx8x4x4,
+ 0x03:xxx8xxx8, 0x04:xxxxxx16, <b>0xFF:AUTO(Default)</b>
+**/
+ UINT8 IioPE2Bifurcation[8];
+
+/** IIO IioPE3Bifurcation
+ IioPE3Bifurcation[MAX_SOCKET]- MAX_SOCKET=8, 0x00:x4x4x4x4, 0x01:x4x4xxx8, 0x02:xxx8x4x4,
+ 0x03:xxx8xxx8, 0x04:xxxxxx16, <b>0xFF:AUTO(Default)</b>
+**/
+ UINT8 IioPE3Bifurcation[8];
+
+/** IIO IioPE4Bifurcation
+ IioPE4Bifurcation[MAX_SOCKET]- MAX_SOCKET=8, 0x00:x4x4x4x4, 0x01:x4x4xxx8, 0x02:xxx8x4x4,
+ 0x03:xxx8xxx8, 0x04:xxxxxx16, <b>0xFF:AUTO(Default)</b>
+**/
+ UINT8 IioPE4Bifurcation[8];
+
+/** IIO IioPE5Bifurcation
+ IioPE5Bifurcation[MAX_SOCKET]- MAX_SOCKET=8, 0x00:x4x4x4x4, 0x01:x4x4xxx8, 0x02:xxx8x4x4,
+ 0x03:xxx8xxx8, 0x04:xxxxxx16, <b>0xFF:AUTO(Default)</b>
+**/
+ UINT8 IioPE5Bifurcation[8];
+
+/** IIO IioPEaBifurcation
+ IioPEaBifurcation[MAX_SOCKET]- MAX_SOCKET=8, 0x00:x4x4x4x4, 0x01:x4x4xxx8, 0x02:xxx8x4x4,
+ 0x03:xxx8xxx8, 0x04:xxxxxx16, <b>0xFF:AUTO(Default)</b>
+**/
+ UINT8 IioPEaBifurcation[8];
+
+/** IIO IioPEbBifurcation
+ IioPEbBifurcation[MAX_SOCKET]- MAX_SOCKET=8, 0x00:x4x4x4x4, 0x01:x4x4xxx8, 0x02:xxx8x4x4,
+ 0x03:xxx8xxx8, 0x04:xxxxxx16, <b>0xFF:AUTO(Default)</b>
+**/
+ UINT8 IioPEbBifurcation[8];
+
+/** IIO IioPEcBifurcation
+ IioPEcBifurcation[MAX_SOCKET]- MAX_SOCKET=8, 0x00:x4x4x4x4, 0x01:x4x4xxx8, 0x02:xxx8x4x4,
+ 0x03:xxx8xxx8, 0x04:xxxxxx16, <b>0xFF:AUTO(Default)</b>
+**/
+ UINT8 IioPEcBifurcation[8];
+
+/** IIO IioPEdBifurcation
+ IioPEdBifurcation[MAX_SOCKET]- MAX_SOCKET=8, 0x00:x4x4x4x4, 0x01:x4x4xxx8, 0x02:xxx8x4x4,
+ 0x03:xxx8xxx8, 0x04:xxxxxx16, <b>0xFF:AUTO(Default)</b>
+**/
+ UINT8 IioPEdBifurcation[8];
+
+/** Toggle Msi Bypass
+ Msi Bypass: 0- Disable, 1- Enable
+ 0:Disable, 1:Enable
+**/
+ UINT8 CtrlMsiBypassEn;
+
+/** IIO Msi Bypass Enabled Ptr
+ Pointer to array of Msi Bypass Enabled settings Per Stack
+**/
+ UINT32 IioMsiBypassEnabledPtr;
+
+/** IIO Msi Bypass Enabled entry Number
+ Number of elements in IioMsiBypassEnabledPtr array, stack number as unit.
+**/
+ UINT32 IioMsiBypassEnabledNumber;
+
+/** IIO PCIE MaxPayload Ptr
+ Pointer to array of PCIE MaxPayload settings Per Port
+**/
+ UINT32 IioPcieMaxPayloadPtr;
+
+/** IIO PCIE MaxPayload entry Number
+ Number of elements in PcieMaxPayloadPtr array, port number as unit.
+**/
+ UINT32 IioPcieMaxPayloadNumber;
+
+/** IIO Board settings Hob Ptr
+ Pointer to array of IIO_BOARD_SETTINGS_HOB
+**/
+ UINT32 IioBoardSettingsHobPtr;
+
+/** IIO Board Settings Hob length
+ The IIO Board Settings Hob Length.
+**/
+ UINT32 IioBoardSettingsHobLength;
+
+/** Iio Setup Knobs pointer
+ : Iio Setup Knobs pointer
+**/
+ UINT64 IioSetupKnobsPtr;
+
+/** Iio Setup Knobs Size
+ : Iio Setup Knobs Size
+**/
+ UINT64 IioSetupKnobsSize;
+
+/** Iio SocketConfig Setup Knobs pointer
+ : Iio SocketConfig Setup Knobs pointer
+**/
+ UINT64 IioSocketConfigSetupKnobsPtr;
+
+/** Iio SocketConfig Setup Knobs Size
+ : Iio SocketConfig Setup Knobs Size
+**/
+ UINT64 IioSocketConfigSetupKnobsSize;
+
+/** IIO DeEmphasis Array Ptr
+ Pointer to array of DeEmphasis
+**/
+ UINT32 DeEmphasisPtr;
+
+/** IIO DeEmphasis Array Number
+ Number of elements in DeEmphasis array.
+**/
+ UINT32 DeEmphasisNumber;
+
+/** IIO PCIe Common Clock Array Ptr
+ Pointer to array of PCIe Common Clock
+**/
+ UINT32 PcieCommonClockPtr;
+
+/** IIO PCIe Common Clock Array Number
+ Number of elements in PCIe Common Clock array.
+**/
+ UINT32 PcieCommonClockNumber;
+
+/** IIO Cpm Enable Array Ptr
+ Pointer to array of Cpm Enable, which points to array Socket[MAX_SOCKET].Ioat[MAX_IIO_IOAT_PER_SOCKET].CpmEn
+**/
+ UINT32 IioCpmEnPtr;
+
+/** IIO Hqm Enable Array Ptr
+ Pointer to array of Hqm Enable, which points to array Socket[MAX_SOCKET].Ioat[MAX_IIO_IOAT_PER_SOCKET].HqmEn
+**/
+ UINT32 IioHqmEnPtr;
+
+/** Gen5LinkDegradation
+ Enable or disable Gen5 link degradation.
+ 0:Disable, 1:Enable
+**/
+ UINT8 Gen5LinkDegradation;
+
+/** PcieHotPlugEnable
+ Enable or disable Pcie hot plug enable feature
+ 0:Disable, 1:Enable
+**/
+ UINT8 PcieHotPlugEnable;
+
+/** DelayAfterPCIeLinkTraining
+ Custom delay after PCI-E link training on IIO ports
+**/
+ UINT16 DelayAfterPCIeLinkTraining;
+
+/** MSR Lock Control
+ Enable - MSR 3Ah and CSR 80h will be locked in FSP. Power Good reset is needed to
+ remove lock bits
+ 0:Disable, 1:Enable
+**/
+ UINT8 ProcessorMsrLockControl;
+
+/** Lock Chipset
+ Lock or Unlock chipset in FSP
+ 0:Disable, 1:Enable
+**/
+ UINT8 LockChipset;
+
+/** DFX Ev Mode
+ When Enabled, Expose IIO DFX devices and other CPU devices like PMON in FSP
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 DfxEvMode;
+
+/** DFX Disable Bios Done
+ When Enabled, suppresses notifying processor via MSR 151h that boot initialization
+ is finished in FSP
+ 0:Disable, 1:Enable
+**/
+ UINT8 DfxDisableBiosDone;
+
+/** PciBusResConfigPtr
+ Pointer to array of socket PCI bus resource.
+**/
+ UINT32 PciBusResConfigPtr;
+
+/** PciBaseLimitsResConfigPtr
+ Pointer to array of socket PCI IO/MMIO resource.
+**/
+ UINT32 PciBaseLimitsResConfigPtr;
+
+/** PCH PCIE PLL Ssc
+**/
+ UINT8 PchPciePllSsc;
+
+/** PchDciEn
+ Enable or <b>Disable(Default)</b> PCH DCI
+ 0:Disable, 1:Enable
+**/
+ UINT8 PchDciEn;
+
+/** MeUmaEnable
+ Enable or disable ME UMA feature
+ 0:Disable, 1:Enable
+**/
+ UINT8 MeUmaEnable;
+
+/** SerialIoUartDebugEnable
+ <b>Enable(Default)</b> or Disable SerialIo Uart debug library in FSP.
+ 0:Disable, 1:Enable
+**/
+ UINT8 SerialIoUartDebugEnable;
+
+/** ISA Serial Base selection
+ Select ISA Serial Base address could be initialized by boot loader. Default is 0x3F8
+ 0x2F8:0x2F8, 0x3F8:0x3F8
+**/
+ UINT16 SerialIoUartDebugIoBase;
+
+/** promoteMrcWarnings
+ Determines if MRC warnings are promoted to system level in FSP.
+ $EN_DIS
+**/
+ UINT8 promoteMrcWarnings;
+
+/** promoteWarnings
+ Determines if warnings are promoted to system level in FSP.
+ $EN_DIS
+**/
+ UINT8 promoteWarnings;
+
+/** serialDebugMsgLvlTrainResults
+ Enabled = set to display the training results. Training results also get displayed
+ if debug messages is set to Maximum in FSP.
+ $EN_DIS
+**/
+ UINT8 serialDebugMsgLvlTrainResults;
+
+/** Enhanced Log Parsing
+ Enables additional output in debug log for easier machine parsing in FSP.
+ $EN_DIS
+**/
+ UINT8 logParsing;
+
+/** MemTest
+ Enable - Enables memory test during normal boot. Disable - Disables this feature in FSP.
+ $EN_DIS
+**/
+ UINT8 HwMemTest;
+
+/** MemTest Loops
+ Number of memory test loops during normal boot, set to 0 to run memtest infinitely in FSP.
+**/
+ UINT16 MemTestLoops;
+
+/** Adv MemTest Options
+ This option is a bit mask[19:0]- All 0 = disabled- bit-0=XMATS8, bit-1=XMATS16,
+ bit-2=Reserved, bit-3=Reserved, bit-4=WCMATS8, bit-5=WCMCH8, bit-6=Reserved, bit-7=MARCHCM64,
+ bit-8=Reserved, bit-9=Reserved, bit-10=Reserved, bit-11=TWR, bit-12=DATARET, bit-13=MATS8TC1,
+ bit-14=MATS8TC2, bit-15=MATS8TC3, bit-16=SK-HYNIX, bit-17=SAMSUNG, bit-18=MICRON-RMW,
+ bit-19=SCRAM_X2 in FSP.
+**/
+ UINT32 AdvMemTestOptions;
+
+/** SmartTestKey
+ Number of SmartTest Key
+**/
+ UINT32 SmartTestKey;
+
+/** Adv MemTest Pause
+ Specify a pause delay between 0 to 255 in units of msec. This is a time period where
+ refresh is disabled between write and read sequences in FSP.
+**/
+ UINT8 AdvMemTestCondPause;
+
+/** Adv MemTest tREFI
+ Specify tREFI (refresh rate) timing between 1850 to 7800 in nsec.
+**/
+ UINT16 AdvMemTestCondTrefi;
+
+/** Adv MemTest tWR
+ Specify tWR timing between 48 to 96 in units of tCK in FSP.
+**/
+ UINT8 AdvMemTestCondTwr;
+
+/** Adv MemTest PMIC VDD Level
+ Specify PMIC VDD level in units of mV in FSP.
+**/
+ UINT16 AdvMemTestCondPmicVdd;
+
+/** Adv MemTest Conditions
+ Auto = set test conditions based on test type; Manual = specify global test conditions;
+ Disable = Do not apply test conditions in FSP.
+ 0:Disable, 1:Auto, 2:Manual
+**/
+ UINT8 AdvMemTestCondition;
+
+/** Adv MemTest Reset Failure Tracking List
+ Enable/disable Reset of the Row Failure Tracking List after each Adv MemTest option.
+ Useful for testing performance of multiple options in FSP.
+ $EN_DIS
+**/
+ UINT8 AdvMemTestResetList;
+
+/** MemTest On Cold Fast Boot
+ Enable - Enables memory test during cold fast boot. Disable - Disables this feature in FSP.
+ $EN_DIS
+**/
+ UINT8 MemTestOnColdFastBoot;
+
+/** Attempt Fast Boot
+ Enable - Portions of memory reference code will be skipped when possible to increase
+ boot speed on warm boots. Disable - Disables this feature in FSP.
+ $EN_DIS
+**/
+ UINT8 AttemptFastBoot;
+
+/** MemTest On Cold Fast Boot
+ Enable - Enables memory test during cold fast boot. Disable - Disables this feature in FSP.
+ $EN_DIS
+**/
+ UINT8 AttemptFastBootCold;
+
+/** Multithreaded Memory Training
+ Selects the number of processor sockets to train in parallel. 0 - All sockets operate
+ in parallel. 1 - At any time only one socket is executing. 2 - At any time only
+ two socket are executing. 4 - At any time only four socket are executing in FSP.
+ 0:All Processor Sockets, 1:One Socket at a Time (No Multithreading), 2:Two Sockets
+ at a Time, 4:Four Sockets at a Time
+**/
+ UINT8 AllowedSocketsInParallel;
+
+/** Auto-Reset on mem Training Error
+ Enable/Disable Auto-Reset on mem Training Error in FSP.
+ $EN_DIS
+**/
+ UINT8 AutoResetOnMemErr;
+
+/** Rank Margin Tool
+ Enable/Disable two types of rank margin in FSP.
+ 0:Normal RMT & Turnaround RMT Disabled, 1:Normal RMT Enabled, 2:Turnaround RMT Enabled,
+ 3:Normal RMT & Turnaround RMT Enabled, 4:Auto RMT Enable/Disabled
+**/
+ UINT8 EnableRMT;
+
+/** RMT on Fast Cold Boot
+ Enable/Disable the Rank Margin Tool on a Fast Cold Boot in FSP.
+ $EN_DIS
+**/
+ UINT8 EnableRMTonFCB;
+
+/** Execute Jedecinit before RMT
+ Execute Jedecinit before Rank Margin Tool in FSP.
+ $EN_DIS
+**/
+ UINT8 JedecInitBeforeRMT;
+
+/** Backside Margining
+ Enable/Disable margin test on the register or buffer backside in FSP.
+ $EN_DIS
+**/
+ UINT8 RMTBacksideMargining;
+
+/** CmdAll
+ Step size of CmdAll. Auto- 1. Supported values- 1,2,4,8 in FSP.
+ 1:1, 2:2, 4:4, 8:8
+**/
+ UINT8 RMTCmdAll;
+
+/** RMT Debug Messages
+ Enable/Disable the RMT debug messages in FSP.
+ 2:Disable, 5:Enable
+**/
+ UINT8 RMTDebugMessages;
+
+/** RMT Display Tables
+ Enable/Disable displaying results as tables in FSP.
+ $EN_DIS
+**/
+ UINT8 RMTDisplayTables;
+
+/** RMT Loop Count
+ Exponential loop count for single rank test in FSP.
+**/
+ UINT8 RMTLoopCount;
+
+/** Test Signal Bit Mask For RMT
+ Test signal bit mask for RMT in FSP.
+**/
+ UINT32 TestSignalBitMaskRMT;
+
+/** RMT Per Bit Margining
+ Enable/Disable Per Bit Margining in FSP.
+ $EN_DIS
+**/
+ UINT8 RMTPerBitMargining;
+
+/** RMT Per CA Lane Margining
+ Enable/Disable Per CA Lane Margining in FSP.
+ $EN_DIS
+**/
+ UINT8 RMTPerCaLaneMargining;
+
+/** RMT Per CS Lane Margining
+ Enable/Disable Per CS Lane Margining in FSP.
+ $EN_DIS
+**/
+ UINT8 RMTPerCsLaneMargining;
+
+/** RMT Display Plots
+ Enable/Disable the display of per-bit results as plots in FSP.
+ $EN_DIS
+**/
+ UINT8 RMTPerDisplayPlots;
+
+/** RMT RxDqs
+ Step size of RxDqs. Auto- 1. Supported values- 1,2,4,8 in FSP.
+ 1:Auto, 2:2, 4:4, 8:8
+**/
+ UINT8 RMTRxDqs;
+
+/** RMT RxVref
+ Step size of RxVref. Auto- 1. Supported values- 1,2,4,8 in FSP.
+ 1:Auto, 2:2, 4:4, 8:8
+**/
+ UINT8 RMTRxVref;
+
+/** Dfx RMT Scrambler
+ Enable or Disable scrambler during RMT test in FSP.
+ $EN_DIS
+**/
+ UINT8 DfxScrambleEnRMT;
+
+/** RMT Step Size Override
+ Enable or Disable overriding the default step sizes in FSP.
+ $EN_DIS
+**/
+ UINT8 RMTStepSizeOverride;
+
+/** RMT TxDq
+ Step size of TxDq. Auto- 1. Supported values- 1,2,4,8 in FSP.
+ 1:Auto, 2:2, 4:4, 8:8
+**/
+ UINT8 RMTTxDq;
+
+/** RMT TxVref
+ Step size of TxVref. Auto- 1. Supported values- 1,2,4,8 in FSP.
+ 1:Auto, 2:2, 4:4, 8:8
+**/
+ UINT8 RMTTxVref;
+
+/** DDR5 ECS
+ Disable: Disable ECS/Result collection. Enable: Enable ECS without Result Collection.
+ Enable ECS with Result Collection: Enable ECS/Result Collection.
+ 0:Disable, 1:Enable, 2:Enable ECS with Result Collection
+**/
+ UINT8 ErrorCheckScrub;
+
+/** Runtime PPR/Row Sparing
+ Enable/Disable Runtime PPR / Row Sparing.
+ $EN_DIS
+**/
+ UINT8 RtRowSparing;
+
+/** Mca Bank Warm Boot Clear Errors
+ Enable/Disable Mca Bank Warm Boot Clear Errors.
+ $EN_DIS
+**/
+ UINT8 McBankWarmBootClearError;
+
+/** RasStateVarPtr
+ Pointer to array of RAS_STATE_VARIABLE_DATA
+**/
+ UINT32 RasStateVarPtr;
+
+/** Enforce Memory POR
+ Enforce POR (0x0) - Enforces Plan Of Record restrictions for DDR5 frequency and
+ voltage programming. Enforce Stretch Goals (0x1) - Enforce DDR memory frequency
+ stretch goal. <b>Disable (0x2 - Default)</b> - Disables this feature and user is
+ able to run at higher frequencies, specified in the DDR Frequency Limit field (limited
+ by processor support).
+ 0:POR, 1:Enforce Stretch Goals, 2:Disabled
+**/
+ UINT8 EnforceDdrMemoryFreqPor;
+
+/** Enforce Population POR
+ Enable Memory Population POR Enforcement. Selecting Enforce Validated Populations
+ will only allow populations that have been validated in FSP.
+ $EN_DIS
+**/
+ UINT8 EnforcePopulationPor;
+
+/** DDR PPR Type
+ Selects DDR Post Package Repair Type - 2- Hard PPR, <b>1- Soft PPR (Default)</b>,
+ 0- Disabled.
+ 0:Disabled, 2:Hard PPR, 1:Soft PPR
+**/
+ UINT8 pprType;
+
+/** pprAddrVariablePtr
+ Pointer to array of PPR_ADDR_VARIABLE
+**/
+ UINT32 PprAddrVariablePtr;
+
+/** BDAT ACPI Table
+ Enable / Disable publishing BDAT ACPI Table in FSP.
+ $EN_DIS
+**/
+ UINT8 bdatEn;
+
+/** Allow Memory Test Correctable Error
+ Enable - Logs error and allows correctable errors during memory test(DIMM Rank not
+ removed). Disable - Logs error and removes DIMM Rank. Auto - Sets it to the MRC
+ default setting; current default is Enable in FSP.
+ $EN_DIS
+**/
+ UINT8 allowCorrectableMemTestError;
+
+/** SlotPerChannel
+ Slot number per channel, default value is 2
+ 1:Slot1, 2:Slot2
+**/
+ UINT8 SlotPerChannel;
+
+/** Memory I/O Health Check
+ Memory I/O Health Check - 0- Auto, 1- Manual, <b>2- Disable (Default)</b>. Select
+ option Auto for default values. Manual for new values. Disable for disabling feature in FSP.
+ 0:Auto, 1:Manual, 2:Disable
+**/
+ UINT8 MemIOHealthCheck;
+
+/** Memory I/O Health Turnaround Test
+ Memory I/O Health Turnaround Test - 1- Enable, <b>0- Disable (Default)</b>. Select
+ Disable for disabling feature in FSP. Enable for enabling feature in FSP.
+ 0:Disable, 1:Enable
+**/
+ UINT8 MemIOHealthTurnaroundTest;
+
+/** Memory I/O Health Check Loop Count
+ CPGC Test Loop Count for Memory IO Health Test.
+**/
+ UINT8 MemIOLoopCount;
+
+/** RxDqsDelay Left Edge
+ Offset for RxDqsDelay Left Edge in FSP.
+**/
+ UINT8 CriticalRxDqsDelayLeftEdge;
+
+/** RxDqsDelay Right Edge
+ Offset for RxDqsDelay Right in FSP.
+**/
+ UINT8 CriticalRxDqsDelayRightEdge;
+
+/** RxVref Left Edge
+ Offset for RxVref Left Edge in FSP.
+**/
+ UINT8 CriticalRxVrefLeftEdge;
+
+/** RxVref Right Edge
+ Offset for RxVref Right Edge in FSP.
+**/
+ UINT8 CriticalRxVrefRightEdge;
+
+/** TxDqDelay Left Edge
+ Offset for TxDqDelay Left Edge in FSP.
+**/
+ UINT8 CriticalTxDqDelayLeftEdge;
+
+/** TxDqDelay Right Edge
+ Offset for TxDqDelay Right Edge in FSP.
+**/
+ UINT8 CriticalTxDqDelayRightEdge;
+
+/** TxVref Left Edge
+ Offset for TxDqDelay Left Edge in FSP.
+**/
+ UINT8 CriticalTxVrefLeftEdge;
+
+/** TxVref Right Edge
+ Offset for TxDqDelay Right Edge in FSP.
+**/
+ UINT8 CriticalTxVrefRightEdge;
+
+/** Reboot On Critical Failure
+ Reboot System on Critical failure to do Memory Training in FSP.
+ $EN_DIS
+**/
+ UINT8 ResetOnCriticalError;
+
+/** Number of Times to Reboot and Retrain
+ Number of times to Reboot System on Critical failure to do Memory Training in FSP.
+**/
+ UINT8 CriticalRetries;
+
+/** Telemetry RxDqsDelay Left Edge
+ Offset for Telemetry RxDqsDelay Left Edge in FSP.
+**/
+ UINT8 TelemetryRxDqsDelayLeftEdge;
+
+/** Telemetry RxDqsDelay Right Edge
+ Offset for Telemetry RxDqsDelay Right Edge in FSP.
+**/
+ UINT8 TelemetryRxDqsDelayRightEdge;
+
+/** Telemetry RxVref Left Edge
+ Offset for Telemetry RxDqsDelay Left Edge in FSP.
+**/
+ UINT8 TelemetryRxVrefLeftEdge;
+
+/** Telemetry RxVref Right Edge
+ Offset for Telemetry RxDqsDelay Right Edge in FSP.
+**/
+ UINT8 TelemetryRxVrefRightEdge;
+
+/** Telemetry TxDqDelay Left Edge
+ Offset for Telemetry TxDqDelay Left Edge in FSP.
+**/
+ UINT8 TelemetryTxDqDelayLeftEdge;
+
+/** Telemetry TxDqDelay Right Edge
+ Offset for Telemetry TxDqDelay Right Edge in FSP.
+**/
+ UINT8 TelemetryTxDqDelayRightEdge;
+
+/** Telemetry TxVref Left Edge
+ Offset for Telemetry TxDqDelay Left Edge in FSP.
+**/
+ UINT8 TelemetryTxVrefLeftEdge;
+
+/** Telemetry TxVref Right Edge
+ Offset for Telemetry TxDqDelay Right Edge in FSP.
+**/
+ UINT8 TelemetryTxVrefRightEdge;
+
+/** Telemetry CaTiming Left Edge
+ Offset for Telemetry CaTiming Left Edge in FSP.
+**/
+ UINT8 TelemetryCaTimingLeftEdge;
+
+/** Telemetry CaTiming Right Edge
+ Offset for Telemetry CaTiming Right Edge in FSP.
+**/
+ UINT8 TelemetryCaTimingRightEdge;
+
+/** Telemetry CtlTiming Left Edge
+ Offset for Telemetry CtlTiming Left Edge in FSP.
+**/
+ UINT8 TelemetryCtlTimingLeftEdge;
+
+/** Telemetry CtlTiming Right Edge
+ Offset for Telemetry CtlTiming Right Edge in FSP.
+**/
+ UINT8 TelemetryCtlTimingRightEdge;
+
+/** Telemetry CaVref Left Edge
+ Offset for Telemetry CaVref Left Edge in FSP.
+**/
+ UINT8 TelemetryCaVrefLeftEdge;
+
+/** Telemetry CaVref Right Edge
+ Offset for Telemetry CaVref Right Edge in FSP.
+**/
+ UINT8 TelemetryCaVrefRightEdge;
+
+/** Critical CaTiming Left Edge
+ Offset for Critical CaTiming Left Edge in FSP.
+**/
+ UINT8 CriticalCaTimingLeftEdge;
+
+/** Critical CaTiming Right Edge
+ Offset for Critical CaTiming Right Edge in FSP.
+**/
+ UINT8 CriticalCaTimingRightEdge;
+
+/** Critical CtlTiming Left Edge
+ Offset for Critical CtlTiming Left Edge in FSP.
+**/
+ UINT8 CriticalCtlTimingLeftEdge;
+
+/** Critical CtlTiming Right Edge
+ Offset for Critical CtlTiming Right Edge in FSP.
+**/
+ UINT8 CriticalCtlTimingRightEdge;
+
+/** Critical CaVref Left Edge
+ Offset for Critical CaVref Left Edge in FSP.
+**/
+ UINT8 CriticalCaVrefLeftEdge;
+
+/** Critical CaVref Right Edge
+ Offset for Critical CaVref Right Edge in FSP.
+**/
+ UINT8 CriticalCaVrefRightEdge;
+
+/** Intel(R) Flat Memory Mode Support
+ Enable or disable Intel(R) Flat Memory Mode support.
+ 0:Disable, 1:Enable
+**/
+ UINT8 Flat2lmSupport;
+
+/** Dynamic ECC Mode Selection
+ Enable/Disable Dynamic ECC Mode Selection in FSP.
+ $EN_DIS
+**/
+ UINT8 DynamicEccModeSel;
+
+/** Leaky bucket high bit
+ Leaky bucket high bit" (0x1 - 0x29)
+**/
+ UINT8 leakyBktHi;
+
+/** Leaky bucket time window based interface Hour
+ Leaky bucket time window based interface Hour" (0 - 24)
+**/
+ UINT16 leakyBktHour;
+
+/** Leaky bucket low bit
+ Leaky bucket low bit" (0x1 - 0x29)
+**/
+ UINT8 leakyBktLo;
+
+/** Leaky bucket time window based interface Minute
+ Leaky bucket time window based interface Minute" (0 - 60)
+**/
+ UINT8 leakyBktMinute;
+
+/** Leaky bucket time window based interface
+ Enable/Disable leaky bucket time window based interface
+ 0:Disable, 1:Enable
+**/
+ UINT8 leakyBktTimeWindow;
+
+/** Memory Patrol Scrub
+ Enable/Disable Patrol Scrub
+ 0:Disable, 2:Enable at End of POST
+**/
+ UINT8 PatrolScrub;
+
+/** Memory Patrol Scrub Notify
+ Memory Patrol Scrub - <b>0:Disable (Default)</b>, 1:Enable at ReadyToBootFsp().
+ 0:Disable, 1:Enable at ReadyToBootFsp()
+**/
+ UINT8 PatrolScrubNotify;
+
+/** Patrol Scrub Interval
+ Patrol Scrub Interval in FSP.
+**/
+ UINT8 PatrolScrubDuration;
+
+/** Patrol Scrub Address Mode
+ Selects the address mode between <b>System Physical Address (0x1 - Default)</b>
+ or Reverse Address (0x0) in FSP.
+ 0:Reverse Address, 1:System Physical Address
+**/
+ UINT8 PatrolScrubAddrMode;
+
+/** Memory Thermal Throttling Mode
+ Memory Configure Memory Thermal Throttling Mode in FSP.
+ 0:Disable, 2:CLTT, 3:CLTT with PECI
+**/
+ UINT8 thermalthrottlingsupport;
+
+/** Memory Correctable Error Threshold
+ Memory Correctable Error Threshold (1 - 32767) used for sparing and leaky bucket in FSP.
+**/
+ UINT16 spareErrTh;
+
+/** WR CRC feature Control
+ Enable/Disable Write CRC in FSP.
+ $EN_DIS
+**/
+ UINT8 WrCRC;
+
+/** DDR 2x Refresh Enable
+ Enable/Disable 2x Refresh. Auto = dynamically selected.
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 RefreshMode;
+
+/** Adaptive Refresh Management Level
+ Selects Adaptive Refresh Management(ARFM) Level when refresh management(RFM) is
+ required. 0:Default - RAAIMT, RAAMMT, RAADEC; 1:Level A - RAAIMT-A, RAAMMT-A, RAADEC-A;
+ 2:Level B - RAAIMT-B, RAAMMT-B, RAADEC-B; 3:Level C - RAAIMT-C, RAAMMT-C, RAADEC-C
+ 0:Default - RAAIMT or RAAMMT or RAADEC, 1:Level A - RAAIMT-A or RAAMMT-A or RAADEC-A,
+ 2:Level B - RAAIMT-B or RAAMMT-B or RAADEC-B, 3:Level C - RAAIMT-C or RAAMMT-C
+ or RAADEC-C
+**/
+ UINT8 AdaptiveRefreshMgmtLevel;
+
+/** CXL Hetero Support
+ Enable/Disable (Default) DDR CXL Heterogeneous Interleave in FSP.
+ $EN_DIS
+**/
+ UINT8 CxlHeteroSupport;
+
+/** MEMHOT INPUT Control
+ Enable/Disable MEMHOT INPUT in FSP.
+ $EN_DIS
+**/
+ UINT8 MemHotIn;
+
+/** MEMHOT OUTPUT Mode
+ MEMHOT OUTPUT Mode in FSP.
+ 0:Disable, 1:Enable only temphi, 2:Enable only temphi and mid, 3:Enable only temphi
+ mid and low
+**/
+ UINT8 MemhotOutputOnlyOpt;
+
+/** DfxPmicSecureMode
+ 0:Disable Pmic Secure Mode, 1:Enable Pmic Secure Mode, 2:Auto Pmic Secure Mode.
+ 0:Disable Pmic Secure Mode, 1:Enable Pmic Secure Mode, 2:Auto Pmic Secure Mode
+**/
+ UINT8 DfxPmicSecureMode;
+
+/** SpdPrintEn
+ Enable/Disable SPD Print
+ $EN_DIS
+**/
+ UINT8 SpdPrintEn;
+
+/** Force PPR On All Dram For UCE
+ Enable/Disable force PPR on all dram for UCE.
+ 0:Disable, 1:Enable
+**/
+ UINT8 ForcePprOnAllDramUce;
+
+/** CXL Header Bypass
+ Enable/Disable the CXL header bypass in FSP.
+ 0:Disable, 1:Enable
+**/
+ UINT8 DfxCxlHeaderBypass;
+
+/** CXL Security Level
+ CXL Security Level<br>\n
+ 0- Fully Trusted - CXL Device can get access on CXL.$ for host-attached and device
+ attached memory ranges in the WB address space.<br>\n
+ 1- Partially Trusted - CXL Device can get access on CXL.$ for device attached memory
+ ranges only;<br>\n
+ 2- Untrusted - All requests on CXL.$ will be aborted by the Host.<br>\n
+ <b>3- Auto - Currently identical to Fully Trusted. (Default)</b>
+ 0:Fully Trusted, 1:Partially Trusted, 2:Untrusted, 3:Auto
+**/
+ UINT8 DfxCxlSecLvl;
+
+/** CXL VID
+ CXL VID on SPR B0. Auto(Default) and Enable is 0x1E98. Disable is 0x8086
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 DfxCxlVid;
+
+/** Warm-Reset Elimination
+ When enabled, BIOS will attempt to skip warm-reset on the cold-reset path. Auto:
+ platform or silicon RC policy determines feature status
+ 0:Disable, 1:Enable, 2:Auto
+**/
+ UINT8 DfxWarmResetEliminationEn;
+
+/** IIO DFX CxlDebugMode Ptr
+ Pointer to array of CxlDebugMode settings Per Port, 0x00000000 indicates Dfx CXL
+ Debug mode Disable.
+**/
+ UINT32 DfxCxlDebugModePtr;
+
+/** IIO DFX CxlDebugMode Number
+ Number of elements in DfxCxlDebugModePtr array, port number as unit, should be set
+ along with DfxCxlDebugModePtr.
+**/
+ UINT32 DfxCxlDebugModeNumber;
+
+/** Processor Package C State
+ Package C State 0: C0/C1 state, 1: C2 state, 2: C6(non Retention) state, 3: C6(Retention)
+ state, 7: No Limit, <b>0xFF: Auto (Default)</b>
+ 0: C0/C1 state, 1: C2 state, 2: C6(non Retention) state, 3: C6(Retention) state,
+ 7: No Limit, 0xFF: Auto
+**/
+ UINT8 CpuPmPackageCState;
+
+/** Enhanced Intel SpeedStep(R) Tech
+ Enable(Default)/Disable Enhanced Intel SpeedStep(R) Tech
+ $EN_DIS
+**/
+ UINT8 CpuPmEistEnable;
+
+/** C1E
+ Enable(Default)/Disable C1E
+ $EN_DIS
+**/
+ UINT8 CpuPmC1eEnable;
+
+/** Intel SST-PP
+ Intel SST-PP Select allows user to choose level.\n
+ AUTO: Choose lowest level hardware supported.
+ 0xFF: AUTO (default), 0: Level 0, 1: Level 1, 2: Level 2, 3: Level 3, 4: Level 4
+**/
+ UINT8 CpuPmSstPpLevel;
+
+/** Intel SST-BF
+ SST-BF - <b>0: Disable (Default)</b>, 1: Enabled.
+ $EN_DIS
+**/
+ UINT8 CpuPmProcessorSstBfSetting;
+
+/** Core Disable Bitmask for Socket 0 - Compute Die 0
+ Set bit(s) to Disable or clear bit(s) to Enable core(s) on Socket 0 - Compute Die
+ 0.\n
+ NOTE:\n
+ (1) Any core disabled by user will force static SST-PP.\n
+ (2) Please leave this UPD at default value if CPU SKU does not support the corresponding
+ number of compute die.
+**/
+ UINT64 CpuPmCoreDisableBitmaskSkt0Die0;
+
+/** Core Disable Bitmask for Socket 0 - Compute Die 1
+ Set bit(s) to Disable or clear bit(s) to Enable core(s) on Socket 0 - Compute Die
+ 1.\n
+ NOTE:\n
+ (1) Any core disabled by user will force static SST-PP.\n
+ (2) Please leave this UPD at default value if CPU SKU does not support the corresponding
+ number of compute die.
+**/
+ UINT64 CpuPmCoreDisableBitmaskSkt0Die1;
+
+/** Core Disable Bitmask for Socket 0 - Compute Die 2
+ Set bit(s) to Disable or clear bit(s) to Enable core(s) on Socket 0 - Compute Die
+ 2.\n
+ NOTE:\n
+ (1) Any core disabled by user will force static SST-PP.\n
+ (2) Please leave this UPD at default value if CPU SKU does not support the corresponding
+ number of compute die.
+**/
+ UINT64 CpuPmCoreDisableBitmaskSkt0Die2;
+
+/** Core Disable Bitmask for Socket 1 - Compute Die 0
+ Set bit(s) to Disable or clear bit(s) to Enable core(s) on Socket 1 - Compute Die
+ 0.\n
+ NOTE:\n
+ (1) Any core disabled by user will force static SST-PP.\n
+ (2) Please leave this UPD at default value if CPU SKU does not support the corresponding
+ number of compute die.
+**/
+ UINT64 CpuPmCoreDisableBitmaskSkt1Die0;
+
+/** Core Disable Bitmask for Socket 1 - Compute Die 1
+ Set bit(s) to Disable or clear bit(s) to Enable core(s) on Socket 1 - Compute Die
+ 1.\n
+ NOTE:\n
+ (1) Any core disabled by user will force static SST-PP.\n
+ (2) Please leave this UPD at default value if CPU SKU does not support the corresponding
+ number of compute die.
+**/
+ UINT64 CpuPmCoreDisableBitmaskSkt1Die1;
+
+/** Core Disable Bitmask for Socket 1 - Compute Die 2
+ Set bit(s) to Disable or clear bit(s) to Enable core(s) on Socket 1 - Compute Die
+ 2.\n
+ NOTE:\n
+ (1) Any core disabled by user will force static SST-PP.\n
+ (2) Please leave this UPD at default value if CPU SKU does not support the corresponding
+ number of compute die.
+**/
+ UINT64 CpuPmCoreDisableBitmaskSkt1Die2;
+
+/** Processor Dynamic Intel Speed Select (ISS) Function
+ Enable or Disable(Default) Processor Dynamic Intel Speed Select (ISS) Function
+ $EN_DIS
+**/
+ UINT8 CpuPmDynamicIss;
+
+/** BIOS Region Base
+ Pointer to the location of the BIOS Region
+**/
+ UINT32 BiosRegionBase;
+
+/** BIOS Region Size
+ The size of the BIOS Region in bytes
+**/
+ UINT32 BiosRegionSize;
+
+/** Platform Data Area Base
+ Pointer to the location of the Platform Data Area
+**/
+ UINT32 PlatformDataAreaBase;
+
+/** Platform Data Area Size
+ The size of the Platform Data Area in bytes
+**/
+ UINT32 PlatformDataAreaSize;
+
+/** N/A
+**/
+ UINT8 ReservedMemoryInitUpd[16];
+
+/** Enable TME
+ Enable TME
+ $EN_DIS
+**/
+ UINT8 SecurityCctEnableTme;
+
+/** Enable TME CR
+ Enable TME CR
+ $EN_DIS
+**/
+ UINT8 SecurityCctEnableTmeCR;
+
+/** Enable MKTME
+ Enable MKTME
+ $EN_DIS
+**/
+ UINT8 SecurityCctEnableMktme;
+
+/** Enable Global Integrity
+ Enable Global Integrity
+ $EN_DIS
+**/
+ UINT8 SecurityCctEnableGlobalIntegrity;
+
+/** Select TME Crypto Algorithm
+ Enable Global Integrity
+ 0:Algo1,1:Algo2, 2:Algo3
+**/
+ UINT16 SecurityCctTmeCryptoAlg;
+
+/** Enable TDX
+ : Enable TDX
+ $EN_DIS
+**/
+ UINT8 SecurityCctEnableTdx;
+
+/** Enable TDX Connect
+ : Enable TDX Connect
+ $EN_DIS
+**/
+ UINT8 SecurityCctEnableTdxConnect;
+
+/** TDX Physical PCIe Port Disable Bitmap
+ TDX Physical PCIe Port Disable Bitmap
+**/
+ UINT16 SecurityCctTdxPhysicalPciePortDisableBitmap[8];
+
+/** Key Split
+ : Key Split
+**/
+ UINT8 SecurityCctKeySplit;
+
+/** Enable TDX SEAM Loader
+ : Enable TDX SEAM Loader
+ $EN_DIS
+**/
+ UINT8 SecurityCctEnableTdxSeamldr;
+
+/** Enabne SGX
+ : Enable SGX
+ $EN_DIS
+**/
+ UINT8 SecurityCctEnableSgx;
+
+/** Dfx Sgx CMCS Payload
+ Dfx Sgx CMCS Payload
+**/
+ UINT64 SecurityCctDfxSgxCmcsPayload[16];
+
+/** SGX QoS
+ : SGX QoS
+ $EN_DIS
+**/
+ UINT8 SecurityCctSgxQoS;
+
+/** SGX Auto Registration Agent
+ : SGX Auto Registration Agent
+ $EN_DIS
+**/
+ UINT8 SecurityCctSgxAutoRegistrationAgent;
+
+/** SGX Package Info In Band Access
+ : SGX Package Info In Band Access
+ $EN_DIS
+**/
+ UINT8 SecurityCctSgxPackageInfoInBandAccess;
+
+/** EPOCH Update
+ : EPOCH Update
+ 3:EpochDeactived, 0:EpochActived, 1:NewRandomEpoch, 2:ManualEpoch
+**/
+ UINT8 SecurityCctEpochUpdate;
+
+/** SGX EPOCH 0
+ : SGX EPOCH 0
+**/
+ UINT64 SecurityCctSgxEpoch0;
+
+/** SGX EPOCH 1
+ : SGX EPOCH 1
+**/
+ UINT64 SecurityCctSgxEpoch1;
+
+/** SGX LeWr
+ : SGX LeWr
+ $EN_DIS
+**/
+ UINT8 SecurityCctSgxLeWr;
+
+/** SGX Le Public Key Hash 0
+ : SGX Le Public Key Hash 0
+**/
+ UINT64 SecurityCctSgxLePubKeyHash0;
+
+/** SGX Le Public Key Hash 1
+ : SGX Le Public Key Hash 1
+**/
+ UINT64 SecurityCctSgxLePubKeyHash1;
+
+/** SGX Le Public Key Hash 2
+ : SGX Le Public Key Hash 2
+**/
+ UINT64 SecurityCctSgxLePubKeyHash2;
+
+/** SGX Le Public Key Hash 3
+ : SGX Le Public Key Hash 3
+**/
+ UINT64 SecurityCctSgxLePubKeyHash3;
+
+/** SGX Debug Mode
+ : SGX Debug Mode
+ $EN_DIS
+**/
+ UINT8 SecurityCctSgxDebugMode;
+
+/** SGX Factory Reset
+ : SGX Factory Reset
+ $EN_DIS
+**/
+ UINT8 SecurityCctSgxFactoryReset;
+
+/** Dfx Bios Param Header Override
+ : Dfx Bios Param Header Override
+ 2:Auto, 1:Enabled
+**/
+ UINT8 SecurityCctDfxBiosParamHeaderOverride;
+
+/** Dfx Bios Param Header Version
+ : Dfx Bios Param Header Version
+**/
+ UINT16 SecurityCctDfxBiosParamHeaderVersion;
+
+/** Dfx Disable Actm Launch
+ : Dfx Disable Actm Launch
+ 1:Enabled, 0:Disabled, 2:Auto
+**/
+ UINT8 SecurityCctDfxDisableActmLaunch;
+
+/** ACTM Flash Base
+ : ACTM Flash Base
+**/
+ UINT32 SecurityCctActmPcdFlash;
+
+/** Enable UPI FLE
+ : Enable UPI FLE
+ $EN_DIS
+**/
+ UINT8 SecurityCctEnableUpiFle;
+
+/** Enable SAF
+ : Enable SAF
+ $EN_DIS
+**/
+ UINT8 SecurityCctEnableSaf;
+
+/** Dfx TDX Disable 1MB CMR Exclude
+ : Dfx TDX Disable 1MB CMR Exclude
+ 1:Enabled, 0:Disabled, 2:Auto
+**/
+ UINT8 SecurityCctDfxTdxDisable1MbCmrExclude;
+
+/** Dfx Seamldr Source location
+ : Dfx Seamldr Source location
+ 2:Auto, 0:ESP, 1:IFWI
+**/
+ UINT8 SecurityCctDfxSeamldrSrc;
+
+/** Dfx Tdx module Source location
+ : Dfx Tdx module Source location
+ 2:Auto, 0:ESP, 1:IFWI
+**/
+ UINT8 SecurityCctDfxTdxModuleSrc;
+
+/** Dfx PRMRR SEAMRR Support
+ : Dfx PRMRR SEAMRR Support
+ 1:Enabled, 0:Disabled, 2:Auto
+**/
+ UINT8 SecurityCctDfxPrmrrSeamrrSupport;
+
+/** Dfx Simics Environment
+ : Dfx Simics Environment
+ 2:Auto, 1:Enabled
+**/
+ UINT8 SecurityCctDfxSimicsEnvironment;
+
+/** Dfx Force UPL Unsupported
+ : Dfx Force UPL Unsupported
+ 2:Auto, 1:Enabled
+**/
+ UINT8 SecurityCctDfxForceUplUnsupported;
+
+/** Dfx TME Key Restore
+ : Dfx TME Key Restore
+ $EN_DIS
+**/
+ UINT8 SecurityCctDfxTmeKeyRestore;
+
+/** Dfx TME Exclusion Base
+ : Dfx TME Exclusion Base
+**/
+ UINT64 SecurityCctDfxTmeExclusionBase;
+
+/** Dfx TME Exclusion Length
+ : Dfx TME Exclusion Length
+**/
+ UINT64 SecurityCctDfxTmeExclusionLength;
+
+/** Dfx MKTME KeyIdBits Override
+ : Dfx MKTME KeyIdBits Override
+ $EN_DIS
+**/
+ UINT8 SecurityCctDfxMkTmeKeyIdBitsOverride;
+
+/** Dfx MKTME KeyIdBits Override Value
+ : Dfx MKTME KeyIdBits Override Value
+**/
+ UINT8 SecurityCctDfxMkTmeKeyIdBitsOverrideValue;
+
+/** Dfx SGX Debug Print
+ : Dfx SGX Debug Print
+ $EN_DIS
+**/
+ UINT8 SecurityCctDfxSgxDebugPrint;
+
+/** Dfx SGX Registration Server Select
+ : Dfx SGX Registration Server Select
+ 1:PRX, 0:SBX, 3:LIV, 4:SoftwareDefined, 2:Auto
+**/
+ UINT8 SecurityCctDfxSgxRegistrationServerSelect;
+
+/** Dfx SGX Add Package Support
+ : Dfx SGX Add Package Support
+ 1:Enabled, 0:Disabled, 2:Auto
+**/
+ UINT8 SecurityCctDfxSgxAddPackageSupport;
+
+/** Dfx allow SGX non POR memory population
+ : Dfx SGX Add Package Support
+ 1:Enabled, 2:Auto
+**/
+ UINT8 SecurityCctDfxAllowSgxNonPorMemoryPopulation;
+
+/** Dfx SGX Hang Before ACTM
+ : Dfx SGX Hang Before ACTM
+ $EN_DIS
+**/
+ UINT8 SecurityCctDfxSgxHangBeforeActm;
+
+/** Dfx SGX Hang After ACTM
+ : Dfx SGX Hang After ACTM
+ $EN_DIS
+**/
+ UINT8 SecurityCctDfxSgxHangAfterActm;
+
+/** Dfx SGX Hang Before MCHECK
+ : Dfx SGX Hang Before MCHECK
+ $EN_DIS
+**/
+ UINT8 SecurityCctDfxSgxHangBeforeMcheck;
+
+/** Dfx SGX Hang After MCHECK
+ : Dfx SGX Hang After MCHECK
+ $EN_DIS
+**/
+ UINT8 SecurityCctDfxSgxHangAfterMcheck;
+
+/** Dfx SGX Hang Before MSR 7A
+ : Dfx SGX Hang Before MSR 7A
+ $EN_DIS
+**/
+ UINT8 SecurityCctDfxSgxHangBeforeMsr7a;
+
+/** Dfx SGX Hang After MSR 7A
+ : Dfx SGX Hang After MSR 7A
+ $EN_DIS
+**/
+ UINT8 SecurityCctDfxSgxHangAfterMsr7a;
+
+/** Dfx disable CCT MSR_BIOS_DONE
+ : Dfx disable CCT MSR_BIOS_DONE
+ $EN_DIS
+**/
+ UINT8 SecurityCctDfxDisableCctBiosDone;
+
+/** Dfx Mcheck MSR 72
+ : Dfx Mcheck MSR 72 programming
+ $EN_DIS
+**/
+ UINT8 SecurityCctDfxMcheckMsr72;
+
+/** Dfx Skip Warm Reset Promotion
+ : Dfx Skip Warm Reset Promotion
+ 2:Auto, 1:Enabled
+**/
+ UINT8 SecurityCctDfxSkipWarmResetPromotion;
+
+/** Enable SBFT
+ : Enable SBFT
+ 1:Enabled, 0:Disabled, 4:IfsSbftSgxEnabled
+**/
+ UINT8 SecurityCctEnableSbft;
+
+/** PRMRR SGX Size
+ : PRMRR SGX Size
+ 0x8000000:128MB, 0x10000000:256MB, 0x20000000:512MB, 0x40000000:1GB, 0x80000000:2GB,
+ 0x100000000:4GB, 0x200000000:8GB,0x400000000:16GB, 0x800000000:32GB, 0x1000000000:64GB,
+ 0x2000000000:128GB, 0x4000000000:256GB, 0x8000000000:512GB
+**/
+ UINT64 SecurityCctPrmrrSgxSize;
+
+/** PRMRR SAF Size
+ : PRMRR SAF Size
+ 0x0:Invalid, 0x800000:8MB, 0x2000000:32MB, 0x4000000:64MB, 0x8000000:128MB, 0x10000000:256MB
+**/
+ UINT64 SecurityCctPrmrrSafSize;
+
+/** PRMRR SBFT Size
+ : PRMRR SBFT Size
+ 0x0:Invalid, 0x10000000:256MB, 0x20000000:512MB
+**/
+ UINT64 SecurityCctPrmrrSbftSize;
+
+/** N/A
+ Pointer to node list which is used to initizalize security variables - CCT_VS_METADATA_NODE
+**/
+ EFI_PHYSICAL_ADDRESS SecurityCctVarStorageMetadataNodePtr;
+
+/** SINIT ACM SE SVN default
+ Default value of SINIT ACM SE SVN
+**/
+ UINT8 SecurityCctSinitAcmSeSvnFspDefault;
+
+/** SINIT ACM SE SVN override request
+ Override request for SINIT ACM SE SVN
+**/
+ UINT8 SecurityCctSinitAcmSeSvnOverrideRequest;
+
+/** SINIT ACM SE SVN value
+ Value of SINIT ACM SE SVN
+**/
+ UINT8 SecurityCctSinitAcmSeSvnValue;
+
+/** Setup data pointer
+ : Setup data pointer
+**/
+ UINT64 SetupDataPtr;
+
+/** Setup data Size
+ : Setup data Size
+**/
+ UINT64 SetupDataSize;
+
+/** Emulation Setting data pointer
+ : Emulation Setting data pointer
+**/
+ UINT64 EmulationSettingPtr;
+
+/** Emulation Setting data Size
+ : Emulation Setting data Size
+**/
+ UINT64 EmulationSettingSize;
+
+/** Platform info data pointer
+ : Platform info data pointer
+**/
+ UINT64 PlatformInfoPtr;
+
+/** Platform info data Size
+ : Platform info data Size
+**/
+ UINT64 PlatformInfoSize;
+
+/** FSPM Upd settings support
+ : FSPM Upd settings support
+ $EN_DIS
+**/
+ UINT8 FspmUpdSupport;
+
+/** Gen4 RCD Dimm support
+ Gen4 RCD Dimm support, 0- Disable, 1- Enable
+ 0:Disable, 1:Enable
+**/
+ UINT8 Gen4RcdDeviceSupport;
+
+} FSPM_CONFIG;
+
+
+typedef struct {
+
+/** N/A
+**/
+ FSP_UPD_HEADER FspUpdHeader;
+
+/** N/A
+**/
+ FSPM_ARCH2_UPD FspmArchUpd;
+
+/** N/A
+**/
+ FSPM_CONFIG FspmConfig;
+
+/** N/A
+**/
+ UINT16 UpdTerminator;
+
+} FSPM_UPD;
+
+#pragma pack()
+
+#endif