]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFsp2Pkg/Include/Library/FspCommonLib.h
Add IntelFsp2Pkg and IntelFsp2WrapperPkg.
[mirror_edk2.git] / IntelFsp2Pkg / Include / Library / FspCommonLib.h
diff --git a/IntelFsp2Pkg/Include/Library/FspCommonLib.h b/IntelFsp2Pkg/Include/Library/FspCommonLib.h
new file mode 100644 (file)
index 0000000..0bb0c53
--- /dev/null
@@ -0,0 +1,312 @@
+/** @file\r
+\r
+  Copyright (c) 2014 - 2016, 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
+\r
+**/\r
+\r
+#ifndef _FSP_COMMON_LIB_H_\r
+#define _FSP_COMMON_LIB_H_\r
+\r
+#include <FspGlobalData.h>\r
+#include <FspMeasurePointId.h>\r
+\r
+/**\r
+  This function sets the FSP global data pointer.\r
+\r
+  @param[in] FspData       Fsp global data pointer.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspGlobalDataPointer (\r
+  IN FSP_GLOBAL_DATA   *FspData\r
+  );\r
+\r
+/**\r
+  This function gets the FSP global data pointer.\r
+\r
+**/\r
+FSP_GLOBAL_DATA *\r
+EFIAPI\r
+GetFspGlobalDataPointer (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  This function gets back the FSP API first parameter passed by the bootlaoder.\r
+\r
+  @retval ApiParameter FSP API first parameter passed by the bootlaoder.\r
+**/\r
+UINT32\r
+EFIAPI\r
+GetFspApiParameter (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  This function gets back the FSP API second parameter passed by the bootlaoder.\r
+\r
+  @retval ApiParameter FSP API second parameter passed by the bootlaoder.\r
+**/\r
+UINT32\r
+EFIAPI\r
+GetFspApiParameter2 (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  This function sets the FSP API parameter in the stack.\r
+\r
+   @param[in] Value       New parameter value.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspApiParameter (\r
+  IN UINT32      Value\r
+  );\r
+\r
+/**\r
+  This function set the API status code returned to the BootLoader.\r
+\r
+  @param[in] ReturnStatus       Status code to return.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspApiReturnStatus (\r
+  IN UINT32  ReturnStatus\r
+  );\r
+\r
+/**\r
+  This function sets the context switching stack to a new stack frame.\r
+\r
+  @param[in] NewStackTop       New core stack to be set.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspCoreStackPointer (\r
+  IN VOID   *NewStackTop\r
+  );\r
+\r
+/**\r
+  This function sets the platform specific data pointer.\r
+\r
+  @param[in] PlatformData       Fsp platform specific data pointer.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspPlatformDataPointer (\r
+  IN VOID   *PlatformData\r
+  );\r
+\r
+/**\r
+  This function gets the platform specific data pointer.\r
+\r
+   @param[in] PlatformData       Fsp platform specific data pointer.\r
+\r
+**/\r
+VOID *\r
+EFIAPI\r
+GetFspPlatformDataPointer (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  This function sets the UPD data pointer.\r
+\r
+  @param[in] UpdDataPtr   UPD data pointer.\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspUpdDataPointer (\r
+  IN VOID    *UpdDataPtr\r
+  );\r
+\r
+/**\r
+  This function gets the UPD data pointer.\r
+\r
+  @return UpdDataPtr   UPD data pointer.\r
+**/\r
+VOID *\r
+EFIAPI\r
+GetFspUpdDataPointer (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  This function sets the memory init UPD data pointer.\r
+\r
+  @param[in] MemoryInitUpdPtr   memory init UPD data pointer.\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspMemoryInitUpdDataPointer (\r
+  IN VOID    *MemoryInitUpdPtr\r
+  );\r
+\r
+/**\r
+  This function gets the memory init UPD data pointer.\r
+\r
+  @return memory init UPD data pointer.\r
+**/\r
+VOID *\r
+EFIAPI\r
+GetFspMemoryInitUpdDataPointer (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  This function sets the silicon init UPD data pointer.\r
+\r
+  @param[in] SiliconInitUpdPtr   silicon init UPD data pointer.\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspSiliconInitUpdDataPointer (\r
+  IN VOID    *SiliconInitUpdPtr\r
+  );\r
+\r
+/**\r
+  This function gets the silicon init UPD data pointer.\r
+\r
+  @return silicon init UPD data pointer.\r
+**/\r
+VOID *\r
+EFIAPI\r
+GetFspSiliconInitUpdDataPointer (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  Set FSP measurement point timestamp.\r
+\r
+  @param[in] Id       Measurement point ID.\r
+\r
+  @return performance timestamp.\r
+**/\r
+UINT64\r
+EFIAPI\r
+SetFspMeasurePoint (\r
+  IN UINT8  Id\r
+  );\r
+\r
+/**\r
+  This function gets the FSP info header pointer.\r
+\r
+  @retval FspInfoHeader   FSP info header pointer\r
+**/\r
+FSP_INFO_HEADER *\r
+EFIAPI\r
+GetFspInfoHeader (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  This function sets the FSP info header pointer.\r
+\r
+  @param[in] FspInfoHeader   FSP info header pointer\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspInfoHeader (\r
+  FSP_INFO_HEADER *FspInfoHeader\r
+  );\r
+\r
+/**\r
+  This function gets the FSP info header pointer from the API context.\r
+\r
+  @retval FspInfoHeader   FSP info header pointer\r
+**/\r
+FSP_INFO_HEADER *\r
+EFIAPI\r
+GetFspInfoHeaderFromApiContext (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  This function gets the VPD data pointer.\r
+\r
+  @return VpdDataRgnPtr   VPD data pointer.\r
+**/\r
+VOID *\r
+EFIAPI\r
+GetFspVpdDataPointer (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  This function gets FSP API calling mode.\r
+\r
+  @retval API calling mode\r
+**/\r
+UINT8\r
+EFIAPI\r
+GetFspApiCallingIndex (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  This function sets FSP API calling mode.\r
+\r
+  @param[in] Index     API calling index\r
+**/\r
+VOID\r
+EFIAPI\r
+SetFspApiCallingIndex (\r
+  UINT8  Index\r
+  );\r
+\r
+/**\r
+  This function gets FSP Phase StatusCode.\r
+  \r
+  @retval StatusCode\r
+**/\r
+UINT32\r
+EFIAPI\r
+GetPhaseStatusCode (\r
+  VOID\r
+  );\r
+\r
+\r
+/**\r
+  This function sets FSP Phase StatusCode.\r
+\r
+  @param[in] Mode     Phase StatusCode\r
+**/\r
+VOID\r
+EFIAPI\r
+SetPhaseStatusCode (\r
+  UINT32  StatusCode\r
+  );\r
+\r
+/**\r
+  This function gets FSP CAR base.\r
+\r
+**/\r
+UINT32\r
+EFIAPI\r
+GetFspCarBase (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  This function gets FSP CAR size.\r
+\r
+**/\r
+UINT32\r
+EFIAPI\r
+GetFspCarSize (\r
+  VOID\r
+  );\r
+\r
+#endif\r