2021-11-10 11:36:23 +00:00
|
|
|
/** @file
|
|
|
|
|
|
2023-03-24 20:33:10 +08:00
|
|
|
Copyright (c) 2016-2023, Intel Corporation. All rights reserved.<BR>
|
2021-11-10 11:36:23 +00:00
|
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
|
|
#ifndef __FSP_SUPPORT_LIB_H__
|
|
|
|
|
#define __FSP_SUPPORT_LIB_H__
|
|
|
|
|
|
|
|
|
|
typedef VOID \
|
|
|
|
|
(EFIAPI *MEM_RES_HOB_CALLBACK) (EFI_HOB_RESOURCE_DESCRIPTOR *ResourceDescriptor, VOID *Param);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
This function retrieves FSP Non-volatile Storage HOB buffer and size.
|
|
|
|
|
|
|
|
|
|
@param HobListPtr A HOB list pointer.
|
|
|
|
|
@param Length A pointer to the NVS data buffer length. If the FSP NVS
|
|
|
|
|
HOB is located, the length will be updated.
|
|
|
|
|
@retval NULL Failed to find the NVS HOB.
|
|
|
|
|
@retval others FSP NVS data buffer pointer.
|
|
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
VOID *
|
|
|
|
|
EFIAPI
|
|
|
|
|
GetFspNvsDataBuffer (
|
|
|
|
|
CONST VOID *HobListPtr,
|
|
|
|
|
UINT32 *Length
|
|
|
|
|
);
|
2023-03-24 20:33:10 +08:00
|
|
|
/**
|
|
|
|
|
This function retrieves FSP Non-volatile Storage HOB 2 buffer and size.
|
|
|
|
|
|
|
|
|
|
@param HobListPtr A HOB list pointer.
|
|
|
|
|
@param Length A pointer to the NVS data buffer length. If the FSP NVS
|
|
|
|
|
HOB is located, the length will be updated.
|
|
|
|
|
@retval NULL Failed to find the NVS HOB.
|
|
|
|
|
@retval others FSP NVS data buffer pointer.
|
|
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
VOID *
|
|
|
|
|
EFIAPI
|
|
|
|
|
GetFspNvsData2Buffer (
|
|
|
|
|
CONST VOID *HobListPtr,
|
|
|
|
|
UINT32 *Length
|
|
|
|
|
);
|
2021-11-10 11:36:23 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
This function retrieves a special reserved memory region.
|
|
|
|
|
|
|
|
|
|
@param HobListPtr A HOB list pointer.
|
|
|
|
|
@param Length A pointer to the GUID HOB data buffer length. If the GUID HOB is
|
|
|
|
|
located, the length will be updated.
|
|
|
|
|
@param OwnerGuid A pointer to the owner guild.
|
|
|
|
|
@retval Reserved region start address. 0 if this region does not exist.
|
|
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
UINT64
|
|
|
|
|
EFIAPI
|
|
|
|
|
GetFspReservedMemoryFromGuid (
|
|
|
|
|
CONST VOID *HobListPtr,
|
|
|
|
|
UINT64 *Length,
|
|
|
|
|
EFI_GUID *OwnerGuid
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
This function retrieves a top of low and high memory address.
|
|
|
|
|
|
|
|
|
|
@param HobListPtr A HOB list pointer.
|
|
|
|
|
@param TopOfHighMem A pointer to receive the top of high memory.
|
|
|
|
|
|
|
|
|
|
@retval Top of low memory.
|
|
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
UINT32
|
|
|
|
|
EFIAPI
|
|
|
|
|
GetSystemTopOfMemeory (
|
|
|
|
|
CONST VOID *HobListPtr,
|
|
|
|
|
UINT64 *TopOfHighMem OPTIONAL
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
This function traverses each memory resource hob type and calls the handler.
|
|
|
|
|
|
|
|
|
|
@param HobListPtr A HOB list pointer.
|
|
|
|
|
@param MemResHobCallback A function pointer to the callback handler
|
|
|
|
|
@param Param A pointer to the parameter which will be passed into handler.
|
|
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
VOID
|
|
|
|
|
EFIAPI
|
|
|
|
|
TraverseMemoryResourceHob (
|
|
|
|
|
IN CONST VOID *HobListPtr,
|
|
|
|
|
IN MEM_RES_HOB_CALLBACK MemResHobCallback,
|
|
|
|
|
IN VOID *Param
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
Dump FSP memory resource
|
|
|
|
|
|
|
|
|
|
@param HobListPtr A HOB list pointer.
|
|
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
VOID
|
|
|
|
|
EFIAPI
|
|
|
|
|
DumpFspResourceHob (
|
|
|
|
|
IN CONST VOID *HobListPtr
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
#endif
|