UINTN Index;\r
UINTN ArraySize;\r
VOID *HobStart;\r
+ EFI_MMRAM_HOB_DESCRIPTOR_BLOCK *MmramRangesHob;\r
\r
ASSERT (SystemTable != NULL);\r
mMmst = SystemTable;\r
CopyMem (&mNsCommBuffer, NsCommBufMmramRange, sizeof (EFI_MMRAM_DESCRIPTOR));\r
DEBUG ((DEBUG_INFO, "mNsCommBuffer: 0x%016lx - 0x%lx\n", mNsCommBuffer.CpuStart, mNsCommBuffer.PhysicalSize));\r
\r
+ Status = GetGuidedHobData (\r
+ HobStart,\r
+ &gEfiMmPeiMmramMemoryReserveGuid,\r
+ (VOID **)&MmramRangesHob\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((DEBUG_ERROR, "MmramRangesHob data extraction failed - 0x%x\n", Status));\r
+ return Status;\r
+ }\r
+\r
+ //\r
+ // As CreateHobListFromBootInfo(), the base and size of buffer shared with\r
+ // privileged Secure world software is in second one.\r
+ //\r
+ CopyMem (\r
+ &mSCommBuffer,\r
+ &MmramRangesHob->Descriptor[0] + 1,\r
+ sizeof (EFI_MMRAM_DESCRIPTOR)\r
+ );\r
+\r
//\r
// Extract the MP information from the Hoblist\r
//\r