From c9e7907d09eaf2702ae5c6963f24ab53fc57dc33 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Sat, 6 May 2017 16:02:47 +0200 Subject: [PATCH] OvmfPkg/PlatformPei: align EmuVariableNvStore at any page boundary EmuVariableFvbRuntimeDxe now uses a 4KB (EFI_PAGE_SIZE) block size. Cc: Jordan Justen Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek Regression-tested-by: Gary Lin Reviewed-by: Jordan Justen --- OvmfPkg/PlatformPei/Platform.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c index 1b4dc00b01..3e9fda7c7a 100644 --- a/OvmfPkg/PlatformPei/Platform.c +++ b/OvmfPkg/PlatformPei/Platform.c @@ -504,7 +504,6 @@ ReserveEmuVariableNvStore ( { EFI_PHYSICAL_ADDRESS VariableStore; RETURN_STATUS PcdStatus; - UINT32 Alignment; // // Allocate storage for NV variables early on so it will be @@ -512,26 +511,15 @@ ReserveEmuVariableNvStore ( // across reboots, this allows the NV variable storage to survive // a VM reboot. // - Alignment = PcdGet32 (PcdFlashNvStorageFtwSpareSize); - if ((Alignment & (Alignment - 1)) != 0) { - // - // Round up Alignment to the next power of two. - // - Alignment = GetPowerOfTwo32 (Alignment) << 1; - } - VariableStore = (EFI_PHYSICAL_ADDRESS)(UINTN) - AllocateAlignedRuntimePages ( - EFI_SIZE_TO_PAGES (2 * PcdGet32 (PcdFlashNvStorageFtwSpareSize)), - Alignment + AllocateRuntimePages ( + EFI_SIZE_TO_PAGES (2 * PcdGet32 (PcdFlashNvStorageFtwSpareSize)) ); DEBUG ((EFI_D_INFO, - "Reserved variable store memory: 0x%lX; size: %dkb, " - "alignment: 0x%x\n", + "Reserved variable store memory: 0x%lX; size: %dkb\n", VariableStore, - (2 * PcdGet32 (PcdFlashNvStorageFtwSpareSize)) / 1024, - Alignment + (2 * PcdGet32 (PcdFlashNvStorageFtwSpareSize)) / 1024 )); PcdStatus = PcdSet64S (PcdEmuVariableNvStoreReserved, VariableStore); ASSERT_RETURN_ERROR (PcdStatus); -- 2.39.2