]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFsp2Pkg/Include/FspEas/FspApi.h
IntelFsp2Pkg: Add FSP*_ARCH_UPD.
[mirror_edk2.git] / IntelFsp2Pkg / Include / FspEas / FspApi.h
index ed40f9538ce6fb697629a0c6f28edb5b75a6dd98..5e488c452a853b81610a74e6b262002db89b61ce 100644 (file)
@@ -99,12 +99,35 @@ typedef struct {
   ///\r
   UINT64                      Signature;\r
   ///\r
-  /// Revision of the Data structure. For FSP v2.0 value is 1.\r
+  /// Revision of the Data structure.\r
+  ///   For FSP spec 2.0/2.1 value is 1.\r
+  ///   For FSP spec 2.2 value is 2.\r
   ///\r
   UINT8                       Revision;\r
   UINT8                       Reserved[23];\r
 } FSP_UPD_HEADER;\r
 \r
+///\r
+/// FSPT_ARCH_UPD Configuration.\r
+///\r
+typedef struct {\r
+  ///\r
+  /// Revision Revision of the structure is 1 for this version of the specification.\r
+  ///\r
+  UINT8                       Revision;\r
+  UINT8                       Reserved[3];\r
+  ///\r
+  /// Length Length of the structure in bytes. The current value for this field is 32.\r
+  ///\r
+  UINT32                      Length;\r
+  ///\r
+  /// FspDebugHandler Optional debug handler for the bootloader to receive debug messages\r
+  /// occurring during FSP execution.\r
+  ///\r
+  FSP_DEBUG_HANDLER           FspDebugHandler;\r
+  UINT8                       Reserved1[20];\r
+} FSPT_ARCH_UPD;\r
+\r
 ///\r
 /// FSPM_ARCH_UPD Configuration.\r
 ///\r
@@ -146,6 +169,32 @@ typedef struct {
   UINT8                       Reserved1[4];\r
 } FSPM_ARCH_UPD;\r
 \r
+typedef struct {\r
+  ///\r
+  /// Revision Revision of the structure is 1 for this version of the specification.\r
+  ///\r
+  UINT8                      Revision;\r
+  UINT8                      Reserved[3];\r
+  ///\r
+  /// Length Length of the structure in bytes. The current value for this field is 32.\r
+  ///\r
+  UINT32                      Length;\r
+  ///\r
+  /// FspEventHandler Optional event handler for the bootloader to be informed of events\r
+  /// occurring during FSP execution.\r
+  ///\r
+  FSP_EVENT_HANDLER           FspEventHandler;\r
+  ///\r
+  /// A FSP binary may optionally implement multi-phase silicon initialization,\r
+  /// This is only supported if the FspMultiPhaseSiInitEntryOffset field in FSP_INFO_HEADER\r
+  /// is non-zero.\r
+  /// To enable multi-phase silicon initialization, the bootloader must set\r
+  /// EnableMultiPhaseSiliconInit to a non-zero value.\r
+  ///\r
+  UINT8                       EnableMultiPhaseSiliconInit;\r
+  UINT8                       Reserved1[19];\r
+} FSPS_ARCH_UPD;\r
+\r
 ///\r
 /// FSPT_UPD_COMMON Configuration.\r
 ///\r
@@ -156,6 +205,21 @@ typedef struct {
   FSP_UPD_HEADER              FspUpdHeader;\r
 } FSPT_UPD_COMMON;\r
 \r
+///\r
+/// FSPT_UPD_COMMON Configuration for FSP spec. 2.2 and above.\r
+///\r
+typedef struct {\r
+  ///\r
+  /// FSP_UPD_HEADER Configuration.\r
+  ///\r
+  FSP_UPD_HEADER              FspUpdHeader;\r
+\r
+  ///\r
+  /// FSPT_ARCH_UPD Configuration.\r
+  ///\r
+  FSPT_ARCH_UPD               FsptArchUpd;\r
+} FSPT_UPD_COMMON_FSP22;\r
+\r
 ///\r
 /// FSPM_UPD_COMMON Configuration.\r
 ///\r
@@ -180,6 +244,21 @@ typedef struct {
   FSP_UPD_HEADER              FspUpdHeader;\r
 } FSPS_UPD_COMMON;\r
 \r
+///\r
+/// FSPS_UPD_COMMON Configuration for FSP spec. 2.2 and above.\r
+///\r
+typedef struct {\r
+  ///\r
+  /// FSP_UPD_HEADER Configuration.\r
+  ///\r
+  FSP_UPD_HEADER              FspUpdHeader;\r
+\r
+  ///\r
+  /// FSPS_ARCH_UPD Configuration.\r
+  ///\r
+  FSPS_ARCH_UPD               FspsArchUpd;\r
+} FSPS_UPD_COMMON_FSP22;\r
+\r
 ///\r
 /// Enumeration of FSP_INIT_PHASE for NOTIFY_PHASE.\r
 ///\r