Currently, Armpkg's PlatformBootManagerLib connects all controllers to their drivers recursively, even if the active boot option does not require it. There are some historical reasons for this, some of which are being addressed in separate patches.
This series addresses the way ArmPkg's PlatformBootManagerLib implementation deals with the UEFI Shell and the UiApp: currently, the shell is always added as an ordinary boot option, which will be started if no other boot options can be started, or if it is the first one in the boot order. Once we remove the ConnectAll() call from PlatformBootManagerLib, those shells will be launched without any block or other devices connected, which may confuse novice users. So before doing so, let's make the handling a bit more sane: - add a 's' hotkey that enters the UEFI shell regardless of its priority in the BootOrder - this shell will be entered with no devices connected after patch #4 - enter the UiApp as a last resort if no boot options can be started - make the UEFI Shell boot option inactive, so it is not started by default (only by hotkey or BootNext), but is still accessible via the UiApp boot manager menu - remove the ConnectAll() call from PlatformBootManagerLib Changes since v1: - add Laszlo's R-b to patches #1, #2 and #5, but omit it from #4, which has changed - make the generated boot option for the shell inactive but not hidden - this will prevent it from being selected by default - add a patch to deal with inactive boot options correctly, by not omitting them from the boot selection menu presented by the boot manager in UiApp - some commit log tweaks to fix typos and align the text with the above changes Cc: Laszlo Ersek <[email protected]> Cc: Leif Lindholm <[email protected]> Cc: Ray Ni <[email protected]> Cc: Zhichao Gao <[email protected]> Ard Biesheuvel (5): ArmPkg/PlatformBootManagerLib: register 's' as UEFI Shell hotkey ArmPkg/PlatformBootManagerLib: fall back to the UiApp on boot failure MdeModulePkg/BootManagerUiLib: show inactive boot options ArmPkg/PlatformBootManagerLib: hide UEFI Shell as a regular boot option ArmPkg/PlatformBootManagerLib: don't connect all devices on each boot .../PlatformBootManagerLib/PlatformBm.c | 35 +++++++++++-------- .../Library/BootManagerUiLib/BootManager.c | 4 +-- 2 files changed, 22 insertions(+), 17 deletions(-) -- 2.17.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#60387): https://edk2.groups.io/g/devel/message/60387 Mute This Topic: https://groups.io/mt/74518309/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
