Hi Min, > > +/** > + Transfer the incoming HobList for the TD to the final HobList for Dxe. > + The Hobs transferred in this function are ResourceDescriptor hob and > + MemoryAllocation hob. > + > + @param[in] VmmHobList The Hoblist pass the firmware > + > +**/ > +VOID > +EFIAPI > +TransferTdxHobList ( > + VOID > + ) > +{ > + EFI_PEI_HOB_POINTERS Hob; > + EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute; > + > + // > + // PcdOvmfSecGhcbBase is used as the TD_HOB in Tdx guest. > + // > + Hob.Raw = (UINT8 *)(UINTN)PcdGet32 (PcdOvmfSecGhcbBase); > + while (!END_OF_HOB_LIST (Hob)) { > + switch (Hob.Header->HobType) { > + case EFI_HOB_TYPE_RESOURCE_DESCRIPTOR: > + ResourceAttribute = Hob.ResourceDescriptor->ResourceAttribute; > + I am trying to test TDX functionality with config A patches (Wave1 + Wave2.v4) and with the above function passing the memory attributes of the resources in TD HOB list (Originally populated by VMM) as is to DXE phase, Function CoreInitializeMemoryServices (from ./MdeModulePkg/Core/Dxe/Gcd/Gcd.c) is not able to find any resources with TESTED_MEMORY_ATTRIBUTES set. For config A, Is there an expectation from VMM to set TESTED_MEMORY_ATTRIBUTES for each System Memory resource passed via TD HOB list or should this function be appending TESTED_MEMORY_ATTRIBUTES to existing resource attributes? Regards, Vishal