diff options
author | Ard Biesheuvel <ard.biesheuvel@arm.com> | 2020-05-28 11:17:38 +0200 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2020-06-06 07:49:42 +0000 |
commit | 40e2e3ca33f93f5d45b469bd7aa486b1423ce9ad (patch) | |
tree | 0be1195cb8242241c4674a0f81b185ed61c069cb /ArmPkg | |
parent | 321b07888973fd089337656fd975c0527c275b35 (diff) | |
download | edk2-40e2e3ca33f93f5d45b469bd7aa486b1423ce9ad.tar.gz edk2-40e2e3ca33f93f5d45b469bd7aa486b1423ce9ad.tar.bz2 edk2-40e2e3ca33f93f5d45b469bd7aa486b1423ce9ad.zip |
ArmPkg/PlatformBootManagerLib: fall back to the UiApp on boot failure
As a last resort, drop into the UiApp application when no active boot
options could be started. Doing so will connect all devices, and so
it will allow the user to enter the Boot Manager submenu and pick a
network or removable disk option.
Note that this only occurs if even the default removable filepath
could not be booted (e.g., \EFI\BOOT\BOOTAA64.EFI on AArch64)
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
Diffstat (limited to 'ArmPkg')
-rw-r--r-- | ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c b/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c index 23c925bbdb..85cb32f6d7 100644 --- a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c +++ b/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c @@ -830,5 +830,15 @@ PlatformBootManagerUnableToBoot ( VOID
)
{
- return;
+ EFI_STATUS Status;
+ EFI_BOOT_MANAGER_LOAD_OPTION BootManagerMenu;
+
+ Status = EfiBootManagerGetBootManagerMenu (&BootManagerMenu);
+ if (EFI_ERROR (Status)) {
+ return;
+ }
+
+ for (;;) {
+ EfiBootManagerBoot (&BootManagerMenu);
+ }
}
|