On 05/26/20 18:13, Ard Biesheuvel wrote: > In preparation of hiding the UEFI Shell boot option as an ordinary > boot option, make sure we can invoke it directly using the 's' > hotkey. Without ConnectAll() having been called, this results in > a shell that may have no block devices or other things connected, > so don't advertise the 's' in the console string that is printed > at boot - for novice users, we will go through the UiApp which > connects everything first. For advanced use, having the ability > to invoke the UEFI shell without any devices connected may be an > advantage, so let's keep this behavior as is for now. > > Signed-off-by: Ard Biesheuvel <ard.biesheu...@arm.com> > --- > ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c > b/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c > index 4aca1382b042..23c925bbdb9c 100644 > --- a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c > +++ b/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c > @@ -357,7 +357,8 @@ VOID > PlatformRegisterFvBootOption ( > CONST EFI_GUID *FileGuid, > CHAR16 *Description, > - UINT32 Attributes > + UINT32 Attributes, > + EFI_INPUT_KEY *Key > ) > { > EFI_STATUS Status; > @@ -409,6 +410,9 @@ PlatformRegisterFvBootOption ( > if (OptionIndex == -1) { > Status = EfiBootManagerAddLoadOptionVariable (&NewOption, MAX_UINTN); > ASSERT_EFI_ERROR (Status); > + Status = EfiBootManagerAddKeyOptionVariable (NULL, > + (UINT16)NewOption.OptionNumber, 0, Key, NULL); > + ASSERT (Status == EFI_SUCCESS || Status == EFI_ALREADY_STARTED); > } > EfiBootManagerFreeLoadOption (&NewOption); > EfiBootManagerFreeLoadOptions (BootOptions, BootOptionCount); > @@ -721,6 +725,7 @@ PlatformBootManagerAfterConsole ( > UINTN FirmwareVerLength; > UINTN PosX; > UINTN PosY; > + EFI_INPUT_KEY Key; > > FirmwareVerLength = StrLen (PcdGetPtr (PcdFirmwareVersionString)); > > @@ -770,8 +775,10 @@ PlatformBootManagerAfterConsole ( > // > // Register UEFI Shell > // > + Key.ScanCode = SCAN_NULL; > + Key.UnicodeChar = L's'; > PlatformRegisterFvBootOption ( > - &gUefiShellFileGuid, L"UEFI Shell", LOAD_OPTION_ACTIVE > + &gUefiShellFileGuid, L"UEFI Shell", LOAD_OPTION_ACTIVE, &Key > ); > } > >
Reviewed-by: Laszlo Ersek <ler...@redhat.com> -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#60356): https://edk2.groups.io/g/devel/message/60356 Mute This Topic: https://groups.io/mt/74481032/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-