]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFspPkg/Include/FspInfoHeader.h
enhancement to tool to generate the comments along with offsets in the .h file.
[mirror_edk2.git] / IntelFspPkg / Include / FspInfoHeader.h
index 3033659ea01e5c07f936ed229c36dd10abe046f8..1ee2fa5185e696d575da8c61d9372573cf743a4f 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
   Intel FSP Info Header definition from Intel Firmware Support Package External\r
-  Architecture Specification, April 2014, revision 001.\r
+  Architecture Specification v1.1, April 2015, revision 001.\r
 \r
   Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
@@ -29,6 +29,8 @@
 \r
 #define  OFFSET_IN_FSP_INFO_HEADER(x)  (UINT32)&((FSP_INFO_HEADER *)(UINTN)0)->x\r
 \r
+#define FSP_INFO_HEADER_SIGNATURE  SIGNATURE_32 ('F', 'S', 'P', 'H')\r
+\r
 #pragma pack(1)\r
 \r
 typedef struct  {\r
@@ -64,7 +66,7 @@ typedef struct  {
   ///\r
   UINT32  ImageSize;\r
   ///\r
-  /// Byte 0x18: FSP binary preferred base address\r
+  /// Byte 0x1C: FSP binary preferred base address\r
   ///\r
   UINT32  ImageBase;\r
 \r
@@ -78,7 +80,7 @@ typedef struct  {
   ///\r
   UINT32  CfgRegionOffset;\r
   ///\r
-  /// Byte 0x24: Size of the FSP configuration region\r
+  /// Byte 0x28: Size of the FSP configuration region\r
   ///\r
   UINT32  CfgRegionSize;\r
   ///\r
@@ -103,7 +105,7 @@ typedef struct  {
   UINT32  NotifyPhaseEntryOffset;\r
 \r
   ///\r
-  /// Below field is added in FSP 1.1\r
+  /// Below fields are added in FSP Revision 2\r
   ///\r
 \r
   ///\r
@@ -122,19 +124,21 @@ typedef struct  {
 } FSP_INFO_HEADER;\r
 \r
 ///\r
-/// Below structure is added in FSP 1.1\r
+/// Below structure is added in FSP version 2\r
 ///\r
+#define FSP_INFO_EXTENDED_HEADER_SIGNATURE  SIGNATURE_32 ('F', 'S', 'P', 'E')\r
+\r
 typedef struct  {\r
   ///\r
   /// Byte 0x00: Signature ('FSPE') for the FSP Extended Information Header\r
   ///\r
   UINT32  Signature;\r
   ///\r
-  /// Byte 0x04: Length of the FSP Extended Header\r
+  /// Byte 0x04: Length of the table in bytes, including all additional FSP producer defined data.\r
   ///\r
-  UINT32  HeaderLength;\r
+  UINT32  Length;\r
   ///\r
-  /// Byte 0x08: Revision of the FSP Extended Header\r
+  /// Byte 0x08: FSP producer defined revision of the table.\r
   ///\r
   UINT8   Revision;\r
   ///\r
@@ -142,15 +146,28 @@ typedef struct  {
   ///\r
   UINT8   Reserved;\r
   ///\r
-  /// Byte 0x0A: An OEM-supplied string that defines the OEM\r
+  /// Byte 0x0A: FSP producer identification string \r
+  ///\r
+  CHAR8   FspProducerId[6];\r
   ///\r
-  CHAR8   OemId[6];\r
+  /// Byte 0x10: FSP producer implementation revision number. Larger numbers are assumed to be newer revisions.\r
   ///\r
-  /// Byte 0x10: An OEM-supplied revision number. Larger numbers are assumed to be newer revisions.\r
+  UINT32  FspProducerRevision;\r
   ///\r
-  UINT32  OemRevision;\r
+  /// Byte 0x14: Size of the FSP producer defined data (n) in bytes.\r
+  ///\r
+  UINT32  FspProducerDataSize;\r
+  ///\r
+  /// Byte 0x18: FSP producer defined data of size (n) defined by FspProducerDataSize.\r
+  ///\r
+\r
+} FSP_INFO_EXTENDED_HEADER;\r
 \r
-} FSP_EXTENTED_HEADER;\r
+//\r
+// A generic table search algorithm for additional tables can be implemented with a\r
+// signature search algorithm until a terminator signature 'FSPP' is found.\r
+//\r
+#define FSP_FSPP_SIGNATURE  SIGNATURE_32 ('F', 'S', 'P', 'P')\r
 \r
 #pragma pack()\r
 \r