UINT64 EfiFreeMemorySize;\r
EFI_PHYSICAL_ADDRESS PhysicalAddressOfOldHob;\r
\r
- if (MemoryLength > (MAX_ADDRESS - MemoryBegin + 1))\r
- return EFI_INVALID_PARAMETER;\r
- \r
- \r
DEBUG ((EFI_D_INFO, "PeiInstallPeiMemory MemoryBegin 0x%LX, MemoryLength 0x%LX\n", MemoryBegin, MemoryLength));\r
\r
PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (PeiServices);\r
\r
PrivateData->SwitchStackSignal = TRUE;\r
PrivateData->PeiMemoryInstalled = TRUE;\r
+\r
+ PrivateData->StackBase = MemoryBegin;\r
\r
- //\r
- // Ensure the stack base is in page alignment \r
- //\r
- PrivateData->StackBase = ((UINTN)MemoryBegin + (EFI_PAGE_SIZE - 1)) & EFI_PAGE_SIZE;\r
- \r
- PeiStackSize = (RShiftU64 (MemoryLength, 1) + (EFI_PAGE_SIZE - 1)) & EFI_PAGE_SIZE;\r
+ PeiStackSize = RShiftU64 (MemoryLength, 1);\r
if (PEI_STACK_SIZE > PeiStackSize) {\r
PrivateData->StackSize = PeiStackSize;\r
} else {\r
\r
OldHandOffHob = PrivateData->HobList.HandoffInformationTable;\r
\r
- PrivateData->HobList.Raw = (VOID *)((UINTN)(PrivateData->StackBase + PrivateData->StackSize));\r
+ PrivateData->HobList.Raw = (VOID *)((UINTN)(MemoryBegin + PrivateData->StackSize));\r
NewHandOffHob = PrivateData->HobList.HandoffInformationTable;\r
PhysicalAddressOfOldHob = (EFI_PHYSICAL_ADDRESS) (UINTN) OldHandOffHob;\r
\r