* [PATCH v2 0/4] SEV-SNP accepted memory and BeforeExitBootServices
@ 2022-11-08 21:15 Dionna Glaze
2022-11-08 21:15 ` [PATCH v2 1/4] OvmfPkg: Realize EfiMemoryAcceptProtocol in AmdSevDxe Dionna Glaze
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Dionna Glaze @ 2022-11-08 21:15 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
This is the first half of the patch series
[PATCH v8 0/7] Add safe unaccepted memory behavior
These patches add SEV-SNP support for the MemoryAccept protocol, and
implement an already standardized mechanism for performing any actions
just before terminating the memory map.
We implement a standardized event group from UEFI v2.9,
EFI_EVENT_GROUP_BEFORE_EXIT_BOOT_SERVICES, since it provides exactly
the right invocation point for eagerly accepting memory if eager
acceptance has not been disabled (i.e., unaccepted memory is enabled).
The use of the BeforeExitBootServices addition will come in the second
half of this series.
Changes since v1:
* Added EFI_EVENT_GROUP_AFTER_READY_TO_BOOT and interpretation.
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: Realize EfiMemoryAcceptProtocol in AmdSevDxe
MdePkg: Add event groups for boot events
MdeModulePkg: Notify BeforeExitBootServices in CoreExitBootServices
MdePkg: Signal AfterReadyToBoot after ReadyToBoot
MdeModulePkg/Core/Dxe/DxeMain.inf | 1 +
MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c | 6 +++
MdePkg/Include/Guid/EventGroup.h | 10 ++++
MdePkg/Include/Library/UefiLib.h | 2 +
MdePkg/Library/UefiLib/UefiLib.inf | 1 +
MdePkg/Library/UefiLib/UefiNotTiano.c | 18 +++++++
MdePkg/MdePkg.dec | 8 ++-
OvmfPkg/AmdSevDxe/AmdSevDxe.c | 55 ++++++++++++++++++--
OvmfPkg/AmdSevDxe/AmdSevDxe.inf | 3 ++
OvmfPkg/Library/BaseMemEncryptSevLib/X64/DxeSnpSystemRamValidate.c | 24 +++++++--
10 files changed, 119 insertions(+), 9 deletions(-)
--
2.38.1.431.g37b22c650d-goog
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 1/4] OvmfPkg: Realize EfiMemoryAcceptProtocol in AmdSevDxe
2022-11-08 21:15 [PATCH v2 0/4] SEV-SNP accepted memory and BeforeExitBootServices Dionna Glaze
@ 2022-11-08 21:15 ` Dionna Glaze
2022-11-08 21:15 ` [PATCH v2 2/4] MdePkg: Add event groups for boot events Dionna Glaze
` (2 subsequent siblings)
3 siblings, 0 replies; 11+ messages in thread
From: Dionna Glaze @ 2022-11-08 21:15 UTC (permalink / raw)
To: devel
Cc: Dionna Glaze, Gerd Hoffmann, James Bottomley, Jiewen Yao,
Tom Lendacky
From: Sophia Wolf <phiawolf@google.com>
When a guest OS does not support unaccepted memory, the unaccepted
memory must be accepted before returning a memory map to the caller.
EfiMemoryAcceptProtocol is defined in MdePkg and is implemented /
Installed in AmdSevDxe for AMD SEV-SNP memory acceptance.
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>
Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
---
OvmfPkg/AmdSevDxe/AmdSevDxe.c | 55 ++++++++++++++++++--
OvmfPkg/AmdSevDxe/AmdSevDxe.inf | 3 ++
OvmfPkg/Library/BaseMemEncryptSevLib/X64/DxeSnpSystemRamValidate.c | 24 +++++++--
3 files changed, 74 insertions(+), 8 deletions(-)
diff --git a/OvmfPkg/AmdSevDxe/AmdSevDxe.c b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
index 662d3c4ccb..f7600c3c81 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 <Protocol/MemoryAccept.h>
STATIC CONFIDENTIAL_COMPUTING_SNP_BLOB_LOCATION mSnpBootDxeTable = {
SIGNATURE_32 ('A', 'M', 'D', 'E'),
@@ -31,6 +32,40 @@ STATIC CONFIDENTIAL_COMPUTING_SNP_BLOB_LOCATION mSnpBootDxeTable = {
FixedPcdGet32 (PcdOvmfCpuidSize),
};
+STATIC EFI_HANDLE mAmdSevDxeHandle = NULL;
+
+#define IS_ALIGNED(x, y) ((((x) & ((y) - 1)) == 0))
+
+STATIC
+EFI_STATUS
+EFIAPI
+AmdSevMemoryAccept (
+ IN EDKII_MEMORY_ACCEPT_PROTOCOL *This,
+ IN EFI_PHYSICAL_ADDRESS StartAddress,
+ IN UINTN Size
+ )
+{
+ //
+ // The StartAddress must be page-aligned, and the Size must be a positive
+ // multiple of SIZE_4KB. Use an assert instead of returning an erros since
+ // this is an EDK2-internal protocol.
+ //
+ ASSERT (IS_ALIGNED (StartAddress, SIZE_4KB));
+ ASSERT (IS_ALIGNED (Size, SIZE_4KB));
+ ASSERT (Size != 0);
+
+ MemEncryptSevSnpPreValidateSystemRam (
+ StartAddress,
+ EFI_SIZE_TO_PAGES (Size)
+ );
+
+ return EFI_SUCCESS;
+}
+
+STATIC EDKII_MEMORY_ACCEPT_PROTOCOL mMemoryAcceptProtocol = {
+ AmdSevMemoryAccept
+};
+
EFI_STATUS
EFIAPI
AmdSevDxeEntryPoint (
@@ -147,11 +182,23 @@ AmdSevDxeEntryPoint (
}
}
- //
- // 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.
- //
if (MemEncryptSevSnpIsEnabled ()) {
+ //
+ // Memory acceptance began being required in SEV-SNP, so install the
+ // memory accept protocol implementation for a SEV-SNP active guest.
+ //
+ Status = gBS->InstallProtocolInterface (
+ &mAmdSevDxeHandle,
+ &gEdkiiMemoryAcceptProtocolGuid,
+ EFI_NATIVE_INTERFACE,
+ &mMemoryAcceptProtocol
+ );
+ ASSERT_EFI_ERROR (Status);
+
+ //
+ // 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.
+ //
return gBS->InstallConfigurationTable (
&gConfidentialComputingSevSnpBlobGuid,
&mSnpBootDxeTable
diff --git a/OvmfPkg/AmdSevDxe/AmdSevDxe.inf b/OvmfPkg/AmdSevDxe/AmdSevDxe.inf
index 9acf860cf2..cd1b686c53 100644
--- a/OvmfPkg/AmdSevDxe/AmdSevDxe.inf
+++ b/OvmfPkg/AmdSevDxe/AmdSevDxe.inf
@@ -47,6 +47,9 @@
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSnpSecretsBase
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSnpSecretsSize
+[Protocols]
+ gEdkiiMemoryAcceptProtocolGuid
+
[Guids]
gConfidentialComputingSevSnpBlobGuid
diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/DxeSnpSystemRamValidate.c b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/DxeSnpSystemRamValidate.c
index d3a95e4913..cbcdd46f52 100644
--- a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/DxeSnpSystemRamValidate.c
+++ b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/DxeSnpSystemRamValidate.c
@@ -14,6 +14,7 @@
#include <Library/MemEncryptSevLib.h>
#include "SnpPageStateChange.h"
+#include "VirtualMemory.h"
/**
Pre-validate the system RAM when SEV-SNP is enabled in the guest VM.
@@ -29,12 +30,27 @@ MemEncryptSevSnpPreValidateSystemRam (
IN UINTN NumPages
)
{
+ EFI_STATUS Status;
+
if (!MemEncryptSevSnpIsEnabled ()) {
return;
}
- //
- // All the pre-validation must be completed in the PEI phase.
- //
- ASSERT (FALSE);
+ // DXE pre-validation may happen with the memory accept protocol.
+ // The protocol should only be called outside the prevalidated ranges
+ // that the PEI stage code explicitly skips. Specifically, only memory
+ // ranges that are classified as unaccepted.
+ if (BaseAddress >= SIZE_4GB) {
+ Status = InternalMemEncryptSevCreateIdentityMap1G (
+ 0,
+ BaseAddress,
+ EFI_PAGES_TO_SIZE (NumPages)
+ );
+ if (EFI_ERROR (Status)) {
+ ASSERT (FALSE);
+ CpuDeadLoop ();
+ }
+ }
+
+ InternalSetPageState (BaseAddress, NumPages, SevSnpPagePrivate, TRUE);
}
--
2.38.1.431.g37b22c650d-goog
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 2/4] MdePkg: Add event groups for boot events
2022-11-08 21:15 [PATCH v2 0/4] SEV-SNP accepted memory and BeforeExitBootServices Dionna Glaze
2022-11-08 21:15 ` [PATCH v2 1/4] OvmfPkg: Realize EfiMemoryAcceptProtocol in AmdSevDxe Dionna Glaze
@ 2022-11-08 21:15 ` Dionna Glaze
2022-11-08 21:15 ` [PATCH v2 3/4] MdeModulePkg: Notify BeforeExitBootServices in CoreExitBootServices Dionna Glaze
2022-11-08 21:15 ` [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot Dionna Glaze
3 siblings, 0 replies; 11+ messages in thread
From: Dionna Glaze @ 2022-11-08 21:15 UTC (permalink / raw)
To: devel
Cc: Dionna Glaze, Ard Biescheuvel, Min M. Xu, Gerd Hoffmann,
James Bottomley, Tom Lendacky, Jiewen Yao, Erdem Aktas
Add EFI_EVENT_BEFORE_EXIT_BOOT_SERVICES_GUID
Add EFI_EVENT_GROUP_AFTER_READY_TO_BOOT
Both defined in UEFI standard v2.9.
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>
---
MdePkg/Include/Guid/EventGroup.h | 10 ++++++++++
MdePkg/MdePkg.dec | 8 +++++++-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/MdePkg/Include/Guid/EventGroup.h b/MdePkg/Include/Guid/EventGroup.h
index 063d1f7157..821b728e59 100644
--- a/MdePkg/Include/Guid/EventGroup.h
+++ b/MdePkg/Include/Guid/EventGroup.h
@@ -14,6 +14,11 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
extern EFI_GUID gEfiEventExitBootServicesGuid;
+#define EFI_EVENT_GROUP_BEFORE_EXIT_BOOT_SERVICES \
+ { 0x8be0e274, 0x3970, 0x4b44, { 0x80, 0xc5, 0x1a, 0xb9, 0x50, 0x2f, 0x3b, 0xfc } }
+
+extern EFI_GUID gEfiEventBeforeExitBootServicesGuid;
+
#define EFI_EVENT_GROUP_VIRTUAL_ADDRESS_CHANGE \
{ 0x13fa7698, 0xc831, 0x49c7, { 0x87, 0xea, 0x8f, 0x43, 0xfc, 0xc2, 0x51, 0x96 } }
@@ -29,6 +34,11 @@ extern EFI_GUID gEfiEventMemoryMapChangeGuid;
extern EFI_GUID gEfiEventReadyToBootGuid;
+#define EFI_EVENT_GROUP_AFTER_READY_TO_BOOT \
+ { 0x3a2a00ad, 0x98b9, 0x4cdf, { 0xa4, 0x78, 0x70, 0x27, 0x77, 0xf1, 0xc1, 0xb } }
+
+extern EFI_GUID gEfiEventAfterReadyToBootGuid;
+
#define EFI_EVENT_GROUP_DXE_DISPATCH_GUID \
{ 0x7081e22f, 0xcac6, 0x4053, { 0x94, 0x68, 0x67, 0x57, 0x82, 0xcf, 0x88, 0xe5 }}
diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
index 6b6bfbec29..c4ccec935a 100644
--- a/MdePkg/MdePkg.dec
+++ b/MdePkg/MdePkg.dec
@@ -408,11 +408,17 @@
gEfiEventMemoryMapChangeGuid = { 0x78BEE926, 0x692F, 0x48FD, { 0x9E, 0xDB, 0x01, 0x42, 0x2E, 0xF0, 0xD7, 0xAB }}
## Include/Guid/EventGroup.h
- gEfiEventVirtualAddressChangeGuid = { 0x13FA7698, 0xC831, 0x49C7, { 0x87, 0xEA, 0x8F, 0x43, 0xFC, 0xC2, 0x51, 0x96 }}
+ gEfiEventVirtualAddressChangeGuid = { 0x13FA7698, 0xC831, 0x49C7, { 0x87, 0xEA, 0x8F, 0x43, 0xFC, 0xC2, 0x51, 0x96 }}
+
+ ## Include/Guid/EventGroup.h
+ gEfiEventBeforeExitBootServicesGuid = { 0x8BE0E274, 0x3970, 0x4B44, { 0x80, 0xC5, 0x1A, 0xB9, 0x50, 0x2F, 0x3B, 0xFC }}
## Include/Guid/EventGroup.h
gEfiEventExitBootServicesGuid = { 0x27ABF055, 0xB1B8, 0x4C26, { 0x80, 0x48, 0x74, 0x8F, 0x37, 0xBA, 0xA2, 0xDF }}
+ ## Include/Guid/EventGroup.h
+ gEfiEventAfterReadyToBootGuid = { 0x3A2A00AD, 0x98B9, 0x4CDF, { 0xA4, 0x78, 0x70, 0x27, 0x77, 0xF1, 0xC1, 0xB }}
+
## Include/Protocol/DebugPort.h
gEfiDebugPortVariableGuid = { 0xEBA4E8D2, 0x3858, 0x41EC, { 0xA2, 0x81, 0x26, 0x47, 0xBA, 0x96, 0x60, 0xD0 }}
--
2.38.1.431.g37b22c650d-goog
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 3/4] MdeModulePkg: Notify BeforeExitBootServices in CoreExitBootServices
2022-11-08 21:15 [PATCH v2 0/4] SEV-SNP accepted memory and BeforeExitBootServices Dionna Glaze
2022-11-08 21:15 ` [PATCH v2 1/4] OvmfPkg: Realize EfiMemoryAcceptProtocol in AmdSevDxe Dionna Glaze
2022-11-08 21:15 ` [PATCH v2 2/4] MdePkg: Add event groups for boot events Dionna Glaze
@ 2022-11-08 21:15 ` Dionna Glaze
2022-11-08 21:15 ` [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot Dionna Glaze
3 siblings, 0 replies; 11+ messages in thread
From: Dionna Glaze @ 2022-11-08 21:15 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, Ray Ni, Jiewen Yao
Location of notification is has been specified in UEFI v2.9.
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>
Cc: Ray Ni <ray.ni@intel.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
---
MdeModulePkg/Core/Dxe/DxeMain.inf | 1 +
MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c | 6 ++++++
2 files changed, 7 insertions(+)
diff --git a/MdeModulePkg/Core/Dxe/DxeMain.inf b/MdeModulePkg/Core/Dxe/DxeMain.inf
index e4bca89577..35d5bf0dee 100644
--- a/MdeModulePkg/Core/Dxe/DxeMain.inf
+++ b/MdeModulePkg/Core/Dxe/DxeMain.inf
@@ -100,6 +100,7 @@
gEfiEventVirtualAddressChangeGuid ## CONSUMES ## Event
## CONSUMES ## Event
## PRODUCES ## Event
+ gEfiEventBeforeExitBootServicesGuid
gEfiEventExitBootServicesGuid
gEfiHobMemoryAllocModuleGuid ## SOMETIMES_CONSUMES ## HOB
gEfiFirmwareFileSystem2Guid ## CONSUMES ## GUID # Used to compare with FV's file system guid and get the FV's file system format
diff --git a/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c b/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
index 5733f0c8ec..4683016ed7 100644
--- a/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
+++ b/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
@@ -763,6 +763,12 @@ CoreExitBootServices (
{
EFI_STATUS Status;
+ //
+ // Notify other drivers of their last chance to use boot services
+ // before the memory map is terminated.
+ //
+ CoreNotifySignalList (&gEfiEventBeforeExitBootServicesGuid);
+
//
// Disable Timer
//
--
2.38.1.431.g37b22c650d-goog
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot
2022-11-08 21:15 [PATCH v2 0/4] SEV-SNP accepted memory and BeforeExitBootServices Dionna Glaze
` (2 preceding siblings ...)
2022-11-08 21:15 ` [PATCH v2 3/4] MdeModulePkg: Notify BeforeExitBootServices in CoreExitBootServices Dionna Glaze
@ 2022-11-08 21:15 ` Dionna Glaze
2022-11-09 17:08 ` Michael D Kinney
2022-12-07 1:26 ` 回复: " gaoliming
3 siblings, 2 replies; 11+ messages in thread
From: Dionna Glaze @ 2022-11-08 21:15 UTC (permalink / raw)
To: devel
Cc: Dionna Glaze, Michael D Kinney, Ard Biesheuvel, Gerd Hoffman,
Jiewen Yao
The Uefi v2.9 specification adds this event group in section 3.1.7,
with its GUID defined in the Related Definitions section of
EFI_BOOT_SERVICES.CreateEventEx() in chapter 7.
Cc: "Michael D Kinney" <michael.d.kinney@intel.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Gerd Hoffman <kraxel@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
---
MdePkg/Include/Library/UefiLib.h | 2 ++
MdePkg/Library/UefiLib/UefiLib.inf | 1 +
MdePkg/Library/UefiLib/UefiNotTiano.c | 18 ++++++++++++++++++
3 files changed, 21 insertions(+)
diff --git a/MdePkg/Include/Library/UefiLib.h b/MdePkg/Include/Library/UefiLib.h
index be7da7fdf7..2c3342351e 100644
--- a/MdePkg/Include/Library/UefiLib.h
+++ b/MdePkg/Include/Library/UefiLib.h
@@ -890,6 +890,8 @@ UnicodeStringDisplayLength (
/**
Create, Signal, and Close the Ready to Boot event using EfiSignalEventReadyToBoot().
+ If successful, then create, signal and close the After Ready to Boot event.
+
This function abstracts the signaling of the Ready to Boot Event. The Framework moved
from a proprietary to UEFI 2.0 based mechanism. This library abstracts the caller
from how this event is created to prevent to code form having to change with the
diff --git a/MdePkg/Library/UefiLib/UefiLib.inf b/MdePkg/Library/UefiLib/UefiLib.inf
index 01ed92092d..5c4064eafa 100644
--- a/MdePkg/Library/UefiLib/UefiLib.inf
+++ b/MdePkg/Library/UefiLib/UefiLib.inf
@@ -60,6 +60,7 @@
gEfiGlobalVariableGuid ## SOMETIMES_CONSUMES ## Variable
gEfiAcpi20TableGuid ## SOMETIMES_CONSUMES ## SystemTable
gEfiAcpi10TableGuid ## SOMETIMES_CONSUMES ## SystemTable
+ gEfiEventAfterReadyToBootGuid ## SOMETIMES_CONSUMES ## Event
[Protocols]
gEfiDriverBindingProtocolGuid ## SOMETIMES_PRODUCES
diff --git a/MdePkg/Library/UefiLib/UefiNotTiano.c b/MdePkg/Library/UefiLib/UefiNotTiano.c
index d84e91fd01..04fe42f9f7 100644
--- a/MdePkg/Library/UefiLib/UefiNotTiano.c
+++ b/MdePkg/Library/UefiLib/UefiNotTiano.c
@@ -208,6 +208,8 @@ EfiCreateEventReadyToBootEx (
/**
Create, Signal, and Close the Ready to Boot event using EfiSignalEventReadyToBoot().
+ If successful, then create, signal and close the After Ready to Boot event.
+
This function abstracts the signaling of the Ready to Boot Event. The Framework moved
from a proprietary to UEFI 2.0 based mechanism. This library abstracts the caller
from how this event is created to prevent to code form having to change with the
@@ -222,11 +224,27 @@ EfiSignalEventReadyToBoot (
{
EFI_STATUS Status;
EFI_EVENT ReadyToBootEvent;
+ EFI_EVENT AfterReadyToBootEvent;
Status = EfiCreateEventReadyToBoot (&ReadyToBootEvent);
if (!EFI_ERROR (Status)) {
gBS->SignalEvent (ReadyToBootEvent);
gBS->CloseEvent (ReadyToBootEvent);
+ return;
+ }
+
+ /* Then immediately signal the after ready to boot event group */
+ Status = gBS->CreateEventEx (
+ EVT_NOTIFY_SIGNAL,
+ TPL_CALLBACK,
+ EfiEventEmptyFunction,
+ NULL,
+ &gEfiEventAfterReadyToBootGuid,
+ AfterReadyToBootEvent
+ );
+ if (!EFI_ERROR(Status)) {
+ gBS->SignalEvent (AfterReadyToBootEvent);
+ gBS->CloseEvent (AfterReadyToBootEvent);
}
}
--
2.38.1.431.g37b22c650d-goog
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot
2022-11-08 21:15 ` [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot Dionna Glaze
@ 2022-11-09 17:08 ` Michael D Kinney
2022-11-09 17:11 ` [edk2-devel] " Dionna Glaze
2022-12-07 1:26 ` 回复: " gaoliming
1 sibling, 1 reply; 11+ messages in thread
From: Michael D Kinney @ 2022-11-09 17:08 UTC (permalink / raw)
To: Dionna Glaze, devel@edk2.groups.io, Kinney, Michael D
Cc: Ard Biesheuvel, Gerd Hoffman, Yao, Jiewen
Hi Dionna,
I gave feedback about After Exit Boot Services event.
Why is an After Ready To Boot signal now part of this series?
Mike
> -----Original Message-----
> From: Dionna Glaze <dionnaglaze@google.com>
> Sent: Tuesday, November 8, 2022 1:16 PM
> To: devel@edk2.groups.io
> Cc: Dionna Glaze <dionnaglaze@google.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Ard Biesheuvel <ardb@kernel.org>;
> Gerd Hoffman <kraxel@redhat.com>; Yao, Jiewen <jiewen.yao@intel.com>
> Subject: [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot
>
> The Uefi v2.9 specification adds this event group in section 3.1.7,
> with its GUID defined in the Related Definitions section of
> EFI_BOOT_SERVICES.CreateEventEx() in chapter 7.
>
> Cc: "Michael D Kinney" <michael.d.kinney@intel.com>
> Cc: Ard Biesheuvel <ardb@kernel.org>
> Cc: Gerd Hoffman <kraxel@redhat.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
>
> Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
> ---
> MdePkg/Include/Library/UefiLib.h | 2 ++
> MdePkg/Library/UefiLib/UefiLib.inf | 1 +
> MdePkg/Library/UefiLib/UefiNotTiano.c | 18 ++++++++++++++++++
> 3 files changed, 21 insertions(+)
>
> diff --git a/MdePkg/Include/Library/UefiLib.h b/MdePkg/Include/Library/UefiLib.h
> index be7da7fdf7..2c3342351e 100644
> --- a/MdePkg/Include/Library/UefiLib.h
> +++ b/MdePkg/Include/Library/UefiLib.h
> @@ -890,6 +890,8 @@ UnicodeStringDisplayLength (
> /**
> Create, Signal, and Close the Ready to Boot event using EfiSignalEventReadyToBoot().
>
> + If successful, then create, signal and close the After Ready to Boot event.
> +
> This function abstracts the signaling of the Ready to Boot Event. The Framework moved
> from a proprietary to UEFI 2.0 based mechanism. This library abstracts the caller
> from how this event is created to prevent to code form having to change with the
> diff --git a/MdePkg/Library/UefiLib/UefiLib.inf b/MdePkg/Library/UefiLib/UefiLib.inf
> index 01ed92092d..5c4064eafa 100644
> --- a/MdePkg/Library/UefiLib/UefiLib.inf
> +++ b/MdePkg/Library/UefiLib/UefiLib.inf
> @@ -60,6 +60,7 @@
> gEfiGlobalVariableGuid ## SOMETIMES_CONSUMES ## Variable
> gEfiAcpi20TableGuid ## SOMETIMES_CONSUMES ## SystemTable
> gEfiAcpi10TableGuid ## SOMETIMES_CONSUMES ## SystemTable
> + gEfiEventAfterReadyToBootGuid ## SOMETIMES_CONSUMES ## Event
>
> [Protocols]
> gEfiDriverBindingProtocolGuid ## SOMETIMES_PRODUCES
> diff --git a/MdePkg/Library/UefiLib/UefiNotTiano.c b/MdePkg/Library/UefiLib/UefiNotTiano.c
> index d84e91fd01..04fe42f9f7 100644
> --- a/MdePkg/Library/UefiLib/UefiNotTiano.c
> +++ b/MdePkg/Library/UefiLib/UefiNotTiano.c
> @@ -208,6 +208,8 @@ EfiCreateEventReadyToBootEx (
> /**
> Create, Signal, and Close the Ready to Boot event using EfiSignalEventReadyToBoot().
>
> + If successful, then create, signal and close the After Ready to Boot event.
> +
> This function abstracts the signaling of the Ready to Boot Event. The Framework moved
> from a proprietary to UEFI 2.0 based mechanism. This library abstracts the caller
> from how this event is created to prevent to code form having to change with the
> @@ -222,11 +224,27 @@ EfiSignalEventReadyToBoot (
> {
> EFI_STATUS Status;
> EFI_EVENT ReadyToBootEvent;
> + EFI_EVENT AfterReadyToBootEvent;
>
> Status = EfiCreateEventReadyToBoot (&ReadyToBootEvent);
> if (!EFI_ERROR (Status)) {
> gBS->SignalEvent (ReadyToBootEvent);
> gBS->CloseEvent (ReadyToBootEvent);
> + return;
> + }
> +
> + /* Then immediately signal the after ready to boot event group */
> + Status = gBS->CreateEventEx (
> + EVT_NOTIFY_SIGNAL,
> + TPL_CALLBACK,
> + EfiEventEmptyFunction,
> + NULL,
> + &gEfiEventAfterReadyToBootGuid,
> + AfterReadyToBootEvent
> + );
> + if (!EFI_ERROR(Status)) {
> + gBS->SignalEvent (AfterReadyToBootEvent);
> + gBS->CloseEvent (AfterReadyToBootEvent);
> }
> }
>
> --
> 2.38.1.431.g37b22c650d-goog
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [edk2-devel] [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot
2022-11-09 17:08 ` Michael D Kinney
@ 2022-11-09 17:11 ` Dionna Glaze
2022-11-09 17:31 ` Michael D Kinney
0 siblings, 1 reply; 11+ messages in thread
From: Dionna Glaze @ 2022-11-09 17:11 UTC (permalink / raw)
To: devel, michael.d.kinney; +Cc: Ard Biesheuvel, Gerd Hoffman, Yao, Jiewen
> I gave feedback about After Exit Boot Services event.
>
I saw no such event in the specification
> Why is an After Ready To Boot signal now part of this series?
>
I thought that's the event you meant, since its mantis number is 2042,
whereas before exit boot services is 2043. That fits the "same time"
you mentioned in the other email.
--
-Dionna Glaze, PhD (she/her)
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [edk2-devel] [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot
2022-11-09 17:11 ` [edk2-devel] " Dionna Glaze
@ 2022-11-09 17:31 ` Michael D Kinney
2022-11-09 17:42 ` Dionna Glaze
0 siblings, 1 reply; 11+ messages in thread
From: Michael D Kinney @ 2022-11-09 17:31 UTC (permalink / raw)
To: devel@edk2.groups.io, dionnaglaze@google.com, Kinney, Michael D
Cc: Ard Biesheuvel, Gerd Hoffman, Yao, Jiewen
Hi Dionna,
My mistake. I misread the UEFI 2.9 Spec content and thought they were both for exit boot services.
Your patch series with only Before Exit Boot Services is appropriate for your change.
The After Ready To Boot can be in its own patch series.
Best regards,
Mike
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Dionna Glaze via groups.io
> Sent: Wednesday, November 9, 2022 9:12 AM
> To: devel@edk2.groups.io; Kinney, Michael D <michael.d.kinney@intel.com>
> Cc: Ard Biesheuvel <ardb@kernel.org>; Gerd Hoffman <kraxel@redhat.com>; Yao, Jiewen <jiewen.yao@intel.com>
> Subject: Re: [edk2-devel] [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot
>
> > I gave feedback about After Exit Boot Services event.
> >
>
> I saw no such event in the specification
>
> > Why is an After Ready To Boot signal now part of this series?
> >
>
> I thought that's the event you meant, since its mantis number is 2042,
> whereas before exit boot services is 2043. That fits the "same time"
> you mentioned in the other email.
>
>
> --
> -Dionna Glaze, PhD (she/her)
>
>
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [edk2-devel] [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot
2022-11-09 17:31 ` Michael D Kinney
@ 2022-11-09 17:42 ` Dionna Glaze
0 siblings, 0 replies; 11+ messages in thread
From: Dionna Glaze @ 2022-11-09 17:42 UTC (permalink / raw)
To: Kinney, Michael D
Cc: devel@edk2.groups.io, Ard Biesheuvel, Gerd Hoffman, Yao, Jiewen
Okay, so drop v2 and go back to review v1? Nothing changed other than this.
On Wed, Nov 9, 2022 at 9:35 AM Kinney, Michael D
<michael.d.kinney@intel.com> wrote:
>
> Hi Dionna,
>
> My mistake. I misread the UEFI 2.9 Spec content and thought they were both for exit boot services.
>
> Your patch series with only Before Exit Boot Services is appropriate for your change.
>
> The After Ready To Boot can be in its own patch series.
>
> Best regards,
>
> Mike
>
> > -----Original Message-----
> > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Dionna Glaze via groups.io
> > Sent: Wednesday, November 9, 2022 9:12 AM
> > To: devel@edk2.groups.io; Kinney, Michael D <michael.d.kinney@intel.com>
> > Cc: Ard Biesheuvel <ardb@kernel.org>; Gerd Hoffman <kraxel@redhat.com>; Yao, Jiewen <jiewen.yao@intel.com>
> > Subject: Re: [edk2-devel] [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot
> >
> > > I gave feedback about After Exit Boot Services event.
> > >
> >
> > I saw no such event in the specification
> >
> > > Why is an After Ready To Boot signal now part of this series?
> > >
> >
> > I thought that's the event you meant, since its mantis number is 2042,
> > whereas before exit boot services is 2043. That fits the "same time"
> > you mentioned in the other email.
> >
> >
> > --
> > -Dionna Glaze, PhD (she/her)
> >
> >
> >
> >
>
--
-Dionna Glaze, PhD (she/her)
^ permalink raw reply [flat|nested] 11+ messages in thread
* 回复: [edk2-devel] [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot
2022-11-08 21:15 ` [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot Dionna Glaze
2022-11-09 17:08 ` Michael D Kinney
@ 2022-12-07 1:26 ` gaoliming
2022-12-07 5:27 ` Dionna Glaze
1 sibling, 1 reply; 11+ messages in thread
From: gaoliming @ 2022-12-07 1:26 UTC (permalink / raw)
To: devel, dionnaglaze
Cc: 'Michael D Kinney', 'Ard Biesheuvel',
'Gerd Hoffman', 'Jiewen Yao'
Dionna:
I add my comments below.
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Dionna Glaze
> via groups.io
> 发送时间: 2022年11月9日 5:16
> 收件人: devel@edk2.groups.io
> 抄送: Dionna Glaze <dionnaglaze@google.com>; Michael D Kinney
> <michael.d.kinney@intel.com>; Ard Biesheuvel <ardb@kernel.org>; Gerd
> Hoffman <kraxel@redhat.com>; Jiewen Yao <jiewen.yao@intel.com>
> 主题: [edk2-devel] [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after
> ReadyToBoot
>
> The Uefi v2.9 specification adds this event group in section 3.1.7,
> with its GUID defined in the Related Definitions section of
> EFI_BOOT_SERVICES.CreateEventEx() in chapter 7.
>
> Cc: "Michael D Kinney" <michael.d.kinney@intel.com>
> Cc: Ard Biesheuvel <ardb@kernel.org>
> Cc: Gerd Hoffman <kraxel@redhat.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
>
> Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
> ---
> MdePkg/Include/Library/UefiLib.h | 2 ++
> MdePkg/Library/UefiLib/UefiLib.inf | 1 +
> MdePkg/Library/UefiLib/UefiNotTiano.c | 18 ++++++++++++++++++
> 3 files changed, 21 insertions(+)
>
> diff --git a/MdePkg/Include/Library/UefiLib.h
> b/MdePkg/Include/Library/UefiLib.h
> index be7da7fdf7..2c3342351e 100644
> --- a/MdePkg/Include/Library/UefiLib.h
> +++ b/MdePkg/Include/Library/UefiLib.h
> @@ -890,6 +890,8 @@ UnicodeStringDisplayLength (
> /**
> Create, Signal, and Close the Ready to Boot event using
> EfiSignalEventReadyToBoot().
>
> + If successful, then create, signal and close the After Ready to Boot event.
> +
> This function abstracts the signaling of the Ready to Boot Event. The
> Framework moved
> from a proprietary to UEFI 2.0 based mechanism. This library abstracts
> the caller
> from how this event is created to prevent to code form having to change
> with the
> diff --git a/MdePkg/Library/UefiLib/UefiLib.inf
> b/MdePkg/Library/UefiLib/UefiLib.inf
> index 01ed92092d..5c4064eafa 100644
> --- a/MdePkg/Library/UefiLib/UefiLib.inf
> +++ b/MdePkg/Library/UefiLib/UefiLib.inf
> @@ -60,6 +60,7 @@
> gEfiGlobalVariableGuid ##
> SOMETIMES_CONSUMES ## Variable
> gEfiAcpi20TableGuid ##
> SOMETIMES_CONSUMES ## SystemTable
> gEfiAcpi10TableGuid ##
> SOMETIMES_CONSUMES ## SystemTable
> + gEfiEventAfterReadyToBootGuid ##
> SOMETIMES_CONSUMES ## Event
>
> [Protocols]
> gEfiDriverBindingProtocolGuid ##
> SOMETIMES_PRODUCES
> diff --git a/MdePkg/Library/UefiLib/UefiNotTiano.c
> b/MdePkg/Library/UefiLib/UefiNotTiano.c
> index d84e91fd01..04fe42f9f7 100644
> --- a/MdePkg/Library/UefiLib/UefiNotTiano.c
> +++ b/MdePkg/Library/UefiLib/UefiNotTiano.c
> @@ -208,6 +208,8 @@ EfiCreateEventReadyToBootEx (
> /**
> Create, Signal, and Close the Ready to Boot event using
> EfiSignalEventReadyToBoot().
>
> + If successful, then create, signal and close the After Ready to Boot event.
> +
> This function abstracts the signaling of the Ready to Boot Event. The
> Framework moved
> from a proprietary to UEFI 2.0 based mechanism. This library abstracts
> the caller
> from how this event is created to prevent to code form having to change
> with the
> @@ -222,11 +224,27 @@ EfiSignalEventReadyToBoot (
> {
> EFI_STATUS Status;
> EFI_EVENT ReadyToBootEvent;
> + EFI_EVENT AfterReadyToBootEvent;
>
> Status = EfiCreateEventReadyToBoot (&ReadyToBootEvent);
> if (!EFI_ERROR (Status)) {
> gBS->SignalEvent (ReadyToBootEvent);
> gBS->CloseEvent (ReadyToBootEvent);
> + return;
> + }
> +
Return should not be here. This means ReadyToBoot event creates successfully and return.
But, the behavior should be ReadyToBoot and AfterReadyToBoot event both trig.
Thanks
Liming
> + /* Then immediately signal the after ready to boot event group */
> + Status = gBS->CreateEventEx (
> + EVT_NOTIFY_SIGNAL,
> + TPL_CALLBACK,
> + EfiEventEmptyFunction,
> + NULL,
> + &gEfiEventAfterReadyToBootGuid,
> + AfterReadyToBootEvent
> + );
> + if (!EFI_ERROR(Status)) {
> + gBS->SignalEvent (AfterReadyToBootEvent);
> + gBS->CloseEvent (AfterReadyToBootEvent);
> }
> }
>
> --
> 2.38.1.431.g37b22c650d-goog
>
>
>
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [edk2-devel] [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot
2022-12-07 1:26 ` 回复: " gaoliming
@ 2022-12-07 5:27 ` Dionna Glaze
0 siblings, 0 replies; 11+ messages in thread
From: Dionna Glaze @ 2022-12-07 5:27 UTC (permalink / raw)
To: gaoliming
Cc: devel, Michael D Kinney, Ard Biesheuvel, Gerd Hoffman, Jiewen Yao,
Robert Phelps
On Tue, Dec 6, 2022 at 5:26 PM gaoliming <gaoliming@byosoft.com.cn> wrote:
>
> Dionna:
> I add my comments below.
>
> > -----邮件原件-----
> > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Dionna Glaze
> > via groups.io
> > 发送时间: 2022年11月9日 5:16
> > 收件人: devel@edk2.groups.io
> > 抄送: Dionna Glaze <dionnaglaze@google.com>; Michael D Kinney
> > <michael.d.kinney@intel.com>; Ard Biesheuvel <ardb@kernel.org>; Gerd
> > Hoffman <kraxel@redhat.com>; Jiewen Yao <jiewen.yao@intel.com>
> > 主题: [edk2-devel] [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after
> > ReadyToBoot
> >
> > The Uefi v2.9 specification adds this event group in section 3.1.7,
> > with its GUID defined in the Related Definitions section of
> > EFI_BOOT_SERVICES.CreateEventEx() in chapter 7.
> >
> > Cc: "Michael D Kinney" <michael.d.kinney@intel.com>
> > Cc: Ard Biesheuvel <ardb@kernel.org>
> > Cc: Gerd Hoffman <kraxel@redhat.com>
> > Cc: Jiewen Yao <jiewen.yao@intel.com>
> >
> > Signed-off-by: Dionna Glaze <dionnaglaze@google.com>
> > ---
> > MdePkg/Include/Library/UefiLib.h | 2 ++
> > MdePkg/Library/UefiLib/UefiLib.inf | 1 +
> > MdePkg/Library/UefiLib/UefiNotTiano.c | 18 ++++++++++++++++++
> > 3 files changed, 21 insertions(+)
> >
> > diff --git a/MdePkg/Include/Library/UefiLib.h
> > b/MdePkg/Include/Library/UefiLib.h
> > index be7da7fdf7..2c3342351e 100644
> > --- a/MdePkg/Include/Library/UefiLib.h
> > +++ b/MdePkg/Include/Library/UefiLib.h
> > @@ -890,6 +890,8 @@ UnicodeStringDisplayLength (
> > /**
> > Create, Signal, and Close the Ready to Boot event using
> > EfiSignalEventReadyToBoot().
> >
> > + If successful, then create, signal and close the After Ready to Boot event.
> > +
> > This function abstracts the signaling of the Ready to Boot Event. The
> > Framework moved
> > from a proprietary to UEFI 2.0 based mechanism. This library abstracts
> > the caller
> > from how this event is created to prevent to code form having to change
> > with the
> > diff --git a/MdePkg/Library/UefiLib/UefiLib.inf
> > b/MdePkg/Library/UefiLib/UefiLib.inf
> > index 01ed92092d..5c4064eafa 100644
> > --- a/MdePkg/Library/UefiLib/UefiLib.inf
> > +++ b/MdePkg/Library/UefiLib/UefiLib.inf
> > @@ -60,6 +60,7 @@
> > gEfiGlobalVariableGuid ##
> > SOMETIMES_CONSUMES ## Variable
> > gEfiAcpi20TableGuid ##
> > SOMETIMES_CONSUMES ## SystemTable
> > gEfiAcpi10TableGuid ##
> > SOMETIMES_CONSUMES ## SystemTable
> > + gEfiEventAfterReadyToBootGuid ##
> > SOMETIMES_CONSUMES ## Event
> >
> > [Protocols]
> > gEfiDriverBindingProtocolGuid ##
> > SOMETIMES_PRODUCES
> > diff --git a/MdePkg/Library/UefiLib/UefiNotTiano.c
> > b/MdePkg/Library/UefiLib/UefiNotTiano.c
> > index d84e91fd01..04fe42f9f7 100644
> > --- a/MdePkg/Library/UefiLib/UefiNotTiano.c
> > +++ b/MdePkg/Library/UefiLib/UefiNotTiano.c
> > @@ -208,6 +208,8 @@ EfiCreateEventReadyToBootEx (
> > /**
> > Create, Signal, and Close the Ready to Boot event using
> > EfiSignalEventReadyToBoot().
> >
> > + If successful, then create, signal and close the After Ready to Boot event.
> > +
> > This function abstracts the signaling of the Ready to Boot Event. The
> > Framework moved
> > from a proprietary to UEFI 2.0 based mechanism. This library abstracts
> > the caller
> > from how this event is created to prevent to code form having to change
> > with the
> > @@ -222,11 +224,27 @@ EfiSignalEventReadyToBoot (
> > {
> > EFI_STATUS Status;
> > EFI_EVENT ReadyToBootEvent;
> > + EFI_EVENT AfterReadyToBootEvent;
> >
> > Status = EfiCreateEventReadyToBoot (&ReadyToBootEvent);
> > if (!EFI_ERROR (Status)) {
> > gBS->SignalEvent (ReadyToBootEvent);
> > gBS->CloseEvent (ReadyToBootEvent);
> > + return;
> > + }
> > +
> Return should not be here. This means ReadyToBoot event creates successfully and return.
> But, the behavior should be ReadyToBoot and AfterReadyToBoot event both trig.
>
Thanks Gao, given Michael's feedback about this patch not making much
sense in the series that adds before_exit_boot_services, we decided to
go ahead and consider v1 of this series as final. Let's let Robert
Phelps take it from here, since they appear to need it such that
they're in a better position to test their implementation.
> Thanks
> Liming
> > + /* Then immediately signal the after ready to boot event group */
> > + Status = gBS->CreateEventEx (
> > + EVT_NOTIFY_SIGNAL,
> > + TPL_CALLBACK,
> > + EfiEventEmptyFunction,
> > + NULL,
> > + &gEfiEventAfterReadyToBootGuid,
> > + AfterReadyToBootEvent
> > + );
> > + if (!EFI_ERROR(Status)) {
> > + gBS->SignalEvent (AfterReadyToBootEvent);
> > + gBS->CloseEvent (AfterReadyToBootEvent);
> > }
> > }
> >
> > --
> > 2.38.1.431.g37b22c650d-goog
> >
> >
> >
> >
> >
>
>
>
--
-Dionna Glaze, PhD (she/her)
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2022-12-07 5:28 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-08 21:15 [PATCH v2 0/4] SEV-SNP accepted memory and BeforeExitBootServices Dionna Glaze
2022-11-08 21:15 ` [PATCH v2 1/4] OvmfPkg: Realize EfiMemoryAcceptProtocol in AmdSevDxe Dionna Glaze
2022-11-08 21:15 ` [PATCH v2 2/4] MdePkg: Add event groups for boot events Dionna Glaze
2022-11-08 21:15 ` [PATCH v2 3/4] MdeModulePkg: Notify BeforeExitBootServices in CoreExitBootServices Dionna Glaze
2022-11-08 21:15 ` [PATCH v2 4/4] MdePkg: Signal AfterReadyToBoot after ReadyToBoot Dionna Glaze
2022-11-09 17:08 ` Michael D Kinney
2022-11-09 17:11 ` [edk2-devel] " Dionna Glaze
2022-11-09 17:31 ` Michael D Kinney
2022-11-09 17:42 ` Dionna Glaze
2022-12-07 1:26 ` 回复: " gaoliming
2022-12-07 5:27 ` Dionna Glaze
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox