For variable creation and locking to work later on we need to
move the processing of the TPM physical presence opcode to before
End-of-Dxe.

Signed-off-by: Stefan Berger <stef...@linux.ibm.com>
---
 .../PlatformBootManagerLib/BdsPlatform.c      | 20 +++++++++----------
 .../PlatformBootManagerLibBhyve/BdsPlatform.c | 18 ++++++++---------
 .../PlatformBootManagerLibGrub/BdsPlatform.c  | 18 ++++++++---------
 3 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c 
b/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c
index 186401296a..2905356fc4 100644
--- a/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c
+++ b/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c
@@ -371,6 +371,16 @@ PlatformBootManagerBeforeConsole (
   //
   EfiEventGroupSignal (&gRootBridgesConnectedEventGroupGuid);
 
+  // We need to connect all trusted consoles for TCG PP. Here we treat all
+  // consoles in OVMF to be trusted consoles.
+  PlatformInitializeConsole (
+    XenDetected() ? gXenPlatformConsole : gPlatformConsole);
+
+  //
+  // Process TPM PPI request; this may require keyboard input
+  //
+  Tcg2PhysicalPresenceLibProcessRequest (NULL);
+
   //
   // We can't signal End-of-Dxe earlier than this. Namely, End-of-Dxe triggers
   // the preparation of S3 system information. That logic has a hard dependency
@@ -388,16 +398,6 @@ PlatformBootManagerBeforeConsole (
     SaveS3BootScript ();
   }
 
-  // We need to connect all trusted consoles for TCG PP. Here we treat all
-  // consoles in OVMF to be trusted consoles.
-  PlatformInitializeConsole (
-    XenDetected() ? gXenPlatformConsole : gPlatformConsole);
-
-  //
-  // Process TPM PPI request; this may require keyboard input
-  //
-  Tcg2PhysicalPresenceLibProcessRequest (NULL);
-
   //
   // Prevent further changes to LockBoxes or SMRAM.
   // Any TPM 2 Physical Presence Interface opcode must be handled before.
diff --git a/OvmfPkg/Library/PlatformBootManagerLibBhyve/BdsPlatform.c 
b/OvmfPkg/Library/PlatformBootManagerLibBhyve/BdsPlatform.c
index e767c3b172..950ab12c94 100644
--- a/OvmfPkg/Library/PlatformBootManagerLibBhyve/BdsPlatform.c
+++ b/OvmfPkg/Library/PlatformBootManagerLibBhyve/BdsPlatform.c
@@ -366,15 +366,6 @@ PlatformBootManagerBeforeConsole (
   //
   EfiEventGroupSignal (&gRootBridgesConnectedEventGroupGuid);
 
-  //
-  // We can't signal End-of-Dxe earlier than this. Namely, End-of-Dxe triggers
-  // the preparation of S3 system information. That logic has a hard dependency
-  // on the presence of the FACS ACPI table. Since our ACPI tables are only
-  // installed after PCI enumeration completes, we must not trigger the S3 save
-  // earlier, hence we can't signal End-of-Dxe earlier.
-  //
-  EfiEventGroupSignal (&gEfiEndOfDxeEventGroupGuid);
-
   // We need to connect all trusted consoles for TCG PP. Here we treat all
   // consoles in OVMF to be trusted consoles.
   PlatformInitializeConsole (gPlatformConsole);
@@ -384,6 +375,15 @@ PlatformBootManagerBeforeConsole (
   //
   Tcg2PhysicalPresenceLibProcessRequest (NULL);
 
+  //
+  // We can't signal End-of-Dxe earlier than this. Namely, End-of-Dxe triggers
+  // the preparation of S3 system information. That logic has a hard dependency
+  // on the presence of the FACS ACPI table. Since our ACPI tables are only
+  // installed after PCI enumeration completes, we must not trigger the S3 save
+  // earlier, hence we can't signal End-of-Dxe earlier.
+  //
+  EfiEventGroupSignal (&gEfiEndOfDxeEventGroupGuid);
+
   //
   // Prevent further changes to LockBoxes or SMRAM.
   // Any TPM 2 Physical Presence Interface opcode must be handled before.
diff --git a/OvmfPkg/Library/PlatformBootManagerLibGrub/BdsPlatform.c 
b/OvmfPkg/Library/PlatformBootManagerLibGrub/BdsPlatform.c
index fd80577355..fbc40dcb68 100644
--- a/OvmfPkg/Library/PlatformBootManagerLibGrub/BdsPlatform.c
+++ b/OvmfPkg/Library/PlatformBootManagerLibGrub/BdsPlatform.c
@@ -329,15 +329,6 @@ PlatformBootManagerBeforeConsole (
   //
   EfiEventGroupSignal (&gRootBridgesConnectedEventGroupGuid);
 
-  //
-  // We can't signal End-of-Dxe earlier than this. Namely, End-of-Dxe triggers
-  // the preparation of S3 system information. That logic has a hard dependency
-  // on the presence of the FACS ACPI table. Since our ACPI tables are only
-  // installed after PCI enumeration completes, we must not trigger the S3 save
-  // earlier, hence we can't signal End-of-Dxe earlier.
-  //
-  EfiEventGroupSignal (&gEfiEndOfDxeEventGroupGuid);
-
   // We need to connect all trusted consoles for TCG PP. Here we treat all
   // consoles in OVMF to be trusted consoles.
   PlatformInitializeConsole (gPlatformConsole);
@@ -347,6 +338,15 @@ PlatformBootManagerBeforeConsole (
   //
   Tcg2PhysicalPresenceLibProcessRequest (NULL);
 
+  //
+  // We can't signal End-of-Dxe earlier than this. Namely, End-of-Dxe triggers
+  // the preparation of S3 system information. That logic has a hard dependency
+  // on the presence of the FACS ACPI table. Since our ACPI tables are only
+  // installed after PCI enumeration completes, we must not trigger the S3 save
+  // earlier, hence we can't signal End-of-Dxe earlier.
+  //
+  EfiEventGroupSignal (&gEfiEndOfDxeEventGroupGuid);
+
   //
   // Prevent further changes to LockBoxes or SMRAM.
   // Any TPM 2 Physical Presence Interface opcode must be handled before.
-- 
2.31.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#84224): https://edk2.groups.io/g/devel/message/84224
Mute This Topic: https://groups.io/mt/87436446/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to