X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=IntelFspPkg%2FLibrary%2FBaseFspCommonLib%2FFspCommonLib.c;fp=IntelFspPkg%2FLibrary%2FBaseFspCommonLib%2FFspCommonLib.c;h=0000000000000000000000000000000000000000;hp=0f48ccf01d93991d4343f8bbc516c7c3dc317fc4;hb=1a48fda5315433661c2f3039a30aea5916c22267;hpb=e8015f2facfffa31db8a06c1121647f76f1035dc
diff --git a/IntelFspPkg/Library/BaseFspCommonLib/FspCommonLib.c b/IntelFspPkg/Library/BaseFspCommonLib/FspCommonLib.c
deleted file mode 100644
index 0f48ccf01d..0000000000
--- a/IntelFspPkg/Library/BaseFspCommonLib/FspCommonLib.c
+++ /dev/null
@@ -1,477 +0,0 @@
-/** @file
-
- Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#pragma pack(1)
-
-//
-// Cont Func Parameter 2 +0x3C
-// Cont Func Parameter 1 +0x38
-//
-// API Parameter +0x34
-// API return address +0x30
-//
-// push FspInfoHeader +0x2C
-// pushfd +0x28
-// cli
-// pushad +0x24
-// sub esp, 8 +0x00
-// sidt fword ptr [esp]
-//
-typedef struct {
- UINT16 IdtrLimit;
- UINT32 IdtrBase;
- UINT16 Reserved;
- UINT32 Edi;
- UINT32 Esi;
- UINT32 Ebp;
- UINT32 Esp;
- UINT32 Ebx;
- UINT32 Edx;
- UINT32 Ecx;
- UINT32 Eax;
- UINT16 Flags[2];
- UINT32 FspInfoHeader;
- UINT32 ApiRet;
- UINT32 ApiParam;
-} CONTEXT_STACK;
-
-#define CONTEXT_STACK_OFFSET(x) (UINT32)&((CONTEXT_STACK *)(UINTN)0)->x
-
-#pragma pack()
-
-/**
- This function sets the FSP global data pointer.
-
- @param[in] FspData Fsp global data pointer.
-
-**/
-VOID
-EFIAPI
-SetFspGlobalDataPointer (
- IN FSP_GLOBAL_DATA *FspData
- )
-{
- ASSERT (FspData != NULL);
- *((volatile UINT32 *)(UINTN)PcdGet32(PcdGlobalDataPointerAddress)) = (UINT32)(UINTN)FspData;
-}
-
-/**
- This function gets the FSP global data pointer.
-
-**/
-FSP_GLOBAL_DATA *
-EFIAPI
-GetFspGlobalDataPointer (
- VOID
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- FspData = *(FSP_GLOBAL_DATA **)(UINTN)PcdGet32(PcdGlobalDataPointerAddress);
- return FspData;
-}
-
-/**
- This function gets back the FSP API parameter passed by the bootlaoder.
-
- @retval ApiParameter FSP API parameter passed by the bootlaoder.
-**/
-UINT32
-EFIAPI
-GetFspApiParameter (
- VOID
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- FspData = GetFspGlobalDataPointer ();
- return *(UINT32 *)(UINTN)(FspData->CoreStack + CONTEXT_STACK_OFFSET(ApiParam));
-}
-
-/**
- This function sets the FSP API parameter in the stack.
-
- @param[in] Value New parameter value.
-
-**/
-VOID
-EFIAPI
-SetFspApiParameter (
- IN UINT32 Value
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- FspData = GetFspGlobalDataPointer ();
- *(UINT32 *)(UINTN)(FspData->CoreStack + CONTEXT_STACK_OFFSET(ApiParam)) = Value;
-}
-
-/**
- This function sets the FSP continuation function parameters in the stack.
-
- @param[in] Value New parameter value to set.
- @param[in] Index Parameter index.
-**/
-VOID
-EFIAPI
-SetFspContinuationFuncParameter (
- IN UINT32 Value,
- IN UINT32 Index
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- FspData = GetFspGlobalDataPointer ();
- *(UINT32 *)(UINTN)(FspData->CoreStack + CONTEXT_STACK_OFFSET(ApiParam) + (Index + 1) * sizeof(UINT32)) = Value;
-}
-
-
-/**
- This function changes the BootLoader return address in stack.
-
- @param[in] ReturnAddress Address to return.
-
-**/
-VOID
-EFIAPI
-SetFspApiReturnAddress (
- IN UINT32 ReturnAddress
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- FspData = GetFspGlobalDataPointer ();
- *(UINT32 *)(UINTN)(FspData->CoreStack + CONTEXT_STACK_OFFSET(ApiRet)) = ReturnAddress;
-}
-
-/**
- This function set the API status code returned to the BootLoader.
-
- @param[in] ReturnStatus Status code to return.
-
-**/
-VOID
-EFIAPI
-SetFspApiReturnStatus (
- IN UINT32 ReturnStatus
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- FspData = GetFspGlobalDataPointer ();
- *(UINT32 *)(UINTN)(FspData->CoreStack + CONTEXT_STACK_OFFSET(Eax)) = ReturnStatus;
-}
-
-/**
- This function sets the context switching stack to a new stack frame.
-
- @param[in] NewStackTop New core stack to be set.
-
-**/
-VOID
-EFIAPI
-SetFspCoreStackPointer (
- IN VOID *NewStackTop
- )
-{
- FSP_GLOBAL_DATA *FspData;
- UINT32 *OldStack;
- UINT32 *NewStack;
- UINT32 StackContextLen;
-
- FspData = GetFspGlobalDataPointer ();
- StackContextLen = sizeof(CONTEXT_STACK) / sizeof(UINT32);
-
- //
- // Reserve space for the ContinuationFunc two parameters
- //
- OldStack = (UINT32 *)FspData->CoreStack;
- NewStack = (UINT32 *)NewStackTop - StackContextLen - 2;
- FspData->CoreStack = (UINT32)NewStack;
- while (StackContextLen-- != 0) {
- *NewStack++ = *OldStack++;
- }
-}
-
-/**
- This function sets the platform specific data pointer.
-
- @param[in] PlatformData Fsp platform specific data pointer.
-
-**/
-VOID
-EFIAPI
-SetFspPlatformDataPointer (
- IN VOID *PlatformData
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- FspData = GetFspGlobalDataPointer ();
- FspData->PlatformData.DataPtr = PlatformData;
-}
-
-
-/**
- This function gets the platform specific data pointer.
-
- @param[in] PlatformData Fsp platform specific data pointer.
-
-**/
-VOID *
-EFIAPI
-GetFspPlatformDataPointer (
- VOID
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- FspData = GetFspGlobalDataPointer ();
- return FspData->PlatformData.DataPtr;
-}
-
-
-/**
- This function sets the UPD data pointer.
-
- @param[in] UpdDataRgnPtr UPD data pointer.
-**/
-VOID
-EFIAPI
-SetFspUpdDataPointer (
- IN VOID *UpdDataRgnPtr
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- //
- // Get the Fsp Global Data Pointer
- //
- FspData = GetFspGlobalDataPointer ();
-
- //
- // Set the UPD pointer.
- //
- FspData->UpdDataRgnPtr = UpdDataRgnPtr;
-}
-
-/**
- This function gets the UPD data pointer.
-
- @return UpdDataRgnPtr UPD data pointer.
-**/
-VOID *
-EFIAPI
-GetFspUpdDataPointer (
- VOID
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- FspData = GetFspGlobalDataPointer ();
- return FspData->UpdDataRgnPtr;
-}
-
-
-/**
- This function sets the memory init UPD data pointer.
-
- @param[in] MemoryInitUpdPtr memory init UPD data pointer.
-**/
-VOID
-EFIAPI
-SetFspMemoryInitUpdDataPointer (
- IN VOID *MemoryInitUpdPtr
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- //
- // Get the Fsp Global Data Pointer
- //
- FspData = GetFspGlobalDataPointer ();
-
- //
- // Set the memory init UPD pointer.
- //
- FspData->MemoryInitUpdPtr = MemoryInitUpdPtr;
-}
-
-/**
- This function gets the memory init UPD data pointer.
-
- @return memory init UPD data pointer.
-**/
-VOID *
-EFIAPI
-GetFspMemoryInitUpdDataPointer (
- VOID
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- FspData = GetFspGlobalDataPointer ();
- return FspData->MemoryInitUpdPtr;
-}
-
-
-/**
- This function sets the silicon init UPD data pointer.
-
- @param[in] SiliconInitUpdPtr silicon init UPD data pointer.
-**/
-VOID
-EFIAPI
-SetFspSiliconInitUpdDataPointer (
- IN VOID *SiliconInitUpdPtr
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- //
- // Get the Fsp Global Data Pointer
- //
- FspData = GetFspGlobalDataPointer ();
-
- //
- // Set the silicon init UPD data pointer.
- //
- FspData->SiliconInitUpdPtr = SiliconInitUpdPtr;
-}
-
-/**
- This function gets the silicon init UPD data pointer.
-
- @return silicon init UPD data pointer.
-**/
-VOID *
-EFIAPI
-GetFspSiliconInitUpdDataPointer (
- VOID
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- FspData = GetFspGlobalDataPointer ();
- return FspData->SiliconInitUpdPtr;
-}
-
-
-/**
- Set FSP measurement point timestamp.
-
- @param[in] Id Measurement point ID.
-
- @return performance timestamp.
-**/
-UINT64
-EFIAPI
-SetFspMeasurePoint (
- IN UINT8 Id
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- //
- // Bit [55: 0] will be the timestamp
- // Bit [63:56] will be the ID
- //
- FspData = GetFspGlobalDataPointer ();
- if (FspData->PerfIdx < sizeof(FspData->PerfData) / sizeof(FspData->PerfData[0])) {
- FspData->PerfData[FspData->PerfIdx] = AsmReadTsc ();
- ((UINT8 *)(&FspData->PerfData[FspData->PerfIdx]))[7] = Id;
- }
-
- return FspData->PerfData[(FspData->PerfIdx)++];
-}
-
-/**
- This function gets the FSP info header pointer.
-
- @retval FspInfoHeader FSP info header pointer
-**/
-FSP_INFO_HEADER *
-EFIAPI
-GetFspInfoHeader (
- VOID
- )
-{
- return GetFspGlobalDataPointer()->FspInfoHeader;
-}
-
-/**
- This function gets the FSP info header pointer using the API stack context.
-
- @retval FspInfoHeader FSP info header pointer using the API stack context
-**/
-FSP_INFO_HEADER *
-EFIAPI
-GetFspInfoHeaderFromApiContext (
- VOID
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- FspData = GetFspGlobalDataPointer ();
- return (FSP_INFO_HEADER *)(*(UINT32 *)(UINTN)(FspData->CoreStack + CONTEXT_STACK_OFFSET(FspInfoHeader)));
-}
-
-/**
- This function gets the VPD data pointer.
-
- @return VpdDataRgnPtr VPD data pointer.
-**/
-VOID *
-EFIAPI
-GetFspVpdDataPointer (
- VOID
- )
-{
- FSP_INFO_HEADER *FspInfoHeader;
-
- FspInfoHeader = GetFspInfoHeader ();
- return (VOID *)(FspInfoHeader->ImageBase + FspInfoHeader->CfgRegionOffset);
-}
-
-/**
- This function gets FSP API calling mode.
-
- @retval API calling mode
-**/
-UINT8
-EFIAPI
-GetFspApiCallingMode (
- VOID
- )
-{
- return GetFspGlobalDataPointer()->ApiMode;
-}
-
-/**
- This function sets FSP API calling mode.
-
- @param[in] Mode API calling mode
-**/
-VOID
-EFIAPI
-SetFspApiCallingMode (
- UINT8 Mode
- )
-{
- FSP_GLOBAL_DATA *FspData;
-
- FspData = GetFspGlobalDataPointer ();
- FspData->ApiMode = Mode;
-}
-