Publish FspHob to PEI Hob by default.

because most platforms use such logic.
PcdDataBaseHobGuid GuidHob is excluded because PCD database in FSP is different with the one in PEI.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <jiewen.yao@intel.com>
Reviewed-by: "Ma, Maurice" <maurice.ma@intel.com>
Reviewed-by: "Rangarajan, Ravi P" <ravi.p.rangarajan@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18687 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Yao, Jiewen 2015-10-27 23:10:49 +00:00 committed by jyao1
parent 9838b0161d
commit 5b5e5674ae
2 changed files with 39 additions and 0 deletions

View File

@ -25,6 +25,7 @@
#include <Guid/GuidHobFspEas.h>
#include <Guid/MemoryTypeInformation.h>
#include <Guid/PcdDataBaseHobGuid.h>
#include <Ppi/Capsule.h>
//
@ -334,6 +335,41 @@ FspHobProcessForMemoryResource (
return EFI_SUCCESS;
}
/**
Process FSP HOB list
@param[in] FspHobList Pointer to the HOB data structure produced by FSP.
**/
VOID
ProcessFspHobList (
IN VOID *FspHobList
)
{
EFI_PEI_HOB_POINTERS FspHob;
FspHob.Raw = FspHobList;
//
// Add all the HOBs from FSP binary to FSP wrapper
//
while (!END_OF_HOB_LIST (FspHob)) {
if (FspHob.Header->HobType == EFI_HOB_TYPE_GUID_EXTENSION) {
//
// Skip FSP binary creates PcdDataBaseHobGuid
//
if (!CompareGuid(&FspHob.Guid->Name, &gPcdDataBaseHobGuid)) {
BuildGuidDataHob (
&FspHob.Guid->Name,
GET_GUID_HOB_DATA(FspHob),
GET_GUID_HOB_DATA_SIZE(FspHob)
);
}
}
FspHob.Raw = GET_NEXT_HOB (FspHob);
}
}
/**
BIOS process FspBobList for other data (not Memory Resource Descriptor).
@ -347,6 +383,8 @@ FspHobProcessForOtherData (
IN VOID *FspHobList
)
{
ProcessFspHobList (FspHobList);
return EFI_SUCCESS;
}

View File

@ -70,6 +70,7 @@
[Guids]
gFspReservedMemoryResourceHobGuid ## CONSUMES ## HOB
gEfiMemoryTypeInformationGuid ## CONSUMES ## GUID
gPcdDataBaseHobGuid ## CONSUMES ## HOB
[Ppis]
gEfiPeiCapsulePpiGuid ## CONSUMES