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
This commit is contained in:
Laszlo Ersek 2015-09-18 13:58:35 +00:00 committed by lersek
parent 7b577b246d
commit 9a470dae60
2 changed files with 7 additions and 0 deletions

View File

@ -53,6 +53,7 @@
QemuBootOrderLib QemuBootOrderLib
QemuFwCfgLib QemuFwCfgLib
UefiBootServicesTableLib UefiBootServicesTableLib
UefiLib
UefiRuntimeServicesTableLib UefiRuntimeServicesTableLib
[FixedPcd] [FixedPcd]

View File

@ -20,6 +20,7 @@
#include <Guid/FileSystemVolumeLabelInfo.h> #include <Guid/FileSystemVolumeLabelInfo.h>
#include <Library/PrintLib.h> #include <Library/PrintLib.h>
#include <Library/QemuFwCfgLib.h> #include <Library/QemuFwCfgLib.h>
#include <Library/UefiLib.h>
#include <Protocol/DevicePath.h> #include <Protocol/DevicePath.h>
#include <Protocol/LoadedImage.h> #include <Protocol/LoadedImage.h>
#include <Protocol/SimpleFileSystem.h> #include <Protocol/SimpleFileSystem.h>
@ -1065,6 +1066,11 @@ TryRunningQemuKernel (
(CHAR16 *)KernelLoadedImage->LoadOptions)); (CHAR16 *)KernelLoadedImage->LoadOptions));
} }
//
// Signal the EFI_EVENT_GROUP_READY_TO_BOOT event.
//
EfiSignalEventReadyToBoot();
// //
// Start the image. // Start the image.
// //