fsp1_0: Update rangeley to revision POSTGOLD4
Alignment of Intel Firmware Support Package 1.0 Rangeley header and source files to the revision: POSTGOLD4 Detail changelog can be found at http://www.intel.com/fsp FSP release date September 24, 2015 Change-Id: If1a6f95aed3e9a60af9af8cf9cd466a560ef0fe2 Signed-off-by: Marcin Wojciechowski <marcin.wojciechowski@intel.com> Reviewed-on: http://review.coreboot.org/12418 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
parent
0122afb609
commit
68b79cdda4
|
@ -0,0 +1,69 @@
|
|||
/** @file
|
||||
|
||||
Copyright (C) 2014, Intel Corporation
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this
|
||||
list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __FSP_GUID_H__
|
||||
#define __FSP_GUID_H__
|
||||
|
||||
/**
|
||||
|
||||
FSP specific GUID HOB definitions
|
||||
|
||||
**/
|
||||
#define FSP_INFO_HEADER_GUID \
|
||||
{ \
|
||||
0x912740BE, 0x2284, 0x4734, {0xB9, 0x71, 0x84, 0xB0, 0x27, 0x35, 0x3F, 0x0C} \
|
||||
}
|
||||
|
||||
#define FSP_NON_VOLATILE_STORAGE_HOB_GUID \
|
||||
{ \
|
||||
0x721acf02, 0x4d77, 0x4c2a, { 0xb3, 0xdc, 0x27, 0xb, 0x7b, 0xa9, 0xe4, 0xb0 } \
|
||||
}
|
||||
|
||||
#define FSP_BOOTLOADER_TEMPORARY_MEMORY_HOB_GUID \
|
||||
{ \
|
||||
0xbbcff46c, 0xc8d3, 0x4113, { 0x89, 0x85, 0xb9, 0xd4, 0xf3, 0xb3, 0xf6, 0x4e } \
|
||||
}
|
||||
|
||||
#define FSP_HOB_RESOURCE_OWNER_FSP_GUID \
|
||||
{ \
|
||||
0x69a79759, 0x1373, 0x4367, { 0xa6, 0xc4, 0xc7, 0xf5, 0x9e, 0xfd, 0x98, 0x6e } \
|
||||
}
|
||||
|
||||
#define FSP_HOB_RESOURCE_OWNER_TSEG_GUID \
|
||||
{ \
|
||||
0xd038747c, 0xd00c, 0x4980, { 0xb3, 0x19, 0x49, 0x01, 0x99, 0xa4, 0x7d, 0x55 } \
|
||||
}
|
||||
|
||||
#define FSP_HOB_RESOURCE_OWNER_GRAPHICS_GUID \
|
||||
{ \
|
||||
0x9c7c3aa7, 0x5332, 0x4917, { 0x82, 0xb9, 0x56, 0xa5, 0xf3, 0xe6, 0x2a, 0x07 } \
|
||||
}
|
||||
|
||||
#endif
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
|
||||
Copyright (C) 2013, Intel Corporation
|
||||
Copyright (C) 2013 - 2015, Intel Corporation
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
@ -74,6 +74,7 @@ typedef struct {
|
|||
UINT8 tRTPmin; // 27 Minimum Internal Read to Precharge Command Delay Time (tRTPmin)
|
||||
UINT8 UpperNibbleFortFAW; // 28 Upper Nibble for tFAW
|
||||
UINT8 tFAWmin; // 29 Minimum Four Activate Window Delay Time (tFAWmin)
|
||||
UINT8 SdramThermalRefreshOption; // 31 SdramThermalRefreshOption
|
||||
UINT8 ModuleThermalSensor; // 32 ModuleThermalSensor
|
||||
UINT8 SDRAMDeviceType; // 33 SDRAM Device Type
|
||||
UINT8 tCKminFine; // 34 Fine Offset for SDRAM Minimum Cycle Time (tCKmin)
|
||||
|
|
|
@ -0,0 +1,95 @@
|
|||
/** @file
|
||||
|
||||
Copyright (C) 2013 - 2014, Intel Corporation
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this
|
||||
list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __FSP_SUPPORT_H__
|
||||
#define __FSP_SUPPORT_H__
|
||||
|
||||
#include "fsptypes.h"
|
||||
#include "fspfv.h"
|
||||
#include "fspffs.h"
|
||||
#include "fspapi.h"
|
||||
#include "fsphob.h"
|
||||
#include "fspguid.h"
|
||||
#include "fspplatform.h"
|
||||
#include "fspinfoheader.h"
|
||||
#include "fspbootmode.h"
|
||||
#include "fspvpd.h"
|
||||
|
||||
UINT32
|
||||
GetUsableLowMemTop (
|
||||
CONST VOID *HobListPtr
|
||||
);
|
||||
|
||||
UINT64
|
||||
GetUsableHighMemTop (
|
||||
CONST VOID *HobListPtr
|
||||
);
|
||||
|
||||
VOID *
|
||||
GetGuidHobDataBuffer (
|
||||
CONST VOID *HobListPtr,
|
||||
UINT32 *Length,
|
||||
EFI_GUID *Guid
|
||||
);
|
||||
|
||||
VOID
|
||||
GetFspReservedMemoryFromGuid (
|
||||
CONST VOID *HobListPtr,
|
||||
EFI_PHYSICAL_ADDRESS *FspMemoryBase,
|
||||
UINT64 *FspMemoryLength,
|
||||
EFI_GUID *FspReservedMemoryGuid
|
||||
);
|
||||
|
||||
UINT32
|
||||
GetTsegReservedMemory (
|
||||
CONST VOID *HobListPtr,
|
||||
UINT32 *Length
|
||||
);
|
||||
|
||||
UINT32
|
||||
GetFspReservedMemory (
|
||||
CONST VOID *HobListPtr,
|
||||
UINT32 *Length
|
||||
);
|
||||
|
||||
VOID*
|
||||
GetFspNvsDataBuffer (
|
||||
CONST VOID *HobListPtr,
|
||||
UINT32 *Length
|
||||
);
|
||||
|
||||
VOID *
|
||||
GetBootloaderTempMemoryBuffer (
|
||||
CONST VOID *HobListPtr,
|
||||
UINT32 *Length
|
||||
);
|
||||
|
||||
|
||||
#endif
|
|
@ -100,13 +100,18 @@ typedef struct {
|
|||
#define TRUE ((BOOLEAN)(1==1))
|
||||
#define FALSE ((BOOLEAN)(0==1))
|
||||
|
||||
static inline void DebugDeadLoop(void) {
|
||||
for (;;);
|
||||
}
|
||||
|
||||
#define FSPAPI __attribute__((cdecl))
|
||||
#define EFIAPI __attribute__((cdecl))
|
||||
|
||||
#define _ASSERT(Expression) DebugDeadLoop()
|
||||
#define ASSERT(Expression) \
|
||||
do { \
|
||||
if (!(Expression)) { \
|
||||
for (;;); \
|
||||
_ASSERT (Expression); \
|
||||
} \
|
||||
} while (FALSE)
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/** @file
|
||||
|
||||
Copyright (C) 2013-2014 Intel Corporation
|
||||
Copyright (C) 2015, Intel Corporation
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
@ -50,7 +50,8 @@ typedef struct _UPD_DATA_REGION {
|
|||
UINT8 PcdSpdBaseAddress_0_1; /* Offset 0x0026 */
|
||||
UINT8 PcdSpdBaseAddress_1_0; /* Offset 0x0027 */
|
||||
UINT8 PcdSpdBaseAddress_1_1; /* Offset 0x0028 */
|
||||
UINT8 UnusedUpdSpace1[7]; /* Offset 0x0029 */
|
||||
UINT8 PcdExtendedTemperatureEnable; /* Offset 0x0029 */
|
||||
UINT8 UnusedUpdSpace1[6]; /* Offset 0x002A */
|
||||
UINT8 PcdEnableLan; /* Offset 0x0030 */
|
||||
UINT8 PcdEnableSata2; /* Offset 0x0031 */
|
||||
UINT8 PcdEnableSata3; /* Offset 0x0032 */
|
||||
|
@ -65,13 +66,14 @@ typedef struct _UPD_DATA_REGION {
|
|||
UINT8 PcdPrintDebugMessages; /* Offset 0x0040 */
|
||||
UINT8 PcdFastboot; /* Offset 0x0041 */
|
||||
UINT8 PcdEccSupport; /* Offset 0x0042 */
|
||||
UINT8 PcdCustomerRevision[32]; /* Offset 0x0043 */
|
||||
UINT8 UnusedUpdSpace3[13]; /* Offset 0x0063 */
|
||||
UINT8 PcdSerialPortBaudRate; /* Offset 0x0043 */
|
||||
UINT8 PcdCustomerRevision[32]; /* Offset 0x0044 */
|
||||
UINT8 UnusedUpdSpace3[12]; /* Offset 0x0064 */
|
||||
UINT16 PcdRegionTerminator; /* Offset 0x0070 */
|
||||
} UPD_DATA_REGION;
|
||||
|
||||
#define VPD_IMAGE_ID 0x562D474E524E5641 /* 'AVNRNG-V' */
|
||||
#define VPD_IMAGE_REV 0x00000102
|
||||
#define VPD_IMAGE_REV 0x00000140
|
||||
|
||||
typedef struct _VPD_DATA_REGION {
|
||||
UINT64 PcdVpdRegionSign; /* Offset 0x0000 */
|
||||
|
|
|
@ -0,0 +1,288 @@
|
|||
/** @file
|
||||
|
||||
Copyright (C) 2013 - 2014, Intel Corporation
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this
|
||||
list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
* Neither the name of Intel Corporation nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
**/
|
||||
|
||||
#include <types.h>
|
||||
#include <string.h>
|
||||
#include "fspsupport.h"
|
||||
|
||||
/**
|
||||
This function retrieves the top of usable low memory.
|
||||
|
||||
@param HobListPtr A HOB list pointer.
|
||||
|
||||
@retval Usable low memory top.
|
||||
|
||||
**/
|
||||
UINT32
|
||||
GetUsableLowMemTop (
|
||||
CONST VOID *HobStart
|
||||
)
|
||||
{
|
||||
EFI_PEI_HOB_POINTERS Hob;
|
||||
UINT32 MemLen;
|
||||
/*
|
||||
* Get the HOB list for processing
|
||||
*/
|
||||
Hob.Raw = (VOID *)HobStart;
|
||||
|
||||
/*
|
||||
* Collect memory ranges
|
||||
*/
|
||||
MemLen = 0x100000;
|
||||
while (!END_OF_HOB_LIST (Hob)) {
|
||||
if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
|
||||
if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
|
||||
/*
|
||||
* Need memory above 1MB to be collected here
|
||||
*/
|
||||
if (Hob.ResourceDescriptor->PhysicalStart >= 0x100000 &&
|
||||
Hob.ResourceDescriptor->PhysicalStart < (EFI_PHYSICAL_ADDRESS) 0x100000000) {
|
||||
MemLen += (UINT32) (Hob.ResourceDescriptor->ResourceLength);
|
||||
}
|
||||
}
|
||||
}
|
||||
Hob.Raw = GET_NEXT_HOB (Hob);
|
||||
}
|
||||
|
||||
return MemLen;
|
||||
}
|
||||
|
||||
/**
|
||||
This function retrieves the top of usable high memory.
|
||||
|
||||
@param HobListPtr A HOB list pointer.
|
||||
|
||||
@retval Usable high memory top.
|
||||
|
||||
**/
|
||||
UINT64
|
||||
GetUsableHighMemTop (
|
||||
CONST VOID *HobStart
|
||||
)
|
||||
{
|
||||
EFI_PEI_HOB_POINTERS Hob;
|
||||
UINT64 MemTop;
|
||||
/*
|
||||
* Get the HOB list for processing
|
||||
*/
|
||||
Hob.Raw = (VOID *)HobStart;
|
||||
|
||||
/*
|
||||
* Collect memory ranges
|
||||
*/
|
||||
MemTop = 0x100000000;
|
||||
while (!END_OF_HOB_LIST (Hob)) {
|
||||
if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
|
||||
if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
|
||||
/*
|
||||
* Need memory above 1MB to be collected here
|
||||
*/
|
||||
if (Hob.ResourceDescriptor->PhysicalStart >= (EFI_PHYSICAL_ADDRESS) 0x100000000) {
|
||||
MemTop += (UINT32) (Hob.ResourceDescriptor->ResourceLength);
|
||||
}
|
||||
}
|
||||
}
|
||||
Hob.Raw = GET_NEXT_HOB (Hob);
|
||||
}
|
||||
|
||||
return MemTop;
|
||||
}
|
||||
|
||||
/**
|
||||
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.
|
||||
|
||||
**/
|
||||
VOID
|
||||
GetFspReservedMemoryFromGuid (
|
||||
CONST VOID *HobListPtr,
|
||||
EFI_PHYSICAL_ADDRESS *Base,
|
||||
UINT64 *Length,
|
||||
EFI_GUID *OwnerGuid
|
||||
)
|
||||
{
|
||||
EFI_PEI_HOB_POINTERS Hob;
|
||||
|
||||
/*
|
||||
* Get the HOB list for processing
|
||||
*/
|
||||
Hob.Raw = (VOID *)HobListPtr;
|
||||
|
||||
/*
|
||||
* Collect memory ranges
|
||||
*/
|
||||
while (!END_OF_HOB_LIST (Hob)) {
|
||||
if (Hob.Header->HobType == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {
|
||||
if (Hob.ResourceDescriptor->ResourceType == EFI_RESOURCE_MEMORY_RESERVED) {
|
||||
if (CompareGuid(&Hob.ResourceDescriptor->Owner, OwnerGuid)) {
|
||||
*Base = (EFI_PHYSICAL_ADDRESS) (Hob.ResourceDescriptor->PhysicalStart);
|
||||
*Length = (UINT64) (Hob.ResourceDescriptor->ResourceLength);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
Hob.Raw = GET_NEXT_HOB (Hob);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
This function retrieves the TSEG reserved normal memory.
|
||||
|
||||
@param HobListPtr A HOB list pointer.
|
||||
@param Length A pointer to the TSEG reserved memory length buffer. If the GUID HOB is
|
||||
located, the length will be updated.
|
||||
@param Guid A pointer to owner HOB GUID.
|
||||
@retval NULL Failed to find the TSEG reserved memory.
|
||||
@retval others TSEG reserved memory base.
|
||||
|
||||
**/
|
||||
UINT32
|
||||
GetTsegReservedMemory (
|
||||
CONST VOID *HobListPtr,
|
||||
UINT32 *Length
|
||||
)
|
||||
{
|
||||
const EFI_GUID TsegOwnerHobGuid = FSP_HOB_RESOURCE_OWNER_TSEG_GUID;
|
||||
UINT64 Length64 = 0;
|
||||
EFI_PHYSICAL_ADDRESS Base = 0;
|
||||
|
||||
GetFspReservedMemoryFromGuid (HobListPtr, &Base, &Length64, (EFI_GUID *)&TsegOwnerHobGuid);
|
||||
if ((Length != NULL) && (Base != 0)) {
|
||||
*Length = (UINT32)Length64;
|
||||
}
|
||||
return (UINT32)Base;
|
||||
}
|
||||
|
||||
/**
|
||||
This function retrieves the FSP reserved normal memory.
|
||||
|
||||
@param HobListPtr A HOB list pointer.
|
||||
@param Length A pointer to the FSP reserved memory length buffer. If the GUID HOB is
|
||||
located, the length will be updated.
|
||||
@param Guid A pointer to owner HOB GUID.
|
||||
@retval NULL Failed to find the FSP reserved memory.
|
||||
@retval others FSP reserved memory base.
|
||||
|
||||
**/
|
||||
UINT32
|
||||
GetFspReservedMemory (
|
||||
CONST VOID *HobListPtr,
|
||||
UINT32 *Length
|
||||
)
|
||||
{
|
||||
const EFI_GUID FspOwnerHobGuid = FSP_HOB_RESOURCE_OWNER_FSP_GUID;
|
||||
UINT64 Length64 = 0;
|
||||
EFI_PHYSICAL_ADDRESS Base = 0;
|
||||
|
||||
GetFspReservedMemoryFromGuid (HobListPtr, &Base, &Length64, (EFI_GUID *)&FspOwnerHobGuid);
|
||||
if ((Length != NULL) && (Base != 0)) {
|
||||
*Length = (UINT32)Length64;
|
||||
}
|
||||
return (UINT32)Base;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
This function retrieves a GUIDed HOB data buffer and size.
|
||||
|
||||
@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 Guid A pointer to HOB GUID.
|
||||
@retval NULL Failed to find the GUID HOB.
|
||||
@retval others GUID HOB data buffer pointer.
|
||||
|
||||
**/
|
||||
VOID *
|
||||
GetGuidHobDataBuffer (
|
||||
CONST VOID *HobListPtr,
|
||||
UINT32 *Length,
|
||||
EFI_GUID *Guid
|
||||
)
|
||||
{
|
||||
UINT8 *GuidHob;
|
||||
|
||||
/* FSP NVS DATA HOB */
|
||||
GuidHob = GetNextGuidHob(Guid, HobListPtr);
|
||||
if (GuidHob == NULL) {
|
||||
return NULL;
|
||||
} else {
|
||||
if (Length) {
|
||||
*Length = GET_GUID_HOB_DATA_SIZE (GuidHob);
|
||||
}
|
||||
return GET_GUID_HOB_DATA (GuidHob);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
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 *
|
||||
GetFspNvsDataBuffer (
|
||||
CONST VOID *HobListPtr,
|
||||
UINT32 *Length
|
||||
)
|
||||
{
|
||||
const EFI_GUID FspNvsHobGuid = FSP_NON_VOLATILE_STORAGE_HOB_GUID;
|
||||
return GetGuidHobDataBuffer (HobListPtr, Length, (EFI_GUID *)&FspNvsHobGuid);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
This function retrieves Bootloader temporary stack buffer and size.
|
||||
|
||||
@param HobListPtr A HOB list pointer.
|
||||
@param Length A pointer to the Bootloader temporary stack length.
|
||||
If the HOB is located, the length will be updated.
|
||||
@retval NULL Failed to find the Bootloader temporary stack HOB.
|
||||
@retval others Bootloader temporary stackbuffer pointer.
|
||||
|
||||
**/
|
||||
VOID *
|
||||
GetBootloaderTempMemoryBuffer (
|
||||
CONST VOID *HobListPtr,
|
||||
UINT32 *Length
|
||||
)
|
||||
{
|
||||
const EFI_GUID FspBootloaderTemporaryMemoryHobGuid = FSP_BOOTLOADER_TEMPORARY_MEMORY_HOB_GUID;
|
||||
return GetGuidHobDataBuffer (HobListPtr, Length, (EFI_GUID *)&FspBootloaderTemporaryMemoryHobGuid);
|
||||
}
|
Loading…
Reference in New Issue