diff options
author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2018-05-22 15:36:16 +0200 |
---|---|---|
committer | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2018-05-29 10:47:18 +0200 |
commit | d79d7b58608c49e9bce6102b02db38ded9c52150 (patch) | |
tree | 478c42f456467d871c6fdfef358172dde782b00c /MdeModulePkg | |
parent | a40e0b7aa9180313611525e5a9c05daaf9120713 (diff) | |
download | edk2-d79d7b58608c49e9bce6102b02db38ded9c52150.tar.gz edk2-d79d7b58608c49e9bce6102b02db38ded9c52150.tar.bz2 edk2-d79d7b58608c49e9bce6102b02db38ded9c52150.zip |
MdeModulePkg/DxeCorePerformanceLib: use AllocatePeiAccessiblePages
Replace the call to and implementation of the function
FpdtAllocateReservedMemoryBelow4G() with a call to
AllocatePeiAccessiblePages, which boils down to the same on X64,
but does not crash non-X64 systems that lack memory below 4 GB.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
Diffstat (limited to 'MdeModulePkg')
-rw-r--r-- | MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c | 48 |
1 files changed, 7 insertions, 41 deletions
diff --git a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c index 71d624fc9c..68b29ac5a9 100644 --- a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c +++ b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c @@ -166,46 +166,6 @@ IsKnownID ( }
/**
- Allocate EfiReservedMemoryType below 4G memory address.
-
- This function allocates EfiReservedMemoryType below 4G memory address.
-
- @param[in] Size Size of memory to allocate.
-
- @return Allocated address for output.
-
-**/
-VOID *
-FpdtAllocateReservedMemoryBelow4G (
- IN UINTN Size
- )
-{
- UINTN Pages;
- EFI_PHYSICAL_ADDRESS Address;
- EFI_STATUS Status;
- VOID *Buffer;
-
- Buffer = NULL;
- Pages = EFI_SIZE_TO_PAGES (Size);
- Address = 0xffffffff;
-
- Status = gBS->AllocatePages (
- AllocateMaxAddress,
- EfiReservedMemoryType,
- Pages,
- &Address
- );
- ASSERT_EFI_ERROR (Status);
-
- if (!EFI_ERROR (Status)) {
- Buffer = (VOID *) (UINTN) Address;
- ZeroMem (Buffer, Size);
- }
-
- return Buffer;
-}
-
-/**
Allocate buffer for Boot Performance table.
@return Status code.
@@ -348,7 +308,13 @@ AllocateBootPerformanceTable ( //
// Fail to allocate at specified address, continue to allocate at any address.
//
- mAcpiBootPerformanceTable = (BOOT_PERFORMANCE_TABLE *) FpdtAllocateReservedMemoryBelow4G (BootPerformanceDataSize);
+ mAcpiBootPerformanceTable = (BOOT_PERFORMANCE_TABLE *) AllocatePeiAccessiblePages (
+ EfiReservedMemoryType,
+ EFI_SIZE_TO_PAGES (BootPerformanceDataSize)
+ );
+ if (mAcpiBootPerformanceTable != NULL) {
+ ZeroMem (mAcpiBootPerformanceTable, BootPerformanceDataSize);
+ }
}
DEBUG ((DEBUG_INFO, "DxeCorePerformanceLib: ACPI Boot Performance Table address = 0x%x\n", mAcpiBootPerformanceTable));
|