]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFspPkg/Library/BaseFspCommonLib/FspCommonLib.c
Add dual FSP binaries support.
[mirror_edk2.git] / IntelFspPkg / Library / BaseFspCommonLib / FspCommonLib.c
index f80dff1a56b5cf3aaede8f134af927b2b55487f6..7de84a0a7e7db9f5d296d1dfdb7c6d959635bf93 100644 (file)
@@ -27,7 +27,7 @@
 //   API Parameter                +0x34\r
 //   API return address           +0x30\r
 //\r
-//   push    offset exit          +0x2C\r
+//   push    FspInfoHeader        +0x2C\r
 //   pushfd                       +0x28\r
 //   cli\r
 //   pushad                       +0x24\r
@@ -47,7 +47,7 @@ typedef struct {
   UINT32    Ecx;\r
   UINT32    Eax;\r
   UINT16    Flags[2];\r
-  UINT32    ExitOff;\r
+  UINT32    FspInfoHeader;\r
   UINT32    ApiRet;\r
   UINT32    ApiParam;\r
 } CONTEXT_STACK;\r
@@ -331,6 +331,23 @@ GetFspInfoHeader (
   return  GetFspGlobalDataPointer()->FspInfoHeader;\r
 }\r
 \r
+/**\r
+  This function gets the FSP info header pointer using the API stack context.\r
+\r
+  @retval FspInfoHeader   FSP info header pointer using the API stack context\r
+**/\r
+FSP_INFO_HEADER *\r
+EFIAPI\r
+GetFspInfoHeaderFromApiContext (\r
+  VOID\r
+  )\r
+{\r
+  FSP_GLOBAL_DATA  *FspData;\r
+\r
+  FspData  = GetFspGlobalDataPointer ();\r
+  return  (FSP_INFO_HEADER *)(*(UINT32 *)(UINTN)(FspData->CoreStack + CONTEXT_STACK_OFFSET(FspInfoHeader)));\r
+}\r
+\r
 /**\r
   This function gets the VPD data pointer.\r
 \r