public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH v10 0/4] Add safe unaccepted memory behavior
@ 2023-01-26  0:56 Dionna Glaze
  2023-01-26  0:56 ` [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe Dionna Glaze
                   ` (3 more replies)
  0 siblings, 4 replies; 34+ messages in thread
From: Dionna Glaze @ 2023-01-26  0:56 UTC (permalink / raw)
  To: devel
  Cc: Dionna Glaze, Ard Biescheuvel, Min M. Xu, Gerd Hoffmann,
	James Bottomley, Tom Lendacky, Jiewen Yao, Erdem Aktas,
	Andrew Fish, Michael D. Kinney

We make eager memory acceptance the default behavior at
ExitBootServices for SEV-SNP machines by using the standard-enforced
behavior that if the call returns an error code, then the map key is
incorrect and the caller must re-call GetMemoryMap to ensure the
contents are correct.

Eager memory acceptance is implemented by using the UEFI v2.9-added
EFI_EVENT_GROUP_BEFORE_EXIT_BOOT_SERVICES to check a support condition
before changing all unaccepted memory type regions to conventional
memory after first using the MemoryAccept protocol to accept all memory
in each region. This update to the memory map only happens once, since
there are no extra unaccepted memory regions to change on the forced
second call to ExitBootServices.

The new acceptance logic is technology-agnostic and usable across TEE
technologies, so this patch series introduces a Confidenial Compute DXE
driver called CocoDxe.

To allow the OS loader to prevent the eager acceptance, and thus pass
the before-mentioned "support condition", we add a new protocol, up
for standardization, SevMemoryAcceptance.  This protocol has one
interface, AllowUnacceptedMemory(). The OS loader can inform the UEFI
that it supports the unaccepted memory type and accepts the
responsibility to accept it.

The SevMemoryAcceptance protocol is necessary for safe rollout of the
unaccepted memory type in SEV-SNP-enabled kernels, given the gradual update of guest OS kernels.
OVMF cannot rely on the following implication

  MemEncryptSevIsEnabled ()

  implies

  unaccepted memory is supported by the guest

This implication does not hold for e.g., upstream Linux.

All images that support unaccepted memory must now locate and call this
new BZ3987_SEV_ACCEPT_ALL_UNACCEPTED_MEMORY_PROTOCOL and call the
AllowUnacceptedMemory function.

Changes since v9:
 - Renamed protocol to SevMemoryAcceptance.
 - Removed CocoDxe and moved all contained code to AmdSevDxe.
 - Renamed protocol header file to reference the bugzilla number.
Changes since v8:
 - First 3 patches removed since they were submitted separately.
 - Later patches rebased on edk2/master and modified to work with the
   current locations and namings of the unaccepted memory constants.
Changes since v7:
 - Rebased onto lazy accept v4 patch series, so memory accept protocol
   has the EDKII prefix, and the unaccepted memory type has the BZ3937
   prefix.
 - Removed a bad #include to a header removed in v7.
 - Renamed the protocol to BZ3987_MEMORY_ACCEPTANCE_PROTOCOL as per the
   discussion on the buganizer issue.
 - Uncrustify formatting

Changes since v6:
 - Added implementation of EFI_EVENT_GROUP_BEFORE_EXIT_BOOT_SERVICES.
 - Changed callback protocol of v5 to instead use the standardized event
   group for before_exit_boot_services.

Changes since v5:
 - Generic callback protocol moved to MdeModulePkg
 - Removed use of EFI_WARN_STALE_DATA and added comment that the callback
   should only return EFI_SUCCESS or EFI_INVALID_PARAMETER.
 - Removed errant log statement and fixed formatting.

Changes since v4:
 - Commit message wording
 - Replaced direct change to DxeMain with a more generic callback
   protocol.
 - Implemented the direct change as an instance of the callback protocol
   from a new CocoDxe driver.
 - Replaced "enable" protocol with a "disable" protocol, since the name
   was confusing. The AcceptAllUnacceptedMemory protocol directly names
   the behavior that is disabling.

Changes since v3:
 - "DxeMain accepts all memory" patch split into 3 to make each patch
   affect only one package at a time.

Changes since v2:
 - Removed the redundant memory accept interface and added the accept
   behavior to the DXE implementation of
   MemEncryptSevSnpPreValidateSystemRam.
 - Fixed missing #include in >=4GB patch.

Changes since v1:
 - Added a patch to classify SEV-SNP memory above 4GB unaccepted.
 - Fixed style problems in EfiMemoryAcceptProtocol implementation.

Cc: Ard Biescheuvel <ardb@kernel.org>
Cc: "Min M. Xu" <min.m.xu@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Tom Lendacky <Thomas.Lendacky@amd.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: Andrew Fish <afish@apple.com>
Cc: "Michael D. Kinney" <michael.d.kinney@intel.com>

Signed-off-by: Dionna Glaze <dionnaglaze@google.com>

Dionna Glaze (4):
  OvmfPkg: Add memory acceptance event in AmdSevDxe
  MdePkg: Introduce the SevMemoryAcceptance protocol
  OvmfPkg: Implement AcceptAllUnacceptedMemory in AmdSevDxe
  OvmfPkg/PlatformPei: SEV-SNP make >=4GB unaccepted

 MdePkg/Include/Protocol/Bz3987SevMemoryAcceptance.h |  44 +++++++
 MdePkg/MdePkg.dec                                   |   3 +
 OvmfPkg/AmdSevDxe/AmdSevDxe.c                       | 135 ++++++++++++++++++++
 OvmfPkg/AmdSevDxe/AmdSevDxe.inf                     |   2 +
 OvmfPkg/PlatformPei/AmdSev.c                        |   5 +
 5 files changed, 189 insertions(+)
 create mode 100644 MdePkg/Include/Protocol/Bz3987SevMemoryAcceptance.h

-- 
2.39.1.456.gfc5497dd1b-goog


^ permalink raw reply	[flat|nested] 34+ messages in thread

