]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg: include FaultTolerantWritePei and VariablePei with -D SMM_REQUIRE
authorLaszlo Ersek <lersek@redhat.com>
Tue, 10 Mar 2020 22:27:38 +0000 (23:27 +0100)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Thu, 12 Mar 2020 21:14:46 +0000 (21:14 +0000)
FaultTolerantWritePei consumes:
- PcdFlashNvStorageFtwWorkingBase,
- PcdFlashNvStorageFtwSpareBase.

VariablePei consumes:
- PcdFlashNvStorageVariableBase64.

Due to the previous patches in this series, the above PCDs are available
in the PEI phase, in the SMM_REQUIRE build.

FaultTolerantWritePei produces a GUID-ed HOB with
FAULT_TOLERANT_WRITE_LAST_WRITE_DATA as contents. It also installs a Null
PPI that carries the same gEdkiiFaultTolerantWriteGuid as the HOB.

VariablePei depends on the Null PPI mentioned above with a DEPEX, consumes
the HOB (which is safe due to the DEPEX), and produces
EFI_PEI_READ_ONLY_VARIABLE2_PPI.

This enables read-only access to non-volatile UEFI variables in the PEI
phase, in the SMM_REQUIRE build.

For now, the DxeLoadCore() function in
"MdeModulePkg/Core/DxeIplPeim/DxeLoad.c" will not access the
"MemoryTypeInformation" variable, because OVMF's PlatformPei always
produces the MemoryTypeInformation HOB.

(Note: when the boot mode is BOOT_ON_S3_RESUME, PlatformPei doesn't build
the HOB, but that's in sync with DxeLoadCore() also not looking for either
the HOB or the UEFI variable.)

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=386
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200310222739.26717-5-lersek@redhat.com>
Acked-by: Leif Lindholm <leif@nuviainc.com>
OvmfPkg/OvmfPkgIa32.dsc
OvmfPkg/OvmfPkgIa32.fdf
OvmfPkg/OvmfPkgIa32X64.dsc
OvmfPkg/OvmfPkgIa32X64.fdf
OvmfPkg/OvmfPkgX64.dsc
OvmfPkg/OvmfPkgX64.fdf

index 9bc47b01bb6a00ae54a92122e85a82b7c8f852d4..4c9ff419c462db4e3a3827931db8fe2fd5875a61 100644 (file)
 !endif\r
   }\r
 !if $(SMM_REQUIRE) == TRUE\r
+  MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf\r
+  MdeModulePkg/Universal/Variable/Pei/VariablePei.inf\r
   OvmfPkg/SmmAccess/SmmAccessPei.inf\r
 !endif\r
   UefiCpuPkg/CpuMpPei/CpuMpPei.inf\r
index 54417b2bed4d3c40136cb087db0cad977ef6b077..f1a15de365fd4f7c3f7fb590dbe018895d3dc8de 100644 (file)
@@ -155,6 +155,8 @@ INF  OvmfPkg/PlatformPei/PlatformPei.inf
 INF  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf\r
 INF  UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf\r
 !if $(SMM_REQUIRE) == TRUE\r
+INF  MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf\r
+INF  MdeModulePkg/Universal/Variable/Pei/VariablePei.inf\r
 INF  OvmfPkg/SmmAccess/SmmAccessPei.inf\r
 !endif\r
 INF  UefiCpuPkg/CpuMpPei/CpuMpPei.inf\r
index 234d5426f066a45befddfbb32df4b45ada5d25d5..56681e9e45802e07110ee27da726281d849c9edb 100644 (file)
 !endif\r
   }\r
 !if $(SMM_REQUIRE) == TRUE\r
+  MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf\r
+  MdeModulePkg/Universal/Variable/Pei/VariablePei.inf\r
   OvmfPkg/SmmAccess/SmmAccessPei.inf\r
 !endif\r
   UefiCpuPkg/CpuMpPei/CpuMpPei.inf\r
index 889a5aceea4dd2aeade60a3b9f4a661d6642b54c..9e2eb78230e9afc8b68e7a3ca5579a0c6076d4d3 100644 (file)
@@ -155,6 +155,8 @@ INF  OvmfPkg/PlatformPei/PlatformPei.inf
 INF  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf\r
 INF  UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf\r
 !if $(SMM_REQUIRE) == TRUE\r
+INF  MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf\r
+INF  MdeModulePkg/Universal/Variable/Pei/VariablePei.inf\r
 INF  OvmfPkg/SmmAccess/SmmAccessPei.inf\r
 !endif\r
 INF  UefiCpuPkg/CpuMpPei/CpuMpPei.inf\r
index 4d8a39a12ee1545477beffc2551d006093a03b22..0e74b6f4d26c19ab14090dd5e23b907564d9f8b9 100644 (file)
 !endif\r
   }\r
 !if $(SMM_REQUIRE) == TRUE\r
+  MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf\r
+  MdeModulePkg/Universal/Variable/Pei/VariablePei.inf\r
   OvmfPkg/SmmAccess/SmmAccessPei.inf\r
 !endif\r
   UefiCpuPkg/CpuMpPei/CpuMpPei.inf\r
index 889a5aceea4dd2aeade60a3b9f4a661d6642b54c..9e2eb78230e9afc8b68e7a3ca5579a0c6076d4d3 100644 (file)
@@ -155,6 +155,8 @@ INF  OvmfPkg/PlatformPei/PlatformPei.inf
 INF  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf\r
 INF  UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf\r
 !if $(SMM_REQUIRE) == TRUE\r
+INF  MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf\r
+INF  MdeModulePkg/Universal/Variable/Pei/VariablePei.inf\r
 INF  OvmfPkg/SmmAccess/SmmAccessPei.inf\r
 !endif\r
 INF  UefiCpuPkg/CpuMpPei/CpuMpPei.inf\r