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