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....@intel.com> Cc: Ma, Maurice <maurice...@intel.com>; Cc: Rangarajan, Ravi P <ravi.p.rangara...@intel.com> Cc: Kinney, Michael D <michael.d.kin...@intel.com> --- .../FspHobProcessLibSample.c | 38 ++++++++++++++++++++++ .../PeiFspHobProcessLibSample.inf | 1 + 2 files changed, 39 insertions(+) diff --git a/IntelFspWrapperPkg/Library/PeiFspHobProcessLibSample/FspHobProcessLibSample.c b/IntelFspWrapperPkg/Library/PeiFspHobProcessLibSample/FspHobProcessLibSample.c index 099980e..471b0fa 100644 --- a/IntelFspWrapperPkg/Library/PeiFspHobProcessLibSample/FspHobProcessLibSample.c +++ b/IntelFspWrapperPkg/Library/PeiFspHobProcessLibSample/FspHobProcessLibSample.c @@ -25,6 +25,7 @@ #include <Guid/GuidHobFspEas.h> #include <Guid/MemoryTypeInformation.h> +#include <Guid/PcdDataBaseHobGuid.h> #include <Ppi/Capsule.h> // @@ -335,6 +336,41 @@ FspHobProcessForMemoryResource ( } /** + 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, + (VOID *)(FspHob.Raw + sizeof (EFI_HOB_GENERIC_HEADER) + sizeof (EFI_GUID)), + FspHob.Header->HobLength + ); + } + } + FspHob.Raw = GET_NEXT_HOB (FspHob); + } +} + +/** BIOS process FspBobList for other data (not Memory Resource Descriptor). @param[in] FspHobList Pointer to the HOB data structure produced by FSP. @@ -347,6 +383,8 @@ FspHobProcessForOtherData ( IN VOID *FspHobList ) { + ProcessFspHobList (FspHobList); + return EFI_SUCCESS; } diff --git a/IntelFspWrapperPkg/Library/PeiFspHobProcessLibSample/PeiFspHobProcessLibSample.inf b/IntelFspWrapperPkg/Library/PeiFspHobProcessLibSample/PeiFspHobProcessLibSample.inf index 12f922c..c7f35f7 100644 --- a/IntelFspWrapperPkg/Library/PeiFspHobProcessLibSample/PeiFspHobProcessLibSample.inf +++ b/IntelFspWrapperPkg/Library/PeiFspHobProcessLibSample/PeiFspHobProcessLibSample.inf @@ -70,6 +70,7 @@ [Guids] gFspReservedMemoryResourceHobGuid ## CONSUMES ## HOB gEfiMemoryTypeInformationGuid ## CONSUMES ## GUID + gPcdDataBaseHobGuid ## CONSUMES ## HOB [Ppis] gEfiPeiCapsulePpiGuid ## CONSUMES -- 1.9.5.msysgit.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel