diff options
author | Laszlo Ersek <lersek@redhat.com> | 2015-09-18 13:58:35 +0000 |
---|---|---|
committer | lersek <lersek@Edk2> | 2015-09-18 13:58:35 +0000 |
commit | 9a470dae60ed0c57afdf61342616dd1768ba5ec8 (patch) | |
tree | 4f646347b5dd46d7950644357625f4aa3475c3ff | |
parent | 7b577b246d34ace481041ad1599507121d5d7eed (diff) | |
download | edk2-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.inf | 1 | ||||
-rw-r--r-- | ArmVirtPkg/Library/PlatformIntelBdsLib/QemuKernel.c | 6 |
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 (
|