* [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-01-26  0:56 [PATCH v10 0/4] Add safe unaccepted memory behavior Dionna Glaze
@ 2023-01-26  0:56 ` Dionna Glaze
  2023-01-26 10:30   ` Ard Biesheuvel
  2023-02-09 13:35   ` [edk2-devel] " Gupta, Pankaj
  2023-01-26  0:56 ` [PATCH v10 2/4] MdePkg: Introduce the SevMemoryAcceptance protocol Dionna Glaze
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 34+ messages in thread
From: Dionna Glaze @ 2023-01-26  0:56 UTC (permalink / raw)
  To: devel
  Cc: Dionna Glaze, Gerd Hoffmann, James Bottomley, Jiewen Yao,
	Tom Lendacky, Ard Biesheuvel, Min M. Xu, Andrew Fish,
	Michael D. Kinney

The added behavior is to accept all unaccepted memory at
ExitBootServices if the behavior is not disabled. This allows safe
upgrades for OS loaders to affirm their support for the unaccepted
memory type.

Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: "Min M. Xu" <min.m.xu@intel.com>
Cc: Andrew Fish <afish@apple.com>
Cc: "Michael D. Kinney" <michael.d.kinney@intel.com>

Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
---
 OvmfPkg/AmdSevDxe/AmdSevDxe.c   | 109 ++++++++++++++++++++
 OvmfPkg/AmdSevDxe/AmdSevDxe.inf |   1 +
 2 files changed, 110 insertions(+)

diff --git a/OvmfPkg/AmdSevDxe/AmdSevDxe.c b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
index f7600c3c81..5eec76fea2 100644
--- a/OvmfPkg/AmdSevDxe/AmdSevDxe.c
+++ b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
@@ -20,6 +20,7 @@
 #include <Library/UefiBootServicesTableLib.h>
 #include <Guid/ConfidentialComputingSevSnpBlob.h>
 #include <Library/PcdLib.h>
+#include <Pi/PrePiDxeCis.h>
 #include <Protocol/MemoryAccept.h>
 
 STATIC CONFIDENTIAL_COMPUTING_SNP_BLOB_LOCATION  mSnpBootDxeTable = {
@@ -34,6 +35,10 @@ STATIC CONFIDENTIAL_COMPUTING_SNP_BLOB_LOCATION  mSnpBootDxeTable = {
 
 STATIC EFI_HANDLE  mAmdSevDxeHandle = NULL;
 
+STATIC BOOLEAN  mAcceptAllMemoryAtEBS = TRUE;
+
+STATIC EFI_EVENT  mAcceptAllMemoryEvent = NULL;
+
 #define IS_ALIGNED(x, y)  ((((x) & ((y) - 1)) == 0))
 
 STATIC
@@ -62,6 +67,94 @@ AmdSevMemoryAccept (
   return EFI_SUCCESS;
 }
 
+STATIC
+EFI_STATUS
+AcceptAllMemory (
+  IN EDKII_MEMORY_ACCEPT_PROTOCOL  *AcceptMemory
+  )
+{
+  EFI_GCD_MEMORY_SPACE_DESCRIPTOR  *AllDescMap;
+  UINTN                            NumEntries;
+  UINTN                            Index;
+  EFI_STATUS                       Status;
+
+  DEBUG ((DEBUG_INFO, "Accepting all memory\n"));
+
+  /*
+   * Get a copy of the memory space map to iterate over while
+   * changing the map.
+   */
+  Status = gDS->GetMemorySpaceMap (&NumEntries, &AllDescMap);
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+
+  for (Index = 0; Index < NumEntries; Index++) {
+    CONST EFI_GCD_MEMORY_SPACE_DESCRIPTOR  *Desc;
+
+    Desc = &AllDescMap[Index];
+    if (Desc->GcdMemoryType != EFI_GCD_MEMORY_TYPE_UNACCEPTED) {
+      continue;
+    }
+
+    Status = AcceptMemory->AcceptMemory (
+                             AcceptMemory,
+                             Desc->BaseAddress,
+                             Desc->Length
+                             );
+    if (EFI_ERROR (Status)) {
+      break;
+    }
+
+    Status = gDS->RemoveMemorySpace (Desc->BaseAddress, Desc->Length);
+    if (EFI_ERROR (Status)) {
+      break;
+    }
+
+    Status = gDS->AddMemorySpace (
+                    EfiGcdMemoryTypeSystemMemory,
+                    Desc->BaseAddress,
+                    Desc->Length,
+                    EFI_MEMORY_CPU_CRYPTO | EFI_MEMORY_XP | EFI_MEMORY_RO | EFI_MEMORY_RP
+                    );
+    if (EFI_ERROR (Status)) {
+      break;
+    }
+  }
+
+  gBS->FreePool (AllDescMap);
+  return Status;
+}
+
+VOID
+EFIAPI
+ResolveUnacceptedMemory (
+  IN EFI_EVENT  Event,
+  IN VOID       *Context
+  )
+{
+  EDKII_MEMORY_ACCEPT_PROTOCOL  *AcceptMemory;
+  EFI_STATUS                    Status;
+
+  if (!mAcceptAllMemoryAtEBS) {
+    return;
+  }
+
+  Status = gBS->LocateProtocol (
+                  &gEdkiiMemoryAcceptProtocolGuid,
+                  NULL,
+                  (VOID **)&AcceptMemory
+                  );
+  if (Status == EFI_NOT_FOUND) {
+    return;
+  }
+
+  ASSERT_EFI_ERROR (Status);
+
+  Status = AcceptAllMemory (AcceptMemory);
+  ASSERT_EFI_ERROR (Status);
+}
+
 STATIC EDKII_MEMORY_ACCEPT_PROTOCOL  mMemoryAcceptProtocol = {
   AmdSevMemoryAccept
 };
@@ -195,6 +288,22 @@ AmdSevDxeEntryPoint (
                     );
     ASSERT_EFI_ERROR (Status);
 
+    // SEV-SNP support does not automatically imply unaccepted memory support,
+    // so make ExitBootServices accept all unaccepted memory if support is
+    // not communicated.
+    Status = gBS->CreateEventEx (
+                    EVT_NOTIFY_SIGNAL,
+                    TPL_CALLBACK,
+                    ResolveUnacceptedMemory,
+                    NULL,
+                    &gEfiEventBeforeExitBootServicesGuid,
+                    &mAcceptAllMemoryEvent
+                    );
+
+    if (EFI_ERROR (Status)) {
+      DEBUG ((DEBUG_ERROR, "AllowUnacceptedMemory event creation for EventBeforeExitBootServices failed.\n"));
+    }
+
     //
     // If its SEV-SNP active guest then install the CONFIDENTIAL_COMPUTING_SEV_SNP_BLOB.
     // It contains the location for both the Secrets and CPUID page.
diff --git a/OvmfPkg/AmdSevDxe/AmdSevDxe.inf b/OvmfPkg/AmdSevDxe/AmdSevDxe.inf
index cd1b686c53..5b443d45bc 100644
--- a/OvmfPkg/AmdSevDxe/AmdSevDxe.inf
+++ b/OvmfPkg/AmdSevDxe/AmdSevDxe.inf
@@ -52,6 +52,7 @@
 
 [Guids]
   gConfidentialComputingSevSnpBlobGuid
+  gEfiEventBeforeExitBootServicesGuid
 
 [Pcd]
   gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId
-- 
2.39.1.456.gfc5497dd1b-goog


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v10 2/4] MdePkg: Introduce the SevMemoryAcceptance protocol
  2023-01-26  0:56 [PATCH v10 0/4] Add safe unaccepted memory behavior Dionna Glaze
  2023-01-26  0:56 ` [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe Dionna Glaze
@ 2023-01-26  0:56 ` Dionna Glaze
  2023-01-26  1:24   ` Yao, Jiewen
  2023-01-26  0:56 ` [PATCH v10 3/4] OvmfPkg: Implement AcceptAllUnacceptedMemory in AmdSevDxe Dionna Glaze
  2023-01-26  0:56 ` [PATCH v10 4/4] OvmfPkg/PlatformPei: SEV-SNP make >=4GB unaccepted Dionna Glaze
  3 siblings, 1 reply; 34+ messages in thread
From: Dionna Glaze @ 2023-01-26  0:56 UTC (permalink / raw)
  To: devel
  Cc: Dionna Glaze, Gerd Hoffmann, James Bottomley, Jiewen Yao,
	Tom Lendacky, Ard Biesheuvel, Min M. Xu, Andrew Fish,
	Michael D. Kinney

The default behavior for unaccepted memory in SEV-SNP is to accept all
memory when ExitBootServices is called. An OS loader can use this
protocol to disable this behavior to assume responsibility for memory
acceptance and to affirm that the OS can handle the unaccepted memory
type.

This is a candidate for standardization.

Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: "Min M. Xu" <min.m.xu@intel.com>
Cc: Andrew Fish <afish@apple.com>
Cc: "Michael D. Kinney" <michael.d.kinney@intel.com>

Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
---
 MdePkg/Include/Protocol/Bz3987SevMemoryAcceptance.h | 44 ++++++++++++++++++++
 MdePkg/MdePkg.dec                                   |  3 ++
 2 files changed, 47 insertions(+)

diff --git a/MdePkg/Include/Protocol/Bz3987SevMemoryAcceptance.h b/MdePkg/Include/Protocol/Bz3987SevMemoryAcceptance.h
new file mode 100644
index 0000000000..c3691e1c93
--- /dev/null
+++ b/MdePkg/Include/Protocol/Bz3987SevMemoryAcceptance.h
@@ -0,0 +1,44 @@
+/** @file
+  The file provides the protocol that disables the behavior that all memory
+  gets accepted at ExitBootServices(). This protocol is only meant to be called
+  by the OS loader, and not EDK2 itself. The SEV naming is due to the coincidence
+  that only SEV-SNP needs this protocol, since SEV-SNP kernel support released
+  before kernel support for unaccepted memory. The technology enablement thus
+  does not strictly imply support for the unaccepted memory type.
+
+  Copyright (c) 2023, Google LLC. All rights reserved.<BR>
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef SEV_MEMORY_ACCEPTANCE_H_
+#define SEV_MEMORY_ACCEPTANCE_H_
+
+#define BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL_GUID \
+  {0xc5a010fe, \
+   0x38a7, \
+   0x4531, \
+   {0x8a, 0x4a, 0x05, 0x00, 0xd2, 0xfd, 0x16, 0x49}}
+
+typedef struct _BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL \
+  BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL;
+
+/**
+  @param This A pointer to a BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL.
+**/
+typedef
+  EFI_STATUS
+(EFIAPI *BZ3987_SEV_ALLOW_UNACCEPTED_MEMORY)(
+  IN  BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL  *This
+  );
+
+///
+/// The BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL allows the OS loader to
+/// indicate to EDK2 that ExitBootServices should not accept all memory.
+///
+struct _BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL {
+  BZ3987_SEV_ALLOW_UNACCEPTED_MEMORY    AllowUnacceptedMemory;
+};
+
+extern EFI_GUID  gBz3987SevMemoryAcceptanceProtocolGuid;
+
+#endif
diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
index 3d08f20d15..b82d6e46a4 100644
--- a/MdePkg/MdePkg.dec
+++ b/MdePkg/MdePkg.dec
@@ -1031,6 +1031,9 @@
   gEfiPeiDelayedDispatchPpiGuid  = { 0x869c711d, 0x649c, 0x44fe, { 0x8b, 0x9e, 0x2c, 0xbb, 0x29, 0x11, 0xc3, 0xe6 }}
 
 [Protocols]
+  ## Include/Protocol/Bz3987SevMemoryAcceptance.h
+  gBz3987SevMemoryAcceptanceProtocolGuid = { 0xc5a010fe, 0x38a7, 0x4531, {0x8a, 0x4a, 0x05, 0x00, 0xd2, 0xfd, 0x16, 0x49 }}
+
   ## Include/Protocol/MemoryAccept.h
   gEdkiiMemoryAcceptProtocolGuid = { 0x38c74800, 0x5590, 0x4db4, { 0xa0, 0xf3, 0x67, 0x5d, 0x9b, 0x8e, 0x80, 0x26 }}
 
-- 
2.39.1.456.gfc5497dd1b-goog


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v10 3/4] OvmfPkg: Implement AcceptAllUnacceptedMemory in AmdSevDxe
  2023-01-26  0:56 [PATCH v10 0/4] Add safe unaccepted memory behavior Dionna Glaze
  2023-01-26  0:56 ` [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe Dionna Glaze
  2023-01-26  0:56 ` [PATCH v10 2/4] MdePkg: Introduce the SevMemoryAcceptance protocol Dionna Glaze
@ 2023-01-26  0:56 ` Dionna Glaze
  2023-01-26  0:56 ` [PATCH v10 4/4] OvmfPkg/PlatformPei: SEV-SNP make >=4GB unaccepted Dionna Glaze
  3 siblings, 0 replies; 34+ messages in thread
From: Dionna Glaze @ 2023-01-26  0:56 UTC (permalink / raw)
  To: devel
  Cc: Dionna Glaze, Gerd Hoffmann, James Bottomley, Jiewen Yao,
	Tom Lendacky, Ard Biesheuvel, Min M. Xu, Andrew Fish,
	Michael D. Kinney

This protocol implementation disables the accept-all-memory behavior
of the BeforeExitBootServices event this driver adds.

Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: "Min M. Xu" <min.m.xu@intel.com>
Cc: Andrew Fish <afish@apple.com>
Cc: "Michael D. Kinney" <michael.d.kinney@intel.com>

Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
---
 OvmfPkg/AmdSevDxe/AmdSevDxe.c   | 26 ++++++++++++++++++++
 OvmfPkg/AmdSevDxe/AmdSevDxe.inf |  1 +
 2 files changed, 27 insertions(+)

diff --git a/OvmfPkg/AmdSevDxe/AmdSevDxe.c b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
index 5eec76fea2..e98867afac 100644
--- a/OvmfPkg/AmdSevDxe/AmdSevDxe.c
+++ b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
@@ -21,6 +21,7 @@
 #include <Guid/ConfidentialComputingSevSnpBlob.h>
 #include <Library/PcdLib.h>
 #include <Pi/PrePiDxeCis.h>
+#include <Protocol/Bz3987SevMemoryAcceptance.h>
 #include <Protocol/MemoryAccept.h>
 
 STATIC CONFIDENTIAL_COMPUTING_SNP_BLOB_LOCATION  mSnpBootDxeTable = {
@@ -155,6 +156,21 @@ ResolveUnacceptedMemory (
   ASSERT_EFI_ERROR (Status);
 }
 
+STATIC
+EFI_STATUS
+EFIAPI
+AllowUnacceptedMemory (
+  IN  BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL  *This
+  )
+{
+  mAcceptAllMemoryAtEBS = FALSE;
+  return EFI_SUCCESS;
+}
+
+STATIC
+BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL
+  mMemoryAcceptanceProtocol = { AllowUnacceptedMemory };
+
 STATIC EDKII_MEMORY_ACCEPT_PROTOCOL  mMemoryAcceptProtocol = {
   AmdSevMemoryAccept
 };
@@ -304,6 +320,16 @@ AmdSevDxeEntryPoint (
       DEBUG ((DEBUG_ERROR, "AllowUnacceptedMemory event creation for EventBeforeExitBootServices failed.\n"));
     }
 
+    Status = gBS->InstallProtocolInterface (
+                    &mAmdSevDxeHandle,
+                    &gBz3987SevMemoryAcceptanceProtocolGuid,
+                    EFI_NATIVE_INTERFACE,
+                    &mMemoryAcceptanceProtocol
+                    );
+    if (EFI_ERROR (Status)) {
+      DEBUG ((DEBUG_ERROR, "Install Bz3987SevMemoryAcceptanceProtocol failed.\n"));
+    }
+
     //
     // If its SEV-SNP active guest then install the CONFIDENTIAL_COMPUTING_SEV_SNP_BLOB.
     // It contains the location for both the Secrets and CPUID page.
diff --git a/OvmfPkg/AmdSevDxe/AmdSevDxe.inf b/OvmfPkg/AmdSevDxe/AmdSevDxe.inf
index 5b443d45bc..1e14e4e0ab 100644
--- a/OvmfPkg/AmdSevDxe/AmdSevDxe.inf
+++ b/OvmfPkg/AmdSevDxe/AmdSevDxe.inf
@@ -49,6 +49,7 @@
 
 [Protocols]
   gEdkiiMemoryAcceptProtocolGuid
+  gBz3987SevMemoryAcceptanceProtocolGuid
 
 [Guids]
   gConfidentialComputingSevSnpBlobGuid
-- 
2.39.1.456.gfc5497dd1b-goog


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH v10 4/4] OvmfPkg/PlatformPei: SEV-SNP make >=4GB unaccepted
  2023-01-26  0:56 [PATCH v10 0/4] Add safe unaccepted memory behavior Dionna Glaze
                   ` (2 preceding siblings ...)
  2023-01-26  0:56 ` [PATCH v10 3/4] OvmfPkg: Implement AcceptAllUnacceptedMemory in AmdSevDxe Dionna Glaze
@ 2023-01-26  0:56 ` Dionna Glaze
  3 siblings, 0 replies; 34+ messages in thread
From: Dionna Glaze @ 2023-01-26  0:56 UTC (permalink / raw)
  To: devel
  Cc: Dionna Glaze, Ard Biescheuvel, Min M. Xu, Gerd Hoffmann,
	James Bottomley, Tom Lendacky, Jiewen Yao, Erdem Aktas

Instead of eagerly accepting all memory in PEI, only accept memory under
the 4GB address. This allows a loaded image to use the
MEMORY_ACCEPTANCE_PROTOCOL to disable the accept behavior and indicate
that it can interpret the memory type accordingly.

This classification is safe since ExitBootServices will accept and
reclassify the memory as conventional if the disable protocol is not
used.

Cc: Ard Biescheuvel <ardb@kernel.org>
Cc: "Min M. Xu" <min.m.xu@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Tom Lendacky <Thomas.Lendacky@amd.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Erdem Aktas <erdemaktas@google.com>

Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
---
 OvmfPkg/PlatformPei/AmdSev.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/OvmfPkg/PlatformPei/AmdSev.c b/OvmfPkg/PlatformPei/AmdSev.c
index e4e7b72e67..7d824cc282 100644
--- a/OvmfPkg/PlatformPei/AmdSev.c
+++ b/OvmfPkg/PlatformPei/AmdSev.c
@@ -16,6 +16,7 @@
 #include <Library/MemEncryptSevLib.h>
 #include <Library/MemoryAllocationLib.h>
 #include <Library/PcdLib.h>
+#include <Pi/PrePiHob.h>
 #include <PiPei.h>
 #include <Register/Amd/Msr.h>
 #include <Register/Intel/SmramSaveStateMap.h>
@@ -63,6 +64,10 @@ AmdSevSnpInitialize (
   for (Hob.Raw = GetHobList (); !END_OF_HOB_LIST (Hob); Hob.Raw = GET_NEXT_HOB (Hob)) {
     if ((Hob.Raw != NULL) && (GET_HOB_TYPE (Hob) == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR)) {
       ResourceHob = Hob.ResourceDescriptor;
+      if (ResourceHob->PhysicalStart >= SIZE_4GB) {
+        ResourceHob->ResourceType = BZ3937_EFI_RESOURCE_MEMORY_UNACCEPTED;
+        continue;
+      }
 
       if (ResourceHob->ResourceType == EFI_RESOURCE_SYSTEM_MEMORY) {
         MemEncryptSevSnpPreValidateSystemRam (
-- 
2.39.1.456.gfc5497dd1b-goog


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: [PATCH v10 2/4] MdePkg: Introduce the SevMemoryAcceptance protocol
  2023-01-26  0:56 ` [PATCH v10 2/4] MdePkg: Introduce the SevMemoryAcceptance protocol Dionna Glaze
@ 2023-01-26  1:24   ` Yao, Jiewen
  2023-01-26 17:04     ` Dionna Glaze
  0 siblings, 1 reply; 34+ messages in thread
From: Yao, Jiewen @ 2023-01-26  1:24 UTC (permalink / raw)
  To: Dionna Glaze, devel@edk2.groups.io
  Cc: Gerd Hoffmann, James Bottomley, Tom Lendacky, Ard Biesheuvel,
	Xu, Min M, Andrew Fish, Kinney, Michael D

I don’t think MdePkg is the right place. MdePkg only includes the approved industry standard.

As Gerd and I discussed before, this protocol should be in OvmfPkg.
Please move to https://github.com/tianocore/edk2/tree/master/OvmfPkg/Include/Protocol

Thank you
Yao, Jiewen

> -----Original Message-----
> From: Dionna Glaze <dionnaglaze@google.com>
> Sent: Thursday, January 26, 2023 8:57 AM
> To: devel@edk2.groups.io
> Cc: Dionna Glaze <dionnaglaze@google.com>; Gerd Hoffmann
> <kraxel@redhat.com>; James Bottomley <jejb@linux.ibm.com>; Yao, Jiewen
> <jiewen.yao@intel.com>; Tom Lendacky <thomas.lendacky@amd.com>; Ard
> Biesheuvel <ardb@kernel.org>; Xu, Min M <min.m.xu@intel.com>; Andrew Fish
> <afish@apple.com>; Kinney, Michael D <michael.d.kinney@intel.com>
> Subject: [PATCH v10 2/4] MdePkg: Introduce the SevMemoryAcceptance
> protocol
> 
> The default behavior for unaccepted memory in SEV-SNP is to accept all
> memory when ExitBootServices is called. An OS loader can use this
> protocol to disable this behavior to assume responsibility for memory
> acceptance and to affirm that the OS can handle the unaccepted memory
> type.
> 
> This is a candidate for standardization.
> 
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: James Bottomley <jejb@linux.ibm.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Tom Lendacky <thomas.lendacky@amd.com>
> Cc: Ard Biesheuvel <ardb@kernel.org>
> Cc: "Min M. Xu" <min.m.xu@intel.com>
> Cc: Andrew Fish <afish@apple.com>
> Cc: "Michael D. Kinney" <michael.d.kinney@intel.com>
> 
> Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
> ---
>  MdePkg/Include/Protocol/Bz3987SevMemoryAcceptance.h | 44
> ++++++++++++++++++++
>  MdePkg/MdePkg.dec                                   |  3 ++
>  2 files changed, 47 insertions(+)
> 
> diff --git a/MdePkg/Include/Protocol/Bz3987SevMemoryAcceptance.h
> b/MdePkg/Include/Protocol/Bz3987SevMemoryAcceptance.h
> new file mode 100644
> index 0000000000..c3691e1c93
> --- /dev/null
> +++ b/MdePkg/Include/Protocol/Bz3987SevMemoryAcceptance.h
> @@ -0,0 +1,44 @@
> +/** @file
> +  The file provides the protocol that disables the behavior that all memory
> +  gets accepted at ExitBootServices(). This protocol is only meant to be called
> +  by the OS loader, and not EDK2 itself. The SEV naming is due to the
> coincidence
> +  that only SEV-SNP needs this protocol, since SEV-SNP kernel support released
> +  before kernel support for unaccepted memory. The technology enablement
> thus
> +  does not strictly imply support for the unaccepted memory type.
> +
> +  Copyright (c) 2023, Google LLC. All rights reserved.<BR>
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#ifndef SEV_MEMORY_ACCEPTANCE_H_
> +#define SEV_MEMORY_ACCEPTANCE_H_
> +
> +#define BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL_GUID \
> +  {0xc5a010fe, \
> +   0x38a7, \
> +   0x4531, \
> +   {0x8a, 0x4a, 0x05, 0x00, 0xd2, 0xfd, 0x16, 0x49}}
> +
> +typedef struct _BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL \
> +  BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL;
> +
> +/**
> +  @param This A pointer to a BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL.
> +**/
> +typedef
> +  EFI_STATUS
> +(EFIAPI *BZ3987_SEV_ALLOW_UNACCEPTED_MEMORY)(
> +  IN  BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL  *This
> +  );
> +
> +///
> +/// The BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL allows the OS loader
> to
> +/// indicate to EDK2 that ExitBootServices should not accept all memory.
> +///
> +struct _BZ3987_SEV_MEMORY_ACCEPTANCE_PROTOCOL {
> +  BZ3987_SEV_ALLOW_UNACCEPTED_MEMORY    AllowUnacceptedMemory;
> +};
> +
> +extern EFI_GUID  gBz3987SevMemoryAcceptanceProtocolGuid;
> +
> +#endif
> diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
> index 3d08f20d15..b82d6e46a4 100644
> --- a/MdePkg/MdePkg.dec
> +++ b/MdePkg/MdePkg.dec
> @@ -1031,6 +1031,9 @@
>    gEfiPeiDelayedDispatchPpiGuid  = { 0x869c711d, 0x649c, 0x44fe, { 0x8b, 0x9e,
> 0x2c, 0xbb, 0x29, 0x11, 0xc3, 0xe6 }}
> 
>  [Protocols]
> +  ## Include/Protocol/Bz3987SevMemoryAcceptance.h
> +  gBz3987SevMemoryAcceptanceProtocolGuid = { 0xc5a010fe, 0x38a7, 0x4531,
> {0x8a, 0x4a, 0x05, 0x00, 0xd2, 0xfd, 0x16, 0x49 }}
> +
>    ## Include/Protocol/MemoryAccept.h
>    gEdkiiMemoryAcceptProtocolGuid = { 0x38c74800, 0x5590, 0x4db4, { 0xa0,
> 0xf3, 0x67, 0x5d, 0x9b, 0x8e, 0x80, 0x26 }}
> 
> --
> 2.39.1.456.gfc5497dd1b-goog


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-01-26  0:56 ` [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe Dionna Glaze
@ 2023-01-26 10:30   ` Ard Biesheuvel
  2023-01-26 16:04     ` Dionna Glaze
  2023-02-09 13:35   ` [edk2-devel] " Gupta, Pankaj
  1 sibling, 1 reply; 34+ messages in thread
From: Ard Biesheuvel @ 2023-01-26 10:30 UTC (permalink / raw)
  To: Dionna Glaze
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Min M. Xu, Andrew Fish, Michael D. Kinney

On Thu, 26 Jan 2023 at 01:56, Dionna Glaze <dionnaglaze@google.com> wrote:
>
> The added behavior is to accept all unaccepted memory at
> ExitBootServices if the behavior is not disabled. This allows safe
> upgrades for OS loaders to affirm their support for the unaccepted
> memory type.
>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: James Bottomley <jejb@linux.ibm.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Tom Lendacky <thomas.lendacky@amd.com>
> Cc: Ard Biesheuvel <ardb@kernel.org>
> Cc: "Min M. Xu" <min.m.xu@intel.com>
> Cc: Andrew Fish <afish@apple.com>
> Cc: "Michael D. Kinney" <michael.d.kinney@intel.com>
>
> Signed-off-by: Dionna Glaze <dionnaglaze@google.com>

> ---
>  OvmfPkg/AmdSevDxe/AmdSevDxe.c   | 109 ++++++++++++++++++++
>  OvmfPkg/AmdSevDxe/AmdSevDxe.inf |   1 +
>  2 files changed, 110 insertions(+)
>
> diff --git a/OvmfPkg/AmdSevDxe/AmdSevDxe.c b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
> index f7600c3c81..5eec76fea2 100644
> --- a/OvmfPkg/AmdSevDxe/AmdSevDxe.c
> +++ b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
> @@ -20,6 +20,7 @@
>  #include <Library/UefiBootServicesTableLib.h>
>  #include <Guid/ConfidentialComputingSevSnpBlob.h>
>  #include <Library/PcdLib.h>
> +#include <Pi/PrePiDxeCis.h>
>  #include <Protocol/MemoryAccept.h>
>
>  STATIC CONFIDENTIAL_COMPUTING_SNP_BLOB_LOCATION  mSnpBootDxeTable = {
> @@ -34,6 +35,10 @@ STATIC CONFIDENTIAL_COMPUTING_SNP_BLOB_LOCATION  mSnpBootDxeTable = {
>
>  STATIC EFI_HANDLE  mAmdSevDxeHandle = NULL;
>
> +STATIC BOOLEAN  mAcceptAllMemoryAtEBS = TRUE;
> +
> +STATIC EFI_EVENT  mAcceptAllMemoryEvent = NULL;
> +
>  #define IS_ALIGNED(x, y)  ((((x) & ((y) - 1)) == 0))
>
>  STATIC
> @@ -62,6 +67,94 @@ AmdSevMemoryAccept (
>    return EFI_SUCCESS;
>  }
>
> +STATIC
> +EFI_STATUS
> +AcceptAllMemory (
> +  IN EDKII_MEMORY_ACCEPT_PROTOCOL  *AcceptMemory
> +  )
> +{
> +  EFI_GCD_MEMORY_SPACE_DESCRIPTOR  *AllDescMap;
> +  UINTN                            NumEntries;
> +  UINTN                            Index;
> +  EFI_STATUS                       Status;
> +
> +  DEBUG ((DEBUG_INFO, "Accepting all memory\n"));
> +
> +  /*
> +   * Get a copy of the memory space map to iterate over while
> +   * changing the map.
> +   */
> +  Status = gDS->GetMemorySpaceMap (&NumEntries, &AllDescMap);
> +  if (EFI_ERROR (Status)) {
> +    return Status;
> +  }
> +
> +  for (Index = 0; Index < NumEntries; Index++) {
> +    CONST EFI_GCD_MEMORY_SPACE_DESCRIPTOR  *Desc;
> +
> +    Desc = &AllDescMap[Index];
> +    if (Desc->GcdMemoryType != EFI_GCD_MEMORY_TYPE_UNACCEPTED) {
> +      continue;
> +    }
> +
> +    Status = AcceptMemory->AcceptMemory (
> +                             AcceptMemory,
> +                             Desc->BaseAddress,
> +                             Desc->Length
> +                             );
> +    if (EFI_ERROR (Status)) {
> +      break;
> +    }
> +
> +    Status = gDS->RemoveMemorySpace (Desc->BaseAddress, Desc->Length);
> +    if (EFI_ERROR (Status)) {
> +      break;
> +    }
> +
> +    Status = gDS->AddMemorySpace (
> +                    EfiGcdMemoryTypeSystemMemory,
> +                    Desc->BaseAddress,
> +                    Desc->Length,
> +                    EFI_MEMORY_CPU_CRYPTO | EFI_MEMORY_XP | EFI_MEMORY_RO | EFI_MEMORY_RP
> +                    );
> +    if (EFI_ERROR (Status)) {
> +      break;
> +    }
> +  }
> +
> +  gBS->FreePool (AllDescMap);
> +  return Status;
> +}
> +
> +VOID
> +EFIAPI
> +ResolveUnacceptedMemory (
> +  IN EFI_EVENT  Event,
> +  IN VOID       *Context
> +  )
> +{
> +  EDKII_MEMORY_ACCEPT_PROTOCOL  *AcceptMemory;
> +  EFI_STATUS                    Status;
> +
> +  if (!mAcceptAllMemoryAtEBS) {
> +    return;
> +  }
> +
> +  Status = gBS->LocateProtocol (
> +                  &gEdkiiMemoryAcceptProtocolGuid,
> +                  NULL,
> +                  (VOID **)&AcceptMemory
> +                  );
> +  if (Status == EFI_NOT_FOUND) {
> +    return;
> +  }
> +

This driver is now both the producer and consumer of
gEdkiiMemoryAcceptProtocolGuid.

Are there cases where the protocol we locate here could be different
from the one installed by this driver? If not, we can simplify this,
and just call AmdSevMemoryAccept() directly.

> +  ASSERT_EFI_ERROR (Status);
> +
> +  Status = AcceptAllMemory (AcceptMemory);
> +  ASSERT_EFI_ERROR (Status);
> +}
> +
>  STATIC EDKII_MEMORY_ACCEPT_PROTOCOL  mMemoryAcceptProtocol = {
>    AmdSevMemoryAccept
>  };
> @@ -195,6 +288,22 @@ AmdSevDxeEntryPoint (
>                      );
>      ASSERT_EFI_ERROR (Status);
>
> +    // SEV-SNP support does not automatically imply unaccepted memory support,
> +    // so make ExitBootServices accept all unaccepted memory if support is
> +    // not communicated.
> +    Status = gBS->CreateEventEx (
> +                    EVT_NOTIFY_SIGNAL,
> +                    TPL_CALLBACK,
> +                    ResolveUnacceptedMemory,
> +                    NULL,
> +                    &gEfiEventBeforeExitBootServicesGuid,
> +                    &mAcceptAllMemoryEvent
> +                    );
> +
> +    if (EFI_ERROR (Status)) {
> +      DEBUG ((DEBUG_ERROR, "AllowUnacceptedMemory event creation for EventBeforeExitBootServices failed.\n"));
> +    }
> +
>      //
>      // If its SEV-SNP active guest then install the CONFIDENTIAL_COMPUTING_SEV_SNP_BLOB.
>      // It contains the location for both the Secrets and CPUID page.
> diff --git a/OvmfPkg/AmdSevDxe/AmdSevDxe.inf b/OvmfPkg/AmdSevDxe/AmdSevDxe.inf
> index cd1b686c53..5b443d45bc 100644
> --- a/OvmfPkg/AmdSevDxe/AmdSevDxe.inf
> +++ b/OvmfPkg/AmdSevDxe/AmdSevDxe.inf
> @@ -52,6 +52,7 @@
>
>  [Guids]
>    gConfidentialComputingSevSnpBlobGuid
> +  gEfiEventBeforeExitBootServicesGuid
>
>  [Pcd]
>    gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId
> --
> 2.39.1.456.gfc5497dd1b-goog
>

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-01-26 10:30   ` Ard Biesheuvel
@ 2023-01-26 16:04     ` Dionna Glaze
  0 siblings, 0 replies; 34+ messages in thread
From: Dionna Glaze @ 2023-01-26 16:04 UTC (permalink / raw)
  To: Ard Biesheuvel
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Min M. Xu, Andrew Fish, Michael D. Kinney

>
> This driver is now both the producer and consumer of
> gEdkiiMemoryAcceptProtocolGuid.
>
> Are there cases where the protocol we locate here could be different
> from the one installed by this driver? If not, we can simplify this,
> and just call AmdSevMemoryAccept() directly.
>

Ah right. There should not be another implementation. I can make that change.


-- 
-Dionna Glaze, PhD (she/her)

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH v10 2/4] MdePkg: Introduce the SevMemoryAcceptance protocol
  2023-01-26  1:24   ` Yao, Jiewen
@ 2023-01-26 17:04     ` Dionna Glaze
  2023-01-26 17:19       ` Ard Biesheuvel
  0 siblings, 1 reply; 34+ messages in thread
From: Dionna Glaze @ 2023-01-26 17:04 UTC (permalink / raw)
  To: Yao, Jiewen
  Cc: devel@edk2.groups.io, Gerd Hoffmann, James Bottomley,
	Tom Lendacky, Ard Biesheuvel, Xu, Min M, Andrew Fish,
	Kinney, Michael D

> As Gerd and I discussed before, this protocol should be in OvmfPkg.
> Please move to https://github.com/tianocore/edk2/tree/master/OvmfPkg/Include/Protocol
>

Ah, I misinterpreted your response to Gerd's message. v11 will have it
moved. The CI seems to think I've redefined the protocol struct type
or failed to use the typedef for declarations, but I don't see how
that would be. Is this a false positive that I can ignore for the next
iteration? https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=78271&view=results

-- 
-Dionna Glaze, PhD (she/her)

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH v10 2/4] MdePkg: Introduce the SevMemoryAcceptance protocol
  2023-01-26 17:04     ` Dionna Glaze
@ 2023-01-26 17:19       ` Ard Biesheuvel
  0 siblings, 0 replies; 34+ messages in thread
From: Ard Biesheuvel @ 2023-01-26 17:19 UTC (permalink / raw)
  To: Dionna Amalie Glaze
  Cc: Yao, Jiewen, devel@edk2.groups.io, Gerd Hoffmann, James Bottomley,
	Tom Lendacky, Xu, Min M, Andrew Fish, Kinney, Michael D

On Thu, 26 Jan 2023 at 18:04, Dionna Amalie Glaze
<dionnaglaze@google.com> wrote:
>
> > As Gerd and I discussed before, this protocol should be in OvmfPkg.
> > Please move to https://github.com/tianocore/edk2/tree/master/OvmfPkg/Include/Protocol
> >
>
> Ah, I misinterpreted your response to Gerd's message. v11 will have it
> moved. The CI seems to think I've redefined the protocol struct type
> or failed to use the typedef for declarations, but I don't see how
> that would be. Is this a false positive that I can ignore for the next
> iteration? https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=78271&view=results
>

That looks very odd to me, and I don't see anything wrong with the .h file.

However, since we are moving this to OvmfPkg and you are spinning a
v11, can we drop the bizarre prefix please?

Also, the 'extern EFI_GUID xxx' should be unnecessary these days -
these are generated by the build tools based on the [Protocols]
section in the INF.

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-01-26  0:56 ` [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe Dionna Glaze
  2023-01-26 10:30   ` Ard Biesheuvel
@ 2023-02-09 13:35   ` Gupta, Pankaj
  2023-02-09 16:52     ` Dionna Glaze
  1 sibling, 1 reply; 34+ messages in thread
From: Gupta, Pankaj @ 2023-02-09 13:35 UTC (permalink / raw)
  To: devel, dionnaglaze
  Cc: Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney

Hi Dionna,

> The added behavior is to accept all unaccepted memory at
> ExitBootServices if the behavior is not disabled. This allows safe
> upgrades for OS loaders to affirm their support for the unaccepted
> memory type.

With this patch I observe an issue where my Linux (6.2.0-rc7) guest
recur to Bootloader menu again. I am testing this with SEV SNP (w/o 
UPM). Also, guest don't have lazy memory acceptance support.

Building Ovmf before commit a00e2e5513 ("OvmfPkg: Add memory acceptance 
event in AmdSevDxe") runs guest fine for me.

Not sure if I am missing any step here?

Thanks,
Pankaj


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-09 13:35   ` [edk2-devel] " Gupta, Pankaj
@ 2023-02-09 16:52     ` Dionna Glaze
  2023-02-09 21:27       ` Dionna Glaze
  0 siblings, 1 reply; 34+ messages in thread
From: Dionna Glaze @ 2023-02-09 16:52 UTC (permalink / raw)
  To: Gupta, Pankaj
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney

> With this patch I observe an issue where my Linux (6.2.0-rc7) guest
> recur to Bootloader menu again. I am testing this with SEV SNP (w/o
> UPM). Also, guest don't have lazy memory acceptance support.
>

Thanks for the report. I'll try to reproduce it on our UEFI and if I'm
unable, then we'll discuss next steps.

-- 
-Dionna Glaze, PhD (she/her)

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-09 16:52     ` Dionna Glaze
@ 2023-02-09 21:27       ` Dionna Glaze
  2023-02-10  8:00         ` Gupta, Pankaj
  2023-02-10 13:56         ` Gupta, Pankaj
  0 siblings, 2 replies; 34+ messages in thread
From: Dionna Glaze @ 2023-02-09 21:27 UTC (permalink / raw)
  To: Gupta, Pankaj
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney

On Thu, Feb 9, 2023 at 8:52 AM Dionna Amalie Glaze
<dionnaglaze@google.com> wrote:
>
> > With this patch I observe an issue where my Linux (6.2.0-rc7) guest
> > recur to Bootloader menu again. I am testing this with SEV SNP (w/o
> > UPM). Also, guest don't have lazy memory acceptance support.
> >
>
> Thanks for the report. I'll try to reproduce it on our UEFI and if I'm
> unable, then we'll discuss next steps.
>

I don't see this in our test Ubuntu 22.04 image from Canonical. Do you
have a boot log you could send me? I'm not sure I understand what you
mean by recurring to the Bootloader menu. On ExitBootServices, the
memory key will end up changing and the caller will need to call
GetMemoryMap and try EBS again, but I don't know why that would send
you to a bootmenu.

--
-Dionna Glaze, PhD (she/her)

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-09 21:27       ` Dionna Glaze
@ 2023-02-10  8:00         ` Gupta, Pankaj
  2023-02-10 11:12           ` Ard Biesheuvel
  2023-02-10 13:56         ` Gupta, Pankaj
  1 sibling, 1 reply; 34+ messages in thread
From: Gupta, Pankaj @ 2023-02-10  8:00 UTC (permalink / raw)
  To: Dionna Amalie Glaze
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney

[-- Attachment #1: Type: text/plain, Size: 1399 bytes --]


>>> With this patch I observe an issue where my Linux (6.2.0-rc7) guest
>>> recur to Bootloader menu again. I am testing this with SEV SNP (w/o
>>> UPM). Also, guest don't have lazy memory acceptance support.
>>>
>>
>> Thanks for the report. I'll try to reproduce it on our UEFI and if I'm
>> unable, then we'll discuss next steps.
>>
> 
> I don't see this in our test Ubuntu 22.04 image from Canonical. Do you
> have a boot log you could send me? I'm not sure I understand what you
> mean by recurring to the Bootloader menu. On ExitBootServices, the

Thank you for looking into it.

Its going again to bootloader menu after I slecet the booting OS.

> memory key will end up changing and the caller will need to call
> GetMemoryMap and try EBS again, but I don't know why that would send
> you to a bootmenu.

Sorry, could not understand this. As I am not very familiar with the efi 
code flow. Could you please elaborate a bit.

I see these[1] errors: Also attached the complete log.

Thanks,
Pankaj

[1]
ConvertPages: range 1000000 - 41AEFFF covers multiple entries^M
Accepting all memory^M
Accepting all memory^M
EFI stub: ERROR: exit_boot() failed!^M
EFI stub: ERROR: efi_main() failed!^M
Image Return Status = Invalid Parameter^M
BdsDxe: failed to start Boot0006 "ubuntu" from 
HD(1,GPT,0482E38B-B35F-4359-A017-F7B0E924FECD,0x800,0x100000)/\EFI\ubuntu-hdd2\shimx64.efi: 
Invalid Parameter^M

[-- Attachment #2: stdout_with_patch.log --]
[-- Type: text/plain, Size: 119076 bytes --]


char device redirected to /dev/pts/2 (label compat_monitor0)
SecCoreStartupWithStack(0xFFFCC000, 0x820000)
Register PPI Notify: DCD0BE23-9586-40F4-B643-06522CED4EDE
Install PPI: 8C8CE578-8A3D-4F1C-9935-896185C32DD3
Install PPI: 5473C07A-3DCB-4DCA-BD6F-1E9689E7349A
The 0th FV start address is 0x00000820000, size is 0x000E0000, handle is 0x820000
Register PPI Notify: 49EDB1C1-BF21-4761-BB12-EB0031AABB39
Register PPI Notify: EA7CA24B-DED5-4DAD-A389-BF827E8F9B38
Install PPI: B9E0ABFE-5979-4914-977F-6DEE78C278A6
Install PPI: DBE23AA9-A345-4B97-85B6-B226F1617389
Install PPI: 138F9CF4-F0E7-4721-8F49-F5FFECF42D40
DiscoverPeimsAndOrderWithApriori(): Found 0x8 PEI FFS files in the 0th FV
Loading PEIM 9B3ADA4F-AE56-4C24-8DEA-F03B7558AE50
Loading PEIM at 0x0000082BD40 EntryPoint=0x0000082F06E PcdPeim.efi
Install PPI: 06E81C58-4AD7-44BC-8390-F10265F72480
Install PPI: 01F34D25-4DE2-23AD-3FF3-36353FF323F1
Install PPI: 4D8B155B-C059-4C8F-8926-06FD4331DB8A
Install PPI: A60C6B59-E459-425D-9C69-0BCC9CB27D81
Register PPI Notify: 605EA650-C65C-42E1-BA80-91A52AB618C6
Loading PEIM A3610442-E69F-4DF3-82CA-2360C4031A23
Loading PEIM at 0x00000830C40 EntryPoint=0x000008320A1 ReportStatusCodeRouterPei.efi
Install PPI: 0065D394-9951-4144-82A3-0AFC8579C251
Install PPI: 229832D3-7A30-4B36-B827-F40CB7D45436
Loading PEIM 9D225237-FA01-464C-A949-BAABC02D31D0
Loading PEIM at 0x00000832D40 EntryPoint=0x00000834093 StatusCodeHandlerPei.efi
Loading PEIM 222C386D-5ABC-4FB4-B124-FBB82488ACF4
Loading PEIM at 0x00000834E40 EntryPoint=0x0000083C782 PlatformPei.efi
Platform PEIM Loaded
CMOS:
00: 01 00 01 00 07 00 06 10 02 23 26 02 00 80 00 00
10: 00 00 00 00 06 80 02 FF FF 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: FF FF 20 00 00 7F 00 20 30 00 00 00 00 12 00 00
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 80 03 00 1F
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
QemuFwCfgProbe: Supported 1, DMA 0
Select Item: 0x19
Select Item: 0x2C
S3 support was detected on QEMU
Install PPI: 7408D748-FC8C-4EE6-9288-C4BEC092A410
Select Item: 0x19
Select Item: 0x19
Select Item: 0x25
PlatformGetFirstNonAddressCB: FirstNonAddress=0x480000000
Select Item: 0x19
Select Item: 0x19
Select Item: 0x26
PlatformAddressWidthFromCpuid: Signature: 'AuthenticAMD', PhysBits: 40, QemuQuirk: On, Valid: Yes
PlatformDynamicMmioWindow: using dynamic mmio window
PlatformDynamicMmioWindow:   Addr Space 0x10000000000 (1024 GB)
PlatformDynamicMmioWindow:   MMIO Space 0x2000000000 (128 GB)
Select Item: 0x19
Select Item: 0x25
PlatformDynamicMmioWindow:   Pci64 Base 0xE000000000
PlatformDynamicMmioWindow:   Pci64 Size 0x2000000000
AddressWidthInitialization: Pci64Base=0xE000000000 Pci64Size=0x2000000000
Select Item: 0x5
PlatformMaxCpuCountInitialization: BootCpuCount=32 MaxCpuCount=64
Select Item: 0x19
Select Item: 0x25
PlatformGetLowMemoryCB: LowMemory=0x80000000
PublishPeiMemory: PhysMemAddressWidth=40 PeiMemoryCap=65548 KB
PeiInstallPeiMemory MemoryBegin 0x7BD7D000, MemoryLength 0x4003000
Select Item: 0x19
Select Item: 0x25
PlatformQemuInitializeRam called
Select Item: 0x19
Select Item: 0x25
Select Item: 0x19
Select Item: 0x25
PlatformAddHobCB: Reserved [0xFEFFC000, 0xFF000000)
PlatformAddHobCB: HighMemory [0x100000000, 0x480000000)
Reserved variable store memory: 0x7FCFC000; size: 528kb
Platform PEI Firmware Volume Initialization
Install PPI: 49EDB1C1-BF21-4761-BB12-EB0031AABB39
Notify: PPI Guid: 49EDB1C1-BF21-4761-BB12-EB0031AABB39, Peim notify entry point: 8249DF
The 1th FV start address is 0x00000900000, size is 0x00D00000, handle is 0x900000
Select Item: 0x19
Select Item: 0x25
Select Item: 0x19
Register PPI Notify: EE16160A-E8BE-47A6-820A-C6900DB0250A
SEV is enabled (mask 0x8000000000000)
SEV-ES is enabled, 128 GHCB pages allocated starting at 0x7FC7C000
SEV-ES is enabled, 64 GHCB backup pages allocated starting at 0x7F9C0000
Select Item: 0x19
Temp Stack : BaseAddress=0x818000 Length=0x8000
Temp Heap  : BaseAddress=0x810000 Length=0x8000
Total temporary memory:    65536 bytes.
  temporary memory stack ever used:       31656 bytes.
  temporary memory heap used for HobList: 7800 bytes.
  temporary memory heap occupied by memory pages: 0 bytes.
Memory Allocation 0x00000000 0x80D000 - 0x80DFFF
Memory Allocation 0x00000000 0x80E000 - 0x80EFFF
Memory Allocation 0x0000000A 0x7FD80000 - 0x7FFFFFFF
Memory Allocation 0x0000000A 0x810000 - 0x81FFFF
Memory Allocation 0x0000000A 0x807000 - 0x807FFF
Memory Allocation 0x0000000A 0x800000 - 0x805FFF
Memory Allocation 0x0000000A 0x808000 - 0x808FFF
Memory Allocation 0x0000000A 0x809000 - 0x80AFFF
Memory Allocation 0x0000000A 0x80C000 - 0x80CFFF
Memory Allocation 0x0000000A 0x806000 - 0x806FFF
Memory Allocation 0x0000000A 0x80B000 - 0x80BFFF
Memory Allocation 0x00000006 0x7FCFC000 - 0x7FD7FFFF
Memory Allocation 0x0000000A 0x820000 - 0x8FFFFF
Memory Allocation 0x00000004 0x900000 - 0x15FFFFF
Memory Allocation 0x00000000 0xB0000000 - 0xBFFFFFFF
Memory Allocation 0x00000000 0x7FC7C000 - 0x7FCFBFFF
Memory Allocation 0x00000004 0x7FA00000 - 0x7FBFFFFF
Memory Allocation 0x00000007 0x7FC00000 - 0x7FC7BFFF
Memory Allocation 0x00000004 0x7F9C0000 - 0x7F9FFFFF
Memory Allocation 0x00000004 0x7F9BF000 - 0x7F9BFFFF
Old Stack size 32768, New stack size 131072
Stack Hob: BaseAddress=0x7BD7D000 Length=0x20000
Heap Offset = 0x7B58D000 Stack Offset = 0x7B57D000
TemporaryRamMigration(0x810000, 0x7BD95000, 0x10000)
Loading PEIM 52C05B14-0B98-496C-BC3B-04B50211D680
Loading PEIM at 0x0007F9B3000 EntryPoint=0x0007F9BB24B PeiCore.efi
Reinstall PPI: 8C8CE578-8A3D-4F1C-9935-896185C32DD3
Reinstall PPI: 5473C07A-3DCB-4DCA-BD6F-1E9689E7349A
Reinstall PPI: B9E0ABFE-5979-4914-977F-6DEE78C278A6
Install PPI: F894643D-C449-42D1-8EA8-85BDD8C65BDE
Loading PEIM 9B3ADA4F-AE56-4C24-8DEA-F03B7558AE50
Loading PEIM at 0x0007F9AE000 EntryPoint=0x0007F9B132E PcdPeim.efi
Reinstall PPI: 06E81C58-4AD7-44BC-8390-F10265F72480
Reinstall PPI: 4D8B155B-C059-4C8F-8926-06FD4331DB8A
Reinstall PPI: 01F34D25-4DE2-23AD-3FF3-36353FF323F1
Reinstall PPI: A60C6B59-E459-425D-9C69-0BCC9CB27D81
Loading PEIM 86D70125-BAA3-4296-A62F-602BEBBB9081
Loading PEIM at 0x0007F9A9000 EntryPoint=0x0007F9AC2F5 DxeIpl.efi
Install PPI: 1A36E4E7-FAB6-476A-8E75-695A0576FDD7
Install PPI: 0AE8CE5D-E448-4437-A8D7-EBF5F194F731
Loading PEIM 89E549B0-7CFE-449D-9BA3-10D8B2312D71
Loading PEIM at 0x0007F9A4000 EntryPoint=0x0007F9A6B32 S3Resume2Pei.efi
Install PPI: 6D582DBC-DB85-4514-8FCC-5ADF6227B147
Loading PEIM EDADEB9D-DDBA-48BD-9D22-C1C169C8C5C6
Loading PEIM at 0x0007F994000 EntryPoint=0x0007F998FA7 CpuMpPei.efi
Register PPI Notify: F894643D-C449-42D1-8EA8-85BDD8C65BDE
Notify: PPI Guid: F894643D-C449-42D1-8EA8-85BDD8C65BDE, Peim notify entry point: 7F99B156
AP Loop Mode is 1
AP Vector: non-16-bit = 7F786000/32A
WakeupBufferStart = 9F000, WakeupBufferSize = 1000
AP Vector: 16-bit = 9F000/39, ExchangeInfo = 9F039/A4
CpuMpPei: 5-Level Paging = 0
APIC MODE is 1
MpInitLib: Find 32 processors in system.
GetMicrocodePatchInfoFromHob: Microcode patch cache HOB is not found.
CpuMpPei: 5-Level Paging = 0
CPU[0000]: Microcode revision = 00000000, expected = 00000000
CPU[0001]: Microcode revision = 00000000, expected = 00000000
CPU[0002]: Microcode revision = 00000000, expected = 00000000
CPU[0003]: Microcode revision = 00000000, expected = 00000000
CPU[0004]: Microcode revision = 00000000, expected = 00000000
CPU[0005]: Microcode revision = 00000000, expected = 00000000
CPU[0006]: Microcode revision = 00000000, expected = 00000000
CPU[0007]: Microcode revision = 00000000, expected = 00000000
CPU[0008]: Microcode revision = 00000000, expected = 00000000
CPU[0009]: Microcode revision = 00000000, expected = 00000000
CPU[0010]: Microcode revision = 00000000, expected = 00000000
CPU[0011]: Microcode revision = 00000000, expected = 00000000
CPU[0012]: Microcode revision = 00000000, expected = 00000000
CPU[0013]: Microcode revision = 00000000, expected = 00000000
CPU[0014]: Microcode revision = 00000000, expected = 00000000
CPU[0015]: Microcode revision = 00000000, expected = 00000000
CPU[0016]: Microcode revision = 00000000, expected = 00000000
CPU[0017]: Microcode revision = 00000000, expected = 00000000
CPU[0018]: Microcode revision = 00000000, expected = 00000000
CPU[0019]: Microcode revision = 00000000, expected = 00000000
CPU[0020]: Microcode revision = 00000000, expected = 00000000
CPU[0021]: Microcode revision = 00000000, expected = 00000000
CPU[0022]: Microcode revision = 00000000, expected = 00000000
CPU[0023]: Microcode revision = 00000000, expected = 00000000
CPU[0024]: Microcode revision = 00000000, expected = 00000000
CPU[0025]: Microcode revision = 00000000, expected = 00000000
CPU[0026]: Microcode revision = 00000000, expected = 00000000
CPU[0027]: Microcode revision = 00000000, expected = 00000000
CPU[0028]: Microcode revision = 00000000, expected = 00000000
CPU[0029]: Microcode revision = 00000000, expected = 00000000
CPU[0030]: Microcode revision = 00000000, expected = 00000000
CPU[0031]: Microcode revision = 00000000, expected = 00000000
Register PPI Notify: 8F9D4825-797D-48FC-8471-845025792EF6
Does not find any stored CPU BIST information from PPI!
  APICID - 0x00000000, BIST - 0x00000000
  APICID - 0x00000001, BIST - 0x00000000
  APICID - 0x00000002, BIST - 0x00000000
  APICID - 0x00000003, BIST - 0x00000000
  APICID - 0x00000004, BIST - 0x00000000
  APICID - 0x00000005, BIST - 0x00000000
  APICID - 0x00000006, BIST - 0x00000000
  APICID - 0x00000007, BIST - 0x00000000
  APICID - 0x00000008, BIST - 0x00000000
  APICID - 0x00000009, BIST - 0x00000000
  APICID - 0x0000000A, BIST - 0x00000000
  APICID - 0x0000000B, BIST - 0x00000000
  APICID - 0x0000000C, BIST - 0x00000000
  APICID - 0x0000000D, BIST - 0x00000000
  APICID - 0x0000000E, BIST - 0x00000000
  APICID - 0x0000000F, BIST - 0x00000000
  APICID - 0x00000010, BIST - 0x00000000
  APICID - 0x00000011, BIST - 0x00000000
  APICID - 0x00000012, BIST - 0x00000000
  APICID - 0x00000013, BIST - 0x00000000
  APICID - 0x00000014, BIST - 0x00000000
  APICID - 0x00000015, BIST - 0x00000000
  APICID - 0x00000016, BIST - 0x00000000
  APICID - 0x00000017, BIST - 0x00000000
  APICID - 0x00000018, BIST - 0x00000000
  APICID - 0x00000019, BIST - 0x00000000
  APICID - 0x0000001A, BIST - 0x00000000
  APICID - 0x0000001B, BIST - 0x00000000
  APICID - 0x0000001C, BIST - 0x00000000
  APICID - 0x0000001D, BIST - 0x00000000
  APICID - 0x0000001E, BIST - 0x00000000
  APICID - 0x0000001F, BIST - 0x00000000
Install PPI: 9E9F374B-8F16-4230-9824-5846EE766A97
Install PPI: 5CB9CB3D-31A4-480C-9498-29D269BACFBA
Install PPI: EE16160A-E8BE-47A6-820A-C6900DB0250A
Notify: PPI Guid: EE16160A-E8BE-47A6-820A-C6900DB0250A, Peim notify entry point: 836EEE
PlatformPei: ClearCacheOnMpServicesAvailable
CpuMpPei: 5-Level Paging = 0
DiscoverPeimsAndOrderWithApriori(): Found 0x0 PEI FFS files in the 1th FV
DXE IPL Entry
Loading PEIM D6A2CB7F-6A18-4E2F-B43B-9920A733700A
Loading PEIM at 0x0007F719000 EntryPoint=0x0007F730F4D DxeCore.efi
Loading DXE CORE at 0x0007F719000 EntryPoint=0x0007F730F4D
AddressBits=40 5LevelPaging=0 1GPage=1
Pml5=1 Pml4=2 Pdp=512 TotalPage=3
Install PPI: 605EA650-C65C-42E1-BA80-91A52AB618C6
Notify: PPI Guid: 605EA650-C65C-42E1-BA80-91A52AB618C6, Peim notify entry point: 82DBDD
CoreInitializeMemoryServices:
  BaseAddress - 0x7BDA3000 Length - 0x365D000 MinimalMemorySizeNeeded - 0x322000
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7F73EBE8
ProtectUefiImageCommon - 0x7F73EBE8
  - 0x000000007F719000 - 0x000000000002F000
DxeMain: MemoryBaseAddress=0x7BDA3000 MemoryLength=0x365D000
HOBLIST address in DXE = 0x7F0E5018
Memory Allocation 0x00000000 0x80D000 - 0x80DFFF
Memory Allocation 0x00000000 0x80E000 - 0x80EFFF
Memory Allocation 0x0000000A 0x7FD80000 - 0x7FFFFFFF
Memory Allocation 0x0000000A 0x810000 - 0x81FFFF
Memory Allocation 0x0000000A 0x807000 - 0x807FFF
Memory Allocation 0x0000000A 0x800000 - 0x805FFF
Memory Allocation 0x0000000A 0x808000 - 0x808FFF
Memory Allocation 0x0000000A 0x809000 - 0x80AFFF
Memory Allocation 0x0000000A 0x80C000 - 0x80CFFF
Memory Allocation 0x0000000A 0x806000 - 0x806FFF
Memory Allocation 0x0000000A 0x80B000 - 0x80BFFF
Memory Allocation 0x00000006 0x7FCFC000 - 0x7FD7FFFF
Memory Allocation 0x0000000A 0x820000 - 0x8FFFFF
Memory Allocation 0x00000004 0x900000 - 0x15FFFFF
Memory Allocation 0x00000000 0xB0000000 - 0xBFFFFFFF
Memory Allocation 0x00000000 0x7FC7C000 - 0x7FCFBFFF
Memory Allocation 0x00000004 0x7FA00000 - 0x7FBFFFFF
Memory Allocation 0x00000007 0x7FC00000 - 0x7FC7BFFF
Memory Allocation 0x00000004 0x7F9C0000 - 0x7F9FFFFF
Memory Allocation 0x00000004 0x7F9BF000 - 0x7F9BFFFF
Memory Allocation 0x00000004 0x7F6F9000 - 0x7F718FFF
Memory Allocation 0x00000003 0x7F9B3000 - 0x7F9BEFFF
Memory Allocation 0x00000003 0x7F9AE000 - 0x7F9B2FFF
Memory Allocation 0x00000003 0x7F9A9000 - 0x7F9ADFFF
Memory Allocation 0x00000003 0x7F9A4000 - 0x7F9A8FFF
Memory Allocation 0x00000003 0x7F994000 - 0x7F9A3FFF
Memory Allocation 0x00000004 0x7F787000 - 0x7F993FFF
Memory Allocation 0x00000003 0x7F786000 - 0x7F786FFF
Memory Allocation 0x00000007 0x7F785000 - 0x7F785FFF
Memory Allocation 0x00000007 0x7F784000 - 0x7F784FFF
Memory Allocation 0x00000007 0x7F783000 - 0x7F783FFF
Memory Allocation 0x00000007 0x7F782000 - 0x7F782FFF
Memory Allocation 0x00000007 0x7F781000 - 0x7F781FFF
Memory Allocation 0x00000007 0x7F780000 - 0x7F780FFF
Memory Allocation 0x00000007 0x7F77F000 - 0x7F77FFFF
Memory Allocation 0x00000007 0x7F77E000 - 0x7F77EFFF
Memory Allocation 0x00000007 0x7F77D000 - 0x7F77DFFF
Memory Allocation 0x00000007 0x7F77C000 - 0x7F77CFFF
Memory Allocation 0x00000007 0x7F77B000 - 0x7F77BFFF
Memory Allocation 0x00000007 0x7F77A000 - 0x7F77AFFF
Memory Allocation 0x00000007 0x7F779000 - 0x7F779FFF
Memory Allocation 0x00000007 0x7F778000 - 0x7F778FFF
Memory Allocation 0x00000007 0x7F777000 - 0x7F777FFF
Memory Allocation 0x00000007 0x7F776000 - 0x7F776FFF
Memory Allocation 0x00000007 0x7F775000 - 0x7F775FFF
Memory Allocation 0x00000007 0x7F774000 - 0x7F774FFF
Memory Allocation 0x00000007 0x7F773000 - 0x7F773FFF
Memory Allocation 0x00000007 0x7F772000 - 0x7F772FFF
Memory Allocation 0x00000007 0x7F771000 - 0x7F771FFF
Memory Allocation 0x00000007 0x7F770000 - 0x7F770FFF
Memory Allocation 0x00000007 0x7F76F000 - 0x7F76FFFF
Memory Allocation 0x00000007 0x7F76E000 - 0x7F76EFFF
Memory Allocation 0x00000007 0x7F76D000 - 0x7F76DFFF
Memory Allocation 0x00000007 0x7F76C000 - 0x7F76CFFF
Memory Allocation 0x00000007 0x7F76B000 - 0x7F76BFFF
Memory Allocation 0x00000007 0x7F76A000 - 0x7F76AFFF
Memory Allocation 0x00000007 0x7F769000 - 0x7F769FFF
Memory Allocation 0x00000007 0x7F768000 - 0x7F768FFF
Memory Allocation 0x00000007 0x7F767000 - 0x7F767FFF
Memory Allocation 0x00000000 0x7F766000 - 0x7F766FFF
Memory Allocation 0x00000000 0x7F765000 - 0x7F765FFF
Memory Allocation 0x00000000 0x7F764000 - 0x7F764FFF
Memory Allocation 0x00000000 0x7F763000 - 0x7F763FFF
Memory Allocation 0x00000000 0x7F762000 - 0x7F762FFF
Memory Allocation 0x00000000 0x7F761000 - 0x7F761FFF
Memory Allocation 0x00000000 0x7F760000 - 0x7F760FFF
Memory Allocation 0x00000000 0x7F75F000 - 0x7F75FFFF
Memory Allocation 0x00000000 0x7F75E000 - 0x7F75EFFF
Memory Allocation 0x00000000 0x7F75D000 - 0x7F75DFFF
Memory Allocation 0x00000000 0x7F75C000 - 0x7F75CFFF
Memory Allocation 0x00000000 0x7F75B000 - 0x7F75BFFF
Memory Allocation 0x00000000 0x7F75A000 - 0x7F75AFFF
Memory Allocation 0x00000000 0x7F759000 - 0x7F759FFF
Memory Allocation 0x00000000 0x7F758000 - 0x7F758FFF
Memory Allocation 0x00000000 0x7F757000 - 0x7F757FFF
Memory Allocation 0x00000000 0x7F756000 - 0x7F756FFF
Memory Allocation 0x00000000 0x7F755000 - 0x7F755FFF
Memory Allocation 0x00000000 0x7F754000 - 0x7F754FFF
Memory Allocation 0x00000000 0x7F753000 - 0x7F753FFF
Memory Allocation 0x00000000 0x7F752000 - 0x7F752FFF
Memory Allocation 0x00000000 0x7F751000 - 0x7F751FFF
Memory Allocation 0x00000000 0x7F750000 - 0x7F750FFF
Memory Allocation 0x00000000 0x7F74F000 - 0x7F74FFFF
Memory Allocation 0x00000000 0x7F74E000 - 0x7F74EFFF
Memory Allocation 0x00000000 0x7F74D000 - 0x7F74DFFF
Memory Allocation 0x00000000 0x7F74C000 - 0x7F74CFFF
Memory Allocation 0x00000000 0x7F74B000 - 0x7F74BFFF
Memory Allocation 0x00000000 0x7F74A000 - 0x7F74AFFF
Memory Allocation 0x00000000 0x7F749000 - 0x7F749FFF
Memory Allocation 0x00000000 0x7F748000 - 0x7F748FFF
Memory Allocation 0x00000003 0x7F719000 - 0x7F747FFF
Memory Allocation 0x00000003 0x7F719000 - 0x7F747FFF
Memory Allocation 0x00000004 0x7F6F9000 - 0x7F718FFF
Memory Allocation 0x00000004 0x7F400000 - 0x7F5FFFFF
Memory Allocation 0x00000007 0x7F600000 - 0x7F6F8FFF
Memory Allocation 0x00000004 0x7BD7D000 - 0x7BD9CFFF
FV Hob            0x900000 - 0x15FFFFF
InstallProtocolInterface: D8117CFE-94A6-11D4-9A3A-0090273FC14D 7F73FF40
InstallProtocolInterface: 8F644FA9-E850-4DB1-9CE2-0B44698E8DA4 7F0E1930
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7F0E1A18
InstallProtocolInterface: 220E73B6-6BDB-4413-8405-B974B108619A 7F0E1430
InstallProtocolInterface: EE4E5898-3914-4259-9D6E-DC7BD79403CF 7F73FE58
Loading driver 9B680FCE-AD6B-4F3A-B60B-F59899003443
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7ED71140
Loading driver at 0x0007ED59000 EntryPoint=0x0007ED61178 DevicePathDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7ED71C98
ProtectUefiImageCommon - 0x7ED71140
  - 0x000000007ED59000 - 0x000000000000B700
InstallProtocolInterface: 0379BE4E-D706-437D-B037-EDB82FB772A4 7ED63A00
InstallProtocolInterface: 8B843E20-8132-4852-90CC-551A4E4A7F1C 7ED639E0
InstallProtocolInterface: 05C99A21-C70F-4AD2-8A5F-35DF3343F51E 7ED639C0
Loading driver 80CF7257-87AB-47F9-A3FE-D50B76D89541
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7ED6A040
Loading driver at 0x0007ED53000 EntryPoint=0x0007ED56AEB PcdDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7ED71918
ProtectUefiImageCommon - 0x7ED6A040
  - 0x000000007ED53000 - 0x0000000000005D40
InstallProtocolInterface: 11B34006-D85B-4D0A-A290-D5A571310EF7 7ED58A40
InstallProtocolInterface: 13A3F0F6-264A-3EF0-F2E0-DEC512342F34 7ED589A0
InstallProtocolInterface: 5BE40F57-FA68-4610-BBBF-E9C5FCDAD365 7ED58970
InstallProtocolInterface: FD0F4478-0EFD-461D-BA2D-E58C45FD5F5E 7ED58950
Loading driver 2EC9DA37-EE35-4DE9-86C5-6D9A81DC38A7
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7ED700C0
Loading driver at 0x0007ED65000 EntryPoint=0x0007ED67653 AmdSevDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7ED70A18
ProtectUefiImageCommon - 0x7ED700C0
  - 0x000000007ED65000 - 0x0000000000004380
InstallProtocolInterface: 38C74800-5590-4DB4-A0F3-675D9B8E8026 7ED691B0
InstallProtocolInterface: C5A010FE-38A7-4531-8A4A-0500D2FD1649 7ED69190
Loading driver E750224E-7BCE-40AF-B5BB-47E3611EB5C2
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7ED70540
Loading driver at 0x0007ED4D000 EntryPoint=0x0007ED4F201 TdxDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7ED52F98
ProtectUefiImageCommon - 0x7ED70540
  - 0x000000007ED4D000 - 0x0000000000004B80
InstallProtocolInterface: BB00A5CA-08CE-462F-A537-43C74A825CA4 0
Loading driver 733CBAC2-B23F-4B92-BC8E-FB01CE5907B7
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7ED520C0
Loading driver at 0x0007F2E4000 EntryPoint=0x0007F2E710D FvbServicesRuntimeDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7ED52318
ProtectUefiImageCommon - 0x7ED520C0
  - 0x000000007F2E4000 - 0x0000000000009000
QEMU Flash: Attempting flash detection at FFC00010
QEMU Flash: SEV-ES enabled, assuming FD behaves as FLASH
Installing QEMU flash FVB
InstallProtocolInterface: 8F644FA9-E850-4DB1-9CE2-0B44698E8DA4 7F1EC8B0
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7ED52518
Loading driver D93CE3D8-A7EB-4730-8C8E-CC466A9ECC3C
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7ED6F740
Loading driver at 0x0007F2DD000 EntryPoint=0x0007F2DFA8C ReportStatusCodeRouterRuntimeDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7ED52498
ProtectUefiImageCommon - 0x7ED6F740
  - 0x000000007F2DD000 - 0x0000000000007000
InstallProtocolInterface: 86212936-0E76-41C8-A03A-2AF2FC1C39E2 7F2E2060
InstallProtocolInterface: D2B2B828-0826-48A7-B3DF-983C006024F0 7F2E2040
Loading driver B601F8C4-43B7-4784-95B1-F4226CB40CEE
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7ED6F140
Loading driver at 0x0007F2D7000 EntryPoint=0x0007F2D9695 RuntimeDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7ED6C018
ProtectUefiImageCommon - 0x7ED6F140
  - 0x000000007F2D7000 - 0x0000000000006000
InstallProtocolInterface: B7DFB4E1-052F-449F-87BE-9818FC91B733 7F2DB080
Loading driver F80697E9-7FD6-4665-8646-88E33EF71DFC
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7ED6C7C0
Loading driver at 0x0007ED47000 EntryPoint=0x0007ED4874E SecurityStubDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7ED6C118
ProtectUefiImageCommon - 0x7ED6C7C0
  - 0x000000007ED47000 - 0x0000000000002E00
InstallProtocolInterface: 94AB2F58-1438-4EF1-9152-18941A3A0E68 7ED49C18
InstallProtocolInterface: A46423E3-4617-49F1-B9FF-D1BFA9115839 7ED49C10
InstallProtocolInterface: 15853D7C-3DDF-43E0-A1CB-EBF85B8F872C 7ED49BF0
Loading driver 13AC6DD0-73D0-11D4-B06B-00AA00BD6DE7
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7ED6BCC0
Loading driver at 0x0007ED39000 EntryPoint=0x0007ED3D73F EbcDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7ED6BA98
ProtectUefiImageCommon - 0x7ED6BCC0
  - 0x000000007ED39000 - 0x0000000000006180
InstallProtocolInterface: 13AC6DD1-73D0-11D4-B06B-00AA00BD6DE7 7ED6BA18
InstallProtocolInterface: 96F46153-97A7-4793-ACC1-FA19BF78EA97 7ED3EBA0
InstallProtocolInterface: 2755590C-6F3C-42FA-9EA4-A3BA543CDA25 7ED6B218
InstallProtocolInterface: AAEACCFD-F27B-4C17-B610-75CA1F2DFB52 7ED6B398
Loading driver A19B1FE7-C1BC-49F8-875F-54A5D542443F
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7ED4CB40
Loading driver at 0x0007ED41000 EntryPoint=0x0007ED42C92 CpuIo2Dxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7ED6B898
ProtectUefiImageCommon - 0x7ED4CB40
  - 0x000000007ED41000 - 0x0000000000002AC0
InstallProtocolInterface: AD61F191-AE5F-4C0E-B9FA-E869D288C64F 7ED43980
Loading driver 1A1E4886-9517-440E-9FDE-3BE44CEE2136
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7ED4C240
Loading driver at 0x0007EC03000 EntryPoint=0x0007EC0A1BA CpuDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7ED4C498
ProtectUefiImageCommon - 0x7ED4C240
  - 0x000000007EC03000 - 0x000000000001AF00
Paging: added 512 pages to page table pool
CurrentPagingContext:
  MachineType   - 0x8664
  PageTableBase - 0x7F401000
  Attributes    - 0xC0000006
InstallProtocolInterface: 26BACCB1-6F42-11D4-BCE7-0080C73C8881 7EC172E0
MemoryProtectionCpuArchProtocolNotify:
ProtectUefiImageCommon - 0x7F73EBE8
  - 0x000000007F719000 - 0x000000000002F000
ProtectUefiImageCommon - 0x7ED71140
  - 0x000000007ED59000 - 0x000000000000B700
ProtectUefiImageCommon - 0x7ED6A040
  - 0x000000007ED53000 - 0x0000000000005D40
ProtectUefiImageCommon - 0x7ED700C0
  - 0x000000007ED65000 - 0x0000000000004380
ProtectUefiImageCommon - 0x7ED70540
  - 0x000000007ED4D000 - 0x0000000000004B80
ProtectUefiImageCommon - 0x7ED520C0
  - 0x000000007F2E4000 - 0x0000000000009000
SetUefiImageMemoryAttributes - 0x000000007F2E4000 - 0x0000000000001000 (0x0000000000004000)
SetUefiImageMemoryAttributes - 0x000000007F2E5000 - 0x0000000000006000 (0x0000000000020000)
SetUefiImageMemoryAttributes - 0x000000007F2EB000 - 0x0000000000002000 (0x0000000000004000)
ProtectUefiImageCommon - 0x7ED6F740
  - 0x000000007F2DD000 - 0x0000000000007000
SetUefiImageMemoryAttributes - 0x000000007F2DD000 - 0x0000000000001000 (0x0000000000004000)
SetUefiImageMemoryAttributes - 0x000000007F2DE000 - 0x0000000000004000 (0x0000000000020000)
SetUefiImageMemoryAttributes - 0x000000007F2E2000 - 0x0000000000002000 (0x0000000000004000)
ProtectUefiImageCommon - 0x7ED6F140
  - 0x000000007F2D7000 - 0x0000000000006000
SetUefiImageMemoryAttributes - 0x000000007F2D7000 - 0x0000000000001000 (0x0000000000004000)
SetUefiImageMemoryAttributes - 0x000000007F2D8000 - 0x0000000000003000 (0x0000000000020000)
SetUefiImageMemoryAttributes - 0x000000007F2DB000 - 0x0000000000002000 (0x0000000000004000)
ProtectUefiImageCommon - 0x7ED6C7C0
  - 0x000000007ED47000 - 0x0000000000002E00
ProtectUefiImageCommon - 0x7ED6BCC0
  - 0x000000007ED39000 - 0x0000000000006180
ProtectUefiImageCommon - 0x7ED4CB40
  - 0x000000007ED41000 - 0x0000000000002AC0
ProtectUefiImageCommon - 0x7ED4C240
  - 0x000000007EC03000 - 0x000000000001AF00
ConvertPages: failed to find range A0000 - FFFFF
ConvertPages: failed to find range B0000000 - BFFFFFFF
ConvertPages: failed to find range C0000000 - FBFFFFFF
ConvertPages: failed to find range FEC00000 - FEC00FFF
Failed to update capability: [9] 00000000FED00000 - 00000000FED003FF (C700000000000001 -> C700000000026001)
ConvertPages: failed to find range FED1C000 - FED1FFFF
ConvertPages: failed to find range FEE00000 - FEEFFFFF
ConvertPages: failed to find range FEFFC000 - FEFFFFFF
ConvertPages: failed to find range FFC00000 - FFFFFFFF
ConvertPages: failed to find range 100000000 - 47FFFFFFF
AP Loop Mode is 1
AP Vector: non-16-bit = 7ED45000/32A
GetMicrocodePatchInfoFromHob: MicrocodeBase = 0x0, MicrocodeSize = 0x0
WakeupBufferStart = 87000, WakeupBufferSize = DD
AP Vector: 16-bit = 87000/39, ExchangeInfo = 87039/A4
Dxe: SevEsAPMemory = 7F36C000
CpuDxe: 5-Level Paging = 0
CPU[0000]: Microcode revision = 00000000, expected = 00000000
CPU[0001]: Microcode revision = 00000000, expected = 00000000
CPU[0002]: Microcode revision = 00000000, expected = 00000000
CPU[0003]: Microcode revision = 00000000, expected = 00000000
CPU[0004]: Microcode revision = 00000000, expected = 00000000
CPU[0005]: Microcode revision = 00000000, expected = 00000000
CPU[0006]: Microcode revision = 00000000, expected = 00000000
CPU[0007]: Microcode revision = 00000000, expected = 00000000
CPU[0008]: Microcode revision = 00000000, expected = 00000000
CPU[0009]: Microcode revision = 00000000, expected = 00000000
CPU[0010]: Microcode revision = 00000000, expected = 00000000
CPU[0011]: Microcode revision = 00000000, expected = 00000000
CPU[0012]: Microcode revision = 00000000, expected = 00000000
CPU[0013]: Microcode revision = 00000000, expected = 00000000
CPU[0014]: Microcode revision = 00000000, expected = 00000000
CPU[0015]: Microcode revision = 00000000, expected = 00000000
CPU[0016]: Microcode revision = 00000000, expected = 00000000
CPU[0017]: Microcode revision = 00000000, expected = 00000000
CPU[0018]: Microcode revision = 00000000, expected = 00000000
CPU[0019]: Microcode revision = 00000000, expected = 00000000
CPU[0020]: Microcode revision = 00000000, expected = 00000000
CPU[0021]: Microcode revision = 00000000, expected = 00000000
CPU[0022]: Microcode revision = 00000000, expected = 00000000
CPU[0023]: Microcode revision = 00000000, expected = 00000000
CPU[0024]: Microcode revision = 00000000, expected = 00000000
CPU[0025]: Microcode revision = 00000000, expected = 00000000
CPU[0026]: Microcode revision = 00000000, expected = 00000000
CPU[0027]: Microcode revision = 00000000, expected = 00000000
CPU[0028]: Microcode revision = 00000000, expected = 00000000
CPU[0029]: Microcode revision = 00000000, expected = 00000000
CPU[0030]: Microcode revision = 00000000, expected = 00000000
CPU[0031]: Microcode revision = 00000000, expected = 00000000
Detect CPU count: 32
InstallProtocolInterface: 3FDDA605-A76E-4F46-AD29-12F4531B3D08 7EC173E0
Loading driver F6697AC4-A776-4EE1-B643-1FEFF2B615BB
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7ED44CC0
Loading driver at 0x0007EC33000 EntryPoint=0x0007EC342E2 IncompatiblePciDeviceSupportDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7ED4C618
ProtectUefiImageCommon - 0x7ED44CC0
  - 0x000000007EC33000 - 0x0000000000002240
InstallProtocolInterface: EB23F55A-7863-4AC2-8D3D-956535DE0375 7EC35140
Loading driver 11A6EDF6-A9BE-426D-A6CC-B22FE51D9224
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7ED44240
Loading driver at 0x0007EC27000 EntryPoint=0x0007EC2A904 PciHotPlugInitDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7ED44518
ProtectUefiImageCommon - 0x7ED44240
  - 0x000000007EC27000 - 0x0000000000005240
InstallProtocolInterface: AA0E8BC1-DABC-46B0-A844-37B8169B2BEA 7EC2C110
Loading driver 4B28E4C7-FF36-4E10-93CF-A82159E777C5
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7ED400C0
Loading driver at 0x0007F2D0000 EntryPoint=0x0007F2D2CE5 ResetSystemRuntimeDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7ED40D18
ProtectUefiImageCommon - 0x7ED400C0
  - 0x000000007F2D0000 - 0x0000000000007000
SetUefiImageMemoryAttributes - 0x000000007F2D0000 - 0x0000000000001000 (0x0000000000004008)
SetUefiImageMemoryAttributes - 0x000000007F2D1000 - 0x0000000000004000 (0x0000000000020008)
SetUefiImageMemoryAttributes - 0x000000007F2D5000 - 0x0000000000002000 (0x0000000000004008)
InstallProtocolInterface: 27CFAC88-46CC-11D4-9A38-0090273FC14D 0
InstallProtocolInterface: 9DA34AE0-EAF9-4BBF-8EC3-FD60226C44BE 7F2D5108
InstallProtocolInterface: 695D7835-8D47-4C11-AB22-FA8ACCE7AE7A 7F2D5148
InstallProtocolInterface: 2DF6BA0B-7092-440D-BD04-FB091EC3F3C1 7F2D50C8
Loading driver C8339973-A563-4561-B858-D8476F9DEFC4
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC38BC0
Loading driver at 0x0007EC2D000 EntryPoint=0x0007EC2E396 Metronome.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC38098
ProtectUefiImageCommon - 0x7EC38BC0
  - 0x000000007EC2D000 - 0x00000000000027C0
InstallProtocolInterface: 26BACCB2-6F42-11D4-BCE7-0080C73C8881 7EC2F630
Loading driver 348C4D62-BFBD-4882-9ECE-C80BB1C4783B
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC381C0
Loading driver at 0x0007E6C6000 EntryPoint=0x0007E6DE614 HiiDatabase.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC38498
ProtectUefiImageCommon - 0x7EC381C0
  - 0x000000007E6C6000 - 0x000000000001CE40
InstallProtocolInterface: E9CA4775-8657-47FC-97E7-7ED65A084324 7E6E29E8
InstallProtocolInterface: 0FD96974-23AA-4CDC-B9CB-98D17750322A 7E6E2A60
InstallProtocolInterface: EF9FC172-A1B2-4693-B327-6D32FC416042 7E6E2A88
InstallProtocolInterface: 587E72D7-CC50-4F79-8209-CA291FC1A10F 7E6E2AE0
InstallProtocolInterface: 0A8BADD5-03B8-4D19-B128-7B8F0EDAA596 7E6E2B10
InstallProtocolInterface: 31A6406A-6BDF-4E46-B2A2-EBAA89C40920 7E6E2A08
InstallProtocolInterface: 1A1241E6-8F19-41A9-BC0E-E8EF39E06546 7E6E2A30
Loading driver 96B5C032-DF4C-4B6E-8232-438DCF448D0E
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC37240
Loading driver at 0x0007EC24000 EntryPoint=0x0007EC252F2 NullMemoryTestDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC37818
ProtectUefiImageCommon - 0x7EC37240
  - 0x000000007EC24000 - 0x00000000000022C0
InstallProtocolInterface: 309DE7F1-7F5E-4ACE-B49C-531BE5AA95EF 7EC26120
Loading driver 9622E42C-8E38-4A08-9E8F-54F784652F6B
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC36CC0
Loading driver at 0x0007E6F0000 EntryPoint=0x0007E6F4361 AcpiTableDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC36198
ProtectUefiImageCommon - 0x7EC36CC0
  - 0x000000007E6F0000 - 0x00000000000077C0
InstallProtocolInterface: FFE06BDD-6107-46A6-7BB2-5A9C7EC5275C 7EC362A0
InstallProtocolInterface: EB97088E-CFDF-49C6-BE4B-D906A5B20E86 7EC362B0
Loading driver BDCE85BB-FBAA-4F4E-9264-501A2C249581
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC36440
Loading driver at 0x0007E6E9000 EntryPoint=0x0007E6ED046 S3SaveStateDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC32F18
ProtectUefiImageCommon - 0x7EC36440
  - 0x000000007E6E9000 - 0x0000000000006380
InstallProtocolInterface: BD445D79-B7AD-4F04-9AD8-29BD2040EB3C 0
InstallProtocolInterface: E857CAF6-C046-45DC-BE3F-EE0765FBA887 7E6EF0C0
Loading driver A210F973-229D-4F4D-AA37-9895E6C9EABA
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC321C0
Loading driver at 0x0007EC1E000 EntryPoint=0x0007EC1F404 DpcDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC32718
ProtectUefiImageCommon - 0x7EC321C0
  - 0x000000007EC1E000 - 0x0000000000002200
InstallProtocolInterface: 480F8AE9-0C46-4AA9-BC89-DB9FBA619806 7EC1FEC0
Loading driver 8657015B-EA43-440D-949A-AF3BE365C0FC
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC31B40
Loading driver at 0x0007E6BF000 EntryPoint=0x0007E6C3011 IoMmuDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC31E98
ProtectUefiImageCommon - 0x7EC31B40
  - 0x000000007E6BF000 - 0x0000000000006600
InstallProtocolInterface: 4E939DE9-D948-4B0F-88ED-E6E1CE517C1E 7E6C53E0
InstallIoMmuProtocol: Feature of reserved memory for DMA is supported.
Loading driver 22DC2B60-FE40-42AC-B01F-3AB1FAD9AAD8
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC31240
Loading driver at 0x0007F2CA000 EntryPoint=0x0007F2CC5DD EmuVariableFvbRuntimeDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC30F18
ProtectUefiImageCommon - 0x7EC31240
  - 0x000000007F2CA000 - 0x0000000000006000
SetUefiImageMemoryAttributes - 0x000000007F2CA000 - 0x0000000000001000 (0x0000000000004008)
SetUefiImageMemoryAttributes - 0x000000007F2CB000 - 0x0000000000003000 (0x0000000000020008)
SetUefiImageMemoryAttributes - 0x000000007F2CE000 - 0x0000000000002000 (0x0000000000004008)
EMU Variable FVB Started
Disabling EMU Variable FVB since flash variables appear to be supported.
Error: Image at 0007F2CA000 start failed: Aborted
SetUefiImageMemoryAttributes - 0x000000007F2CA000 - 0x0000000000006000 (0x0000000000000008)
Loading driver CBD2E4D5-7068-4FF5-B462-9822B4AD8D60
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC31240
Loading driver at 0x0007F2C0000 EntryPoint=0x0007F2C9346 VariableRuntimeDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC23F98
ProtectUefiImageCommon - 0x7EC31240
  - 0x000000007F2C0000 - 0x0000000000010000
SetUefiImageMemoryAttributes - 0x000000007F2C0000 - 0x0000000000001000 (0x0000000000004008)
SetUefiImageMemoryAttributes - 0x000000007F2C1000 - 0x000000000000D000 (0x0000000000020008)
SetUefiImageMemoryAttributes - 0x000000007F2CE000 - 0x0000000000002000 (0x0000000000004008)
VarCheckLibRegisterSetVariableCheckHandler - 0x7F2C46D8 Success
Variable driver common space: 0x3FF9C 0x3FF9C 0x3FF9C
Variable driver will work with auth variable format!
InstallProtocolInterface: CD3D0A05-9E24-437C-A891-1EE053DB7638 7F2CE7D0
InstallProtocolInterface: AF23B340-97B4-4685-8D4F-A3F28169B21D 7F2CE7A0
InstallProtocolInterface: 1E5668E2-8481-11D4-BCF1-0080C73C8881 0
VarCheckLibRegisterSetVariableCheckHandler - 0x7F2C44AB Success
InstallProtocolInterface: 81D1675C-86F6-48DF-BD95-9A6E4F0925C3 7F2CE740
Loading driver 6C2004EF-4E0E-4BE4-B14C-340EB4AA5891
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC23340
Loading driver at 0x0007F2BB000 EntryPoint=0x0007F2BD1DA StatusCodeHandlerRuntimeDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC22E18
ProtectUefiImageCommon - 0x7EC23340
  - 0x000000007F2BB000 - 0x0000000000005000
SetUefiImageMemoryAttributes - 0x000000007F2BB000 - 0x0000000000001000 (0x0000000000004008)
SetUefiImageMemoryAttributes - 0x000000007F2BC000 - 0x0000000000003000 (0x0000000000020008)
SetUefiImageMemoryAttributes - 0x000000007F2BF000 - 0x0000000000001000 (0x0000000000004008)
Loading driver 52FE8196-F9DE-4D07-B22F-51F77A0E7C41
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC22240
Loading driver at 0x0007E6F8000 EntryPoint=0x0007E6F9B5A LocalApicTimerDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC22A98
ProtectUefiImageCommon - 0x7EC22240
  - 0x000000007E6F8000 - 0x00000000000031C0
InstallProtocolInterface: 26BACCB3-6F42-11D4-BCE7-0080C73C8881 7E6FAFE0
Loading driver 128FB770-5E79-4176-9E51-9BB268A17DD1
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC21040
Loading driver at 0x0007E6A9000 EntryPoint=0x0007E6B04F9 PciHostBridgeDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC21F18
ProtectUefiImageCommon - 0x7EC21040
  - 0x000000007E6A9000 - 0x000000000000A3C0
Select Item: 0x0
FW CFG Signature: 0x554D4551
Select Item: 0x1
FW CFG Revision: 0x3
QemuFwCfg interface (DMA) is supported.
Select Item: 0x19
Select Item: 0x19
PciHostBridgeUtilityInitRootBridge: populated root bus 0, with room for 255 subordinate bus(es)
RootBridge: PciRoot(0x0)
  Support/Attr: 70069 / 70069
    DmaAbove4G: No
NoExtConfSpace: No
     AllocAttr: 3 (CombineMemPMem Mem64Decode)
           Bus: 0 - FF Translation=0
            Io: 6000 - FFFF Translation=0
           Mem: C0000000 - FBFFFFFF Translation=0
    MemAbove4G: E000000000 - FFFFFFFFFF Translation=0
          PMem: FFFFFFFFFFFFFFFF - 0 Translation=0
   PMemAbove4G: FFFFFFFFFFFFFFFF - 0 Translation=0
CpuDxe: 5-Level Paging = 0
InstallProtocolInterface: CF8034BE-6768-4D8B-B739-7CCE683A9FBE 7EC21440
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7EC21A98
InstallProtocolInterface: 2F707EBB-4A1A-11D4-9A38-0090273FC14D 7EC216F0
Loading driver EBF342FE-B1D3-4EF8-957C-8048606FF671
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC020C0
Loading driver at 0x0007E677000 EntryPoint=0x0007E687388 SetupBrowser.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC02398
ProtectUefiImageCommon - 0x7EC020C0
  - 0x000000007E677000 - 0x0000000000018A80
InstallProtocolInterface: B9D4C360-BCFB-4F9B-9298-53C136982258 7E68F5B0
InstallProtocolInterface: A770C357-B693-4E6D-A6CF-D21C728E550B 7E68F5E0
InstallProtocolInterface: 1F73B18D-4630-43C1-A1DE-6F80855D7DA4 7E68F5C0
Loading driver F9D88642-0737-49BC-81B5-6889CD57D9EA
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC01CC0
Loading driver at 0x0007E6A2000 EntryPoint=0x0007E6A56F2 SmbiosDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC01B18
ProtectUefiImageCommon - 0x7EC01CC0
  - 0x000000007E6A2000 - 0x0000000000006080
Select Item: 0x0
FW CFG Signature: 0x554D4551
Select Item: 0x1
FW CFG Revision: 0x3
QemuFwCfg interface (DMA) is supported.
Select Item: 0x19
Select Item: 0x19
Select Item: 0x27
DetectSmbiosVersion: SMBIOS version from QEMU: 0x0208
InstallProtocolInterface: 03583FF6-CB36-4940-947E-B9B39F4AFAF7 7E6A7F10
Loading driver 17985E6F-E778-4D94-AEFA-C5DD2B77E186
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC01340
Loading driver at 0x0007E69A000 EntryPoint=0x0007E69E706 QemuFwCfgAcpiPlatform.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC01618
ProtectUefiImageCommon - 0x7EC01340
  - 0x000000007E69A000 - 0x00000000000070C0
Select Item: 0x0
FW CFG Signature: 0x554D4551
Select Item: 0x1
FW CFG Revision: 0x3
QemuFwCfg interface (DMA) is supported.
AcpiPlatformEntryPoint: waiting for root bridges to be connected, registered callback
Loading driver FA20568B-548B-4B2B-81EF-1BA08D4A3CEC
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC000C0
Loading driver at 0x0007E645000 EntryPoint=0x0007E64AE7A BootScriptExecutorDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC00A18
ProtectUefiImageCommon - 0x7EC000C0
  - 0x000000007E645000 - 0x00000000000180C0
Loading driver A487A478-51EF-48AA-8794-7BEE2A0562F1
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7EC004C0
Loading driver at 0x0007E66C000 EntryPoint=0x0007E672857 tftpDynamicCommand.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7EC00818
InstallProtocolInterface: 6A1EE763-D47A-43B4-AABE-EF1DE2AB56FC 7E674CB0
ProtectUefiImageCommon - 0x7EC004C0
  - 0x000000007E66C000 - 0x000000000000A800
InstallProtocolInterface: 3C7200E9-005F-4EA4-87DE-A3DFAC8A27C3 7E6749E0
Loading driver 19618BCE-55AE-09C6-37E9-4CE04084C7A1
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6FF1C0
Loading driver at 0x0007E638000 EntryPoint=0x0007E63FEF0 httpDynamicCommand.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E6FF418
InstallProtocolInterface: 6A1EE763-D47A-43B4-AABE-EF1DE2AB56FC 7E642970
ProtectUefiImageCommon - 0x7E6FF1C0
  - 0x000000007E638000 - 0x000000000000CC00
InstallProtocolInterface: 3C7200E9-005F-4EA4-87DE-A3DFAC8A27C3 7E642670
Loading driver 2F30DA26-F51B-4B6F-85C4-31873C281BCA
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6FC0C0
Loading driver at 0x0007E692000 EntryPoint=0x0007E69712C LinuxInitrdDynamicShellCommand.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E6FCA98
InstallProtocolInterface: 6A1EE763-D47A-43B4-AABE-EF1DE2AB56FC 7E699170
ProtectUefiImageCommon - 0x7E6FC0C0
  - 0x000000007E692000 - 0x0000000000007C80
InstallProtocolInterface: 3C7200E9-005F-4EA4-87DE-A3DFAC8A27C3 7E698E20
Loading driver F74D20EE-37E7-48FC-97F7-9B1047749C69
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6E5AC0
Loading driver at 0x0007E6B5000 EntryPoint=0x0007E6B60CB LogoDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E6E5D98
InstallProtocolInterface: 6A1EE763-D47A-43B4-AABE-EF1DE2AB56FC 7E6B6D30
ProtectUefiImageCommon - 0x7E6E5AC0
  - 0x000000007E6B5000 - 0x0000000000004C80
InstallProtocolInterface: 53CD299F-2BC1-40C0-8C07-23F64FDB30E0 7E6B6B80
Loading driver DCE1B094-7DC6-45D0-9FDD-D7FC3CC3E4EF
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6E4640
Loading driver at 0x0007E662000 EntryPoint=0x0007E664AF7 QemuRamfbDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E6E4918
ProtectUefiImageCommon - 0x7E6E4640
  - 0x000000007E662000 - 0x0000000000004FC0
Select Item: 0x0
FW CFG Signature: 0x554D4551
Select Item: 0x1
FW CFG Revision: 0x3
QemuFwCfg interface (DMA) is supported.
Select Item: 0x19
Error: Image at 0007E662000 start failed: Not Found
Loading driver FE5CEA76-4F72-49E8-986F-2CD899DFFE5D
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6E4640
Loading driver at 0x0007E660000 EntryPoint=0x0007E663EB3 FaultTolerantWriteDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E6E4998
ProtectUefiImageCommon - 0x7E6E4640
  - 0x000000007E660000 - 0x0000000000005B00
Ftw: FtwWorkSpaceLba - 0x41, WorkBlockSize  - 0x1000, FtwWorkSpaceBase - 0x0
Ftw: FtwSpareLba     - 0x42, SpareBlockSize - 0x1000
Ftw: NumberOfWorkBlock - 0x1, FtwWorkBlockLba - 0x41
Ftw: WorkSpaceLbaInSpare - 0x0, WorkSpaceBaseInSpare - 0x0
Ftw: Remaining work space size - FE0
InstallProtocolInterface: 3EBD9E82-2C78-4DE6-9786-8D4BFCB7C881 7E6BA028
NOTICE - AuthVariableLibInitialize() returns Unsupported!
Variable driver will continue to work without auth variable support!
RecordSecureBootPolicyVarData GetVariable SecureBoot Status E
InstallProtocolInterface: 6441F818-6362-4E44-B570-7DBA31DD2453 0
Loading driver 378D7B65-8DA9-4773-B6E4-A47826A833E1
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6E30C0
Loading driver at 0x0007F2B4000 EntryPoint=0x0007F2B74CA PcRtc.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E6E3998
ProtectUefiImageCommon - 0x7E6E30C0
  - 0x000000007F2B4000 - 0x0000000000007000
SetUefiImageMemoryAttributes - 0x000000007F2B4000 - 0x0000000000001000 (0x0000000000004008)
SetUefiImageMemoryAttributes - 0x000000007F2B5000 - 0x0000000000005000 (0x0000000000020008)
SetUefiImageMemoryAttributes - 0x000000007F2BA000 - 0x0000000000001000 (0x0000000000004008)
InstallProtocolInterface: 27CFAC87-46CC-11D4-9A38-0090273FC14D 0
Loading driver F099D67F-71AE-4C36-B2A3-DCEB0EB2B7D8
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6B4040
Loading driver at 0x0007E666000 EntryPoint=0x0007E667192 WatchdogTimer.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E6B4D18
ProtectUefiImageCommon - 0x7E6B4040
  - 0x000000007E666000 - 0x0000000000002040
InstallProtocolInterface: 665E3FF5-46CC-11D4-9A38-0090273FC14D 7E667E90
Loading driver AD608272-D07F-4964-801E-7BD3B7888652
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6B4440
Loading driver at 0x0007F2B0000 EntryPoint=0x0007F2B1F6D MonotonicCounterRuntimeDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E6B4A18
ProtectUefiImageCommon - 0x7E6B4440
  - 0x000000007F2B0000 - 0x0000000000004000
SetUefiImageMemoryAttributes - 0x000000007F2B0000 - 0x0000000000001000 (0x0000000000004008)
SetUefiImageMemoryAttributes - 0x000000007F2B1000 - 0x0000000000002000 (0x0000000000020008)
SetUefiImageMemoryAttributes - 0x000000007F2B3000 - 0x0000000000001000 (0x0000000000004008)
InstallProtocolInterface: 1DA97072-BDDC-4B30-99F1-72A0B56FFF2A 0
Loading driver 42857F0A-13F2-4B21-8A23-53D3F714B840
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6911C0
Loading driver at 0x0007F2AB000 EntryPoint=0x0007F2AD1F6 CapsuleRuntimeDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E691E98
ProtectUefiImageCommon - 0x7E6911C0
  - 0x000000007F2AB000 - 0x0000000000005000
SetUefiImageMemoryAttributes - 0x000000007F2AB000 - 0x0000000000001000 (0x0000000000004008)
SetUefiImageMemoryAttributes - 0x000000007F2AC000 - 0x0000000000003000 (0x0000000000020008)
SetUefiImageMemoryAttributes - 0x000000007F2AF000 - 0x0000000000001000 (0x0000000000004008)
InstallProtocolInterface: 5053697E-2CBC-4819-90D9-0580DEEE5754 0
Loading driver EBF8ED7C-0DD1-4787-84F1-F48D537DCACF
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E690040
Loading driver at 0x0007E62C000 EntryPoint=0x0007E62FCF6 DriverHealthManagerDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E691798
ProtectUefiImageCommon - 0x7E690040
  - 0x000000007E62C000 - 0x0000000000005F40
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7E631960
InstallProtocolInterface: 330D4706-F2A0-4E4F-A369-B66FA8D54385 7E631930
Loading driver 6D33944A-EC75-4855-A54D-809C75241F6C
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E66B5C0
Loading driver at 0x0007DD43000 EntryPoint=0x0007DD55F47 BdsDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E66B898
ProtectUefiImageCommon - 0x7E66B5C0
  - 0x000000007DD43000 - 0x000000000001BB80
Select Item: 0x0
FW CFG Signature: 0x554D4551
Select Item: 0x1
FW CFG Revision: 0x3
QemuFwCfg interface (DMA) is supported.
InstallProtocolInterface: 665E3FF6-46CC-11D4-9A38-0090273FC14D 7DD5E8F0
Loading driver 28A03FF4-12B3-4305-A417-BB1A4F94081E
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E66A040
Loading driver at 0x0007E616000 EntryPoint=0x0007E61CC52 RamDiskDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E690698
ProtectUefiImageCommon - 0x7E66A040
  - 0x000000007E616000 - 0x000000000000AA40
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7E66A298
InstallProtocolInterface: 330D4706-F2A0-4E4F-A369-B66FA8D54385 7E620718
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7E6207B0
InstallProtocolInterface: 330D4706-F2A0-4E4F-A369-B66FA8D54385 7E669D30
InstallProtocolInterface: AB38A0DF-6873-44A9-87E6-D4EB56148449 7E6204A0
InstallProtocolInterface: 28A03FF4-12B3-4305-A417-BB1A4F94081E 7E669D18
Loading driver E660EA85-058E-4B55-A54B-F02F83A24707
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6690C0
Loading driver at 0x0007DD2F000 EntryPoint=0x0007DD3D739 DisplayEngine.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E669618
ProtectUefiImageCommon - 0x7E6690C0
  - 0x000000007DD2F000 - 0x0000000000013840
InstallProtocolInterface: 9BBE29E9-FDA1-41EC-AD52-452213742D2E 7DD40CB0
InstallProtocolInterface: 4311EDC0-6054-46D4-9E40-893EA952FCCC 7DD40CC8
Loading driver 4110465D-5FF3-4F4B-B580-24ED0D06747A
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E634040
Loading driver at 0x0007E624000 EntryPoint=0x0007E626083 SmbiosPlatformDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E634F18
ProtectUefiImageCommon - 0x7E634040
  - 0x000000007E624000 - 0x0000000000003F00
Select Item: 0x0
FW CFG Signature: 0x554D4551
Select Item: 0x1
FW CFG Revision: 0x3
QemuFwCfg interface (DMA) is supported.
Select Item: 0x19
Select Item: 0x28
SmbiosAdd: Smbios type 1 with size 0x4B is added to 32-bit table
SmbiosCreateTable: Initialize 32-bit entry point structure
SmbiosCreateTable() re-allocate SMBIOS 32-bit table
SmbiosAdd: Smbios type 3 with size 0x27 is added to 32-bit table
SmbiosAdd: Smbios type 4 with size 0x41 is added to 32-bit table
SmbiosAdd: Smbios type 16 with size 0x19 is added to 32-bit table
SmbiosAdd: Smbios type 17 with size 0x35 is added to 32-bit table
SmbiosAdd: Smbios type 19 with size 0x21 is added to 32-bit table
SmbiosAdd: Smbios type 19 with size 0x21 is added to 32-bit table
SmbiosAdd: Smbios type 32 with size 0xD is added to 32-bit table
FirmwareVendor:            "EDK II" (6 chars)
FirmwareVersionString:     "unknown" (7 chars)
FirmwareReleaseDateString: "unknown" (7 chars)
SmbiosAdd: Smbios type 0 with size 0x32 is added to 32-bit table
Loading driver D9DCC5DF-4007-435E-9098-8970935504B2
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E62B8C0
Loading driver at 0x0007E60A000 EntryPoint=0x0007E60D7F6 PlatformDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E634B98
ProtectUefiImageCommon - 0x7E62B8C0
  - 0x000000007E60A000 - 0x0000000000005C80
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7E60FA80
InstallProtocolInterface: 330D4706-F2A0-4E4F-A369-B66FA8D54385 7E60FB50
Loading driver 93B80004-9FB3-11D4-9A3A-0090273FC14D
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E62A040
Loading driver at 0x0007DD0F000 EntryPoint=0x0007DD1B310 PciBusDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E62B798
ProtectUefiImageCommon - 0x7E62A040
  - 0x000000007DD0F000 - 0x000000000000F1C0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DD1DD40
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DD1DC20
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DD1DF00
InstallProtocolInterface: 19CB87AB-2CB9-4665-8360-DDCF6054F79D 7DD1DEE0
Loading driver 83DD3B39-7CAF-4FAC-A542-E050B767E3A7
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6290C0
Loading driver at 0x0007E606000 EntryPoint=0x0007E607E1A VirtioPciDeviceDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E629A98
ProtectUefiImageCommon - 0x7E6290C0
  - 0x000000007E606000 - 0x0000000000003100
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7E608EA0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7E608F00
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7E608E80
Loading driver 0170F60C-1D40-4651-956D-F0BD9879D527
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6294C0
Loading driver at 0x0007E601000 EntryPoint=0x0007E604528 Virtio10.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E629818
ProtectUefiImageCommon - 0x7E6294C0
  - 0x000000007E601000 - 0x0000000000004BC0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7E605960
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7E6059C0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7E605940
Loading driver 11D92DFB-3CA9-4F93-BA2E-4780ED3E03B5
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6280C0
Loading driver at 0x0007DD2B000 EntryPoint=0x0007DD2D38E VirtioBlkDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E628B18
ProtectUefiImageCommon - 0x7E6280C0
  - 0x000000007DD2B000 - 0x0000000000003680
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DD2E4A0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DD2E500
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DD2E480
Loading driver FAB5D4F4-83C0-4AAF-8480-442D11DF6CEA
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E628440
Loading driver at 0x0007DD27000 EntryPoint=0x0007DD29943 VirtioScsiDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E623F18
ProtectUefiImageCommon - 0x7E628440
  - 0x000000007DD27000 - 0x0000000000003C00
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DD2AA20
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DD2AA80
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DD2AA00
Loading driver 58E26F0D-CBAC-4BBA-B70F-18221415665A
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6230C0
Loading driver at 0x0007DD23000 EntryPoint=0x0007DD24E9F VirtioRngDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E623A98
ProtectUefiImageCommon - 0x7E6230C0
  - 0x000000007DD23000 - 0x0000000000003080
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DD25EA0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DD25F00
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DD25E80
Loading driver 51CCF399-4FDF-4E55-A45B-E123F84D456A
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E622040
Loading driver at 0x0007DD1F000 EntryPoint=0x0007DD21801 ConPlatformDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E623598
ProtectUefiImageCommon - 0x7E622040
  - 0x000000007DD1F000 - 0x0000000000003FC0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DD22D20
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DD22E20
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DD22CF0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DD22CC0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DD22E20
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DD22CF0
Loading driver 408EDCEC-CF6D-477C-A5A8-B4844E3DE281
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E622340
Loading driver at 0x0007DCFF000 EntryPoint=0x0007DD042A4 ConSplitterDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E622918
ProtectUefiImageCommon - 0x7E622340
  - 0x000000007DCFF000 - 0x0000000000007680
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DD06360
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DD06440
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DD05C60
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DD062E0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DD06420
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DD05C40
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DD06260
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DD06400
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DD05C20
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DD061E0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DD063E0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DD05C00
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DD06160
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DD063C0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DD05BE0
InstallProtocolInterface: 387477C1-69C7-11D2-8E39-00A0C969723B 7DD05F90
InstallProtocolInterface: DD9E7534-7762-4698-8C14-F58517A625AA 7DD05FC0
InstallProtocolInterface: 31878C87-0B75-11D5-9A4F-0090273FC14D 7DD06030
InstallProtocolInterface: 8D59D32B-C655-4AE9-9B15-F25904992A43 7DD06088
InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 7DD05E50
InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 7DD05D30
Loading driver CCCB0C28-4B24-11D5-9A5A-0090273FC14D
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E613140
Loading driver at 0x0007DCF9000 EntryPoint=0x0007DCFC1AC GraphicsConsoleDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E613B18
ProtectUefiImageCommon - 0x7E613140
  - 0x000000007DCF9000 - 0x0000000000005FC0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DCFD660
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DCFEE00
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DCFD630
Loading driver 9E863906-A40F-4875-977F-5B93FF237FC6
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E612040
Loading driver at 0x0007DCE9000 EntryPoint=0x0007DCEEABF TerminalDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E612D18
ProtectUefiImageCommon - 0x7E612040
  - 0x000000007DCE9000 - 0x0000000000007D40
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DCF0B40
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DCF0BA0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DCF08D0
Loading driver 806040CA-DAD9-4978-A3B4-2D2AB0C8A48F
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6129C0
Loading driver at 0x0007DCE4000 EntryPoint=0x0007DCE6538 QemuKernelLoaderFsDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E612898
ProtectUefiImageCommon - 0x7E6129C0
  - 0x000000007DCE4000 - 0x0000000000004700
Select Item: 0x0
FW CFG Signature: 0x554D4551
Select Item: 0x1
FW CFG Revision: 0x3
QemuFwCfg interface (DMA) is supported.
Select Item: 0x17
Select Item: 0x8
Select Item: 0xB
Select Item: 0x14
Error: Image at 0007DCE4000 start failed: Not Found
Loading driver 6B38F7B4-AD98-40E9-9093-ACA2B5A253C4
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6129C0
Loading driver at 0x0007DCE4000 EntryPoint=0x0007DCE70C5 DiskIoDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E612598
ProtectUefiImageCommon - 0x7E6129C0
  - 0x000000007DCE4000 - 0x0000000000004900
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DCE86A0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DCE87C0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DCE8680
Loading driver 1FA1F39E-FEFF-4AAE-BD7B-38A070A3B609
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E611040
Loading driver at 0x0007DCDD000 EntryPoint=0x0007DCE1DAC PartitionDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E611E98
ProtectUefiImageCommon - 0x7E611040
  - 0x000000007DCDD000 - 0x0000000000006800
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DCE35A0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DCE36A0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DCE3580
Loading driver CD3BAFB6-50FB-4FE8-8E4E-AB74D2C1A600
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6113C0
Loading driver at 0x0007DCF6000 EntryPoint=0x0007DCF738E EnglishDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E611718
ProtectUefiImageCommon - 0x7E6113C0
  - 0x000000007DCF6000 - 0x0000000000002300
InstallProtocolInterface: 1D85CD7F-F43D-11D2-9A0C-0090273FC14D 7DCF7E60
InstallProtocolInterface: A4C751FC-23AE-4C3E-92E9-4964CF63F349 7DCF7E00
Loading driver 0167CCC4-D0F7-4F21-A3EF-9E64B7CDCE8B
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6100C0
Loading driver at 0x0007DCD8000 EntryPoint=0x0007DCDACE5 ScsiBus.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E610A98
ProtectUefiImageCommon - 0x7E6100C0
  - 0x000000007DCD8000 - 0x0000000000004100
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DCDBF00
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DCDBFA0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DCDBEE0
Loading driver 0A66E322-3740-4CCE-AD62-BD172CECCA35
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6103C0
Loading driver at 0x0007DCC4000 EntryPoint=0x0007DCCC2F9 ScsiDisk.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E610798
ProtectUefiImageCommon - 0x7E6103C0
  - 0x000000007DCC4000 - 0x0000000000009DC0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DCCDC20
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DCCDC80
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DCCDBA0
Loading driver 021722D8-522B-4079-852A-FE44C2C13F49
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E600CC0
Loading driver at 0x0007DCF2000 EntryPoint=0x0007DCF3F7A SataController.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E600898
ProtectUefiImageCommon - 0x7E600CC0
  - 0x000000007DCF2000 - 0x0000000000003380
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DCF51C0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DCF5220
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DCF5140
Loading driver 5E523CB4-D397-4986-87BD-A6DD8B22F455
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7E6003C0
Loading driver at 0x0007DCAC000 EntryPoint=0x0007DCB4A1B AtaAtapiPassThruDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7E600718
ProtectUefiImageCommon - 0x7E6003C0
  - 0x000000007DCAC000 - 0x000000000000B600
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DCB7180
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DCB71E0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DCB7100
Loading driver 19DF145A-B1D4-453F-8507-38816676D7F6
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DD0E140
Loading driver at 0x0007DCBD000 EntryPoint=0x0007DCC17B8 AtaBusDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DD0ED98
ProtectUefiImageCommon - 0x7DD0E140
  - 0x000000007DCBD000 - 0x0000000000006A00
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DCC3580
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DCC3670
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DCC3650
Loading driver 5BE3BDF4-53CF-46A3-A6A9-73C34A6E5EE3
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DD0E5C0
Loading driver at 0x0007DCA2000 EntryPoint=0x0007DCA9544 NvmExpressDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DD0DF98
ProtectUefiImageCommon - 0x7DD0E5C0
  - 0x000000007DCA2000 - 0x0000000000009CC0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DCABB00
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DCABB60
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DCABA30
InstallProtocolInterface: 5C198761-16A8-4E69-972C-89D67954F81D 7DCAB9A0
Loading driver 864E1CA8-85EB-4D63-9DCC-6E0FC90FFD55
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DD0D840
Loading driver at 0x0007DCD4000 EntryPoint=0x0007DCD5F24 SioBusDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DD0DD98
ProtectUefiImageCommon - 0x7DD0D840
  - 0x000000007DCD4000 - 0x00000000000032C0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DCD7060
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DCD7180
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DCD7040
Loading driver E2775B47-D453-4EE3-ADA7-391A1B05AC17
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DD0A040
Loading driver at 0x0007DC94000 EntryPoint=0x0007DC98862 PciSioSerialDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DD0AD18
ProtectUefiImageCommon - 0x7DD0A040
  - 0x000000007DC94000 - 0x0000000000006280
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC9A0C0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DC9A120
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC99F30
Loading driver C4D1F932-821F-4744-BF06-6D30F7730F8D
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DD0A9C0
Loading driver at 0x0007DC9C000 EntryPoint=0x0007DC9FFA3 Ps2KeyboardDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DD0A898
ProtectUefiImageCommon - 0x7DD0A9C0
  - 0x000000007DC9C000 - 0x0000000000005F00
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DCA1D20
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DCA1D80
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DCA1CB0
Loading driver B8E62775-BB0A-43F0-A843-5BE8B14F8CCD
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DCF1040
Loading driver at 0x0007DCD1000 EntryPoint=0x0007DCD2772 BootGraphicsResourceTableDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DD0A598
ProtectUefiImageCommon - 0x7DCF1040
  - 0x000000007DCD1000 - 0x0000000000002A80
InstallProtocolInterface: CDEA2BD3-FC25-4C1C-B97C-B31186064990 7DCD3830
InstallProtocolInterface: 4B5DC1DF-1EAA-48B2-A7E9-EAC489A00B5C 7DCD38B0
Loading driver 961578FE-B6B7-44C3-AF35-6BC705CD2B1F
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DCF1540
Loading driver at 0x0007DC7E000 EntryPoint=0x0007DC86012 Fat.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DCF1898
ProtectUefiImageCommon - 0x7DCF1540
  - 0x000000007DC7E000 - 0x000000000000A0C0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC87F20
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DC87F80
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC87D50
Loading driver 905F13B0-8F91-4B0A-BD76-E1E78F9422E4
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DD09CC0
Loading driver at 0x0007DC77000 EntryPoint=0x0007DC7BC96 UdfDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DD09118
ProtectUefiImageCommon - 0x7DD09CC0
  - 0x000000007DC77000 - 0x0000000000006480
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC7D1E0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DC7D340
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC7D1C0
Loading driver 7BD9DDF7-8B83-488E-AEC9-24C78610289C
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DD09340
Loading driver at 0x0007DC6D000 EntryPoint=0x0007DC743DD VirtioFsDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DD09698
ProtectUefiImageCommon - 0x7DD09340
  - 0x000000007DC6D000 - 0x0000000000009640
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC76560
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC76540
Loading driver A2F436EA-A127-4EF8-957C-8048606FF670
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DD08CC0
Loading driver at 0x0007DC65000 EntryPoint=0x0007DC6A330 SnpDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DD08B98
ProtectUefiImageCommon - 0x7DD08CC0
  - 0x000000007DC65000 - 0x0000000000007400
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC6C200
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DC6C260
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC6C1D0
Loading driver E4F61863-FE2C-4B56-A8F4-08519BC439DF
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DD083C0
Loading driver at 0x0007DC5E000 EntryPoint=0x0007DC6269E VlanConfigDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DD08198
ProtectUefiImageCommon - 0x7DD083C0
  - 0x000000007DC5E000 - 0x0000000000006CC0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC64380
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DC64B40
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC64360
Loading driver 025BBFC7-E6A9-4B8B-82AD-6815A1AEAF4A
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DD070C0
Loading driver at 0x0007DC53000 EntryPoint=0x0007DC5A949 MnpDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DD07918
ProtectUefiImageCommon - 0x7DD070C0
  - 0x000000007DC53000 - 0x000000000000A640
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC5D440
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DC5D4C0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC5D470
Loading driver 529D3F93-E8E9-4E73-B1E1-BDF6A9D50113
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DD073C0
Loading driver at 0x0007DC4D000 EntryPoint=0x0007DC513D9 ArpDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DD07718
ProtectUefiImageCommon - 0x7DD073C0
  - 0x000000007DC4D000 - 0x0000000000005FC0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC52DC0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DC52E80
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC52D20
Loading driver 94734718-0BBC-47FB-96A5-EE7A5AE6A2AD
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DCD00C0
Loading driver at 0x0007DC42000 EntryPoint=0x0007DC4998F Dhcp4Dxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DCD0898
ProtectUefiImageCommon - 0x7DCD00C0
  - 0x000000007DC42000 - 0x000000000000A700
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC4C440
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DC4C540
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC4C4A0
Loading driver 9FB1A1F3-3B71-4324-B39A-745CBB015FFF
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DCD0540
Loading driver at 0x0007DC18000 EntryPoint=0x0007DC2814E Ip4Dxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DCCFE18
ProtectUefiImageCommon - 0x7DCD0540
  - 0x000000007DC18000 - 0x0000000000014E00
Select Item: 0x0
FW CFG Signature: 0x554D4551
Select Item: 0x1
FW CFG Revision: 0x3
QemuFwCfg interface (DMA) is supported.
Select Item: 0x19
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC2C9A0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DC2C900
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC2C8B0
Loading driver 6D6963AB-906D-4A65-A7CA-BD40E5D6AF2B
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DCCF140
Loading driver at 0x0007DC39000 EntryPoint=0x0007DC3F876 Udp4Dxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DCCF698
ProtectUefiImageCommon - 0x7DCCF140
  - 0x000000007DC39000 - 0x0000000000008AC0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC41880
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DC41960
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC418F0
Loading driver DC3641B8-2FA8-4ED3-BC1F-F9962A03454B
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DCCEB40
Loading driver at 0x0007DC2F000 EntryPoint=0x0007DC361FC Mtftp4Dxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DCCEA98
ProtectUefiImageCommon - 0x7DCCEB40
  - 0x000000007DC2F000 - 0x00000000000093C0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC381C0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DC38240
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC381F0
Loading driver 1A7E4468-2F55-4A56-903C-01265EB7622B
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DCCE240
Loading driver at 0x0007D9ED000 EntryPoint=0x0007D9F7874 TcpDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DCCE718
ProtectUefiImageCommon - 0x7DCCE240
  - 0x000000007D9ED000 - 0x0000000000012500
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7D9FF0E0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7D9FEFA0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7D9FEF60
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7D9FF0A0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7D9FEFA0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7D9FEF60
Loading driver B95E9FDA-26DE-48D2-8807-1F9107AC5E3A
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DCBC9C0
Loading driver at 0x0007D9DB000 EntryPoint=0x0007D9E6C28 UefiPxeBcDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DCBC898
ProtectUefiImageCommon - 0x7DCBC9C0
  - 0x000000007D9DB000 - 0x0000000000011CC0
Select Item: 0x0
FW CFG Signature: 0x554D4551
Select Item: 0x1
FW CFG Revision: 0x3
QemuFwCfg interface (DMA) is supported.
Select Item: 0x19
Select Item: 0x19
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7D9ECA00
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7D9EC920
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7D9EC9D0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7D9EC9A0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7D9EC920
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7D9EC9D0
Loading driver 86CDDF93-4872-4597-8AF9-A35AE4D3725F
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DCBBCC0
Loading driver at 0x0007D99D000 EntryPoint=0x0007D9AF400 IScsiDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DCBB118
ProtectUefiImageCommon - 0x7DCBBCC0
  - 0x000000007D99D000 - 0x000000000001EC40
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7D9BB920
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7D9B9FC0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7D9B9F30
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7D9BB8E0
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7D9B9FC0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7D9B9F30
InstallProtocolInterface: 59324945-EC44-4C0D-B1CD-9DB139DF070C 7D9B9EC0
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7D9BB860
InstallProtocolInterface: 330D4706-F2A0-4E4F-A369-B66FA8D54385 7DCBB8A8
InstallProtocolInterface: 7671D9D0-53DB-4173-AA69-2327F21F0BC7 7D9BB8C0
Loading driver A92CDB4B-82F1-4E0B-A516-8A655D371524
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DCBA2C0
Loading driver at 0x0007DC0C000 EntryPoint=0x0007DC0FD00 VirtioNetDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DCBC598
ProtectUefiImageCommon - 0x7DCBA2C0
  - 0x000000007DC0C000 - 0x0000000000005500
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC11380
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DC113E0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC11300
Loading driver 2FB92EFA-2EE0-4BAE-9EB6-7464125E1EF7
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DC9B6C0
Loading driver at 0x0007D9D3000 EntryPoint=0x0007D9D8435 UhciDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DC9B018
ProtectUefiImageCommon - 0x7DC9B6C0
  - 0x000000007D9D3000 - 0x0000000000007040
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7D9D9E40
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7D9D9EC0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7D9D9EA0
Loading driver BDFE430E-8F2A-4DB0-9991-6F856594777E
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DC9B2C0
Loading driver at 0x0007D9CA000 EntryPoint=0x0007D9D05C3 EhciDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DC9B598
ProtectUefiImageCommon - 0x7DC9B2C0
  - 0x000000007D9CA000 - 0x0000000000008A00
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7D9D2860
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7D9D28C0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7D9D27F0
Loading driver B7F50E91-A759-412C-ADE4-DCD03E7F7C28
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DCB92C0
Loading driver at 0x0007D990000 EntryPoint=0x0007D999C83 XhciDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DCB9A18
ProtectUefiImageCommon - 0x7DCB92C0
  - 0x000000007D990000 - 0x000000000000CF80
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7D99CD00
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7D99CE00
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7D99CDE0
Loading driver 240612B7-A063-11D4-9A3A-0090273FC14D
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DCB9540
Loading driver at 0x0007D9C0000 EntryPoint=0x0007D9C69D5 UsbBusDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DCB8D18
ProtectUefiImageCommon - 0x7DCB9540
  - 0x000000007D9C0000 - 0x0000000000009600
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7D9C9360
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7D9C92C0
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7D9C9260
Loading driver 2D2E62CF-9ECF-43B7-8219-94E7FC713DFE
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DCB82C0
Loading driver at 0x0007D989000 EntryPoint=0x0007D98D32B UsbKbDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DCB8C98
ProtectUefiImageCommon - 0x7DCB82C0
  - 0x000000007D989000 - 0x00000000000064C0
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7D98EB60
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7D98F320
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7D98F300
Loading driver 9FB4B4A7-42C0-4BCD-8540-9BCC6711F83E
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DC8B040
Loading driver at 0x0007DC06000 EntryPoint=0x0007DC09D53 UsbMassStorageDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DC8BB98
ProtectUefiImageCommon - 0x7DC8B040
  - 0x000000007DC06000 - 0x0000000000005A40
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC0B820
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7DC0B900
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC0B7F0
Loading driver E3752948-B9A1-4770-90C4-DF41C38986BE
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DC8BD40
Loading driver at 0x0007D97B000 EntryPoint=0x0007D97F374 QemuVideoDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DC8BA98
ProtectUefiImageCommon - 0x7DC8BD40
  - 0x000000007D97B000 - 0x0000000000006B00
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7D981920
InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 7D981980
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7D981710
Loading driver D6099B94-CD97-4CC5-8714-7F6312701A8A
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7DC8A040
Loading driver at 0x0007DC00000 EntryPoint=0x0007DC04197 VirtioGpuDxe.efi
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DC8B918
ProtectUefiImageCommon - 0x7DC8A040
  - 0x000000007DC00000 - 0x0000000000005E40
InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 7DC05C20
InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 7DC05BF0
Driver 6490F1C5-EBCC-4665-8892-0075B9BB49B7 was discovered but not loaded!!
[Bds] Entry...
[BdsDxe] Locate Variable Policy protocol - Success
Variable Driver Auto Update PlatformLang, PlatformLang:en, Lang:eng Status: Success
PlatformBootManagerBeforeConsole
Registered NotifyDevPath Event
PCI Bus First Scanning
PciBus: Discovered PCI @ [00|00|00]

PciBus: Discovered PCI @ [00|01|00]
   BAR[0]: Type = PMem32; Alignment = 0xFFFFFF;	Length = 0x1000000;	Offset = 0x10
   BAR[2]: Type =  Mem32; Alignment = 0xFFF;	Length = 0x1000;	Offset = 0x18

PciBus: Discovered PCI @ [00|02|00]
   BAR[1]: Type =  Mem32; Alignment = 0xFFF;	Length = 0x1000;	Offset = 0x14
   BAR[4]: Type = PMem64; Alignment = 0x3FFF;	Length = 0x4000;	Offset = 0x20

PciBus: Discovered PCI @ [00|03|00]
   BAR[1]: Type =  Mem32; Alignment = 0xFFF;	Length = 0x1000;	Offset = 0x14
   BAR[4]: Type = PMem64; Alignment = 0x3FFF;	Length = 0x4000;	Offset = 0x20

PciBus: Discovered PCI @ [00|1F|00]

PciBus: Discovered PCI @ [00|1F|02]
   BAR[4]: Type =   Io32; Alignment = 0x1F;	Length = 0x20;	Offset = 0x20
   BAR[5]: Type =  Mem32; Alignment = 0xFFF;	Length = 0x1000;	Offset = 0x24

PciBus: Discovered PCI @ [00|1F|03]
   BAR[4]: Type =   Io32; Alignment = 0x3F;	Length = 0x40;	Offset = 0x20

PCI Bus Second Scanning
PciBus: Discovered PCI @ [00|00|00]

PciBus: Discovered PCI @ [00|01|00]
   BAR[0]: Type = PMem32; Alignment = 0xFFFFFF;	Length = 0x1000000;	Offset = 0x10
   BAR[2]: Type =  Mem32; Alignment = 0xFFF;	Length = 0x1000;	Offset = 0x18

PciBus: Discovered PCI @ [00|02|00]
   BAR[1]: Type =  Mem32; Alignment = 0xFFF;	Length = 0x1000;	Offset = 0x14
   BAR[4]: Type = PMem64; Alignment = 0x3FFF;	Length = 0x4000;	Offset = 0x20

PciBus: Discovered PCI @ [00|03|00]
   BAR[1]: Type =  Mem32; Alignment = 0xFFF;	Length = 0x1000;	Offset = 0x14
   BAR[4]: Type = PMem64; Alignment = 0x3FFF;	Length = 0x4000;	Offset = 0x20

PciBus: Discovered PCI @ [00|1F|00]

PciBus: Discovered PCI @ [00|1F|02]
   BAR[4]: Type =   Io32; Alignment = 0x1F;	Length = 0x20;	Offset = 0x20
   BAR[5]: Type =  Mem32; Alignment = 0xFFF;	Length = 0x1000;	Offset = 0x24

PciBus: Discovered PCI @ [00|1F|03]
   BAR[4]: Type =   Io32; Alignment = 0x3F;	Length = 0x40;	Offset = 0x20

PciBus: Discovered PCI @ [00|00|00]

PciBus: Discovered PCI @ [00|01|00]
   BAR[0]: Type = PMem32; Alignment = 0xFFFFFF;	Length = 0x1000000;	Offset = 0x10
   BAR[2]: Type =  Mem32; Alignment = 0xFFF;	Length = 0x1000;	Offset = 0x18

PciBus: Discovered PCI @ [00|02|00]
   BAR[1]: Type =  Mem32; Alignment = 0xFFF;	Length = 0x1000;	Offset = 0x14
   BAR[4]: Type = PMem64; Alignment = 0x3FFF;	Length = 0x4000;	Offset = 0x20

PciBus: Discovered PCI @ [00|03|00]
   BAR[1]: Type =  Mem32; Alignment = 0xFFF;	Length = 0x1000;	Offset = 0x14
   BAR[4]: Type = PMem64; Alignment = 0x3FFF;	Length = 0x4000;	Offset = 0x20

PciBus: Discovered PCI @ [00|1F|00]

PciBus: Discovered PCI @ [00|1F|02]
   BAR[4]: Type =   Io32; Alignment = 0x1F;	Length = 0x20;	Offset = 0x20
   BAR[5]: Type =  Mem32; Alignment = 0xFFF;	Length = 0x1000;	Offset = 0x24

PciBus: Discovered PCI @ [00|1F|03]
   BAR[4]: Type =   Io32; Alignment = 0x3F;	Length = 0x40;	Offset = 0x20

PciHostBridge: SubmitResources for PciRoot(0x0)
 I/O: Granularity/SpecificFlag = 0 / 01
      Length/Alignment = 0x1000 / 0xFFF
 Mem: Granularity/SpecificFlag = 32 / 00
      Length/Alignment = 0x1100000 / 0xFFFFFF
 Mem: Granularity/SpecificFlag = 64 / 00
      Length/Alignment = 0x100000 / 0xFFFFF
PciBus: HostBridge->SubmitResources() - Success
PciHostBridge: NotifyPhase (AllocateResources)
 RootBridge: PciRoot(0x0)
  Mem: Base/Length/Alignment = C0000000/1100000/FFFFFF - Success
  Mem64: Base/Length/Alignment = E000000000/100000/FFFFF - Success
  I/O: Base/Length/Alignment = 6000/1000/FFF - Success
PciBus: HostBridge->NotifyPhase(AllocateResources) - Success
Process Option ROM: BAR Base/Length = 0/0
PciBus: Resource Map for Root Bridge PciRoot(0x0)
Type =   Io16; Base = 0x6000;	Length = 0x1000;	Alignment = 0xFFF
   Base = 0x6000;	Length = 0x40;	Alignment = 0x3F;	Owner = PCI [00|1F|03:20]
   Base = 0x6040;	Length = 0x20;	Alignment = 0x1F;	Owner = PCI [00|1F|02:20]
Type =  Mem32; Base = 0xC0000000;	Length = 0x1100000;	Alignment = 0xFFFFFF
   Base = 0xC0000000;	Length = 0x1000000;	Alignment = 0xFFFFFF;	Owner = PCI [00|01|00:10]; Type = PMem32
   Base = 0xC1000000;	Length = 0x1000;	Alignment = 0xFFF;	Owner = PCI [00|1F|02:24]
   Base = 0xC1001000;	Length = 0x1000;	Alignment = 0xFFF;	Owner = PCI [00|03|00:14]
   Base = 0xC1002000;	Length = 0x1000;	Alignment = 0xFFF;	Owner = PCI [00|02|00:14]
   Base = 0xC1003000;	Length = 0x1000;	Alignment = 0xFFF;	Owner = PCI [00|01|00:18]
Type =  Mem64; Base = 0xE000000000;	Length = 0x100000;	Alignment = 0xFFFFF
   Base = 0xE000000000;	Length = 0x4000;	Alignment = 0x3FFF;	Owner = PCI [00|02|00:20]; Type = PMem64
   Base = 0xE000004000;	Length = 0x4000;	Alignment = 0x3FFF;	Owner = PCI [00|03|00:20]; Type = PMem64

InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7DC8A518
InstallProtocolInterface: 4CF5B200-68B8-4CA5-9EEC-B23E3F50029A 7DC896A8
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7DC89B98
InstallProtocolInterface: 4CF5B200-68B8-4CA5-9EEC-B23E3F50029A 7DC2E028
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7DC89A98
InstallProtocolInterface: 4CF5B200-68B8-4CA5-9EEC-B23E3F50029A 7DC2E428
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7DC8A898
InstallProtocolInterface: 4CF5B200-68B8-4CA5-9EEC-B23E3F50029A 7DC2E828
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7DC89C98
InstallProtocolInterface: 4CF5B200-68B8-4CA5-9EEC-B23E3F50029A 7DC2D028
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7DC89B18
InstallProtocolInterface: 4CF5B200-68B8-4CA5-9EEC-B23E3F50029A 7DC2D428
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7DC89C18
InstallProtocolInterface: 4CF5B200-68B8-4CA5-9EEC-B23E3F50029A 7DC2D828
InstallProtocolInterface: 30CFE3E7-3DE1-4586-BE20-DEABA1B3B793 0
OnRootBridgesConnected: root bridges have been connected, installing ACPI tables
Select Item: 0x19
Select Item: 0x2D
Select Item: 0x19
Select Item: 0x2C
Select Item: 0x19
Select Item: 0x22
Select Item: 0x19
Select Item: 0x23
InstallProtocolInterface: 928939B2-4235-462F-9580-F6A2B2C21A4F 0
InstallQemuFwCfgTables: installed 8 tables
PcRtc: Write 0x20 to CMOS location 0x32
[Variable]END_OF_DXE is signaled
Initialize variable error flag (FF)
AcpiS3ContextSave!
AcpiS3ContextSave TotalPageTableSize - 0xA pages
AcpiS3Context: AcpiFacsTable is 0x7F3DD000
AcpiS3Context: IdtrProfile is 0x7F348000
AcpiS3Context: S3NvsPageTableAddress is 0x7F33D000
AcpiS3Context: S3DebugBufferAddress is 0x7F334000
AcpiS3Context: BootScriptStackBase is 0x7F335000
AcpiS3Context: BootScriptStackSize is 0x    8000
Found PCI display device
QemuVideo: QEMU Standard VGA detected
QemuVideo: Using mmio bar @ 0xC1003000
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7DC16998
QemuVideoBochsModeSetup: AvailableFbSize=0x1000000
QemuVideoBochsEdid: blob found (extensions: 1)
QemuVideoBochsEdid: default resolution: 1024x768
Adding Bochs Internal Mode 0: 1024x768, 32-bit
Adding Bochs Internal Mode 1: 640x480, 32-bit
Adding Bochs Internal Mode 2: 800x480, 32-bit
Adding Bochs Internal Mode 3: 800x600, 32-bit
Adding Bochs Internal Mode 4: 832x624, 32-bit
Adding Bochs Internal Mode 5: 960x640, 32-bit
Adding Bochs Internal Mode 6: 1024x600, 32-bit
Adding Bochs Internal Mode 7: 1152x864, 32-bit
Adding Bochs Internal Mode 8: 1152x870, 32-bit
Adding Bochs Internal Mode 9: 1280x720, 32-bit
Adding Bochs Internal Mode 10: 1280x760, 32-bit
Adding Bochs Internal Mode 11: 1280x768, 32-bit
Adding Bochs Internal Mode 12: 1280x800, 32-bit
Adding Bochs Internal Mode 13: 1280x960, 32-bit
Adding Bochs Internal Mode 14: 1280x1024, 32-bit
Adding Bochs Internal Mode 15: 1360x768, 32-bit
Adding Bochs Internal Mode 16: 1366x768, 32-bit
Adding Bochs Internal Mode 17: 1400x1050, 32-bit
Adding Bochs Internal Mode 18: 1440x900, 32-bit
Adding Bochs Internal Mode 19: 1600x900, 32-bit
Adding Bochs Internal Mode 20: 1600x1200, 32-bit
Adding Bochs Internal Mode 21: 1680x1050, 32-bit
Adding Bochs Internal Mode 22: 1920x1080, 32-bit
Adding Bochs Internal Mode 23: 1920x1200, 32-bit
Adding Bochs Internal Mode 24: 1920x1440, 32-bit
Adding Bochs Internal Mode 25: 2000x2000, 32-bit
Adding Bochs Internal Mode 26: 2048x1536, 32-bit
Adding Bochs Internal Mode 27: 2048x2048, 32-bit
Adding Bochs Internal Mode 28: 2560x1440, 32-bit
Adding Bochs Internal Mode 29: 2560x1600, 32-bit
Skipping Bochs Mode 2560x2048, 32-bit (not enough vram)
Skipping Bochs Mode 2800x2100, 32-bit (not enough vram)
Skipping Bochs Mode 3200x2400, 32-bit (not enough vram)
Skipping Bochs Mode 3840x2160, 32-bit (not enough vram)
Skipping Bochs Mode 4096x2160, 32-bit (not enough vram)
Skipping Bochs Mode 7680x4320, 32-bit (not enough vram)
Skipping Bochs Mode 8192x4320, 32-bit (not enough vram)
InitializeBochsGraphicsMode: 1024x768 @ 32
PixelBlueGreenRedReserved8BitPerColor
FrameBufferBase: 0xC0000000, FrameBufferSize: 0x300000
0: shl:0 shr:0 mask:FF0000
1: shl:0 shr:0 mask:FF00
2: shl:0 shr:0 mask:FF
Bytes per pixel: 4
0: shl:0 shr:0 mask:FF0000
1: shl:0 shr:0 mask:FF00
2: shl:0 shr:0 mask:FF
Bytes per pixel: 4
InstallProtocolInterface: 9042A9DE-23DC-4A38-96FB-7ADED080516A 7DC139B8
InstallVbeShim: VBE shim installed
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
Found LPC Bridge device
BdsPlatform.c+709: COM1 DevPath: PciRoot(0x0)/Pci(0x1F,0x0)/Serial(0x0)/Uart(115200,8,N,1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)
BdsPlatform.c+747: COM2 DevPath: PciRoot(0x0)/Pci(0x1F,0x0)/Serial(0x1)/Uart(115200,8,N,1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)
InstallProtocolInterface: 60FF8964-E906-41D0-AFED-F241E974E08E 0
InstallProtocolInterface: FA20568B-548B-4B2B-81EF-1BA08D4A3CEC 0
Found PCI display device
Found LPC Bridge device
BdsPlatform.c+709: COM1 DevPath: PciRoot(0x0)/Pci(0x1F,0x0)/Serial(0x0)/Uart(115200,8,N,1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)
BdsPlatform.c+747: COM2 DevPath: PciRoot(0x0)/Pci(0x1F,0x0)/Serial(0x1)/Uart(115200,8,N,1)/VenMsg(E0C14753-F9BE-11D2-9A0C-0090273FC14D)
Select Item: 0xE
[Bds]RegisterKeyNotify: 000C/0000 80000000/00 Success
[Bds]RegisterKeyNotify: 0017/0000 80000000/00 Success
[Bds]RegisterKeyNotify: 0000/000D 80000000/00 Success
PixelBlueGreenRedReserved8BitPerColor
GraphicsConsole video resolution 1024 x 768
Graphics - Mode 0, Column = 80, Row = 25
Graphics - Mode 1, Column = 0, Row = 0
Graphics - Mode 2, Column = 100, Row = 31
Graphics - Mode 3, Column = 128, Row = 40
Graphics Console Started, Mode: 3
InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 7DC15D30
InstallProtocolInterface: D3B36F2C-D551-11D4-9A46-0090273FC14D 0
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
PixelBlueGreenRedReserved8BitPerColor
InstallProtocolInterface: 9042A9DE-23DC-4A38-96FB-7ADED080516A 7DD05EE0
InstallProtocolInterface: 864E1CA8-85EB-4D63-9DCC-6E0FC90FFD55 7DC12D18
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7DC14698
InstallProtocolInterface: 215FDD18-BD50-4FEB-890B-58CA0B4739E9 7DC12EB8
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7DC12B98
InstallProtocolInterface: 215FDD18-BD50-4FEB-890B-58CA0B4739E9 7DC12CB8
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7DC12898
InstallProtocolInterface: 215FDD18-BD50-4FEB-890B-58CA0B4739E9 7DC12838
ClockRate = 1843200
Divisor   = 1
BaudRate/Actual (115200/115200) = 100%
ClockRate = 1843200
Divisor   = 1
BaudRate/Actual (115200/115200) = 100%
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7D988A98
InstallProtocolInterface: BB25CF6F-F1D4-11D2-9A0C-0090273FC1FD 7DC149A8
PciSioSerial: Create SIO child serial device - Success
ClockRate = 1843200
Divisor   = 1
BaudRate/Actual (115200/115200) = 100%
Terminal - Mode 0, Column = 80, Row = 25
Terminal - Mode 1, Column = 80, Row = 50
Terminal - Mode 2, Column = 100, Row = 31
^[[2J^[[01;01H^[[=3h^[[2J^[[01;01HClockRate = 1843200
Divisor   = 1
BaudRate/Actual (115200/115200) = 100%
InstallProtocolInterface: 387477C1-69C7-11D2-8E39-00A0C969723B 7D987440
InstallProtocolInterface: DD9E7534-7762-4698-8C14-F58517A625AA 7D987528
InstallProtocolInterface: 387477C2-69C7-11D2-8E39-00A0C969723B 7D987458
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7D987318
InstallProtocolInterface: D3B36F2B-D551-11D4-9A46-0090273FC14D 0
InstallProtocolInterface: D3B36F2C-D551-11D4-9A46-0090273FC14D 0
InstallProtocolInterface: D3B36F2D-D551-11D4-9A46-0090273FC14D 0
^[[2J^[[01;01H^[[=3h^[[2J^[[01;01H^[[2J^[[01;01H^[[=3h^[[2J^[[01;01HClockRate = 1843200
Divisor   = 1
BaudRate/Actual (115200/115200) = 100%
PciSioSerial: Create SIO child serial device - Device Error
InstallProtocolInterface: 387477C1-69C7-11D2-8E39-00A0C969723B 7D96A028
InstallProtocolInterface: DD9E7534-7762-4698-8C14-F58517A625AA 7D96A040
InstallProtocolInterface: D3B36F2B-D551-11D4-9A46-0090273FC14D 0
ClockRate = 1843200
Divisor   = 1
BaudRate/Actual (115200/115200) = 100%
PciSioSerial: Create SIO child serial device - Device Error
ClockRate = 1843200
Divisor   = 1
BaudRate/Actual (115200/115200) = 100%
PciSioSerial: Create SIO child serial device - Device Error
PlatformBootManagerAfterConsole
PlatformBdsPolicyBehavior: not restoring NvVars from disk since flash variables appear to be supported.
Boot Mode:0
Select Item: 0x19
PlatformBdsConnectSequence
Select Item: 0x19
EfiBootManagerConnectAll
InstallProtocolInterface: FA920010-6785-4941-B6EC-498C579F160A 7D9824A0
InstallProtocolInterface: A19832B9-AC25-11D3-9A2D-0090273FC14D 7D968028
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7D982698
InstallProtocolInterface: 9E23D768-D2F3-4366-9FC3-3A7ABA864374 7D968A30
InstallProtocolInterface: F36FF770-A7E1-42CF-9ED2-56F0F271F44C 7D969E40
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7D85CE98
InstallProtocolInterface: 330D4706-F2A0-4E4F-A369-B66FA8D54385 7D85CB20
InstallProtocolInterface: E4F61863-FE2C-4B56-A8F4-08519BC439DF 7D85CB18
InstallProtocolInterface: 7AB33A91-ACE5-4326-B572-E7EE33D39F16 7D85C540
InstallProtocolInterface: F44C00EE-1F2C-4A00-AA09-1C9F3E0800A3 7D85C120
InstallProtocolInterface: 7AB33A91-ACE5-4326-B572-E7EE33D39F16 7D839C40
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7D838898
InstallProtocolInterface: 330D4706-F2A0-4E4F-A369-B66FA8D54385 7D8398B8
InstallProtocolInterface: C51711E7-B4BF-404A-BFB8-0A048EF1FFE4 7D8390A0
InstallProtocolInterface: 5B446ED1-E30B-4FAA-871A-3654ECA36080 7D839600
InstallProtocolInterface: 41D94CD2-35B6-455A-8258-D4E51334AADD 7D834C20
InstallProtocolInterface: 83F01464-99BD-45E5-B383-AF6305D8E9E6 7D834020
InstallProtocolInterface: 41D94CD2-35B6-455A-8258-D4E51334AADD 7D831620
InstallProtocolInterface: 3AD9DF29-4501-478D-B1F8-7F7FE70E50F3 7D8314B8
InstallProtocolInterface: 9D9A39D8-BD42-4A73-A4D5-8EE94BE11380 7D831B20
InstallProtocolInterface: 41D94CD2-35B6-455A-8258-D4E51334AADD 7D82B520
InstallProtocolInterface: 3AD9DF29-4501-478D-B1F8-7F7FE70E50F3 7D82BCB8
InstallProtocolInterface: 2FE800BE-8F01-4AA6-946B-D71388E1833F 7D82C220
InstallProtocolInterface: 41D94CD2-35B6-455A-8258-D4E51334AADD 7D82AD20
InstallProtocolInterface: 00720665-67EB-4A99-BAF7-D3C33A1C7CC9 7D82AFC0
InstallProtocolInterface: B95E9FDA-26DE-48D2-8807-1F9107AC5E3A 7D81C030
InstallProtocolInterface: 8A219718-4EF5-4761-91C8-C0F04BDA9E56 7D827BA0
InstallProtocolInterface: 41D94CD2-35B6-455A-8258-D4E51334AADD 7D81B020
InstallProtocolInterface: 3AD9DF29-4501-478D-B1F8-7F7FE70E50F3 7D827538
InstallProtocolInterface: 78247C57-63DB-4708-99C2-A8B4A9A61F6B 7D8277B0
InstallProtocolInterface: 41D94CD2-35B6-455A-8258-D4E51334AADD 7D81B3A0
InstallProtocolInterface: 3AD9DF29-4501-478D-B1F8-7F7FE70E50F3 7D81B238
InstallProtocolInterface: 41D94CD2-35B6-455A-8258-D4E51334AADD 7D81A120
InstallProtocolInterface: 3AD9DF29-4501-478D-B1F8-7F7FE70E50F3 7D81AC38
InstallProtocolInterface: F4B427BB-BA21-4F16-BC4E-43E416AB619C 7D81A430
InstallProtocolInterface: 41D94CD2-35B6-455A-8258-D4E51334AADD 7D819B20
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7D819A18
InstallProtocolInterface: 56EC3091-954C-11D2-8E3F-00A0C969723B 7D819DA8
InstallProtocolInterface: 03C4E603-AC28-11D3-9A2D-0090273FC14D 7D81C120
InstallProtocolInterface: A19832B9-AC25-11D3-9A2D-0090273FC14D 7D968028
InstallProtocolInterface: 65530BC7-A359-410F-B010-5AADC7EC2B62 7D818138
InstallProtocolInterface: 41D94CD2-35B6-455A-8258-D4E51334AADD 7D818AA0
InstallProtocolInterface: FA3CDE4C-87C2-427D-AEDE-7DD096C88C58 7D8194B0
InstallProtocolInterface: FA920010-6785-4941-B6EC-498C579F160A 7D817BA0
InstallProtocolInterface: 143B7632-B81B-4CB7-ABD3-B625A5B9BFFE 7D8160A0
InstallProtocolInterface: 0167CCC4-D0F7-4F21-A3EF-9E64B7CDCE8B 7D817B20
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7D968818
InstallProtocolInterface: 932F47E6-2362-4002-803E-3CD54B138F85 7D816D28
InstallProtocolInterface: 964E5B21-6459-11D2-8E39-00A0C969723B 7D816538
InstallProtocolInterface: A77B2472-E282-4E9F-A245-C2C0E27BBCC1 7D816568
InstallProtocolInterface: D432A67F-14DC-484B-B3BB-3F0291849327 7D816660
InstallProtocolInterface: CE345171-BA0B-11D2-8E4F-00A0C969723B 7D812BA0
InstallProtocolInterface: 151C8EAE-7F2C-472C-9E54-9828194F6A88 7D812BB8
 BlockSize : 512 
 LastBlock : 3BFFFFF 
 Valid efi partition table header
 Valid efi partition table header
 Valid primary and Valid backup partition table
 Partition entries read block success
 Number of partition entries: 128
 start check partition entries
 End check partition entries
 Index : 0
 Start LBA : 800
 End LBA : 1007FF
 Partition size: 100000
 Start : 100000 End : 200FFE00
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7D809118
InstallProtocolInterface: 964E5B21-6459-11D2-8E39-00A0C969723B 7D802D30
InstallProtocolInterface: A77B2472-E282-4E9F-A245-C2C0E27BBCC1 7D802D60
InstallProtocolInterface: 8CF2F62C-BC9B-4821-808D-EC9EC421A1A0 7D802DE8
InstallProtocolInterface: C12A7328-F81F-11D2-BA4B-00A0C93EC93B 0
 Index : 1
 Start LBA : 100800
 End LBA : 3BFF7FF
 Partition size: 3AFF000
 Start : 20100000 End : 77FEFFE00
InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7D802A18
InstallProtocolInterface: 964E5B21-6459-11D2-8E39-00A0C969723B 7D802330
InstallProtocolInterface: A77B2472-E282-4E9F-A245-C2C0E27BBCC1 7D802360
InstallProtocolInterface: 8CF2F62C-BC9B-4821-808D-EC9EC421A1A0 7D8023E8
InstallProtocolInterface: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 0
Prepare to Free Pool
InstallProtocolInterface: CE345171-BA0B-11D2-8E4F-00A0C969723B 7D816320
InstallProtocolInterface: 151C8EAE-7F2C-472C-9E54-9828194F6A88 7D816338
 BlockSize : 512 
 LastBlock : FFFFF 
InstallProtocolInterface: 964E5B22-6459-11D2-8E39-00A0C969723B 7D806030
Installed Fat filesystem on 7D809198
InstallProtocolInterface: CE345171-BA0B-11D2-8E4F-00A0C969723B 7D807A20
InstallProtocolInterface: 151C8EAE-7F2C-472C-9E54-9828194F6A88 7D807A38
 BlockSize : 512 
 LastBlock : 3AFEFFF 
ClockRate = 1843200
Divisor   = 1
BaudRate/Actual (115200/115200) = 100%
PciSioSerial: Create SIO child serial device - Device Error
SataControllerStart START
InstallProtocolInterface: A1E37052-80D9-4E65-A317-3E9A55C43EC9 7D807220
SataControllerStart END status = Success
==AtaAtapiPassThru Start== Controller = 7DC17798
InstallProtocolInterface: 1D3DE7F0-0807-424F-AA69-11A54E19A46F 7D805040
InstallProtocolInterface: 143B7632-B81B-4CB7-ABD3-B625A5B9BFFE 7D805090
InstallProtocolInterface: 19DF145A-B1D4-453F-8507-38816676D7F6 7D805A18
InstallProtocolInterface: 0167CCC4-D0F7-4F21-A3EF-9E64B7CDCE8B 7D8056A0
 BlockSize : 512 
 LastBlock : 3BFFFFF 
 Valid efi partition table header
 Valid efi partition table header
 Valid primary and Valid backup partition table
 Partition entries read block success
 Number of partition entries: 128
 start check partition entries
 End check partition entries
 Index : 0
 Start LBA : 800
 End LBA : 1007FF
 Partition size: 100000
 Start : 100000 End : 200FFE00
 Index : 1
 Start LBA : 100800
 End LBA : 3BFF7FF
 Partition size: 3AFF000
 Start : 20100000 End : 77FEFFE00
Prepare to Free Pool
 BlockSize : 512 
 LastBlock : 3AFEFFF 
ClockRate = 1843200
Divisor   = 1
BaudRate/Actual (115200/115200) = 100%
PciSioSerial: Create SIO child serial device - Device Error
SataControllerStart START
SataControllerStart error return status = Already started
ClockRate = 1843200
Divisor   = 1
BaudRate/Actual (115200/115200) = 100%
PciSioSerial: Create SIO child serial device - Device Error
Select Item: 0x19
[Bds]OsIndication: 0000000000000000
[Bds]=============Begin Load Options Dumping ...=============
  Driver Options:
  SysPrep Options:
  Boot Options:
    Boot0006: ubuntu 		 0x0001
    Boot0004: ubuntu 		 0x0001
    Boot0005: ubuntu-hdd2 		 0x0001
    Boot0000: UiApp 		 0x0109
    Boot0001: UEFI QEMU QEMU HARDDISK  		 0x0001
    Boot0002: UEFI PXEv4 (MAC:525400123456) 		 0x0001
    Boot0003: EFI Internal Shell 		 0x0001
  PlatformRecovery Options:
    PlatformRecovery0000: Default PlatformRecovery 		 0x0001
[Bds]=============End Load Options Dumping=============
[Bds]BdsWait ...Zzzzzzzzzzzz...
[Bds]Exit the waiting!
[Bds]Stop Hotkey Service!
[Bds]UnregisterKeyNotify: 000C/0000 Success
[Bds]UnregisterKeyNotify: 0017/0000 Success
[Bds]UnregisterKeyNotify: 0000/000D Success
Memory  Previous  Current    Next   
 Type    Pages     Pages     Pages  
======  ========  ========  ========
  0A    00000080  00000022  00000080
  09    00000012  0000000D  00000012
  00    00000080  00000057  00000080
  05    00000100  00000042  00000100
  06    00000100  000000B1  00000100
[Bds]Booting ubuntu
FSOpen: Open '\EFI\ubuntu-hdd2\shimx64.efi' Success
[Bds] Expand HD(1,GPT,0482E38B-B35F-4359-A017-F7B0E924FECD,0x800,0x100000)/\EFI\ubuntu-hdd2\shimx64.efi -> PciRoot(0x0)/Pci(0x3,0x0)/Scsi(0x0,0x0)/HD(1,GPT,0482E38B-B35F-4359-A017-F7B0E924FECD,0x800,0x100000)/\EFI\ubuntu-hdd2\shimx64.efi
BdsDxe: loading Boot0006 "ubuntu" from HD(1,GPT,0482E38B-B35F-4359-A017-F7B0E924FECD,0x800,0x100000)/\EFI\ubuntu-hdd2\shimx64.efi
[Security] 3rd party image[0] can be loaded after EndOfDxe: PciRoot(0x0)/Pci(0x3,0x0)/Scsi(0x0,0x0)/HD(1,GPT,0482E38B-B35F-4359-A017-F7B0E924FECD,0x800,0x100000)/\EFI\ubuntu-hdd2\shimx64.efi.
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7D95E040
Loading driver at 0x0007CF93000 EntryPoint=0x0007CFB5000 
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7DC14E98
ProtectUefiImageCommon - 0x7D95E040
  - 0x000000007CF93000 - 0x00000000000D4000
BdsDxe: starting Boot0006 "ubuntu" from HD(1,GPT,0482E38B-B35F-4359-A017-F7B0E924FECD,0x800,0x100000)/\EFI\ubuntu-hdd2\shimx64.efi
InstallProtocolInterface: 605DAB50-E046-4300-ABB6-3DD810DD8B23 7D042220
FSOpen: Open '\EFI\ubuntu-hdd2\grubx64.efi' Success
PixelBlueGreenRedReserved8BitPerColor
^[[0m^[[30m^[[40m^[[2J^[[01;01H^[[0m^[[37m^[[40m^[[02;40HGNU GRUB  version 2.06

\r^[[1m^[[37m^[[40m^[[04;02H谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目^[[05;02H吵^[[06;02H吵^[[07;02H吵^[[08;02H吵^[[09;02H吵^[[10;02H吵^[[11;02H吵^[[12;02H吵^[[13;02H吵^[[14;02H吵^[[15;02H吵^[[16;02H吵^[[17;02H吵^[[18;02H吵^[[19;02H吵^[[20;02H吵^[[21;02H吵^[[22;02H吵^[[23;02H吵^[[24;02H滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁^[[25;02H^[[26;02H^[[0m^[[37m^[[40m     Use the ^ and v keys to select which entry is highlighted.                              
\r      Press enter to boot the selected OS, `e' to edit the commands before booting or `c' for 
\r      a command-line. ESC to return previous menu.                                             ^[[0m^[[30m^[[47m^[[05;03H*Ubuntu                                                                                         ^[[1m^[[37m^[[40m^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[06;03H Advanced options for Ubuntu                                                                    ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[07;03H UEFI Firmware Settings                                                                         ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[08;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[09;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[10;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[11;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[12;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[13;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[14;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[15;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[16;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[17;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[18;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[19;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[20;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[21;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[22;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[23;03H                                                                                                ^[[0m^[[37m^[[40m ^[[29;01H   The highlighted entry will be executed automatically in 30s.                                    ^[[29;01H                                                                                                   ^[[30;01H                                                                                                   ^[[1m^[[37m^[[40m^[[05;03H Ubuntu                                                                                         ^[[0m^[[37m^[[40m^[[0m^[[30m^[[47m^[[06;03H*Advanced options for Ubuntu                                                                    ^[[1m^[[37m^[[40m^[[0m^[[37m^[[40m^[[0m^[[30m^[[40m^[[2J^[[01;01H^[[0m^[[37m^[[40m^[[0m^[[30m^[[40m^[[2J^[[01;01H^[[0m^[[37m^[[40m^[[0m^[[30m^[[40m^[[2J^[[01;01H^[[0m^[[37m^[[40m^[[02;40HGNU GRUB  version 2.06

\r^[[04;02H谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目^[[05;02H吵^[[06;02H吵^[[07;02H吵^[[08;02H吵^[[09;02H吵^[[10;02H吵^[[11;02H吵^[[12;02H吵^[[13;02H吵^[[14;02H吵^[[15;02H吵^[[16;02H吵^[[17;02H吵^[[18;02H吵^[[19;02H吵^[[20;02H吵^[[21;02H吵^[[22;02H吵^[[23;02H吵^[[24;02H滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁^[[25;02H^[[26;02H     Use the ^ and v keys to select which entry is highlighted.                              
\r      Press enter to boot the selected OS, `e' to edit the commands before booting or `c' for 
\r      a command-line. ESC to return previous menu.                                             ^[[0m^[[30m^[[47m^[[05;03H*Ubuntu, with Linux 6.2.0-rc7-snp-guest-20d8ab8889d7+                                           ^[[0m^[[37m^[[40m^[[06;03H Ubuntu, with Linux 6.2.0-rc7-snp-guest-20d8ab8889d7+ (recovery mode)                           ^[[07;03H Ubuntu, with Linux 5.17.0-rc3-snp-guest-20d8ab8889d7                                           ^[[08;03H Ubuntu, with Linux 5.17.0-rc3-snp-guest-20d8ab8889d7 (recovery mode)                           ^[[09;03H Ubuntu, with Linux 5.15.0-60-generic                                                           ^[[10;03H Ubuntu, with Linux 5.15.0-60-generic (recovery mode)                                           ^[[11;03H Ubuntu, with Linux 5.9.0-050900-generic                                                        ^[[12;03H Ubuntu, with Linux 5.9.0-050900-generic (recovery mode)                                        ^[[13;03H                                                                                                ^[[14;03H                                                                                                ^[[15;03H                                                                                                ^[[16;03H                                                                                                ^[[17;03H                                                                                                ^[[18;03H                                                                                                ^[[19;03H                                                                                                ^[[20;03H                                                                                                ^[[21;03H                                                                                                ^[[22;03H                                                                                                ^[[23;03H                                                                                                 ^[[29;01H                                                                                                   ^[[30;01H                                                                                                   ^[[0m^[[30m^[[40m^[[2J^[[01;01H^[[0m^[[37m^[[40m^[[0m^[[30m^[[40m^[[2J^[[01;01H^[[0m^[[37m^[[40mLoading Linux 6.2.0-rc7-snp-guest-20d8ab8889d7+ ...
\rConvertPages: range 1000000 - 41AEFFF covers multiple entries
Loading initial ramdisk ...
\rConvertPages: range 1000000 - 41AEFFF covers multiple entries
Accepting all memory
Accepting all memory
EFI stub: ERROR: exit_boot() failed!
EFI stub: ERROR: efi_main() failed!
Image Return Status = Invalid Parameter
BdsDxe: failed to start Boot0006 "ubuntu" from HD(1,GPT,0482E38B-B35F-4359-A017-F7B0E924FECD,0x800,0x100000)/\EFI\ubuntu-hdd2\shimx64.efi: Invalid Parameter
Memory  Previous  Current    Next   
 Type    Pages     Pages     Pages  
======  ========  ========  ========
  0A    00000080  00000022  00000080
  09    00000012  0000000F  00000012
  00    00000080  00000057  00000080
  05    00000100  00000042  00000100
  06    00000100  000000B1  00000100
[Bds]Booting ubuntu
FSOpen: Open '\EFI\ubuntu\shimx64.efi' Success
[Bds] Expand HD(1,GPT,0482E38B-B35F-4359-A017-F7B0E924FECD,0x800,0x100000)/\EFI\ubuntu\shimx64.efi -> PciRoot(0x0)/Pci(0x3,0x0)/Scsi(0x0,0x0)/HD(1,GPT,0482E38B-B35F-4359-A017-F7B0E924FECD,0x800,0x100000)/\EFI\ubuntu\shimx64.efi
BdsDxe: loading Boot0004 "ubuntu" from HD(1,GPT,0482E38B-B35F-4359-A017-F7B0E924FECD,0x800,0x100000)/\EFI\ubuntu\shimx64.efi
[Security] 3rd party image[0] can be loaded after EndOfDxe: PciRoot(0x0)/Pci(0x3,0x0)/Scsi(0x0,0x0)/HD(1,GPT,0482E38B-B35F-4359-A017-F7B0E924FECD,0x800,0x100000)/\EFI\ubuntu\shimx64.efi.
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7D0B1C40
Loading driver at 0x0007C9CB000 EntryPoint=0x0007C9ED000 
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7D0B6E98
ProtectUefiImageCommon - 0x7D0B1C40
  - 0x000000007C9CB000 - 0x00000000000D4000
BdsDxe: starting Boot0004 "ubuntu" from HD(1,GPT,0482E38B-B35F-4359-A017-F7B0E924FECD,0x800,0x100000)/\EFI\ubuntu\shimx64.efi
[Variable]: Rewritten a preexisting variable(0x00000006) with different attributes(0x00000007) - 605DAB50-E046-4300-ABB6-3DD810DD8B23:MokListRT
[Variable]: Rewritten a preexisting variable(0x00000006) with different attributes(0x00000007) - 605DAB50-E046-4300-ABB6-3DD810DD8B23:MokListXRT
[Variable]: Rewritten a preexisting variable(0x00000006) with different attributes(0x00000007) - 605DAB50-E046-4300-ABB6-3DD810DD8B23:SbatLevelRT
InstallProtocolInterface: 605DAB50-E046-4300-ABB6-3DD810DD8B23 7CA7A220
FSOpen: Open '\EFI\ubuntu\grubx64.efi' Success
PixelBlueGreenRedReserved8BitPerColor
^[[0m^[[30m^[[40m^[[2J^[[01;01H^[[0m^[[37m^[[40m^[[02;40HGNU GRUB  version 2.06

\r^[[1m^[[37m^[[40m^[[04;02H谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目^[[05;02H吵^[[06;02H吵^[[07;02H吵^[[08;02H吵^[[09;02H吵^[[10;02H吵^[[11;02H吵^[[12;02H吵^[[13;02H吵^[[14;02H吵^[[15;02H吵^[[16;02H吵^[[17;02H吵^[[18;02H吵^[[19;02H吵^[[20;02H吵^[[21;02H吵^[[22;02H吵^[[23;02H吵^[[24;02H滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁^[[25;02H^[[26;02H^[[0m^[[37m^[[40m     Use the ^ and v keys to select which entry is highlighted.                              
\r      Press enter to boot the selected OS, `e' to edit the commands before booting or `c' for 
\r      a command-line. ESC to return previous menu.                                             ^[[0m^[[30m^[[47m^[[05;03H*Ubuntu                                                                                         ^[[1m^[[37m^[[40m^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[06;03H Advanced options for Ubuntu                                                                    ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[07;03H UEFI Firmware Settings                                                                         ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[08;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[09;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[10;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[11;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[12;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[13;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[14;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[15;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[16;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[17;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[18;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[19;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[20;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[21;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[22;03H                                                                                                ^[[0m^[[37m^[[40m^[[1m^[[37m^[[40m^[[23;03H                                                                                                ^[[0m^[[37m^[[40m ^[[29;01H   The highlighted entry will be executed automatically in 30s.                                    ^[[29;01H   The highlighted entry will be executed automatically in 29s.                                    ^[[29;01H   The highlighted entry will be executed automatically in 28s.                                    

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-10  8:00         ` Gupta, Pankaj
@ 2023-02-10 11:12           ` Ard Biesheuvel
  2023-02-10 11:34             ` Gupta, Pankaj
  0 siblings, 1 reply; 34+ messages in thread
From: Ard Biesheuvel @ 2023-02-10 11:12 UTC (permalink / raw)
  To: Gupta, Pankaj
  Cc: Dionna Amalie Glaze, devel, Gerd Hoffmann, James Bottomley,
	Jiewen Yao, Tom Lendacky, Min M. Xu, Andrew Fish,
	Michael D. Kinney

On Fri, 10 Feb 2023 at 09:00, Gupta, Pankaj <pankaj.gupta@amd.com> wrote:
>
>
> >>> With this patch I observe an issue where my Linux (6.2.0-rc7) guest
> >>> recur to Bootloader menu again. I am testing this with SEV SNP (w/o
> >>> UPM). Also, guest don't have lazy memory acceptance support.
> >>>
> >>
> >> Thanks for the report. I'll try to reproduce it on our UEFI and if I'm
> >> unable, then we'll discuss next steps.
> >>
> >
> > I don't see this in our test Ubuntu 22.04 image from Canonical. Do you
> > have a boot log you could send me? I'm not sure I understand what you
> > mean by recurring to the Bootloader menu. On ExitBootServices, the
>
> Thank you for looking into it.
>
> Its going again to bootloader menu after I slecet the booting OS.
>
> > memory key will end up changing and the caller will need to call
> > GetMemoryMap and try EBS again, but I don't know why that would send
> > you to a bootmenu.
>
> Sorry, could not understand this. As I am not very familiar with the efi
> code flow. Could you please elaborate a bit.
>
> I see these[1] errors: Also attached the complete log.
>
> Thanks,
> Pankaj
>
> [1]
> ConvertPages: range 1000000 - 41AEFFF covers multiple entries^M
> Accepting all memory^M
> Accepting all memory^M

This looks to me like it is entering the 'accept' path twice, and so
ExitBootServices() is failing twice, resulting in a failed boot.

> EFI stub: ERROR: exit_boot() failed!^M
> EFI stub: ERROR: efi_main() failed!^M
> Image Return Status = Invalid Parameter^M
> BdsDxe: failed to start Boot0006 "ubuntu" from
> HD(1,GPT,0482E38B-B35F-4359-A017-F7B0E924FECD,0x800,0x100000)/\EFI\ubuntu-hdd2\shimx64.efi:
> Invalid Parameter^M

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-10 11:12           ` Ard Biesheuvel
@ 2023-02-10 11:34             ` Gupta, Pankaj
  0 siblings, 0 replies; 34+ messages in thread
From: Gupta, Pankaj @ 2023-02-10 11:34 UTC (permalink / raw)
  To: Ard Biesheuvel
  Cc: Dionna Amalie Glaze, devel, Gerd Hoffmann, James Bottomley,
	Jiewen Yao, Tom Lendacky, Min M. Xu, Andrew Fish,
	Michael D. Kinney


>> [1]
>> ConvertPages: range 1000000 - 41AEFFF covers multiple entries^M
>> Accepting all memory^M
>> Accepting all memory^M
> 
> This looks to me like it is entering the 'accept' path twice, and so
> ExitBootServices() is failing twice, resulting in a failed boot.

Thanks for having a look.

Yes, I was also wondering why its calling "Accepting all memory" twice. 
I tried to put some printf in error path of "accept" but does seem 
hitting any.

Also, accepting memory which is already accepted (pvalidate in case of 
SEV SNP) can be problematic.


Thanks,
Pankaj


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-09 21:27       ` Dionna Glaze
  2023-02-10  8:00         ` Gupta, Pankaj
@ 2023-02-10 13:56         ` Gupta, Pankaj
  2023-02-10 17:05           ` Dionna Glaze
  1 sibling, 1 reply; 34+ messages in thread
From: Gupta, Pankaj @ 2023-02-10 13:56 UTC (permalink / raw)
  To: Dionna Amalie Glaze
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney

On 2/9/2023 10:27 PM, Dionna Amalie Glaze wrote:
> On Thu, Feb 9, 2023 at 8:52 AM Dionna Amalie Glaze
> <dionnaglaze@google.com> wrote:
>>
>>> With this patch I observe an issue where my Linux (6.2.0-rc7) guest
>>> recur to Bootloader menu again. I am testing this with SEV SNP (w/o
>>> UPM). Also, guest don't have lazy memory acceptance support.
>>>
>>
>> Thanks for the report. I'll try to reproduce it on our UEFI and if I'm
>> unable, then we'll discuss next steps.
>>
> 
> I don't see this in our test Ubuntu 22.04 image from Canonical. Do you

Ubuntu 22.04 guest by default run 5.15 kernel? But SEV SNP got
merged in 5.19. I don't know currently how we are handling accepting
the memory on "ExitBootServices" with or w/o guest supporting SNP.

Thanks,
Pankaj

> have a boot log you could send me? I'm not sure I understand what you
> mean by recurring to the Bootloader menu. On ExitBootServices, the
> memory key will end up changing and the caller will need to call
> GetMemoryMap and try EBS again, but I don't know why that would send
> you to a bootmenu.


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-10 13:56         ` Gupta, Pankaj
@ 2023-02-10 17:05           ` Dionna Glaze
  2023-02-13 14:38             ` Gupta, Pankaj
  0 siblings, 1 reply; 34+ messages in thread
From: Dionna Glaze @ 2023-02-10 17:05 UTC (permalink / raw)
  To: Gupta, Pankaj
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney

On Fri, Feb 10, 2023 at 5:56 AM Gupta, Pankaj <pankaj.gupta@amd.com> wrote:
>
> On 2/9/2023 10:27 PM, Dionna Amalie Glaze wrote:
> > On Thu, Feb 9, 2023 at 8:52 AM Dionna Amalie Glaze
> > <dionnaglaze@google.com> wrote:
> >>
> >>> With this patch I observe an issue where my Linux (6.2.0-rc7) guest
> >>> recur to Bootloader menu again. I am testing this with SEV SNP (w/o
> >>> UPM). Also, guest don't have lazy memory acceptance support.
> >>>
> >>
> >> Thanks for the report. I'll try to reproduce it on our UEFI and if I'm
> >> unable, then we'll discuss next steps.
> >>
> >
> > I don't see this in our test Ubuntu 22.04 image from Canonical. Do you
>
> Ubuntu 22.04 guest by default run 5.15 kernel? But SEV SNP got
> merged in 5.19. I don't know currently how we are handling accepting
> the memory on "ExitBootServices" with or w/o guest supporting SNP.
>

It does, but I used the Qemu kernel injection pathway in Ovmf to run a
build of 6.2.0-rc7. Our testing setup doesn't give the user a boot
menu to select a kernel, so I wasn't aware that this return to
bootmenu could happen.


>This looks to me like it is entering the 'accept' path twice, and so
> ExitBootServices() is failing twice, resulting in a failed boot.

The double log is expected behavior because I didn't add a check for
whether accepting all memory would be a no-op.

The "Accepting all memory" message occurs twice if the guest does not
have support for unaccepted memory following this control flow:

1. EBS
2. [...] Log "Accepting all memory"
3. Loop through all memory spaces
3a. If the memory space is unaccepted, accept it.
3b. Remove the unaccepted memory space.
3c. Add a conventional memory space back with the same range and capabilities.
4. EBS returns an error since the map key is different.
5. OS calls GetMemoryMap to get the updated key.
6. OS calls EBS with the updated key.
7. [...] Log "Accepting all memory"
8. Loop through all memory spaces
8a. There are no unaccepted memory spaces left, so nothing happens.
9. Return successfully (one would hope)

>Accepting all memory^M
>Accepting all memory^M
>EFI stub: ERROR: exit_boot() failed!^M
>EFI stub: ERROR: efi_main() failed!^M

This now does suggest that EBS is failing twice, since after the
supposed no-op of the second log, the EFI stub's exit_boot claims
failure. I can't reproduce this part. Would you try adding a log
within the acceptance loop inside the if that checks for unaccepted
memory? I'd be curious if the loop is indeed changing the map again,
despite my claims at idempotency.

-- 
-Dionna Glaze, PhD (she/her)

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-10 17:05           ` Dionna Glaze
@ 2023-02-13 14:38             ` Gupta, Pankaj
  2023-02-13 16:53               ` Dionna Glaze
  0 siblings, 1 reply; 34+ messages in thread
From: Gupta, Pankaj @ 2023-02-13 14:38 UTC (permalink / raw)
  To: Dionna Amalie Glaze
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney


>>>>> With this patch I observe an issue where my Linux (6.2.0-rc7) guest
>>>>> recur to Bootloader menu again. I am testing this with SEV SNP (w/o
>>>>> UPM). Also, guest don't have lazy memory acceptance support.
>>>>>
>>>>
>>>> Thanks for the report. I'll try to reproduce it on our UEFI and if I'm
>>>> unable, then we'll discuss next steps.
>>>>
>>>
>>> I don't see this in our test Ubuntu 22.04 image from Canonical. Do you
>>
>> Ubuntu 22.04 guest by default run 5.15 kernel? But SEV SNP got
>> merged in 5.19. I don't know currently how we are handling accepting
>> the memory on "ExitBootServices" with or w/o guest supporting SNP.
>>
> 
> It does, but I used the Qemu kernel injection pathway in Ovmf to run a
> build of 6.2.0-rc7. Our testing setup doesn't give the user a boot
> menu to select a kernel, so I wasn't aware that this return to
> bootmenu could happen.
> 
> 
>> This looks to me like it is entering the 'accept' path twice, and so
>> ExitBootServices() is failing twice, resulting in a failed boot.
> 
> The double log is expected behavior because I didn't add a check for
> whether accepting all memory would be a no-op.
> 
> The "Accepting all memory" message occurs twice if the guest does not
> have support for unaccepted memory following this control flow:
> 
> 1. EBS
> 2. [...] Log "Accepting all memory"
> 3. Loop through all memory spaces
> 3a. If the memory space is unaccepted, accept it.
> 3b. Remove the unaccepted memory space.
> 3c. Add a conventional memory space back with the same range and capabilities.
> 4. EBS returns an error since the map key is different.
> 5. OS calls GetMemoryMap to get the updated key.
> 6. OS calls EBS with the updated key.
> 7. [...] Log "Accepting all memory"
> 8. Loop through all memory spaces
> 8a. There are no unaccepted memory spaces left, so nothing happens.

Seems like hitting this all the time. Can't see
EFI_GCD_MEMORY_TYPE_UNACCEPTED memory at all in the memory map.

And always hitting:
if (Desc->GcdMemoryType != EFI_GCD_MEMORY_TYPE_UNACCEPTED) {

So, no memory is getting accepted. Questions below:

- If no memory is getting accepted at all, should guest boot fail with
   below errors?
- Why unaccepted memory not being set in my setup but works fine for
   you? Does it require any other change?

Thanks,
Pankaj

> 9. Return successfully (one would hope)
> 
>> Accepting all memory^M
>> Accepting all memory^M
>> EFI stub: ERROR: exit_boot() failed!^M
>> EFI stub: ERROR: efi_main() failed!^M
> 
> This now does suggest that EBS is failing twice, since after the
> supposed no-op of the second log, the EFI stub's exit_boot claims
> failure. I can't reproduce this part. Would you try adding a log
> within the acceptance loop inside the if that checks for unaccepted
> memory? I'd be curious if the loop is indeed changing the map again,
> despite my claims at idempotency.
> 


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-13 14:38             ` Gupta, Pankaj
@ 2023-02-13 16:53               ` Dionna Glaze
  2023-02-13 17:56                 ` Gupta, Pankaj
  2023-02-14  9:12                 ` Gerd Hoffmann
  0 siblings, 2 replies; 34+ messages in thread
From: Dionna Glaze @ 2023-02-13 16:53 UTC (permalink / raw)
  To: Gupta, Pankaj
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney

>
> So, no memory is getting accepted. Questions below:
>
> - If no memory is getting accepted at all, should guest boot fail with
>    below errors?

No, the guest should not error. EBS should return success on the
second call and permit progress.

> - Why unaccepted memory not being set in my setup but works fine for
>    you? Does it require any other change?
>

We have an internal fork of EDK2 that we regularly rebase on top of
upstream, and we have our own hypervisor called Vanadium. So there's a
lot different. We don't have an easy way to test with upstream EDK2
and Qemu.
A recent import found incompatibilities with measured boot only in
SEV-SNP that we have disabled, but that's related to NVdata, which we
deal with differently in GCE due to the cloud IVARS service and our
allergy to SMM emulation. Should be unrelated.

I've looked over our OvmfPkg.patch that we maintain after every rebase
and most everything is related to our paravirtualized UEFI package
that eschews SMM to talk to Vanadium directly through either shared
memory or port I/O depending on whether the guest OS owns cr3 or not.

You've added a log for the if != unaccepted memory, but will you log
what status the function ultimately returns? And both the MapKey what
status CoreTerminateMemoryMap returns in DxeMain.c's
CoreExitBootServices? I'm wondering if maybe the EFI stub calling EBS
isn't calling GetMemoryMap to update the MapKey after the
invalid_param result that this semantics depends on. If the stub is
the Linux kernel's own stub, then it should be doing the right
thing...

> Thanks,
> Pankaj
>
> > 9. Return successfully (one would hope)
> >
> >> Accepting all memory^M
> >> Accepting all memory^M
> >> EFI stub: ERROR: exit_boot() failed!^M
> >> EFI stub: ERROR: efi_main() failed!^M
> >
> > This now does suggest that EBS is failing twice, since after the
> > supposed no-op of the second log, the EFI stub's exit_boot claims
> > failure. I can't reproduce this part. Would you try adding a log
> > within the acceptance loop inside the if that checks for unaccepted
> > memory? I'd be curious if the loop is indeed changing the map again,
> > despite my claims at idempotency.
> >
>
--
-Dionna Glaze, PhD (she/her)

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-13 16:53               ` Dionna Glaze
@ 2023-02-13 17:56                 ` Gupta, Pankaj
  2023-02-13 18:31                   ` Dionna Glaze
  2023-02-14  9:12                 ` Gerd Hoffmann
  1 sibling, 1 reply; 34+ messages in thread
From: Gupta, Pankaj @ 2023-02-13 17:56 UTC (permalink / raw)
  To: Dionna Amalie Glaze
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney


>> - If no memory is getting accepted at all, should guest boot fail with
>>     below errors?
> 
> No, the guest should not error. EBS should return success on the
> second call and permit progress.
> 
>> - Why unaccepted memory not being set in my setup but works fine for
>>     you? Does it require any other change?
>>
> 
> We have an internal fork of EDK2 that we regularly rebase on top of
> upstream, and we have our own hypervisor called Vanadium. So there's a
> lot different. We don't have an easy way to test with upstream EDK2
> and Qemu.
> A recent import found incompatibilities with measured boot only in
> SEV-SNP that we have disabled, but that's related to NVdata, which we
> deal with differently in GCE due to the cloud IVARS service and our
> allergy to SMM emulation. Should be unrelated.
> 
> I've looked over our OvmfPkg.patch that we maintain after every rebase
> and most everything is related to our paravirtualized UEFI package
> that eschews SMM to talk to Vanadium directly through either shared
> memory or port I/O depending on whether the guest OS owns cr3 or not.
> 
> You've added a log for the if != unaccepted memory, but will you log
> what status the function ultimately returns? And both the MapKey what
> status CoreTerminateMemoryMap returns in DxeMain.c's
> CoreExitBootServices? I'm wondering if maybe the EFI stub calling EBS
> isn't calling GetMemoryMap to update the MapKey after the
> invalid_param result that this semantics depends on. If the stub is
> the Linux kernel's own stub, then it should be doing the right
> thing...

CoreTerminateMemoryMap::MapKey::18033 ^M
CoreTerminateMemoryMap::Status::2
....
CoreTerminateMemoryMap::MapKey::18035 ^M
CoreTerminateMemoryMap::Status::2 ^M

Thanks,
Pankaj




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-13 17:56                 ` Gupta, Pankaj
@ 2023-02-13 18:31                   ` Dionna Glaze
  2023-02-13 19:33                     ` Lendacky, Thomas
  2023-02-13 19:33                     ` Gupta, Pankaj
  0 siblings, 2 replies; 34+ messages in thread
From: Dionna Glaze @ 2023-02-13 18:31 UTC (permalink / raw)
  To: Gupta, Pankaj
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney

I'm rather confused at the moment how our internal testing succeeds
given the premise of the protocol is to use the specified behavior
that the OS must call get_memory_map again if ebs fails with
efi_invalid_parameter, but upstream does not appear to do this.
If you're able to make progress by applying this patch to your linux
build, then we might be back at square one, since the protocol's whole
purpose is to work with older SEV-SNP kernels.

diff --git a/drivers/firmware/efi/libstub/x86-stub.c
b/drivers/firmware/efi/libstub/x86-stub.c
index a0bfd31358ba..795db2315f35 100644
--- a/drivers/firmware/efi/libstub/x86-stub.c
+++ b/drivers/firmware/efi/libstub/x86-stub.c
@@ -747,6 +747,18 @@ static efi_status_t exit_boot(struct boot_params
*boot_params, void *handle)

        /* Might as well exit boot services now */
        status = efi_exit_boot_services(handle, &priv, exit_boot_func);
+       /*
+        * EBS may fail once with INVALID_PARAMETER, which means the
OS must call
+        * get_memory_map again and try EBS one more time.
+        */
+       if (status == EFI_INVALID_PARAMETER) {
+               status = allocate_e820(boot_params, &e820ext, &e820ext_size);
+               if (status != EFI_SUCCESS)
+                       return status;
+
+               status = efi_exit_boot_services(handle, &priv, exit_boot_func);
+       }
+
        if (status != EFI_SUCCESS)
                return status;

On Mon, Feb 13, 2023 at 9:56 AM Gupta, Pankaj <pankaj.gupta@amd.com> wrote:
>
>
> >> - If no memory is getting accepted at all, should guest boot fail with
> >>     below errors?
> >
> > No, the guest should not error. EBS should return success on the
> > second call and permit progress.
> >
> >> - Why unaccepted memory not being set in my setup but works fine for
> >>     you? Does it require any other change?
> >>
> >
> > We have an internal fork of EDK2 that we regularly rebase on top of
> > upstream, and we have our own hypervisor called Vanadium. So there's a
> > lot different. We don't have an easy way to test with upstream EDK2
> > and Qemu.
> > A recent import found incompatibilities with measured boot only in
> > SEV-SNP that we have disabled, but that's related to NVdata, which we
> > deal with differently in GCE due to the cloud IVARS service and our
> > allergy to SMM emulation. Should be unrelated.
> >
> > I've looked over our OvmfPkg.patch that we maintain after every rebase
> > and most everything is related to our paravirtualized UEFI package
> > that eschews SMM to talk to Vanadium directly through either shared
> > memory or port I/O depending on whether the guest OS owns cr3 or not.
> >
> > You've added a log for the if != unaccepted memory, but will you log
> > what status the function ultimately returns? And both the MapKey what
> > status CoreTerminateMemoryMap returns in DxeMain.c's
> > CoreExitBootServices? I'm wondering if maybe the EFI stub calling EBS
> > isn't calling GetMemoryMap to update the MapKey after the
> > invalid_param result that this semantics depends on. If the stub is
> > the Linux kernel's own stub, then it should be doing the right
> > thing...
>
> CoreTerminateMemoryMap::MapKey::18033 ^M
> CoreTerminateMemoryMap::Status::2
> ....
> CoreTerminateMemoryMap::MapKey::18035 ^M
> CoreTerminateMemoryMap::Status::2 ^M
>
> Thanks,
> Pankaj
>
>
>


-- 
-Dionna Glaze, PhD (she/her)

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-13 18:31                   ` Dionna Glaze
@ 2023-02-13 19:33                     ` Lendacky, Thomas
  2023-02-13 19:33                     ` Gupta, Pankaj
  1 sibling, 0 replies; 34+ messages in thread
From: Lendacky, Thomas @ 2023-02-13 19:33 UTC (permalink / raw)
  To: Dionna Amalie Glaze, Gupta, Pankaj
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Ard Biesheuvel,
	Min M. Xu, Andrew Fish, Michael D. Kinney

On 2/13/23 12:31, Dionna Amalie Glaze wrote:
> I'm rather confused at the moment how our internal testing succeeds
> given the premise of the protocol is to use the specified behavior
> that the OS must call get_memory_map again if ebs fails with
> efi_invalid_parameter, but upstream does not appear to do this.
> If you're able to make progress by applying this patch to your linux
> build, then we might be back at square one, since the protocol's whole
> purpose is to work with older SEV-SNP kernels.
> 
> diff --git a/drivers/firmware/efi/libstub/x86-stub.c
> b/drivers/firmware/efi/libstub/x86-stub.c
> index a0bfd31358ba..795db2315f35 100644
> --- a/drivers/firmware/efi/libstub/x86-stub.c
> +++ b/drivers/firmware/efi/libstub/x86-stub.c
> @@ -747,6 +747,18 @@ static efi_status_t exit_boot(struct boot_params
> *boot_params, void *handle)
> 
>          /* Might as well exit boot services now */
>          status = efi_exit_boot_services(handle, &priv, exit_boot_func);
> +       /*
> +        * EBS may fail once with INVALID_PARAMETER, which means the
> OS must call
> +        * get_memory_map again and try EBS one more time.
> +        */
> +       if (status == EFI_INVALID_PARAMETER) {
> +               status = allocate_e820(boot_params, &e820ext, &e820ext_size);
> +               if (status != EFI_SUCCESS)
> +                       return status;
> +
> +               status = efi_exit_boot_services(handle, &priv, exit_boot_func);
> +       }
> +

As far as I can tell this logic is present in the efi_exit_boot_services() 
function, so this shouldn't be needed.

Thanks,
Tom

>          if (status != EFI_SUCCESS)
>                  return status;
> 
> On Mon, Feb 13, 2023 at 9:56 AM Gupta, Pankaj <pankaj.gupta@amd.com> wrote:
>>
>>
>>>> - If no memory is getting accepted at all, should guest boot fail with
>>>>      below errors?
>>>
>>> No, the guest should not error. EBS should return success on the
>>> second call and permit progress.
>>>
>>>> - Why unaccepted memory not being set in my setup but works fine for
>>>>      you? Does it require any other change?
>>>>
>>>
>>> We have an internal fork of EDK2 that we regularly rebase on top of
>>> upstream, and we have our own hypervisor called Vanadium. So there's a
>>> lot different. We don't have an easy way to test with upstream EDK2
>>> and Qemu.
>>> A recent import found incompatibilities with measured boot only in
>>> SEV-SNP that we have disabled, but that's related to NVdata, which we
>>> deal with differently in GCE due to the cloud IVARS service and our
>>> allergy to SMM emulation. Should be unrelated.
>>>
>>> I've looked over our OvmfPkg.patch that we maintain after every rebase
>>> and most everything is related to our paravirtualized UEFI package
>>> that eschews SMM to talk to Vanadium directly through either shared
>>> memory or port I/O depending on whether the guest OS owns cr3 or not.
>>>
>>> You've added a log for the if != unaccepted memory, but will you log
>>> what status the function ultimately returns? And both the MapKey what
>>> status CoreTerminateMemoryMap returns in DxeMain.c's
>>> CoreExitBootServices? I'm wondering if maybe the EFI stub calling EBS
>>> isn't calling GetMemoryMap to update the MapKey after the
>>> invalid_param result that this semantics depends on. If the stub is
>>> the Linux kernel's own stub, then it should be doing the right
>>> thing...
>>
>> CoreTerminateMemoryMap::MapKey::18033 ^M
>> CoreTerminateMemoryMap::Status::2
>> ....
>> CoreTerminateMemoryMap::MapKey::18035 ^M
>> CoreTerminateMemoryMap::Status::2 ^M
>>
>> Thanks,
>> Pankaj
>>
>>
>>
> 
> 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-13 18:31                   ` Dionna Glaze
  2023-02-13 19:33                     ` Lendacky, Thomas
@ 2023-02-13 19:33                     ` Gupta, Pankaj
  2023-02-13 21:44                       ` Dionna Glaze
  1 sibling, 1 reply; 34+ messages in thread
From: Gupta, Pankaj @ 2023-02-13 19:33 UTC (permalink / raw)
  To: Dionna Amalie Glaze
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney

On 2/13/2023 7:31 PM, Dionna Amalie Glaze wrote:
> I'm rather confused at the moment how our internal testing succeeds
> given the premise of the protocol is to use the specified behavior
> that the OS must call get_memory_map again if ebs fails with
> efi_invalid_parameter, but upstream does not appear to do this.
> If you're able to make progress by applying this patch to your linux
> build, then we might be back at square one, since the protocol's whole
> purpose is to work with older SEV-SNP kernels.
> 
> diff --git a/drivers/firmware/efi/libstub/x86-stub.c
> b/drivers/firmware/efi/libstub/x86-stub.c
> index a0bfd31358ba..795db2315f35 100644
> --- a/drivers/firmware/efi/libstub/x86-stub.c
> +++ b/drivers/firmware/efi/libstub/x86-stub.c
> @@ -747,6 +747,18 @@ static efi_status_t exit_boot(struct boot_params
> *boot_params, void *handle)
> 
>          /* Might as well exit boot services now */
>          status = efi_exit_boot_services(handle, &priv, exit_boot_func);
> +       /*
> +        * EBS may fail once with INVALID_PARAMETER, which means the
> OS must call
> +        * get_memory_map again and try EBS one more time.
> +        */
> +       if (status == EFI_INVALID_PARAMETER) {
> +               status = allocate_e820(boot_params, &e820ext, &e820ext_size);
> +               if (status != EFI_SUCCESS)
> +                       return status;
> +
> +               status = efi_exit_boot_services(handle, &priv, exit_boot_func);
> +       }
> +
>          if (status != EFI_SUCCESS)
>                  return status;

Not solving the issue. Now, getting 4 calls. See below:

ConvertPages: range 1000000 - 41AEFFF covers multiple entries
ConvertPages: range 1000000 - 41AEFFF covers multiple entries
Accepting all memory
Accepting all memory
Accepting all memory
Accepting all memory
EFI stub: ERROR: exit_boot() failed!
EFI stub: ERROR: efi_main() failed!
StartImage failed: Invalid Parameter
Thanks,
Pankaj

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-13 19:33                     ` Gupta, Pankaj
@ 2023-02-13 21:44                       ` Dionna Glaze
  2023-02-14 12:51                         ` Gupta, Pankaj
  0 siblings, 1 reply; 34+ messages in thread
From: Dionna Glaze @ 2023-02-13 21:44 UTC (permalink / raw)
  To: Gupta, Pankaj
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney

> Not solving the issue. Now, getting 4 calls. See below:
>
> ConvertPages: range 1000000 - 41AEFFF covers multiple entries
> ConvertPages: range 1000000 - 41AEFFF covers multiple entries
> Accepting all memory
> Accepting all memory
> Accepting all memory
> Accepting all memory
> EFI stub: ERROR: exit_boot() failed!
> EFI stub: ERROR: efi_main() failed!
> StartImage failed: Invalid Parameter
> Thanks,
> Pankaj

4 calls is telling me that "Accepting all memory" is somehow modifying
the memory map each call, but that shouldn't be happening. You've
confirmed that the body of the loop is getting skipped after the first
call?

--
-Dionna Glaze, PhD (she/her)

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-13 16:53               ` Dionna Glaze
  2023-02-13 17:56                 ` Gupta, Pankaj
@ 2023-02-14  9:12                 ` Gerd Hoffmann
  2023-02-14 17:28                   ` Dionna Glaze
  1 sibling, 1 reply; 34+ messages in thread
From: Gerd Hoffmann @ 2023-02-14  9:12 UTC (permalink / raw)
  To: Dionna Amalie Glaze
  Cc: Gupta, Pankaj, devel, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney,
	Oliver Steffen

  Hi,

> A recent import found incompatibilities with measured boot only in
> SEV-SNP that we have disabled, but that's related to NVdata, which we
> deal with differently in GCE due to the cloud IVARS service and our
> allergy to SMM emulation. Should be unrelated.

Do you have any pointers on the IVARS service?  Documentation, guest
code, host code?

Background:  When moving to a SVSM-based setup where the svsm (with
vtpm emulation) runs in vmpl0 and the edk2 firmware in vmpl1 we might
likewise add a efi variable service to the svsm.

If something usable already exists we don't need to reinvent the wheel.

thanks & take care,
  Gerd


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-13 21:44                       ` Dionna Glaze
@ 2023-02-14 12:51                         ` Gupta, Pankaj
  2023-02-14 12:55                           ` Gupta, Pankaj
       [not found]                           ` <1743B21FF9509E5F.2641@groups.io>
  0 siblings, 2 replies; 34+ messages in thread
From: Gupta, Pankaj @ 2023-02-14 12:51 UTC (permalink / raw)
  To: Dionna Amalie Glaze
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney


>> ConvertPages: range 1000000 - 41AEFFF covers multiple entries
>> ConvertPages: range 1000000 - 41AEFFF covers multiple entries
>> Accepting all memory
>> Accepting all memory
>> Accepting all memory
>> Accepting all memory
>> EFI stub: ERROR: exit_boot() failed!
>> EFI stub: ERROR: efi_main() failed!
>> StartImage failed: Invalid Parameter
>> Thanks,
>> Pankaj
> 
> 4 calls is telling me that "Accepting all memory" is somehow modifying
> the memory map each call, but that shouldn't be happening. You've
> confirmed that the body of the loop is getting skipped after the first
> call?

yes. This also changes the memory key every time. Below change solves 
the issue
and don't even get even the second invocation of "Accepting all memory" 
message. It seems "gBS->FreePool" changes the memory map every time?

+  //gBS->FreePool (AllDescMap);^M

Thanks,
Pankaj


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-14 12:51                         ` Gupta, Pankaj
@ 2023-02-14 12:55                           ` Gupta, Pankaj
  2023-02-14 20:44                             ` Dionna Glaze
       [not found]                           ` <1743B21FF9509E5F.2641@groups.io>
  1 sibling, 1 reply; 34+ messages in thread
From: Gupta, Pankaj @ 2023-02-14 12:55 UTC (permalink / raw)
  To: Dionna Amalie Glaze
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney

On 2/14/2023 1:51 PM, Gupta, Pankaj wrote:
> 
>>> ConvertPages: range 1000000 - 41AEFFF covers multiple entries
>>> ConvertPages: range 1000000 - 41AEFFF covers multiple entries
>>> Accepting all memory
>>> Accepting all memory
>>> Accepting all memory
>>> Accepting all memory
>>> EFI stub: ERROR: exit_boot() failed!
>>> EFI stub: ERROR: efi_main() failed!
>>> StartImage failed: Invalid Parameter
>>> Thanks,
>>> Pankaj
>>
>> 4 calls is telling me that "Accepting all memory" is somehow modifying
>> the memory map each call, but that shouldn't be happening. You've
>> confirmed that the body of the loop is getting skipped after the first
>> call?
> 
> yes. This also changes the memory key every time. Below change solves 
> the issue
> and don't even get even the second invocation of "Accepting all memory" 
> message. It seems "gBS->FreePool" changes the memory map every time?
> 
> +  //gBS->FreePool (AllDescMap);^M

Adding the diff.

diff --git a/OvmfPkg/AmdSevDxe/AmdSevDxe.c b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
index 6391d1f775..df51c2c050 100644
--- a/OvmfPkg/AmdSevDxe/AmdSevDxe.c
+++ b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
@@ -123,7 +123,7 @@ AcceptAllMemory (
      }
    }

-  gBS->FreePool (AllDescMap);
+  //gBS->FreePool (AllDescMap);^M
    return Status;
  }
> 
> Thanks,
> Pankaj
> 


^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
       [not found]                           ` <1743B21FF9509E5F.2641@groups.io>
@ 2023-02-14 14:00                             ` Gupta, Pankaj
  0 siblings, 0 replies; 34+ messages in thread
From: Gupta, Pankaj @ 2023-02-14 14:00 UTC (permalink / raw)
  To: devel, Dionna Amalie Glaze
  Cc: Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney

On 2/14/2023 1:55 PM, Gupta, Pankaj via groups.io wrote:
> On 2/14/2023 1:51 PM, Gupta, Pankaj wrote:
>>
>>>> ConvertPages: range 1000000 - 41AEFFF covers multiple entries
>>>> ConvertPages: range 1000000 - 41AEFFF covers multiple entries
>>>> Accepting all memory
>>>> Accepting all memory
>>>> Accepting all memory
>>>> Accepting all memory
>>>> EFI stub: ERROR: exit_boot() failed!
>>>> EFI stub: ERROR: efi_main() failed!
>>>> StartImage failed: Invalid Parameter
>>>> Thanks,
>>>> Pankaj
>>>
>>> 4 calls is telling me that "Accepting all memory" is somehow modifying
>>> the memory map each call, but that shouldn't be happening. You've
>>> confirmed that the body of the loop is getting skipped after the first
>>> call?
>>
>> yes. This also changes the memory key every time. Below change solves 
>> the issue
>> and don't even get even the second invocation of "Accepting all 
>> memory" message. It seems "gBS->FreePool" changes the memory map every 
>> time?

See like there is a typo s/gBS/gDS :) Now also getting two printfs for
"Accepting all memory", which seems right thing. Thank you, for the 
pointers!

--- a/OvmfPkg/AmdSevDxe/AmdSevDxe.c
+++ b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
@@ -123,7 +123,7 @@ AcceptAllMemory (
      }
    }

-  gBS->FreePool (AllDescMap);
+  gDS->FreePool (AllDescMap);^M
    return Status;
  }


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-14  9:12                 ` Gerd Hoffmann
@ 2023-02-14 17:28                   ` Dionna Glaze
  2023-02-14 22:44                     ` Lendacky, Thomas
  2023-02-15  9:38                     ` Gerd Hoffmann
  0 siblings, 2 replies; 34+ messages in thread
From: Dionna Glaze @ 2023-02-14 17:28 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: Gupta, Pankaj, devel, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney,
	Oliver Steffen

>
> Do you have any pointers on the IVARS service?  Documentation, guest
> code, host code?
>

Agh, I thought for sure there was a public API for VM owners to view
or change their UEFI variables, but I guess not. It's an
instance-specific small data store for nonvolatile memory like vTPM
and UEFI variables. It appears you can only set the variables through
cloud API at instance creation time. But this is how instances can be
shut down and brought back up on different machines and/or live
migrate to other machines and still have access to UEFI variables'
current values. Host code is all in Google's proprietary VMM,
Vanadium, but the device backend is really rather simple. The data
store service though, that's a matter of Cloud Scale Engineering.

> Background:  When moving to a SVSM-based setup where the svsm (with
> vtpm emulation) runs in vmpl0 and the edk2 firmware in vmpl1 we might
> likewise add a efi variable service to the svsm.
>

I thought EFI variables in Qemu were loaded and measured at launch
(OVMF_VARS.fd). If you want the current values of all uefi variables
in your SVSM attestation report, I think it's probably better to use
the EFI_CC_MEASUREMENT_PROTOCOL, right? Or is it specifically going to
be an SVSM service that attests itself with current stored variables,
or at least variables that are considered important enough to measure?

In any case, persistence in The Cloud (TM) remains a challenge in the
CC space. Discussion about what we should do about that should remain
on the coco mailing list. IVARS encrypts data with Google-managed
keys, so it wouldn't be directly applicable to SVSM NVRAM.

> If something usable already exists we don't need to reinvent the wheel.
>

Don't have to tell me twice. In the spirit of OSS collaboration and
product integrity, I think any CC offering's firmware should be public
and verifiably built. I'll keep pushing for that.

> thanks & take care,
>   Gerd
>


-- 
-Dionna Glaze, PhD (she/her)

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-14 12:55                           ` Gupta, Pankaj
@ 2023-02-14 20:44                             ` Dionna Glaze
  2023-02-14 20:46                               ` Gupta, Pankaj
  0 siblings, 1 reply; 34+ messages in thread
From: Dionna Glaze @ 2023-02-14 20:44 UTC (permalink / raw)
  To: Gupta, Pankaj
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney

>
> Adding the diff.
>
> diff --git a/OvmfPkg/AmdSevDxe/AmdSevDxe.c b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
> index 6391d1f775..df51c2c050 100644
> --- a/OvmfPkg/AmdSevDxe/AmdSevDxe.c
> +++ b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
> @@ -123,7 +123,7 @@ AcceptAllMemory (
>       }
>     }
>
> -  gBS->FreePool (AllDescMap);
> +  //gBS->FreePool (AllDescMap);^M
>     return Status;
>   }
> >
> > Thanks,
> > Pankaj
> >
>

Do you want to propose this patch or shall I? Seems like a necessary fix.

-- 
-Dionna Glaze, PhD (she/her)

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-14 20:44                             ` Dionna Glaze
@ 2023-02-14 20:46                               ` Gupta, Pankaj
  0 siblings, 0 replies; 34+ messages in thread
From: Gupta, Pankaj @ 2023-02-14 20:46 UTC (permalink / raw)
  To: Dionna Amalie Glaze
  Cc: devel, Gerd Hoffmann, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney

On 2/14/2023 9:44 PM, Dionna Amalie Glaze wrote:
>>
>> Adding the diff.
>>
>> diff --git a/OvmfPkg/AmdSevDxe/AmdSevDxe.c b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
>> index 6391d1f775..df51c2c050 100644
>> --- a/OvmfPkg/AmdSevDxe/AmdSevDxe.c
>> +++ b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
>> @@ -123,7 +123,7 @@ AcceptAllMemory (
>>        }
>>      }
>>
>> -  gBS->FreePool (AllDescMap);
>> +  //gBS->FreePool (AllDescMap);^M
>>      return Status;
>>    }
>>>
>>> Thanks,
>>> Pankaj
>>>
>>
> 
> Do you want to propose this patch or shall I? Seems like a necessary fix.

I am doing that. Wanted confirmation from you.

Thanks,
Pankaj


^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-14 17:28                   ` Dionna Glaze
@ 2023-02-14 22:44                     ` Lendacky, Thomas
  2023-02-15  9:38                     ` Gerd Hoffmann
  1 sibling, 0 replies; 34+ messages in thread
From: Lendacky, Thomas @ 2023-02-14 22:44 UTC (permalink / raw)
  To: Dionna Amalie Glaze, Gerd Hoffmann
  Cc: Gupta, Pankaj, devel, James Bottomley, Jiewen Yao, Ard Biesheuvel,
	Min M. Xu, Andrew Fish, Michael D. Kinney, Oliver Steffen

On 2/14/23 11:28, Dionna Amalie Glaze wrote:
>>
>> Do you have any pointers on the IVARS service?  Documentation, guest
>> code, host code?
>>
> 
> Agh, I thought for sure there was a public API for VM owners to view
> or change their UEFI variables, but I guess not. It's an
> instance-specific small data store for nonvolatile memory like vTPM
> and UEFI variables. It appears you can only set the variables through
> cloud API at instance creation time. But this is how instances can be
> shut down and brought back up on different machines and/or live
> migrate to other machines and still have access to UEFI variables'
> current values. Host code is all in Google's proprietary VMM,
> Vanadium, but the device backend is really rather simple. The data
> store service though, that's a matter of Cloud Scale Engineering.
> 
>> Background:  When moving to a SVSM-based setup where the svsm (with
>> vtpm emulation) runs in vmpl0 and the edk2 firmware in vmpl1 we might
>> likewise add a efi variable service to the svsm.
>>
> 
> I thought EFI variables in Qemu were loaded and measured at launch
> (OVMF_VARS.fd). If you want the current values of all uefi variables

The variables are not encrypted and not measured at launch because they 
need to be modified and stored on the host side.

You can choose to use a single vars/code file, which keeps the variables 
in memory, but you then lose any changes made to them upon VM termination.

Thanks,
Tom

> in your SVSM attestation report, I think it's probably better to use
> the EFI_CC_MEASUREMENT_PROTOCOL, right? Or is it specifically going to
> be an SVSM service that attests itself with current stored variables,
> or at least variables that are considered important enough to measure?
> 
> In any case, persistence in The Cloud (TM) remains a challenge in the
> CC space. Discussion about what we should do about that should remain
> on the coco mailing list. IVARS encrypts data with Google-managed
> keys, so it wouldn't be directly applicable to SVSM NVRAM.
> 
>> If something usable already exists we don't need to reinvent the wheel.
>>
> 
> Don't have to tell me twice. In the spirit of OSS collaboration and
> product integrity, I think any CC offering's firmware should be public
> and verifiably built. I'll keep pushing for that.
> 
>> thanks & take care,
>>    Gerd
>>
> 
> 

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [edk2-devel] [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe
  2023-02-14 17:28                   ` Dionna Glaze
  2023-02-14 22:44                     ` Lendacky, Thomas
@ 2023-02-15  9:38                     ` Gerd Hoffmann
  1 sibling, 0 replies; 34+ messages in thread
From: Gerd Hoffmann @ 2023-02-15  9:38 UTC (permalink / raw)
  To: Dionna Amalie Glaze
  Cc: Gupta, Pankaj, devel, James Bottomley, Jiewen Yao, Tom Lendacky,
	Ard Biesheuvel, Min M. Xu, Andrew Fish, Michael D. Kinney,
	Oliver Steffen

On Tue, Feb 14, 2023 at 09:28:49AM -0800, Dionna Amalie Glaze wrote:
> >
> > Do you have any pointers on the IVARS service?  Documentation, guest
> > code, host code?
> >
> 
> Agh, I thought for sure there was a public API for VM owners to view
> or change their UEFI variables, but I guess not. It's an
> instance-specific small data store for nonvolatile memory like vTPM
> and UEFI variables. It appears you can only set the variables through
> cloud API at instance creation time. But this is how instances can be
> shut down and brought back up on different machines and/or live
> migrate to other machines and still have access to UEFI variables'
> current values. Host code is all in Google's proprietary VMM,
> Vanadium, but the device backend is really rather simple. The data
> store service though, that's a matter of Cloud Scale Engineering.

The device backend would be a good start (host code being part of the
google vmm is expected ...).

> > Background:  When moving to a SVSM-based setup where the svsm (with
> > vtpm emulation) runs in vmpl0 and the edk2 firmware in vmpl1 we might
> > likewise add a efi variable service to the svsm.
> 
> I thought EFI variables in Qemu were loaded and measured at launch
> (OVMF_VARS.fd).

Yes, that is the current state of affairs.  Variables are fixed and are
measured (launch measurement for SEV, runtime measurement for TDX).  The
variable store lives in RAM and all changes are gone when the guest is
stopped.  So we don't really have persistent EFI variables.

For persistent EFI variables we need to have the variables stored in
some secure place, so the OS can't change -- for example -- secure boot
configuration as it pleases.  In traditional VMs that happens to be SMM
mode.  For SEV-SNP the SVSM could handle this, and we need some protocol
used by SVSM efi variable service and ovmf to talk to each other.  Here
the protocol used by google vmm could eventually be reused.

And possibly the very same protocol could be used to simply run the efi
variable service on the host (for traditional VMs) and ditch SMM mode
then.

> Or is it specifically going to be an SVSM service that attests itself
> with current stored variables, or at least variables that are
> considered important enough to measure?

The variables considered important for secure boot (db etc.) are
measured (by edk2) anyway.

> In any case, persistence in The Cloud (TM) remains a challenge in the
> CC space.

Indeed.  One idea is to hand out some (virtual) flash to the SVSM for
persistent data.  Which would need to be encrypted, and we need to
manage the keys for that.  Not fully sure where we stand here, it's not
my main focus.

take care,
  Gerd


^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2023-02-15  9:38 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-26  0:56 [PATCH v10 0/4] Add safe unaccepted memory behavior Dionna Glaze
2023-01-26  0:56 ` [PATCH v10 1/4] OvmfPkg: Add memory acceptance event in AmdSevDxe Dionna Glaze
2023-01-26 10:30   ` Ard Biesheuvel
2023-01-26 16:04     ` Dionna Glaze
2023-02-09 13:35   ` [edk2-devel] " Gupta, Pankaj
2023-02-09 16:52     ` Dionna Glaze
2023-02-09 21:27       ` Dionna Glaze
2023-02-10  8:00         ` Gupta, Pankaj
2023-02-10 11:12           ` Ard Biesheuvel
2023-02-10 11:34             ` Gupta, Pankaj
2023-02-10 13:56         ` Gupta, Pankaj
2023-02-10 17:05           ` Dionna Glaze
2023-02-13 14:38             ` Gupta, Pankaj
2023-02-13 16:53               ` Dionna Glaze
2023-02-13 17:56                 ` Gupta, Pankaj
2023-02-13 18:31                   ` Dionna Glaze
2023-02-13 19:33                     ` Lendacky, Thomas
2023-02-13 19:33                     ` Gupta, Pankaj
2023-02-13 21:44                       ` Dionna Glaze
2023-02-14 12:51                         ` Gupta, Pankaj
2023-02-14 12:55                           ` Gupta, Pankaj
2023-02-14 20:44                             ` Dionna Glaze
2023-02-14 20:46                               ` Gupta, Pankaj
     [not found]                           ` <1743B21FF9509E5F.2641@groups.io>
2023-02-14 14:00                             ` Gupta, Pankaj
2023-02-14  9:12                 ` Gerd Hoffmann
2023-02-14 17:28                   ` Dionna Glaze
2023-02-14 22:44                     ` Lendacky, Thomas
2023-02-15  9:38                     ` Gerd Hoffmann
2023-01-26  0:56 ` [PATCH v10 2/4] MdePkg: Introduce the SevMemoryAcceptance protocol Dionna Glaze
2023-01-26  1:24   ` Yao, Jiewen
2023-01-26 17:04     ` Dionna Glaze
2023-01-26 17:19       ` Ard Biesheuvel
2023-01-26  0:56 ` [PATCH v10 3/4] OvmfPkg: Implement AcceptAllUnacceptedMemory in AmdSevDxe Dionna Glaze
2023-01-26  0:56 ` [PATCH v10 4/4] OvmfPkg/PlatformPei: SEV-SNP make >=4GB unaccepted Dionna Glaze

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox