vc/intel/fsp/fsp2_0/snowridge: Add FSP headers for Snow Ridge SoC

Change-Id: I333b137c1dc08a3c06bdd3f7a78ca44a5dd043cc
Signed-off-by: Yuchi Chen <yuchi.chen@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/83192
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com>
This commit is contained in:
Chen, Yuchi 2024-06-24 16:52:12 +08:00 committed by Martin Roth
parent 7b12f93ad5
commit 377b133359
4 changed files with 1385 additions and 0 deletions

View File

@ -0,0 +1,48 @@
/** @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 __FSPUPD_H__
#define __FSPUPD_H__
#include <FspEas.h>
#pragma pack(1)
#define FSPT_UPD_SIGNATURE 0x545F445055434F53 /* 'SOCUPD_T' */
#define FSPM_UPD_SIGNATURE 0x4D5F445055434F53 /* 'SOCUPD_M' */
#define FSPS_UPD_SIGNATURE 0x535F445055434F53 /* 'SOCUPD_S' */
#pragma pack()
#endif

View File

@ -0,0 +1,907 @@
/** @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 __FSPMUPD_H__
#define __FSPMUPD_H__
#include <FspUpd.h>
#pragma pack(1)
#define MAX_CHANNEL 2 /* Maximum Number of Memory Channels */
#define MAX_DIMM 2 /* Maximum Number of DIMMs PER Memory Channel */
#define MAX_SPD_BYTES 512 /* Maximum Number of SPD bytes */
#define MAX_USB_PORTS 4
/*
* SMBIOS Memory Info structures.
*/
typedef struct {
UINT8 DimmId;
UINT32 SizeInMb;
UINT16 MfgId;
UINT8 ModulePartNum[20]; /* Module part number for DDR3 is 18 bytes however for DRR4 20 bytes as per JEDEC Spec, so reserving 20 bytes */
} DIMM_INFO;
typedef struct {
UINT8 ChannelId;
UINT8 DimmCount;
DIMM_INFO DimmInfo[MAX_DIMM];
} CHANNEL_INFO;
typedef struct {
UINT8 Revision;
UINT16 DataWidth;
/** As defined in SMBIOS 3.0 spec
Section 7.18.2 and Table 75
**/
UINT16 MemoryType;
UINT16 MemoryFrequencyInMHz;
/** As defined in SMBIOS 3.0 spec
Section 7.17.3 and Table 72
**/
UINT8 ErrorCorrectionType;
UINT8 ChannelCount;
CHANNEL_INFO ChannelInfo[MAX_CHANNEL];
} FSP_SMBIOS_MEMORY_INFO;
typedef struct {
UINT32 PerfSig;
UINT16 PerfLen;
UINT16 Reserved4;
UINT32 PerfIdx;
UINT64 PerfData[32];
} FSP_PERF_INFO;
#define BL_MAX_FIA_LANES 24
#define BL_FIA_LANE_OVERRIDE_DISABLED 0xff
#define BL_FIA_LANE_DISABLED 0x0
#define BL_FIA_LANE_PCIE 0x1
#define BL_FIA_LANE_SATA 0x2
#define BL_FIA_LANE_XHCI 0x3
#define BL_FIA_LANE_PCIE_ROOT_PORT_LINK_WIDTH_SET_BY_BICTRL 0x0
#define BL_FIA_LANE_PCIE_ROOT_PORT_LINK_WIDTH_X1 0x1
typedef struct {
UINT8 FiaLaneConfig[BL_MAX_FIA_LANES];
UINT8 FiaLaneLinkWidth[BL_MAX_FIA_LANES];
} BL_HSIO_INFORMATION;
/**
This structure holds the DLL configuration
register values that will be programmed by RC.
Those policies should be used by platform if default values
provided by RC are not sufficient to provide stable operation
at all supported speed modes. RC will blindly set the DLL values
as provided in this structure.
For help with obtaining valid DLL values for your platform please
contact enabling support.
**/
typedef struct {
UINT32 TxCmdDelayControl; // Offset 820h: Tx CMD Delay Control
UINT32 TxDataDelayControl1; // Offset 824h: Tx Data Delay Control 1
UINT32 TxDataDelayControl2; // Offset 828h: Tx Data Delay Control 2
UINT32 RxCmdDataDelayControl1; // Offset 82Ch: Rx CMD + Data Delay Control 1
UINT32 RxCmdDataDelayControl2; // Offset 834h: Rx CMD + Data Delay Control 2
UINT32 RxStrobeDelayControl; // Offset 830h: Rx Strobe Delay Control, valid only for eMMC
} BL_SCS_SD_DLL;
/**
Definition of FIA OVERRIDE STATUS HOB
Get/Set Status are defined by their respective Get/Set MeFiaMuxConfig functions called in PeiFiaMuxConfigInitLib.
FIA MUX configuration is based on platform design and generally set by soft straps.
FIA MUX configuration can change the generic lane assignment through the FSP UPDs to increase flexibility.
FIA_OVERRIDE_STATUS_HOB allows the FSP to provide the required feedback
on the update of the FIA MUX configuration to the customer's bootloader.
**/
typedef struct {
UINT32 FiaMuxConfigGetStatus; // Status returned by MeFiaMuxConfigGet (MeFiaMuxLib)
UINT32 FiaMuxConfigSetStatus; // Status returned by MeFiaMuxConfigSet (MeFiaMuxLib)
BOOLEAN FiaMuxConfigSetRequired; // Indicates that a set was required in the FIA lane assignment.
// FALSE = the requested config matched the existing one.
// TRUE = the requested config did not match the existing one.
} BL_FIA_OVERRIDE_STATUS_HOB;
//
// Data Types
//
#ifndef UINT64_STRUCT_T
#define UINT64_STRUCT_T
typedef union {
struct {
UINT32 Low;
UINT32 High;
} Data32;
UINT64 Data;
} BL_UINT64_STRUCT;
#endif // UINT64_STRUCT_T
///
/// RC version number structure.
///
typedef struct {
UINT8 Major;
UINT8 Minor;
UINT8 Revision;
UINT16 BuildNumber;
} BL_RC_VERSION;
#define BL_MAX_CHA_MAP 1
#define BL_MAX_FW_KTI_PORTS 3
#define BL_MAX_SOCKET 1
#define BL_NUMBER_PORTS_PER_SOCKET 5
#define BL_TYPE_MAX_MMIO_BAR 11
#define BL_MAX_IMC 1
#define BL_MAX_CH 2
#define BL_MAX_LOGIC_IIO_STACK 8
#define BL_MAX_IIO_STACK 6
#define BL_MaxIIO BL_MAX_SOCKET
#define BL_MC_MAX_NODE (BL_MAX_SOCKET * BL_MAX_IMC)
typedef struct {
UINT8 Valid; // TRUE, if the link is valid (i.e reached normal operation)
UINT8 PeerSocId; // Socket ID
UINT8 PeerSocType; // Socket Type (0 - CPU; 1 - IIO)
UINT8 PeerPort; // Port of the peer socket
}BL_QPI_PEER_DATA;
typedef struct {
UINT8 Valid;
UINT32 MmioBar[BL_TYPE_MAX_MMIO_BAR];
UINT8 PcieSegment;
BL_UINT64_STRUCT SegMmcfgBase;
UINT16 stackPresentBitmap;
UINT16 M2PciePresentBitmap;
UINT8 TotM3Kti;
UINT8 TotCha;
UINT32 ChaList[BL_MAX_CHA_MAP];
UINT32 SocId;
BL_QPI_PEER_DATA PeerInfo[BL_MAX_FW_KTI_PORTS]; // QPI LEP info
} BL_QPI_CPU_DATA;
typedef struct {
UINT8 Valid;
UINT8 SocId;
BL_QPI_PEER_DATA PeerInfo[BL_MAX_SOCKET]; // QPI LEP info
} BL_QPI_IIO_DATA;
typedef struct {
UINT8 Device;
UINT8 Function;
} BL_IIO_PORT_INFO;
typedef struct {
BL_IIO_PORT_INFO PortInfo[BL_NUMBER_PORTS_PER_SOCKET];
} BL_IIO_DMI_PCIE_INFO;
typedef struct _BL_STACK_RES {
UINT8 Personality; // Refer to BL_STACK_TYPE for the meaning of this field.
UINT8 BusBase;
UINT8 BusLimit;
UINT16 PciResourceIoBase;
UINT16 PciResourceIoLimit;
UINT32 IoApicBase;
UINT32 IoApicLimit;
UINT32 Mmio32Base; // Base of low MMIO configured for this stack in memory map
UINT32 Mmio32Limit; // Limit of low MMIO configured for this stack in memory map
UINT64 Mmio64Base; // Base of high MMIO configured for this stack in memory map
UINT64 Mmio64Limit; // Limit of high MMIO configured for this stack in memory map
UINT32 PciResourceMem32Base; // Base of low MMIO resource available for PCI devices
UINT32 PciResourceMem32Limit; // Limit of low MMIO resource available for PCI devices
UINT64 PciResourceMem64Base; // Base of high MMIO resource available for PCI devices
UINT64 PciResourceMem64Limit; // Limit of high MMIO resource available for PCI devices
UINT32 VtdBarAddress;
UINT32 Mmio32MinSize; // Minimum required size of MMIO32 resource needed for this stack
} BL_STACK_RES;
typedef struct {
UINT8 Valid;
UINT8 SocketID; // Socket ID of the IIO (0..3)
UINT8 BusBase;
UINT8 BusLimit;
UINT16 PciResourceIoBase;
UINT16 PciResourceIoLimit;
UINT32 IoApicBase;
UINT32 IoApicLimit;
UINT32 Mmio32Base; // Base of low MMIO configured for this socket in memory map
UINT32 Mmio32Limit; // Limit of low MMIO configured for this socket in memory map
UINT64 Mmio64Base; // Base of high MMIO configured for this socket in memory map
UINT64 Mmio64Limit; // Limit of high MMIO configured for this socket in memory map
BL_STACK_RES StackRes[BL_MAX_LOGIC_IIO_STACK];
UINT32 RcBaseAddress;
BL_IIO_DMI_PCIE_INFO PcieInfo;
UINT8 DmaDeviceCount;
} BL_IIO_RESOURCE_INSTANCE;
typedef struct {
UINT16 PlatGlobalIoBase; // Global IO Base
UINT16 PlatGlobalIoLimit; // Global IO Limit
UINT32 PlatGlobalMmio32Base; // Global Mmiol base
UINT32 PlatGlobalMmio32Limit; // Global Mmiol limit
UINT64 PlatGlobalMmio64Base; // Global Mmioh Base [43:0]
UINT64 PlatGlobalMmio64Limit; // Global Mmioh Limit [43:0]
BL_QPI_CPU_DATA CpuQpiInfo[BL_MAX_SOCKET]; // QPI related info per CPU
BL_QPI_IIO_DATA IioQpiInfo[BL_MAX_SOCKET]; // QPI related info per IIO
UINT32 MemTsegSize;
UINT32 MemIedSize;
UINT64 PciExpressBase;
UINT32 PciExpressSize;
UINT32 MemTolm;
BL_IIO_RESOURCE_INSTANCE IIO_resource[BL_MAX_SOCKET];
UINT8 numofIIO;
UINT8 MaxBusNumber;
UINT32 packageBspApicID[BL_MAX_SOCKET]; // This data array is valid only for SBSP, not for non-SBSP CPUs. <AS> for CpuSv
UINT8 EVMode;
UINT8 Pci64BitResourceAllocation;
UINT8 SkuPersonality[BL_MAX_SOCKET];
UINT8 VMDStackEnable[BL_MaxIIO][BL_MAX_IIO_STACK];
UINT16 IoGranularity;
UINT32 MmiolGranularity;
BL_UINT64_STRUCT MmiohGranularity;
UINT8 RemoteRequestThreshold; //5370389
UINT32 UboxMmioSize;
UINT32 MaxAddressBits;
} BL_PLATFORM_DATA;
typedef struct {
UINT8 CurrentUpiiLinkSpeed;// Current programmed UPI Link speed (Slow/Full speed mode)
UINT8 CurrentUpiLinkFrequency; // Current requested UPI Link frequency (in GT)
UINT8 OutKtiCpuSktHotPlugEn; // 0 - Disabled, 1 - Enabled for PM X2APIC
UINT32 OutKtiPerLinkL1En[BL_MAX_SOCKET]; // output kti link enabled status for PM
UINT8 IsocEnable;
UINT32 meRequestedSize; // Size of the memory range requested by ME FW, in MB
UINT32 ieRequestedSize; // Size of the memory range requested by IE FW, in MB
UINT8 DmiVc1;
UINT8 DmiVcm;
UINT32 CpuPCPSInfo;
UINT8 cpuSubType;
UINT8 SystemRasType;
UINT8 numCpus; // 1,..4. Total number of CPU packages installed and detected (1..4)by QPI RC
UINT16 tolmLimit;
UINT32 tohmLimit;
BL_RC_VERSION RcVersion;
BOOLEAN MsrTraceEnable;
UINT8 DdrXoverMode; // DDR 2.2 Mode
// For RAS
UINT8 bootMode;
UINT8 OutClusterOnDieEn; // Whether RC enabled COD support
UINT8 OutSncEn;
UINT8 OutNumOfCluster;
UINT8 imcEnabled[BL_MAX_SOCKET][BL_MAX_IMC];
UINT16 LlcSizeReg;
UINT8 chEnabled[BL_MAX_SOCKET][BL_MAX_CH];
UINT8 memNode[BL_MC_MAX_NODE];
UINT8 IoDcMode;
UINT8 DfxRstCplBitsEn;
} BL_SYSTEM_STATUS;
typedef struct {
BL_PLATFORM_DATA PlatformData;
BL_SYSTEM_STATUS SystemStatus;
} BL_IIO_UDS;
//PCI MMIO and IO resource reconfiguration
typedef struct {
UINT16 IoBase; // Base of I/O range assigned to entity
UINT16 IoLimit; // Limit of I/O range assigned to entity
UINT32 LowMmioBase; // Base of low MMIO region for entity
UINT32 LowMmioLimit; // Limit of low MMIO region for entity
UINT64 HighMmioBase; // Base of high (64-bit) MMIO region for entity
UINT64 HighMmioLimit; // Limit of high (64-bit) MMIO region for entity
} BL_PCI_BASE_LIMITS;
typedef struct {
BL_PCI_BASE_LIMITS StackLimits[BL_MAX_LOGIC_IIO_STACK]; // Base and Limit of all PCIe resources for each stack of the socket
} BL_SOCKET_PCI_BASE_LIMITS;
typedef struct {
BL_SOCKET_PCI_BASE_LIMITS Socket[BL_MAX_SOCKET]; // Base and limit of all PCIe resources for each socket
} BL_SYSTEM_PCI_BASE_LIMITS;
typedef enum {
BL_TYPE_UBOX = 0,
BL_TYPE_UBOX_IIO,
BL_TYPE_MCP,
BL_TYPE_FPGA,
BL_TYPE_HFI,
BL_TYPE_NAC,
BL_TYPE_GRAPHICS,
BL_TYPE_DINO,
BL_TYPE_RESERVED,
BL_TYPE_DISABLED, // This item must be prior to stack specific disable types
BL_TYPE_UBOX_IIO_DIS,
BL_TYPE_MCP_DIS,
BL_TYPE_FPGA_DIS,
BL_TYPE_HFI_DIS,
BL_TYPE_NAC_DIS,
BL_TYPE_GRAPHICS_DIS,
BL_TYPE_DINO_DIS,
BL_TYPE_RESERVED_DIS,
BL_TYPE_NONE
} BL_STACK_TYPE; // This enumeration defines the "Personality" of a given stack.
/** FSP-M Configuration
**/
typedef struct {
/** Offset 0x0040 - Enable BIOS SSA RMT
Enables/Disables SSA RMT. Please refer to the Integration guide for RMT details.
$EN_DIS
**/
UINT8 PcdEnableBiosSsaRMT;
/** Offset 0x0041 - Enable BIOS SSA RMT on Fast Cold Boot
Enables/Disables SSA RMT on a Fast Cold Boot
$EN_DIS
**/
UINT8 PcdEnableBiosSsaRMTonFCB;
/** Offset 0x0042 - Enable RMT per Bit Margining
Enables/Disables Per Bit Margining
$EN_DIS
**/
UINT8 PcdBiosSsaPerBitMargining;
/** Offset 0x0043 - Enable SSA Tables Display
Enables/Disables displaying results as tables
$EN_DIS
**/
UINT8 PcdBiosSsaDisplayTables;
/** Offset 0x0044 - Enable SSA Plot Display
Enables/Disables the display of per bit results as plots
$EN_DIS
**/
UINT8 PcdBiosSsaPerDisplayPlots;
/** Offset 0x0045 - Loop count for rank test
Exponential loop count for a single rank test
**/
UINT8 PcdBiosSsaLoopCount;
/** Offset 0x0046 - Enable Backside Margining
Enables/Disables margin test on the register or buffer backside
$EN_DIS
**/
UINT8 PcdBiosSsaBacksideMargining;
/** Offset 0x0047 - Enable Early Read ID Margining
Enables/Disables PMem Early Read Id Test
$EN_DIS
**/
UINT8 PcdBiosSsaEarlyReadIdMargining;
/** Offset 0x0048 - Enable Step Size Override
Enables/Disables overriding the default step sizes
$EN_DIS
**/
UINT8 PcdBiosSsaStepSizeOverride;
/** Offset 0x0049 - Step size RxDqs
Step size of RxDqs. Auto:1. Supported values : 1,2,4,8. This option is valid only
if 'Enable Step size override' is Enabled
1:1, 2:2, 4:4, 8:8
**/
UINT8 PcdBiosSsaRxDqs;
/** Offset 0x004A - Step size RxVrefs
Step size of RxVrefs. Auto:1. Supported values : 1,2,4,8. This option is valid only
if 'Enable Step size override' is Enabled
1:1, 2:2, 4:4, 8:8
**/
UINT8 PcdBiosSsaRxVref;
/** Offset 0x004B - Step size TxDqs
Step size of TxDqs. Auto:1. Supported values : 1,2,4,8. This option is valid only
if 'Enable Step size override' is Enabled
1:1, 2:2, 4:4, 8:8
**/
UINT8 PcdBiosSsaTxDq;
/** Offset 0x004C - Step size TxVrefs
Step size of TxVrefs. Auto:1. Supported values : 1,2,4,8. This option is valid only
if 'Enable Step size override' is Enabled
1:1, 2:2, 4:4, 8:8
**/
UINT8 PcdBiosSsaTxVref;
/** Offset 0x004D - Step size CmdAll
Step size of CmdAll. Auto:1. Supported values : 1,2,4,8. This option is valid only
if 'Enable Step size override' is Enabled
1:1, 2:2, 4:4, 8:8
**/
UINT8 PcdBiosSsaCmdAll;
/** Offset 0x004E - Step size CmdVref
Step size of CmdVref. Auto:1. Supported values : 1,2,4,8. This option is valid only
if 'Enable Step size override' is Enabled
1:1, 2:2, 4:4, 8:8
**/
UINT8 PcdBiosSsaCmdVref;
/** Offset 0x004F - Step size CtlAll
Step size of CtlAll. Auto:1. Supported values : 1,2,4,8. This option is valid only
if 'Enable Step size override' is Enabled
1:1, 2:2, 4:4, 8:8
**/
UINT8 PcdBiosSsaCtlAll;
/** Offset 0x0050 - Step size EridDelay
Step size of EridDelay. Auto:1. Supported values : 1,2,4,8. This option is valid
only if 'Enable Step size override' is Enabled
1:1, 2:2, 4:4, 8:8
**/
UINT8 PcdBiosSsaEridDelay;
/** Offset 0x0051 - Step size EridVref
Step size of EridVref. Auto:1. Supported values : 1,2,4,8. This option is valid
only if 'Enable Step size override' is Enabled
1:1, 2:2, 4:4, 8:8
**/
UINT8 PcdBiosSsaEridVref;
/** Offset 0x0052 - Enable SSA RMT Debug Message
Enables the BSSA RMT debug messages
2:Disable, 5:Enable
**/
UINT8 PcdBiosSsaDebugMessages;
/** Offset 0x0053
**/
UINT8 UnusedUpdSpace0[13];
/** Offset 0x0060 - ECC Support
Enable/disable ECC Support.
$EN_DIS
**/
UINT8 PcdEccSupport;
/** Offset 0x0061 - Fast Boot
Enable/Disable Fast Boot.
0:Disabled,1:Enabled
**/
UINT8 PcdFastBoot;
/** Offset 0x0062 - Memory Test
Enable/Disable Memory Test.
$EN_DIS
**/
UINT8 PcdMemTest;
/** Offset 0x0063 - Memory Turnaround Time Optimization
Enable/Disable Memory turnaround time optimization.
$EN_DIS
**/
UINT8 PcdMemTurnaroundOpt;
/** Offset 0x0064 - Memory Frequency
Set DDR Memory Frequency Limit
0: AUTO, 4:1200, 5:1333, 6:1400, 7:1600, 8:1800, 9:1866, 11:2133, 12:2200, 13:2400,
14:2600, 15:2666, 16:2800, 17: 2933
**/
UINT8 PcdDdrFreq;
/** Offset 0x0065 - Memory Command Timing
Select the desired memory controller command timing
0:Auto, 1:1N, 2:2N, 3:3N
**/
UINT8 PcdCommandTiming;
/** Offset 0x0066 - Memory Custom Refresh Rate
Set Desired rate in 0.1x units of the standard 7.8 usec interval. The valid range
is 20 - 80(i.e. 2x to 8x)
**/
UINT8 PcdCustomRefreshRate;
/** Offset 0x0067 - TSEG size
Configure TSEG size in MB.
1:8M, 2:16M, 3:32M, 4:64M, 5:128M
**/
UINT8 PcdTsegSize;
/** Offset 0x0068
**/
UINT8 UnusedUpdSpace1[40];
/** Offset 0x0090 - HSUART Device
Select the PCI High Speed UART Device for Serial Port.
0:HSUART0, 1:HSUART1, 2:HSUART2
**/
UINT8 PcdHsuartDevice;
/** Offset 0x0091 - ME Heci Communication
Enable/Disable ME Heci Communication.
0:Disabled,1:Enabled
**/
UINT8 PcdHeciCommunication;
/** Offset 0x0092 - Virtualization Technology for Directed I/O
Enable/Disable Virtualization Technology for Directed I/O.
$EN_DIS
**/
UINT8 PcdVtdSupport;
/** Offset 0x0093 - Enable USB3 Ports
Enable/Disable per USB3 Ports. One byte for each port, byte0 for port0, byte1 for
port1 and so on.
**/
UINT32 PcdPchUsb3Port;
/** Offset 0x0097 - Enable USB2 Ports
Enable/Disable per USB2 Ports. One byte for each port, byte0 for port0, byte1 for
port1 and so on.
**/
UINT32 PcdPchUsb2Port;
/** Offset 0x009B - Enable USB3 Port Over Current Configuration
Enable over current pin assignment per USB3 port. 0xFF mean skip over current pin.
One byte for each port, byte0 for port0, byte1 for port1 and so on
**/
UINT32 PcdPchUsb3PortOc;
/** Offset 0x009F - Enable USB2 Port Over Current Configuration
Enable over current pin assignment per USB2 port. 0xFF mean skip over current pin.
One byte for each port, byte0 for port0, byte1 for port1 and so on
**/
UINT32 PcdPchUsb2PortOc;
/** Offset 0x00A3 - USB2 Per Port HS Pre-emphasis Bias
USB2 Per Port HS Pre-emphasis Bias. 000b - 0mV, 001b - 11.25mV, 010b - 16.9mV, 011b
- 28.15mV, 100b - 28.15mV, 101b - 39.35mV, 110b - 45mV, 111b - 56.3mV. One byte
for each port.
**/
UINT32 PcdUsb2PeTxiSet;
/** Offset 0x00A7 - USB2 Per Port HS Transmitter Bias
USB2 Per Port HS Transmitter Bias. 000b - 0mV, 001b - 11.25mV, 010b - 16.9mV, 011b
- 28.15mV, 100b - 28.15mV, 101b - 39.35mV, 110b - 45mV, 111b - 56.3mV. One byte
for each port.
**/
UINT32 PcdUsb2TxiSet;
/** Offset 0x00AB - USB2 Per Port HS Transmitter Emphasis
USB2 Per Port HS Transmitter Emphasis. 00b - Emphasis OFF, 01b - De-emphasis ON,
10b - Pre-emphasis ON, 11b - Pre-emphasis & De-emphasis ON. One byte for each port.
**/
UINT32 PcdUsb2PreDeEmp;
/** Offset 0x00AF - USB2 Per Port Half Bit Pre-emphasis
USB2 Per Port Half Bit Pre-emphasis. 1b - half-bit pre-emphasis, 0b - full-bit pre-emphasis.
One byte for each port.
**/
UINT32 PcdUsb2PreEmpHalfBit;
/** Offset 0x00B3 - IIO PCIe Port 1 Bifurcation
IIO PCI Express port bifurcation for selected slot(s).
0xFF:Auto, 0:X4X4X4X4, 1:X4X4X8, 2:X8X4X4, 3:X8X8, 4:X16
**/
UINT8 PcdIIOPciePortBifurcation;
/** Offset 0x00B4 - IIO PCIe R-Link DeEmphasis
Desired DeEmphasis level for IIO PCIe R-Link
0:6dB, 1:3.5dB
**/
UINT8 PcdIIoPcieRLinkDeEmphasis;
/** Offset 0x00B5 - IIO PCIe Port 1A DeEmphasis
Desired DeEmphasis level for IIO PCIe Port 1A
0:6dB, 1:3.5dB
**/
UINT8 PcdIIoPciePort1ADeEmphasis;
/** Offset 0x00B6 - IIO PCIe Port 1B DeEmphasis
Desired DeEmphasis level for IIO PCIe Port 1B
0:6dB, 1:3.5dB
**/
UINT8 PcdIIoPciePort1BDeEmphasis;
/** Offset 0x00B7 - IIO PCIe Port 1C DeEmphasis
Desired DeEmphasis level for IIO PCIe Port 1C
0:6dB, 1:3.5dB
**/
UINT8 PcdIIoPciePort1CDeEmphasis;
/** Offset 0x00B8 - IIO PCIe Port 1D DeEmphasis
Desired DeEmphasis level for IIO PCIe Port 1D
0:6dB, 1:3.5dB
**/
UINT8 PcdIIoPciePort1DDeEmphasis;
/** Offset 0x00B9 - IIO PCIe R-Link Link Speed
Desired Link Speed for IIO PCIe R-Link
1:GEN1, 2:GEN2, 3:GEN3
**/
UINT8 PcdIIoPcieLinkSpeedRLink;
/** Offset 0x00BA - IIO PCIe Port 1A Link Speed
Desired Link Speed for IIO PCIe Port 1A
1:GEN1, 2:GEN2, 3:GEN3
**/
UINT8 PcdIIoPciePort1ALinkSpeed;
/** Offset 0x00BB - IIO PCIe Port 1B Link Speed
Desired Link Speed for IIO PCIe Port 1B
1:GEN1, 2:GEN2, 3:GEN3
**/
UINT8 PcdIIoPciePort1BLinkSpeed;
/** Offset 0x00BC - IIO PCIe Port 1C Link Speed
Desired Link Speed for IIO PCIe Port 1C
1:GEN1, 2:GEN2, 3:GEN3
**/
UINT8 PcdIIoPciePort1CLinkSpeed;
/** Offset 0x00BD - IIO PCIe Port 1D Link Speed
Desired Link Speed for IIO PCIe Port 1D
1:GEN1, 2:GEN2, 3:GEN3
**/
UINT8 PcdIIoPciePort1DLinkSpeed;
/** Offset 0x00BE - IIO PCIe R-Link Aspm
Desired Active state power management settings for IIO PCIe R-Link
0:Disabled,2:L1
**/
UINT8 PcdIIoPcieRLinkAspm;
/** Offset 0x00BF - IIO PCIe Port 1A Aspm
Desired Active state power management settings for IIO PCIe Port 1A
0:Disabled,2:L1
**/
UINT8 PcdIIoPciePort1AAspm;
/** Offset 0x00C0 - IIO PCIe Port 1B Aspm
Desired Active state power management settings for IIO PCIe Port 1B
0:Disabled,2:L1
**/
UINT8 PcdIIoPciePort1BAspm;
/** Offset 0x00C1 - IIO PCIe Port 1C Aspm
Desired Active state power management settings for IIO PCIe Port 1C
0:Disabled,2:L1
**/
UINT8 PcdIIoPciePort1CAspm;
/** Offset 0x00C2 - IIO PCIe Port 1D Aspm
Desired Active state power management settings for IIO PCIe Port 1D
0:Disabled,2:L1
**/
UINT8 PcdIIoPciePort1DAspm;
/** Offset 0x00C3 - PCH PCIe Controller 0 Bifurcation
Configure PCI Express controller 0 bifurcation.
0: Auto, 5:4x2, 6:1x4 2x2, 7:2x2 1x4, 8:2x4, 9:1x8
**/
UINT8 PcdBifurcationPcie0;
/** Offset 0x00C4 - PCH PCIe Controller 2 Bifurcation
Configure PCI Express controller 2 bifurcation.
0: Auto, 5:4x2, 6:1x4 2x2, 7:2x2 1x4, 8:2x4, 9:1x8
**/
UINT8 PcdBifurcationPcie2;
/** Offset 0x00C5
**/
UINT8 UnusedUpdSpace2[107];
/** Offset 0x0130 - Customer Revision
The Customer can set this revision string for their own purpose.
**/
UINT8 PcdCustomerRevision[32];
/** Offset 0x0150 - Memory Thermal Throttling
Enable/disable Memory Thermal Throttling
0:Disabled,2:Enabled
**/
UINT8 PcdMemoryThermalThrottling;
/** Offset 0x0151
**/
UINT8 UnusedUpdSpace3;
/** Offset 0x0152
**/
UINT8 PcdFiaMuxOverride;
/** Offset 0x0153
**/
UINT8 FiaMuxCfgInvalidate;
/** Offset 0x0154
**/
UINT8 UnusedUpdSpace4[3];
/** Offset 0x0157 - PCH Trace Hub Enable Mode
Select Host or Target for Trace Hub debugger tool. Refer to Integration guide.
0:Disable, 1:Target debugger, 2:Host debugger
**/
UINT8 PcdPchTraceHubMode;
/** Offset 0x0158 - PCH TH Mem Buffer Size 0
Select size of memory region 0 buffer. Refer to Integration guide.
0:None/OS, 1:1 MB, 2:8 MB, 3:64 MB, 4:128 MB, 5:256 MB, 6:512 MB
**/
UINT8 PcdPchTraceHubMemReg0Size;
/** Offset 0x0159 - PCH TH Mem Buffer Size 1
Select size of memory region 1 buffer. Refer to Integration guide
0:None/OS, 1:1 MB, 2:8 MB, 3:64 MB, 4:128 MB, 5:256 MB, 6:512 MB
**/
UINT8 PcdPchTraceHubMemReg1Size;
/** Offset 0x015A
**/
UINT8 UnusedUpdSpace5;
/** Offset 0x015B - IMR3 Enable
Enable/Disable IMR3 .Default is Disabled .Refer to Integration guide
$EN_DIS
**/
UINT8 PcdEnableIMR3;
/** Offset 0x015C - Processor X2APIC Enable
Enable / Disable Processor X2APIC. Refer to Integration guide
$EN_DIS
**/
UINT8 PcdProcessorX2Apic;
/** Offset 0x015D - Hyper Threading Enable/Disable
Enable or Disable Hyper Threading; 0: Disable; <b>1: Enable</b>
$EN_DIS
**/
UINT8 PcdHyperThreading;
/** Offset 0x015E - PCIe Hot Plug Enable
Enable / Disable PCIe Hot Plug.
$EN_DIS
**/
UINT8 PcdPcieHotPlugEnable;
/** Offset 0x015F - PCIe Acpi Hot Plug Enable
Enable / Disable PCIe Acpi Hot Plug.
$EN_DIS
**/
UINT8 PcdPcieAcpiHotPlugEnable;
/** Offset 0x0160
**/
UINT8 UnusedUpdSpace6;
/** Offset 0x0161 - IIO PCIe Port 1A Hot Plug Capable
Hot Plug Capable for IIO PCIe Port 1A
0:Disable, 1:Enable
**/
UINT8 PcdIIoPciePort1AHPCapable;
/** Offset 0x0162 - IIO PCIe Port 1B Hot Plug Capable
Hot Plug Capable for IIO PCIe Port 1B
0:Disable, 1:Enable
**/
UINT8 PcdIIoPciePort1BHPCapable;
/** Offset 0x0163 - IIO PCIe Port 1C Hot Plug Capable
Hot Plug Capable for IIO PCIe Port 1C
0:Disable, 1:Enable
**/
UINT8 PcdIIoPciePort1CHPCapable;
/** Offset 0x0164 - IIO PCIe Port 1D Hot Plug Capable
Hot Plug Capable for IIO PCIe Port 1D
0:Disable, 1:Enable
**/
UINT8 PcdIIoPciePort1DHPCapable;
/** Offset 0x0165
**/
UINT8 UnusedUpdSpace7;
/** Offset 0x0166 - IIO PCIe Port 1A Hot Plug Surprise
Enable / Disable Hot Plug Capable Surprise for IIO PCIe Port 1A
$EN_DIS
**/
UINT8 PcdIIoPciePort1AHPSurprise;
/** Offset 0x0167 - IIO PCIe Port 1B Hot Plug Surprise
Enable / Disable Hot Plug Capable Surprise for IIO PCIe Port 1B
$EN_DIS
**/
UINT8 PcdIIoPciePort1BHPSurprise;
/** Offset 0x0168 - IIO PCIe Port 1C Hot Plug Surprise
Enable / Disable Hot Plug Capable Surprise for IIO PCIe Port 1C
$EN_DIS
**/
UINT8 PcdIIoPciePort1CHPSurprise;
/** Offset 0x0169 - IIO PCIe Port 1D Hot Plug Surprise
Enable / Disable Hot Plug Capable Surprise for IIO PCIe Port 1D
$EN_DIS
**/
UINT8 PcdIIoPciePort1DHPSurprise;
/** Offset 0x016A
**/
UINT8 UnusedUpdSpace8[102];
/** Offset 0x01D0
**/
UINT32 PcdIioResConfigPtr;
/** Offset 0x01D4
**/
UINT32 PcdFiaLaneConfigPtr;
/** Offset 0x01D8
**/
UINT32 PcdKtiBufferPtr;
/** Offset 0x01DC
**/
UINT32 PcdMemSpdPtr;
/** Offset 0x01E0
**/
UINT8 ReservedMemoryInitUpd[16];
} FSP_M_CONFIG;
/** Fsp M UPD Configuration
**/
typedef struct {
/** Offset 0x0000
**/
FSP_UPD_HEADER FspUpdHeader;
/** Offset 0x0020
**/
FSPM_ARCH_UPD FspmArchUpd;
/** Offset 0x0040
**/
FSP_M_CONFIG FspmConfig;
/** Offset 0x01F0
**/
UINT8 UnusedUpdSpace9[14];
/** Offset 0x01FE
**/
UINT16 UpdTerminator;
} FSPM_UPD;
#pragma pack()
#endif

