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:
committed by
Martin Roth
parent
0122afb609
commit
68b79cdda4
69
src/vendorcode/intel/fsp1_0/rangeley/include/fspguid.h
Normal file
69
src/vendorcode/intel/fsp1_0/rangeley/include/fspguid.h
Normal file
@ -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,
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
are permitted provided that the following conditions are met:
|
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 tRTPmin; // 27 Minimum Internal Read to Precharge Command Delay Time (tRTPmin)
|
||||||
UINT8 UpperNibbleFortFAW; // 28 Upper Nibble for tFAW
|
UINT8 UpperNibbleFortFAW; // 28 Upper Nibble for tFAW
|
||||||
UINT8 tFAWmin; // 29 Minimum Four Activate Window Delay Time (tFAWmin)
|
UINT8 tFAWmin; // 29 Minimum Four Activate Window Delay Time (tFAWmin)
|
||||||
|
UINT8 SdramThermalRefreshOption; // 31 SdramThermalRefreshOption
|
||||||
UINT8 ModuleThermalSensor; // 32 ModuleThermalSensor
|
UINT8 ModuleThermalSensor; // 32 ModuleThermalSensor
|
||||||
UINT8 SDRAMDeviceType; // 33 SDRAM Device Type
|
UINT8 SDRAMDeviceType; // 33 SDRAM Device Type
|
||||||
UINT8 tCKminFine; // 34 Fine Offset for SDRAM Minimum Cycle Time (tCKmin)
|
UINT8 tCKminFine; // 34 Fine Offset for SDRAM Minimum Cycle Time (tCKmin)
|
||||||
|
95
src/vendorcode/intel/fsp1_0/rangeley/include/fspsupport.h
Normal file
95
src/vendorcode/intel/fsp1_0/rangeley/include/fspsupport.h
Normal file
@ -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 TRUE ((BOOLEAN)(1==1))
|
||||||
#define FALSE ((BOOLEAN)(0==1))
|
#define FALSE ((BOOLEAN)(0==1))
|
||||||
|
|
||||||
|
static inline void DebugDeadLoop(void) {
|
||||||
|
for (;;);
|
||||||
|
}
|
||||||
|
|
||||||
#define FSPAPI __attribute__((cdecl))
|
#define FSPAPI __attribute__((cdecl))
|
||||||
#define EFIAPI __attribute__((cdecl))
|
#define EFIAPI __attribute__((cdecl))
|
||||||
|
|
||||||
|
#define _ASSERT(Expression) DebugDeadLoop()
|
||||||
#define ASSERT(Expression) \
|
#define ASSERT(Expression) \
|
||||||
do { \
|
do { \
|
||||||
if (!(Expression)) { \
|
if (!(Expression)) { \
|
||||||
for (;;); \
|
_ASSERT (Expression); \
|
||||||
} \
|
} \
|
||||||
} while (FALSE)
|
} while (FALSE)
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/** @file
|
/** @file
|
||||||
|
|
||||||
Copyright (C) 2013-2014 Intel Corporation
|
Copyright (C) 2015, Intel Corporation
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
are permitted provided that the following conditions are met:
|
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_0_1; /* Offset 0x0026 */
|
||||||
UINT8 PcdSpdBaseAddress_1_0; /* Offset 0x0027 */
|
UINT8 PcdSpdBaseAddress_1_0; /* Offset 0x0027 */
|
||||||
UINT8 PcdSpdBaseAddress_1_1; /* Offset 0x0028 */
|
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 PcdEnableLan; /* Offset 0x0030 */
|
||||||
UINT8 PcdEnableSata2; /* Offset 0x0031 */
|
UINT8 PcdEnableSata2; /* Offset 0x0031 */
|
||||||
UINT8 PcdEnableSata3; /* Offset 0x0032 */
|
UINT8 PcdEnableSata3; /* Offset 0x0032 */
|
||||||
@ -65,13 +66,14 @@ typedef struct _UPD_DATA_REGION {
|
|||||||
UINT8 PcdPrintDebugMessages; /* Offset 0x0040 */
|
UINT8 PcdPrintDebugMessages; /* Offset 0x0040 */
|
||||||
UINT8 PcdFastboot; /* Offset 0x0041 */
|
UINT8 PcdFastboot; /* Offset 0x0041 */
|
||||||
UINT8 PcdEccSupport; /* Offset 0x0042 */
|
UINT8 PcdEccSupport; /* Offset 0x0042 */
|
||||||
UINT8 PcdCustomerRevision[32]; /* Offset 0x0043 */
|
UINT8 PcdSerialPortBaudRate; /* Offset 0x0043 */
|
||||||
UINT8 UnusedUpdSpace3[13]; /* Offset 0x0063 */
|
UINT8 PcdCustomerRevision[32]; /* Offset 0x0044 */
|
||||||
|
UINT8 UnusedUpdSpace3[12]; /* Offset 0x0064 */
|
||||||
UINT16 PcdRegionTerminator; /* Offset 0x0070 */
|
UINT16 PcdRegionTerminator; /* Offset 0x0070 */
|
||||||
} UPD_DATA_REGION;
|
} UPD_DATA_REGION;
|
||||||
|
|
||||||
#define VPD_IMAGE_ID 0x562D474E524E5641 /* 'AVNRNG-V' */
|
#define VPD_IMAGE_ID 0x562D474E524E5641 /* 'AVNRNG-V' */
|
||||||
#define VPD_IMAGE_REV 0x00000102
|
#define VPD_IMAGE_REV 0x00000140
|
||||||
|
|
||||||
typedef struct _VPD_DATA_REGION {
|
typedef struct _VPD_DATA_REGION {
|
||||||
UINT64 PcdVpdRegionSign; /* Offset 0x0000 */
|
UINT64 PcdVpdRegionSign; /* Offset 0x0000 */
|
||||||
|
288
src/vendorcode/intel/fsp1_0/rangeley/srx/fsp_support.c
Normal file
288
src/vendorcode/intel/fsp1_0/rangeley/srx/fsp_support.c
Normal file
@ -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);
|
||||||
|
}
|
Reference in New Issue
Block a user