summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@arm.com>2020-05-28 11:17:39 +0200
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2020-06-06 07:49:42 +0000
commit4ef72fe0222fe2333c6c2249ed614310fd17c193 (patch)
tree82e42630973294ddaa3c3eb756544fd7430abf3d /MdeModulePkg
parent40e2e3ca33f93f5d45b469bd7aa486b1423ce9ad (diff)
downloadedk2-4ef72fe0222fe2333c6c2249ed614310fd17c193.tar.gz
edk2-4ef72fe0222fe2333c6c2249ed614310fd17c193.tar.bz2
edk2-4ef72fe0222fe2333c6c2249ed614310fd17c193.zip
MdeModulePkg/BootManagerUiLib: show inactive boot options
UEFI boot options may exist but have the LOAD_OPTION_ACTIVE flag cleared. This means that the boot option should not be selected by default, but it does not mean it should be omitted from the boot selection presented by the boot manager: for this purpose, another flag LOAD_OPTION_HIDDEN exists. Given that the latter flag exists solely for the purpose of omitting boot options from the boot selection menu, and LOAD_OPTION_XXX flags can be combined if desired, hiding inactive boot options as well is a mistake, and violates the intent of paragraph 3.1.3 of the UEFI specification (revision 2.8 errata A). Let's fix this by dropping the LOAD_OPTION_ACTIVE check from the code that populates the boot selection menu. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Acked-by: Leif Lindholm <leif@nuviainc.com> Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Diffstat (limited to 'MdeModulePkg')
-rw-r--r--MdeModulePkg/Library/BootManagerUiLib/BootManager.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/MdeModulePkg/Library/BootManagerUiLib/BootManager.c b/MdeModulePkg/Library/BootManagerUiLib/BootManager.c
index 13b40e11b3..4b2c4c77a1 100644
--- a/MdeModulePkg/Library/BootManagerUiLib/BootManager.c
+++ b/MdeModulePkg/Library/BootManagerUiLib/BootManager.c
@@ -535,9 +535,9 @@ UpdateBootManager (
mKeyInput++;
//
- // Don't display the hidden/inactive boot option
+ // Don't display hidden boot options, but retain inactive ones.
//
- if (((BootOption[Index].Attributes & LOAD_OPTION_HIDDEN) != 0) || ((BootOption[Index].Attributes & LOAD_OPTION_ACTIVE) == 0)) {
+ if ((BootOption[Index].Attributes & LOAD_OPTION_HIDDEN) != 0) {
continue;
}