summaryrefslogtreecommitdiffstats
path: root/ArmVirtPkg/Library
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2016-07-08 11:20:32 +0200
committerLaszlo Ersek <lersek@redhat.com>2016-07-08 13:11:31 +0200
commitefadd41590b4d5251dd7e254f68bd09b1bb0a4b0 (patch)
tree5d17bc40e8699a91a4ad6e28d01946be7914fa28 /ArmVirtPkg/Library
parent694673c9108f22dd7da66e6ce2c118c929f110dd (diff)
downloadedk2-efadd41590b4d5251dd7e254f68bd09b1bb0a4b0.tar.gz
edk2-efadd41590b4d5251dd7e254f68bd09b1bb0a4b0.tar.bz2
edk2-efadd41590b4d5251dd7e254f68bd09b1bb0a4b0.zip
ArmVirtPkg/PlatformBootManagerLib: Postpone the shell registration
This patch ports Gary's OvmfPkg commit 14b2ebc30c8b to ArmVirtPkg. Turns out Gary's argument in 14b2ebc30c8b is not only valid for Xen. The same situation arises with QEMU if: - the user specifies no boot order via fw_cfg at all (so QemuBootOrderLib won't touch the boot order), and - the varstore file has just been created from the varstore template. In this case the user is dropped to the UEFI shell (because the shell is registered earlier than all the auto-generated options), which is likely not what the user wants. Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Gary Lin <glin@suse.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Diffstat (limited to 'ArmVirtPkg/Library')
-rw-r--r--ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c b/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
index 198d0602b3..eaafe7ff57 100644
--- a/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
+++ b/ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c
@@ -424,12 +424,6 @@ PlatformRegisterOptionsAndKeys (
NULL, (UINT16) BootOption.OptionNumber, 0, &Esc, NULL
);
ASSERT (Status == EFI_SUCCESS || Status == EFI_ALREADY_STARTED);
- //
- // Register UEFI Shell
- //
- PlatformRegisterFvBootOption (
- PcdGetPtr (PcdShellFile), L"EFI Internal Shell", LOAD_OPTION_ACTIVE
- );
}
@@ -558,6 +552,14 @@ PlatformBootManagerAfterConsole (
// the QEMU configuration.
//
EfiBootManagerRefreshAllBootOption ();
+
+ //
+ // Register UEFI Shell
+ //
+ PlatformRegisterFvBootOption (
+ PcdGetPtr (PcdShellFile), L"EFI Internal Shell", LOAD_OPTION_ACTIVE
+ );
+
SetBootOrderFromQemu ();
}