summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/PlatformPei/Platform.c
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2017-03-12 22:01:40 +0100
committerLaszlo Ersek <lersek@redhat.com>2017-05-18 10:13:01 +0200
commit5e167d7e784c92591921c29b61f0f7a000d9c7ce (patch)
treec08bae09b1809d7fbd468a494a3139ee7f69dafa /OvmfPkg/PlatformPei/Platform.c
parent62f43f7c1947c799dd69fb4b2d94376b8e689b51 (diff)
downloadedk2-5e167d7e784c92591921c29b61f0f7a000d9c7ce.tar.gz
edk2-5e167d7e784c92591921c29b61f0f7a000d9c7ce.tar.bz2
edk2-5e167d7e784c92591921c29b61f0f7a000d9c7ce.zip
OvmfPkg/PlatformPei: don't allocate reserved mem varstore if SMM_REQUIRE
For the emulated variable store, PlatformPei allocates reserved memory (as early as possible, so that the address remains the same during reboot), and PcdEmuVariableNvStoreReserved carries the address to EmuVariableFvbRuntimeDxe. However, EmuVariableFvbRuntimeDxe is excluded from the SMM_REQUIRE build, and then noone consumes PcdEmuVariableNvStoreReserved. Don't waste reserved memory whenever that's the case. (Even a dynamic default for PcdEmuVariableNvStoreReserved would be unnecessary; but that way the PcdSet64S() call in the ReserveEmuVariableNvStore() function doesn't compile.) Cc: Jordan Justen <jordan.l.justen@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Diffstat (limited to 'OvmfPkg/PlatformPei/Platform.c')
-rw-r--r--OvmfPkg/PlatformPei/Platform.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
index 5e983a8dce..1b4dc00b01 100644
--- a/OvmfPkg/PlatformPei/Platform.c
+++ b/OvmfPkg/PlatformPei/Platform.c
@@ -672,7 +672,9 @@ InitializePlatform (
mHostBridgeDevId = PciRead16 (OVMF_HOSTBRIDGE_DID);
if (mBootMode != BOOT_ON_S3_RESUME) {
- ReserveEmuVariableNvStore ();
+ if (!FeaturePcdGet (PcdSmmSmramRequire)) {
+ ReserveEmuVariableNvStore ();
+ }
PeiFvInitialization ();
MemMapInitialization ();
NoexecDxeInitialization ();