summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJincheng Li <jincheng.li@intel.com>2024-09-07 14:13:57 +0800
committerLean Sheng Tan <sheng.tan@9elements.com>2024-09-13 11:09:57 +0000
commite626a4b0c07127366fea5112997c2eca62f5ff5b (patch)
tree41f5efc63cf7997ea04bbb91e792678a91a106b5
parent2f56049778bc98b0d215763c4f1d5d6bb6412e9f (diff)
vc/intel/fsp/fsp2_0/graniterapids: Update FSP headers
FSP n-1 headers in vc/intel/fsp/fsp2_0/graniterapid are updated to pass compilation with full platform codes. Change-Id: I1d13ddd4db8409a4928bd1bf152a9c284d138e48 Signed-off-by: Jincheng Li <jincheng.li@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/84303 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
-rw-r--r--src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/FspAcpiHobs.h6
-rw-r--r--src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/FspEdpcParam.h69
-rw-r--r--src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/FspiUpd.h34
-rw-r--r--src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/IioPcieConfigUpd.h33
-rw-r--r--src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/IioUniversalDataHob.h12
-rw-r--r--src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/MemoryMapDataHob.h2
-rw-r--r--src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/FspAcpiHobs.h6
-rw-r--r--src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/FspEdpcParam.h69
-rw-r--r--src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/FspiUpd.h34
-rw-r--r--src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/IioPcieConfigUpd.h33
-rw-r--r--src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/IioUniversalDataHob.h13
-rw-r--r--src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/MemoryMapDataHob.h2
12 files changed, 304 insertions, 9 deletions
diff --git a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/FspAcpiHobs.h b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/FspAcpiHobs.h
index 7338538e13..6d5ba0a37b 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/FspAcpiHobs.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/FspAcpiHobs.h
@@ -31,4 +31,10 @@ are permitted provided that the following conditions are met:
#ifndef _FSP_ACPI_HOBS_H_
#define _FSP_ACPI_HOBS_H_
+//Typecast HOB pointer to ACPI CXL CEDT table structure
+#define FSP_CXL_CEDT_ACPI_HOB_GUID { 0x5CB7A12A, 0x8B2D, 0x485A, { 0xB7, 0x04, 0xC0, 0x52, 0x49, 0x56, 0x81, 0xE7 } }
+
+//Typecast HOB pointer to RAS_ACPI_PARAM_HOB_DATA;
+#define RAS_ACPI_PARAM_HOB_GUID {0x594dfe5c, 0x7a87, 0x49dc, { 0x8f, 0x33, 0xea, 0x83, 0x4d, 0x6f, 0x18, 0x90 } }
+
#endif //#ifndef _FSP_ACPI_HOBS_H_
diff --git a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/FspEdpcParam.h b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/FspEdpcParam.h
new file mode 100644
index 0000000000..af0dc5055e
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/FspEdpcParam.h
@@ -0,0 +1,69 @@
+/** @file
+
+Copyright (c) 2019-2023, 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.
+
+**/
+
+#ifndef __FSP_EDPC_PARAM__
+#define __FSP_EDPC_PARAM__
+
+#pragma pack(1)
+typedef struct {
+ UINT8 Segment;
+ UINT8 Bus;
+ UINT8 Device;
+ UINT8 Function;
+} EDPC_DEV_INFO;
+
+typedef struct {
+ //
+ // There are three possible statuses of Valid infomation
+ // EPDC_INFO_VALID, EDPC_INFO_NOTIFIED, EDPC_INFO_CLEARED
+ //
+ UINT8 Valid;
+ EDPC_DEV_INFO EdpcTrigger;
+ EDPC_DEV_INFO EdpcRootPort;
+ UINT8 NotifyType;
+} EDPC_INFO;
+
+typedef struct {
+ UINT16 OsNativeAerSupport;
+ UINT16 Reserved;
+ UINT64 Reserved1[400];
+ EDPC_INFO EdpcInfo;
+ UINT64 EmcaL1DirAddr;
+ UINT8 EmcaEn;
+ UINT8 ElogEn;
+ UINT8 WheaEnabled;
+ UINT8 WheaSupportEn;
+ UINT64 ReadAckAddress;
+ UINT64 OobReadAckAddress;
+ UINT32 SoftwareSmi;
+} RAS_ACPI_PARAM;
+
+#pragma pack()
+#endif // __FSP_EDPC_PARAM__
diff --git a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/FspiUpd.h b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/FspiUpd.h
index 93ca55839f..77133a737a 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/FspiUpd.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/FspiUpd.h
@@ -41,6 +41,40 @@ are permitted provided that the following conditions are met:
typedef struct {
+ /** WHEA Support
+ Enable/Disable WHEA support.
+ 0:Disable, 1:Enable
+**/
+ UINT8 WheaSupportEn;
+
+/** Enable/Disable WHEA Error Injection Support.
+ 0:Disabled, 1:Enabled
+**/
+ UINT8 WheaErrorInjSupportEn;
+
+/** Whea EINJ ACPI 5.0 support for set error type with address and vendor extensions.
+ 0:Disabled, 1:Enabled
+**/
+ UINT8 WheaACPI50ErrInjEn;
+
+/** Whea PCIE Error Injection Support
+ Enable/Disable Whea PCIE Error Injection Support in FSP.
+ 0:Disable, 1:Enable
+**/
+ UINT8 WheaPcieErrInjEn;
+
+/** Whea PCIe Error Injection Action Table
+ Use Action Table for Whea PCIe Error Injection in FSP.
+ 0:Disable, 1:Enable
+**/
+ UINT8 PcieErrInjActionTable;
+
+/** IIO eDPC Support
+ Enable/Disable IIO eDPC Support.
+ 0:Disabled, 1:On Fatal Error, 2:On Fatal and Non-Fatal Errors
+**/
+ UINT8 EdpcEn;
+
/** N/A
**/
UINT8 ReservedSiliconInitUpd[16];
diff --git a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/IioPcieConfigUpd.h b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/IioPcieConfigUpd.h
index 65c2a42ff9..f71bc04561 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/IioPcieConfigUpd.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/IioPcieConfigUpd.h
@@ -47,12 +47,28 @@ are permitted provided that the following conditions are met:
#define MAX_IOU_PER_SOCKET 7
#endif
+#ifndef MAX_IIO_PORTS_PER_STACK
+#define MAX_IIO_PORTS_PER_STACK 1
+#endif
+
+
+#define MAX_IIO_PCIE_PER_SOCKET 1
+
#define MAX_VMD_STACKS_PER_SOCKET 8 // Max number of stacks per socket supported by VMD
#pragma pack(1)
typedef enum {
PE0 = 0,
+ PE1,
+ PE2,
+ PE3,
+ PE4,
+ PE5,
+ PEa,
+ PEb,
+ PEc,
+ PEd,
PE_MAX,
PE_ = 0xFF // temporary unknown value
} IIO_PACKAGE_PE;
@@ -112,15 +128,27 @@ typedef struct {
} IIO_SLOT_CFG;
typedef struct {
+ UINT8 Address; // SMBUS address of IO expander which provides NPEM
+ UINT8 Bank; // Port or bank on IoExpander which provides NPEM
+ UINT8 MuxAddress; // SMBUS address of MUX used to access NPEM
+ UINT8 MuxChannel; // Channel of the MUX used to access NPEM
+} IIO_NPEM_CFG;
+
+typedef struct {
IIO_VPP_CFG Vpp;
+ IIO_NPEM_CFG Npem;
IIO_SLOT_CFG Slot;
UINT8 VppEnabled :1;
UINT8 VppExpType :1;
+ UINT8 NpemSupported :1;
UINT8 SlotImplemented :1;
- UINT8 Reserved :4;
+ UINT8 Retimer1Present :1;
+ UINT8 Retimer2Present :1;
+ UINT8 CommonClock :1;
+ UINT8 SRIS :1;
UINT16 HotPlug : 1; // If hotplug is supported on slot connected to this port
UINT16 MrlSensorPresent : 1; // If MRL is present on slot connected to this port
@@ -212,6 +240,9 @@ typedef struct {
#define IIO_BIFURCATE_x2x2x2x2x2x2x2x2 0x19
#define IIO_BIFURCATE_AUTO 0xFF
+#define C1_UID 2
+#define C2_UID 3
+
typedef enum {
IioBifurcation_UNKNOWN = IIO_BIFURCATE_xxxxxxxx,
IioBifurcation_x4x4x4x4 = IIO_BIFURCATE_x4x4x4x4,
diff --git a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/IioUniversalDataHob.h b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/IioUniversalDataHob.h
index 1689a4261b..6b4fa356d8 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/IioUniversalDataHob.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/IioUniversalDataHob.h
@@ -74,9 +74,6 @@ are permitted provided that the following conditions are met:
#define MAX_IIO_PORTS_PER_STACK 8
#endif
-#ifndef MAX_IIO_PCIE_PER_SOCKET
-#define MAX_IIO_PCIE_PER_SOCKET 1
-#endif
#ifndef MAX_IIO_PCIROOTS_PER_STACK
#define MAX_IIO_PCIROOTS_PER_STACK 1
@@ -217,6 +214,7 @@ typedef struct {
UINT64 Mmio64Limit; // Limit of high MMIO configured for this stack in memory map
UDS_PCIROOT_RES PciRoot[MAX_IIO_PCIROOTS_PER_STACK];
UINT64 VtbarAddress; // VT-d Base Address
+ UINT64 ChbcrBarAddress;
} UDS_STACK_RES;
typedef struct {
@@ -261,6 +259,14 @@ typedef struct {
UINT64 PlatGlobalMmio64Limit; // Global Mmioh Limit [43:0]
QPI_CPU_DATA CpuQpiInfo[MAX_SOCKET]; // QPI related info per CPU
QPI_IIO_DATA IioQpiInfo[MAX_SOCKET]; // QPI related info per IIO
+ UINT16 SystemIoBase; // System IO Base
+ UINT16 SystemIoLimit; // System IO Limit
+ UINT32 SystemMmio32Base; // System low MMIO base
+ UINT32 SystemMmio32Limit;
+ UINT32 Mmio32Granularity;
+ UINT64 SystemMmio64Base; // System high MMIO Base
+ UINT64 SystemMmio64Limit; // System high MMIO Limit
+ UINT64 Mmio64Granularity;
UINT32 MemTsegSize;
UINT64 PciExpressBase;
UINT32 PciExpressSize;
diff --git a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/MemoryMapDataHob.h b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/MemoryMapDataHob.h
index ce47106fe0..ad3eec3b3d 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/MemoryMapDataHob.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/ap/MemoryMapDataHob.h
@@ -235,6 +235,8 @@ typedef enum {
MemTypeCxlExpPersistentMem,
MemTypeCxl2lmDdrCacheMem,
MemTypeCxlHetero,
+ MemTypeCxlAccVolatileMemHdmDb,
+ MemTypeCxlExpVolatileMemDcd,
MemTypeMax
} MEM_TYPE;
diff --git a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/FspAcpiHobs.h b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/FspAcpiHobs.h
index 7338538e13..6d5ba0a37b 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/FspAcpiHobs.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/FspAcpiHobs.h
@@ -31,4 +31,10 @@ are permitted provided that the following conditions are met:
#ifndef _FSP_ACPI_HOBS_H_
#define _FSP_ACPI_HOBS_H_
+//Typecast HOB pointer to ACPI CXL CEDT table structure
+#define FSP_CXL_CEDT_ACPI_HOB_GUID { 0x5CB7A12A, 0x8B2D, 0x485A, { 0xB7, 0x04, 0xC0, 0x52, 0x49, 0x56, 0x81, 0xE7 } }
+
+//Typecast HOB pointer to RAS_ACPI_PARAM_HOB_DATA;
+#define RAS_ACPI_PARAM_HOB_GUID {0x594dfe5c, 0x7a87, 0x49dc, { 0x8f, 0x33, 0xea, 0x83, 0x4d, 0x6f, 0x18, 0x90 } }
+
#endif //#ifndef _FSP_ACPI_HOBS_H_
diff --git a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/FspEdpcParam.h b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/FspEdpcParam.h
new file mode 100644
index 0000000000..af0dc5055e
--- /dev/null
+++ b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/FspEdpcParam.h
@@ -0,0 +1,69 @@
+/** @file
+
+Copyright (c) 2019-2023, 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.
+
+**/
+
+#ifndef __FSP_EDPC_PARAM__
+#define __FSP_EDPC_PARAM__
+
+#pragma pack(1)
+typedef struct {
+ UINT8 Segment;
+ UINT8 Bus;
+ UINT8 Device;
+ UINT8 Function;
+} EDPC_DEV_INFO;
+
+typedef struct {
+ //
+ // There are three possible statuses of Valid infomation
+ // EPDC_INFO_VALID, EDPC_INFO_NOTIFIED, EDPC_INFO_CLEARED
+ //
+ UINT8 Valid;
+ EDPC_DEV_INFO EdpcTrigger;
+ EDPC_DEV_INFO EdpcRootPort;
+ UINT8 NotifyType;
+} EDPC_INFO;
+
+typedef struct {
+ UINT16 OsNativeAerSupport;
+ UINT16 Reserved;
+ UINT64 Reserved1[400];
+ EDPC_INFO EdpcInfo;
+ UINT64 EmcaL1DirAddr;
+ UINT8 EmcaEn;
+ UINT8 ElogEn;
+ UINT8 WheaEnabled;
+ UINT8 WheaSupportEn;
+ UINT64 ReadAckAddress;
+ UINT64 OobReadAckAddress;
+ UINT32 SoftwareSmi;
+} RAS_ACPI_PARAM;
+
+#pragma pack()
+#endif // __FSP_EDPC_PARAM__
diff --git a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/FspiUpd.h b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/FspiUpd.h
index 93ca55839f..5aa10ee72e 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/FspiUpd.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/FspiUpd.h
@@ -41,6 +41,40 @@ are permitted provided that the following conditions are met:
typedef struct {
+/** WHEA Support
+ Enable/Disable WHEA support.
+ 0:Disable, 1:Enable
+**/
+ UINT8 WheaSupportEn;
+
+/** Enable/Disable WHEA Error Injection Support.
+ 0:Disabled, 1:Enabled
+**/
+ UINT8 WheaErrorInjSupportEn;
+
+/** Whea EINJ ACPI 5.0 support for set error type with address and vendor extensions.
+ 0:Disabled, 1:Enabled
+**/
+ UINT8 WheaACPI50ErrInjEn;
+
+/** Whea PCIE Error Injection Support
+ Enable/Disable Whea PCIE Error Injection Support in FSP.
+ 0:Disable, 1:Enable
+**/
+ UINT8 WheaPcieErrInjEn;
+
+/** Whea PCIe Error Injection Action Table
+ Use Action Table for Whea PCIe Error Injection in FSP.
+ 0:Disable, 1:Enable
+**/
+ UINT8 PcieErrInjActionTable;
+
+/** IIO eDPC Support
+ Enable/Disable IIO eDPC Support.
+ 0:Disabled, 1:On Fatal Error, 2:On Fatal and Non-Fatal Errors
+**/
+ UINT8 EdpcEn;
+
/** N/A
**/
UINT8 ReservedSiliconInitUpd[16];
diff --git a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/IioPcieConfigUpd.h b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/IioPcieConfigUpd.h
index 65c2a42ff9..53dd0ea75b 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/IioPcieConfigUpd.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/IioPcieConfigUpd.h
@@ -47,17 +47,40 @@ are permitted provided that the following conditions are met:
#define MAX_IOU_PER_SOCKET 7
#endif
+#ifndef MAX_IIO_PORTS_PER_STACK
+#define MAX_IIO_PORTS_PER_STACK 1
+#endif
+
+
+#define MAX_IIO_PCIE_PER_SOCKET 1
+
#define MAX_VMD_STACKS_PER_SOCKET 8 // Max number of stacks per socket supported by VMD
#pragma pack(1)
typedef enum {
PE0 = 0,
+ PE1,
+ PE2,
+ PE3,
+ PE4,
+ PE5,
+ PEa,
+ PEb,
+ PEc,
+ PEd,
PE_MAX,
PE_ = 0xFF // temporary unknown value
} IIO_PACKAGE_PE;
typedef struct {
+ UINT8 Address; // SMBUS address of IO expander which provides NPEM
+ UINT8 Bank; // Port or bank on IoExpander which provides NPEM
+ UINT8 MuxAddress; // SMBUS address of MUX used to access NPEM
+ UINT8 MuxChannel; // Channel of the MUX used to access NPEM
+} IIO_NPEM_CFG;
+
+typedef struct {
UINT8 SLOTEIP[MAX_IIO_PORTS_PER_SOCKET]; // Electromechanical Interlock Present - Slot Capabilities (D0-10 / F0 / R0xA4 / B17)
UINT8 SLOTHPCAP[MAX_IIO_PORTS_PER_SOCKET]; // Slot Hot Plug capable - Slot Capabilities (D0-10 / F0 / R0xA4 / B6)
UINT8 SLOTHPSUP[MAX_IIO_PORTS_PER_SOCKET]; // Hot Plug surprise supported - Slot Capabilities (D0-10 / F0 / R0xA4 / B5)
@@ -114,13 +137,18 @@ typedef struct {
typedef struct {
IIO_VPP_CFG Vpp;
+ IIO_NPEM_CFG Npem;
IIO_SLOT_CFG Slot;
UINT8 VppEnabled :1;
UINT8 VppExpType :1;
+ UINT8 NpemSupported :1;
UINT8 SlotImplemented :1;
- UINT8 Reserved :4;
+ UINT8 Retimer1Present :1;
+ UINT8 Retimer2Present :1;
+ UINT8 CommonClock :1;
+ UINT8 SRIS :1;
UINT16 HotPlug : 1; // If hotplug is supported on slot connected to this port
UINT16 MrlSensorPresent : 1; // If MRL is present on slot connected to this port
@@ -212,6 +240,9 @@ typedef struct {
#define IIO_BIFURCATE_x2x2x2x2x2x2x2x2 0x19
#define IIO_BIFURCATE_AUTO 0xFF
+#define C1_UID 2
+#define C2_UID 3
+
typedef enum {
IioBifurcation_UNKNOWN = IIO_BIFURCATE_xxxxxxxx,
IioBifurcation_x4x4x4x4 = IIO_BIFURCATE_x4x4x4x4,
diff --git a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/IioUniversalDataHob.h b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/IioUniversalDataHob.h
index 1689a4261b..6631a39452 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/IioUniversalDataHob.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/IioUniversalDataHob.h
@@ -74,10 +74,6 @@ are permitted provided that the following conditions are met:
#define MAX_IIO_PORTS_PER_STACK 8
#endif
-#ifndef MAX_IIO_PCIE_PER_SOCKET
-#define MAX_IIO_PCIE_PER_SOCKET 1
-#endif
-
#ifndef MAX_IIO_PCIROOTS_PER_STACK
#define MAX_IIO_PCIROOTS_PER_STACK 1
#endif
@@ -217,6 +213,7 @@ typedef struct {
UINT64 Mmio64Limit; // Limit of high MMIO configured for this stack in memory map
UDS_PCIROOT_RES PciRoot[MAX_IIO_PCIROOTS_PER_STACK];
UINT64 VtbarAddress; // VT-d Base Address
+ UINT64 ChbcrBarAddress;
} UDS_STACK_RES;
typedef struct {
@@ -261,6 +258,14 @@ typedef struct {
UINT64 PlatGlobalMmio64Limit; // Global Mmioh Limit [43:0]
QPI_CPU_DATA CpuQpiInfo[MAX_SOCKET]; // QPI related info per CPU
QPI_IIO_DATA IioQpiInfo[MAX_SOCKET]; // QPI related info per IIO
+ UINT16 SystemIoBase; // System IO Base
+ UINT16 SystemIoLimit; // System IO Limit
+ UINT32 SystemMmio32Base; // System low MMIO base
+ UINT32 SystemMmio32Limit;
+ UINT32 Mmio32Granularity;
+ UINT64 SystemMmio64Base; // System high MMIO Base
+ UINT64 SystemMmio64Limit; // System high MMIO Limit
+ UINT64 Mmio64Granularity;
UINT32 MemTsegSize;
UINT64 PciExpressBase;
UINT32 PciExpressSize;
diff --git a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/MemoryMapDataHob.h b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/MemoryMapDataHob.h
index ce47106fe0..ad3eec3b3d 100644
--- a/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/MemoryMapDataHob.h
+++ b/src/vendorcode/intel/fsp/fsp2_0/graniterapids/sp/MemoryMapDataHob.h
@@ -235,6 +235,8 @@ typedef enum {
MemTypeCxlExpPersistentMem,
MemTypeCxl2lmDdrCacheMem,
MemTypeCxlHetero,
+ MemTypeCxlAccVolatileMemHdmDb,
+ MemTypeCxlExpVolatileMemDcd,
MemTypeMax
} MEM_TYPE;