summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2015-09-18 13:58:35 +0000
committerlersek <lersek@Edk2>2015-09-18 13:58:35 +0000
commit9a470dae60ed0c57afdf61342616dd1768ba5ec8 (patch)
tree4f646347b5dd46d7950644357625f4aa3475c3ff
parent7b577b246d34ace481041ad1599507121d5d7eed (diff)
downloadedk2-9a470dae60ed0c57afdf61342616dd1768ba5ec8.zip
edk2-9a470dae60ed0c57afdf61342616dd1768ba5ec8.tar.gz
edk2-9a470dae60ed0c57afdf61342616dd1768ba5ec8.tar.bz2
ArmVirtPkg: PlatformIntelBdsLib: signal ReadyToBoot on direct kernel boot
According to the UEFI spec, EFI_EVENT_GROUP_READY_TO_BOOT "is notified by the system when the Boot Manager is about to load and execute a boot option". ArmVirtPkg doesn't do this currently when launching a kernel from the QEMU command line. OvmfPkg does (see git commit 28a34033ee). At least two edk2-wide callbacks are worth mentioning: - OnReadyToBoot() in "MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c" performs variable reclaim and (optionally) installs variable usage statistics as a vendor config table; - OnReadyToBoot() in "SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c" installs the image execution info table if it doesn't exist yet, in SecureBoot-enabled builds. Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18513 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf1
-rw-r--r--ArmVirtPkg/Library/PlatformIntelBdsLib/QemuKernel.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf b/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
index 9a3cfcd..79ba7b2 100644
--- a/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
+++ b/ArmVirtPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
@@ -53,6 +53,7 @@
QemuBootOrderLib
QemuFwCfgLib
UefiBootServicesTableLib
+ UefiLib
UefiRuntimeServicesTableLib
[FixedPcd]
diff --git a/ArmVirtPkg/Library/PlatformIntelBdsLib/QemuKernel.c b/ArmVirtPkg/Library/PlatformIntelBdsLib/QemuKernel.c
index 21545f0..b882dd2 100644
--- a/ArmVirtPkg/Library/PlatformIntelBdsLib/QemuKernel.c
+++ b/ArmVirtPkg/Library/PlatformIntelBdsLib/QemuKernel.c
@@ -20,6 +20,7 @@
#include <Guid/FileSystemVolumeLabelInfo.h>
#include <Library/PrintLib.h>
#include <Library/QemuFwCfgLib.h>
+#include <Library/UefiLib.h>
#include <Protocol/DevicePath.h>
#include <Protocol/LoadedImage.h>
#include <Protocol/SimpleFileSystem.h>
@@ -1066,6 +1067,11 @@ TryRunningQemuKernel (
}
//
+ // Signal the EFI_EVENT_GROUP_READY_TO_BOOT event.
+ //
+ EfiSignalEventReadyToBoot();
+
+ //
// Start the image.
//
Status = gBS->StartImage (