audk/MdeModulePkg
Neal Gompa 8c1e9f9c6f MdeModulePkg/UefiBootManagerLib: Signal ReadyToBoot on platform recovery
Currently, the ReadyToBoot event is only signaled when a formal Boot
Manager option is executed (in BmBoot.c -> EfiBootManagerBoot ()).

However, the introduction of Platform Recovery in UEFI 2.5 makes it
necessary to signal ReadyToBoot when a Platform Recovery boot loader
runs because otherwise it may lead to the execution of a boot loader
that has similar requirements to a regular one that is not launched
as a Boot Manager option.

This is especially critical to ensuring that the graphical console is
actually usable during platform recovery, as some platforms do rely on
the ConsolePrefDxe driver, which only performs console initialization
after ReadyToBoot is triggered.

This patch fixes that behavior by calling EfiSignalEventReadyToBoot ()
in EfiBootManagerProcessLoadOption () when invoking platform recovery,
which is the function that sets up the platform recovery boot process.

The expected behavior has been clarified in the UEFI 2.10 specification
to explicitly indicate this behavior is required for correct operation.

This is a rebased version of the patch originally written by Pete Batard.

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2831

Co-authored-by: Pete Batard <pete@akeo.ie>
Signed-off-by: Neal Gompa <ngompa@fedoraproject.org>
Reviewed-by: Jeremy Linton <jeremy.linton@arm.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <quic_llindhol@quicinc.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2023-12-19 13:56:58 +00:00
..
Application MdeModulePkg/CapsuleApp: Add EFIAPI to CompareFileNameInAlphabet() 2023-05-06 17:48:49 +00:00
Bus MdeModulePkg/Bus: Fix XhciDxe Linker Issues 2023-12-06 23:52:13 +00:00
Core MdeModulePkg: Optimize CoreInstallMultipleProtocolInterfaces 2023-12-01 00:53:56 +00:00
Include MdeModulePkg: Update DumpImageRecord() in ImagePropertiesRecordLib 2023-11-27 18:55:18 +00:00
Library MdeModulePkg/UefiBootManagerLib: Signal ReadyToBoot on platform recovery 2023-12-19 13:56:58 +00:00
Logo MdeModulePkg/Logo: Add LoongArch64 architecture. 2022-10-14 02:16:33 +00:00
Test MdeModulePkg: Update DumpImageRecord() in ImagePropertiesRecordLib 2023-11-27 18:55:18 +00:00
Universal MdeModulePkg/Variable: Merge variable header + data update into one step 2023-11-29 01:45:25 +00:00
MdeModulePkg.ci.yaml MdeModulePkg: CI: Add PrEval entry 2023-10-23 20:17:52 +00:00
MdeModulePkg.dec MdeModulePkg: Add ImagePropertiesRecordLib 2023-11-27 18:55:18 +00:00
MdeModulePkg.dsc MdeModulePkg: Add ImagePropertiesRecordLib 2023-11-27 18:55:18 +00:00
MdeModulePkg.uni MdeModulePkg: Add TraceHubDebugSysTLib library 2023-05-11 07:26:38 +00:00
MdeModulePkgExtra.uni MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00