PEIM_FILE_HANDLE_EXTENDED_DATA ExtendedData;\r
EFI_PEI_TEMPORARY_RAM_SUPPORT_PPI *TemporaryRamSupportPpi;\r
UINT64 NewStackSize;\r
+ UINTN HeapTemporaryRamSize;\r
EFI_PHYSICAL_ADDRESS BaseOfNewHeap;\r
EFI_PHYSICAL_ADDRESS TopOfNewStack;\r
EFI_PHYSICAL_ADDRESS TopOfOldStack;\r
//\r
// Migrate Heap\r
//\r
- CopyMem ((UINT8 *) (UINTN) BaseOfNewHeap, (UINT8 *) PeiTemporaryRamBase, PeiTemporaryRamSize);\r
+ HeapTemporaryRamSize = (UINTN) (Private->HobList.HandoffInformationTable->EfiFreeMemoryBottom - Private->HobList.HandoffInformationTable->EfiMemoryBottom);\r
+ ASSERT (BaseOfNewHeap + HeapTemporaryRamSize <= Private->FreePhysicalMemoryTop);\r
+ CopyMem ((UINT8 *) (UINTN) BaseOfNewHeap, (UINT8 *) PeiTemporaryRamBase, HeapTemporaryRamSize);\r
\r
//\r
// Migrate Stack\r