- \r
- Buf = NULL; \r
- Status = PeiServicesAllocatePages (EfiACPIMemoryNVS, EFI_SIZE_TO_PAGES (BufferSize), &Address);\r
- if (EFI_ERROR (Status)) {\r
- Buf = NULL;\r
- } else {\r
- Buf = (VOID *)(UINTN) Address;\r
+ VOID *MemoryDiscoveredPpi;\r
+\r
+ Buf = NULL;\r
+\r
+ //\r
+ // Make sure the allocated memory is physical memory.\r
+ //\r
+ Status = PeiServicesLocatePpi (\r
+ &gEfiPeiMemoryDiscoveredPpiGuid,\r
+ 0,\r
+ NULL,\r
+ (VOID **) &MemoryDiscoveredPpi\r
+ );\r
+ if (!EFI_ERROR (Status)) {\r
+ Status = PeiServicesAllocatePages (EfiACPIMemoryNVS, EFI_SIZE_TO_PAGES (BufferSize), &Address);\r
+ if (!EFI_ERROR (Status)) {\r
+ Buf = (VOID *)(UINTN) Address;\r
+ }\r