IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
)\r
{\r
- PEI_CORE_INSTANCE *Private;\r
- VOID* MemoryBuffer;\r
+ PEI_CORE_INSTANCE *Private;\r
+ EFI_PHYSICAL_ADDRESS MemoryBuffer;\r
\r
Private = PEI_CORE_INSTANCE_FROM_PS_THIS (GetPeiServicesTablePointer ());\r
- \r
+ MemoryBuffer = 0;\r
+\r
if (Private->PeiMemoryInstalled && (((Private->HobList.HandoffInformationTable->BootMode != BOOT_ON_S3_RESUME) && PcdGetBool (PcdShadowPeimOnBoot)) || \r
((Private->HobList.HandoffInformationTable->BootMode == BOOT_ON_S3_RESUME) && PcdGetBool (PcdShadowPeimOnS3Boot))) &&\r
(EFI_IMAGE_MACHINE_TYPE_SUPPORTED(EFI_IMAGE_MACHINE_X64) || EFI_IMAGE_MACHINE_TYPE_SUPPORTED(EFI_IMAGE_MACHINE_IA32))) {\r
// compilers that have been tested\r
//\r
if (Private->ShadowedImageRead == NULL) {\r
- MemoryBuffer = AllocatePages (0x400 / EFI_PAGE_SIZE + 1);\r
- ASSERT (MemoryBuffer != NULL);\r
- CopyMem (MemoryBuffer, (CONST VOID *) (UINTN) PeiImageReadForShadow, 0x400);\r
+ PeiServicesAllocatePages (EfiBootServicesCode, 0x400 / EFI_PAGE_SIZE + 1, &MemoryBuffer);\r
+ ASSERT (MemoryBuffer != 0);\r
+ CopyMem ((VOID *)(UINTN)MemoryBuffer, (CONST VOID *) (UINTN) PeiImageReadForShadow, 0x400);\r
Private->ShadowedImageRead = (PE_COFF_LOADER_READ_FILE) (UINTN) MemoryBuffer;\r
}\r
\r
//\r
// The PEIM is not assiged valid address, try to allocate page to load it.\r
//\r
- ImageContext.ImageAddress = (EFI_PHYSICAL_ADDRESS)(UINTN) AllocatePages (EFI_SIZE_TO_PAGES ((UINT32) AlignImageSize));\r
+ Status = PeiServicesAllocatePages (EfiBootServicesCode,\r
+ EFI_SIZE_TO_PAGES ((UINT32) AlignImageSize),\r
+ &ImageContext.ImageAddress);\r
}\r
} else {\r
- ImageContext.ImageAddress = (EFI_PHYSICAL_ADDRESS)(UINTN) AllocatePages (EFI_SIZE_TO_PAGES ((UINT32) AlignImageSize));\r
+ Status = PeiServicesAllocatePages (EfiBootServicesCode,\r
+ EFI_SIZE_TO_PAGES ((UINT32) AlignImageSize),\r
+ &ImageContext.ImageAddress);\r
}\r
- if (ImageContext.ImageAddress != 0) {\r
+ if (!EFI_ERROR (Status)) {\r
//\r
// Adjust the Image Address to make sure it is section alignment.\r
//\r