]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFspPkg/Include/FspInfoHeader.h
DynamicTablesPkg: GTDT updates for ACPI 6.3
[mirror_edk2.git] / IntelFspPkg / Include / FspInfoHeader.h
index 3033659ea01e5c07f936ed229c36dd10abe046f8..73d2ba838a2dfffc190aad03457fc7ac19cc4540 100644 (file)
@@ -1,15 +1,9 @@
 /** @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
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php.\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
@@ -29,6 +23,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 +60,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 +74,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 +99,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 +118,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 +140,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