]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFsp2Pkg/Include/FspEas/FspApi.h
IntelFsp2Pkg: Support 64bit FspResetType for X64 build.
[mirror_edk2.git] / IntelFsp2Pkg / Include / FspEas / FspApi.h
index b36bc2b9ae6d0811de5d95d9ab48454597b3a5fe..5e47f475db5bf034d49deddf9919db5de9e5b546 100644 (file)
 #define _FSP_API_H_\r
 \r
 #include <Pi/PiStatusCode.h>\r
+#include <Base.h>\r
 \r
 ///\r
 /// FSP Reset Status code\r
-/// These are defined in FSP EAS v2.0 section 11.2.2 - OEM Status Code\r
+/// These are defined in FSP EAS v2.4 section 13.2.2 - OEM Status Code\r
 /// @{\r
-#define FSP_STATUS_RESET_REQUIRED_COLD  0x40000001\r
-#define FSP_STATUS_RESET_REQUIRED_WARM  0x40000002\r
-#define FSP_STATUS_RESET_REQUIRED_3     0x40000003\r
-#define FSP_STATUS_RESET_REQUIRED_4     0x40000004\r
-#define FSP_STATUS_RESET_REQUIRED_5     0x40000005\r
-#define FSP_STATUS_RESET_REQUIRED_6     0x40000006\r
-#define FSP_STATUS_RESET_REQUIRED_7     0x40000007\r
-#define FSP_STATUS_RESET_REQUIRED_8     0x40000008\r
+\r
+#define ENCODE_RESET_REQUEST(ResetType)  \\r
+        ((EFI_STATUS)((MAX_BIT >> 1) | (ResetType)))\r
+#define FSP_STATUS_RESET_REQUIRED_COLD  ENCODE_RESET_REQUEST(1)\r
+#define FSP_STATUS_RESET_REQUIRED_WARM  ENCODE_RESET_REQUEST(2)\r
+#define FSP_STATUS_RESET_REQUIRED_3     ENCODE_RESET_REQUEST(3)\r
+#define FSP_STATUS_RESET_REQUIRED_4     ENCODE_RESET_REQUEST(4)\r
+#define FSP_STATUS_RESET_REQUIRED_5     ENCODE_RESET_REQUEST(5)\r
+#define FSP_STATUS_RESET_REQUIRED_6     ENCODE_RESET_REQUEST(6)\r
+#define FSP_STATUS_RESET_REQUIRED_7     ENCODE_RESET_REQUEST(7)\r
+#define FSP_STATUS_RESET_REQUIRED_8     ENCODE_RESET_REQUEST(8)\r
+#define FSP_STATUS_VARIABLE_REQUEST     ENCODE_RESET_REQUEST(10)\r
 /// @}\r
 \r
 ///\r
@@ -135,18 +140,18 @@ typedef struct {
   ///\r
   /// Revision of the structure is 2 for this version of the specification.\r
   ///\r
-  UINT8                Revision;\r
-  UINT8                Reserved[3];\r
+  UINT8                   Revision;\r
+  UINT8                   Reserved[3];\r
   ///\r
   /// Length of the structure in bytes. The current value for this field is 32.\r
   ///\r
-  UINT32               Length;\r
+  UINT32                  Length;\r
   ///\r
   /// FspDebugHandler Optional debug handler for the bootloader to receive debug messages\r
   /// occurring during FSP execution.\r
   ///\r
-  EFI_PHYSICAL_ADDRESS FspDebugHandler;\r
-  UINT8                Reserved1[16];\r
+  EFI_PHYSICAL_ADDRESS    FspDebugHandler;\r
+  UINT8                   Reserved1[16];\r
 } FSPT_ARCH2_UPD;\r
 \r
 ///\r
@@ -197,37 +202,37 @@ typedef struct {
   ///\r
   /// Revision of the structure is 3 for this version of the specification.\r
   ///\r
-  UINT8                Revision;\r
-  UINT8                Reserved[3];\r
+  UINT8                   Revision;\r
+  UINT8                   Reserved[3];\r
   ///\r
   /// Length of the structure in bytes. The current value for this field is 64.\r
   ///\r
-  UINT32               Length;\r
+  UINT32                  Length;\r
   ///\r
   /// Pointer to the temporary stack base address to be\r
   /// consumed inside FspMemoryInit() API.\r
   ///\r
-  EFI_PHYSICAL_ADDRESS StackBase;\r
+  EFI_PHYSICAL_ADDRESS    StackBase;\r
   ///\r
   /// Temporary stack size to be consumed inside\r
   /// FspMemoryInit() API.\r
   ///\r
-  UINT64               StackSize;\r
+  UINT64                  StackSize;\r
   ///\r
   /// Size of memory to be reserved by FSP below "top\r
   /// of low usable memory" for bootloader usage.\r
   ///\r
-  UINT32               BootLoaderTolumSize;\r
+  UINT32                  BootLoaderTolumSize;\r
   ///\r
   /// Current boot mode.\r
   ///\r
-  UINT32               BootMode;\r
+  UINT32                  BootMode;\r
   ///\r
   /// Optional event handler for the bootloader to be informed of events occurring during FSP execution.\r
   /// This value is only valid if Revision is >= 2.\r
   ///\r
-  EFI_PHYSICAL_ADDRESS FspEventHandler;\r
-  UINT8                Reserved1[24];\r
+  EFI_PHYSICAL_ADDRESS    FspEventHandler;\r
+  UINT8                   Reserved1[24];\r
 } FSPM_ARCH2_UPD;\r
 \r
 ///\r
@@ -266,18 +271,18 @@ typedef struct {
   ///\r
   /// Revision of the structure is 2 for this version of the specification.\r
   ///\r
-  UINT8                Revision;\r
-  UINT8                Reserved[3];\r
+  UINT8                   Revision;\r
+  UINT8                   Reserved[3];\r
   ///\r
   /// Length of the structure in bytes. The current value for this field is 32.\r
   ///\r
-  UINT32               Length;\r
+  UINT32                  Length;\r
   ///\r
   /// FspEventHandler Optional event handler for the bootloader to be informed of events\r
   /// occurring during FSP execution.\r
   ///\r
-  EFI_PHYSICAL_ADDRESS FspEventHandler;\r
-  UINT8                Reserved1[16];\r
+  EFI_PHYSICAL_ADDRESS    FspEventHandler;\r
+  UINT8                   Reserved1[16];\r
 } FSPS_ARCH2_UPD;\r
 \r
 ///\r