View File

@ -0,0 +1,337 @@
/** @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 __FSPSUPD_H__
#define __FSPSUPD_H__
#include <FspUpd.h>
#pragma pack(1)
/** FSP-S Configuration
**/
typedef struct {
/** Offset 0x0020
**/
UINT32 PcdCpuMicrocodePatchBase;
/** Offset 0x0024
**/
UINT32 PcdCpuMicrocodePatchSize;
/** Offset 0x0028 - SATA Controllers
Enable/disable SATA Controller. Byte 0,2 is for SATA controller 0,2 respectively.
Byte1 and 4 are unused
**/
UINT32 PcdEnableSATA;
/** Offset 0x002C - SATA port Enable for Controller 0
0:Disabled , 1: Enabled . Each one of 8 ports are represented by a nibble . for
example : nibble 0 controls port 0 , nibble 1 controls port 1
**/
UINT32 PcdSATA0PortEnable;
/** Offset 0x0030 - SATA port HotPlug capability for Controller 0
0:Disabled , 1: Enabled . Each one of 8 ports are represented by a nibble . for
example : nibble 0 controls port 0 , nibble 1 controls port 1
**/
UINT32 PcdSATA0PortHotplug;
/** Offset 0x0034 - SATA port Enable for Controller 2
0:Disabled , 1: Enabled . Each one of 8 ports are represented by a nibble . for
example : nibble 0 controls port 0 , nibble 1 controls port 1
**/
UINT32 PcdSATA2PortEnable;
/** Offset 0x0038 - SATA port HotPlug capability for Controller 2
0:Disabled , 1: Enabled . Each one of 8 ports are represented by a nibble . for
example : nibble 0 controls port 0 , nibble 1 controls port 1
**/
UINT32 PcdSATA2PortHotplug;
/** Offset 0x003C - EMMC controller
Enable/Disable EMMC controller.
$EN_DIS
**/
UINT8 PcdEmmc;
/** Offset 0x003D - EMMC HS400 Support
Enable/Disable EMMC HS400 Support.
$EN_DIS
**/
UINT8 PcdEmmcHS400Support;
/** Offset 0x003E - PCH PCIe Root Port 0 Link Speed
Desired Link Speed level for PCIe Root Port 0
1:GEN1, 2:GEN2, 3:GEN3
**/
UINT8 PcdPcieRootPort0LinkSpeed;
/** Offset 0x003F - PCH PCIe Root Port 1 Link Speed
Desired Link Speed level for PCIe Root Port 1
1:GEN1, 2:GEN2, 3:GEN3
**/
UINT8 PcdPcieRootPort1LinkSpeed;
/** Offset 0x0040 - PCH PCIe Root Port 2 Link Speed
Desired Link Speed level for PCIe Root Port 0
1:GEN1, 2:GEN2, 3:GEN3
**/
UINT8 PcdPcieRootPort2LinkSpeed;
/** Offset 0x0041 - PCH PCIe Root Port 3 Link Speed
Desired Link Speed level for PCIe Root Port 3
1:GEN1, 2:GEN2, 3:GEN3
**/
UINT8 PcdPcieRootPort3LinkSpeed;
/** Offset 0x0042 - PCH PCIe Root Port 8 Link Speed
Desired Link Speed level for PCIe Root Port 8
1:GEN1, 2:GEN2, 3:GEN3
**/
UINT8 PcdPcieRootPort8LinkSpeed;
/** Offset 0x0043 - PCH PCIe Root Port 9 Link Speed
Desired Link Speed level for PCIe Root Port 9
1:GEN1, 2:GEN2, 3:GEN3
**/
UINT8 PcdPcieRootPort9LinkSpeed;
/** Offset 0x0044 - PCH PCIe Root Port 10 Link Speed
Desired Link Speed level for PCIe Root Port 10
1:GEN1, 2:GEN2, 3:GEN3
**/
UINT8 PcdPcieRootPort10LinkSpeed;
/** Offset 0x0045 - PCH PCIe Root Port 11 Link Speed
Desired Link Speed level for PCIe Root Port 11
1:GEN1, 2:GEN2, 3:GEN3
**/
UINT8 PcdPcieRootPort11LinkSpeed;
/** Offset 0x0046 - PCH PCIe Root Port 0 Aspm
Desired Active state power management settings for PCIe Root Port 0
0:Disabled, 1:L0, 2:L1, 3:L0SL1
**/
UINT8 PcdPcieRootPort0Aspm;
/** Offset 0x0047 - PCH PCIe Root Port 1 Aspm
Desired Active state power management settings for PCIe Root Port 1
0:Disabled, 1:L0, 2:L1, 3:L0SL1
**/
UINT8 PcdPcieRootPort1Aspm;
/** Offset 0x0048 - PCH PCIe Root Port 2 Aspm
Desired Active state power management settings for PCIe Root Port 2
0:Disabled, 1:L0, 2:L1, 3:L0SL1
**/
UINT8 PcdPcieRootPort2Aspm;
/** Offset 0x0049 - PCH PCIe Root Port 3 Aspm
Desired Active state power management settings for PCIe Root Port 3
0:Disabled, 1:L0, 2:L1, 3:L0SL1
**/
UINT8 PcdPcieRootPort3Aspm;
/** Offset 0x004A - PCH PCIe Root Port 8 Aspm
Desired Active state power management settings for PCIe Root Port 8
0:Disabled, 1:L0, 2:L1, 3:L0SL1
**/
UINT8 PcdPcieRootPort8Aspm;
/** Offset 0x004B - PCH PCIe Root Port 9 Aspm
Desired Active state power management settings for PCIe Root Port 9
0:Disabled, 1:L0, 2:L1, 3:L0SL1
**/
UINT8 PcdPcieRootPort9Aspm;
/** Offset 0x004C - PCH PCIe Root Port 10 Aspm
Desired Active state power management settings for PCIe Root Port 10
0:Disabled, 1:L0, 2:L1, 3:L0SL1
**/
UINT8 PcdPcieRootPort10Aspm;
/** Offset 0x004D - PCH PCIe Root Port 11 Aspm
Desired Active state power management settings for PCIe Root Port 11
0:Disabled, 1:L0, 2:L1, 3:L0SL1
**/
UINT8 PcdPcieRootPort11Aspm;
/** Offset 0x004E - PCH PCIe Root Port 0 Connection Type
Set Connection Type for PCIe Root Port 0. PCIe Root Port 0 Hotplug enable forces
connection type to Slot.
0:Built-In, 1:Slot
**/
UINT8 PcdPcieRootPort0ConnectionType;
/** Offset 0x004F - PCH PCIe Root Port 1 Connection Type
Set Connection Type for PCIe Root Port 1. PCIe Root Port 1 Hotplug enable forces
connection type to Slot.
0:Built-In, 1:Slot
**/
UINT8 PcdPcieRootPort1ConnectionType;
/** Offset 0x0050 - PCH PCIe Root Port 2 Connection Type
Set Connection Type for PCIe Root Port 2. PCIe Root Port 2 Hotplug enable forces
connection type to Slot.
0:Built-In, 1:Slot
**/
UINT8 PcdPcieRootPort2ConnectionType;
/** Offset 0x0051 - PCH PCIe Root Port 3 Connection Type
Set Connection Type for PCIe Root Port 3. PCIe Root Port 3 Hotplug enable forces
connection type to Slot.
0:Built-In, 1:Slot
**/
UINT8 PcdPcieRootPort3ConnectionType;
/** Offset 0x0052 - PCH PCIe Root Port 8 Connection Type
Set Connection Type for PCIe Root Port 8. PCIe Root Port 8 Hotplug enable forces
connection type to Slot.
0:Built-In, 1:Slot
**/
UINT8 PcdPcieRootPort8ConnectionType;
/** Offset 0x0053 - PCH PCIe Root Port 9 Connection Type
Set Connection Type for PCIe Root Port 9. PCIe Root Port 9 Hotplug enable forces
connection type to Slot.
0:Built-In, 1:Slot
**/
UINT8 PcdPcieRootPort9ConnectionType;
/** Offset 0x0054 - PCH PCIe Root Port 10 Connection Type
Set Connection Type for PCIe Root Port 10. PCIe Root Port 10 Hotplug enable forces
connection type to Slot.
0:Built-In, 1:Slot
**/
UINT8 PcdPcieRootPort10ConnectionType;
/** Offset 0x0055 - PCH PCIe Root Port 11 Connection Type
Set Connection Type for PCIe Root Port 11. PCIe Root Port 11 Hotplug enable forces
connection type to Slot.
0:Built-In, 1:Slot
**/
UINT8 PcdPcieRootPort11ConnectionType;
/** Offset 0x0056 - PCH PCIe Root Port 0 HotPlug
Enable/Disable HotPlug for PCIe Root Port 0
$EN_DIS
**/
UINT8 PcdPcieRootPort0HotPlug;
/** Offset 0x0057 - PCH PCIe Root Port 1 HotPlug
Enable/Disable HotPlug for PCIe Root Port 1
$EN_DIS
**/
UINT8 PcdPcieRootPort1HotPlug;
/** Offset 0x0058 - PCH PCIe Root Port 2 HotPlug
Enable/Disable HotPlug for PCIe Root Port 2
$EN_DIS
**/
UINT8 PcdPcieRootPort2HotPlug;
/** Offset 0x0059 - PCH PCIe Root Port 3 HotPlug
Enable/Disable HotPlug for PCIe Root Port 3
$EN_DIS
**/
UINT8 PcdPcieRootPort3HotPlug;
/** Offset 0x005A - PCH PCIe Root Port 8 HotPlug
Enable/Disable HotPlug for PCIe Root Port 8
$EN_DIS
**/
UINT8 PcdPcieRootPort8HotPlug;
/** Offset 0x005B - PCH PCIe Root Port 9 HotPlug
Enable/Disable HotPlug for PCIe Root Port 9
$EN_DIS
**/
UINT8 PcdPcieRootPort9HotPlug;
/** Offset 0x005C - PCH PCIe Root Port 10 HotPlug
Enable/Disable HotPlug for PCIe Root Port 10
$EN_DIS
**/
UINT8 PcdPcieRootPort10HotPlug;
/** Offset 0x005D - PCH PCIe Root Port 11 HotPlug
Enable/Disable HotPlug for PCIe Root Port 11
$EN_DIS
**/
UINT8 PcdPcieRootPort11HotPlug;
/** Offset 0x005E - IO-APIC 24-119 RTE
Enable/Disable IO APIC entries 24-119
$EN_DIS
**/
UINT8 PcdPchIoApic24119Entries;
/** Offset 0x005F
**/
UINT8 UnusedUpdSpace0[125];
/** Offset 0x00DC
**/
UINT32 PcdEMMCDLLConfigPtr;
/** Offset 0x00E0
**/
UINT8 ReservedSiliconInitUpd[16];
} FSP_S_CONFIG;
/** Fsp S UPD Configuration
**/
typedef struct {
/** Offset 0x0000
**/
FSP_UPD_HEADER FspUpdHeader;
/** Offset 0x0020
**/
FSP_S_CONFIG FspsConfig;
/** Offset 0x00F0
**/
UINT8 UnusedUpdSpace1[14];
/** Offset 0x00FE
**/
UINT16 UpdTerminator;
} FSPS_UPD;
#pragma pack()
#endif

View File

@ -0,0 +1,93 @@
/** @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 __FSPTUPD_H__
#define __FSPTUPD_H__
#include <FspUpd.h>
#pragma pack(1)
/** FSP-T Core UPD
**/
typedef struct {
/** Offset 0x0020
**/
UINT32 MicrocodeRegionBase;
/** Offset 0x0024
**/
UINT32 MicrocodeRegionLength;
/** Offset 0x0028
**/
UINT32 CodeRegionBase;
/** Offset 0x002C
**/
UINT32 CodeRegionLength;
/** Offset 0x0030
**/
UINT8 Reserved1[16];
} FSPT_CORE_UPD;
/** Fsp T UPD Configuration
**/
typedef struct {
/** Offset 0x0000
**/
FSP_UPD_HEADER FspUpdHeader;
/** Offset 0x0020
**/
FSPT_CORE_UPD FsptCoreUpd;
/** Offset 0x0040
**/
UINT8 ReservedTempRamInitUpd[32];
/** Offset 0x0060
**/
UINT8 UnusedUpdSpace0[30];
/** Offset 0x007E
**/
UINT16 UpdTerminator;
} FSPT_UPD;
#pragma pack()
#endif