mirror of https://github.com/acidanthera/audk.git
ArmPkg/PlatformBootManagerLib: register 's' as UEFI Shell hotkey
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.biesheuvel@arm.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Leif Lindholm <leif@nuviainc.com>
This commit is contained in:
parent
0ae52d4fd1
commit
321b078889
|
@ -357,7 +357,8 @@ VOID
|
||||||
PlatformRegisterFvBootOption (
|
PlatformRegisterFvBootOption (
|
||||||
CONST EFI_GUID *FileGuid,
|
CONST EFI_GUID *FileGuid,
|
||||||
CHAR16 *Description,
|
CHAR16 *Description,
|
||||||
UINT32 Attributes
|
UINT32 Attributes,
|
||||||
|
EFI_INPUT_KEY *Key
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
@ -409,6 +410,9 @@ PlatformRegisterFvBootOption (
|
||||||
if (OptionIndex == -1) {
|
if (OptionIndex == -1) {
|
||||||
Status = EfiBootManagerAddLoadOptionVariable (&NewOption, MAX_UINTN);
|
Status = EfiBootManagerAddLoadOptionVariable (&NewOption, MAX_UINTN);
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
Status = EfiBootManagerAddKeyOptionVariable (NULL,
|
||||||
|
(UINT16)NewOption.OptionNumber, 0, Key, NULL);
|
||||||
|
ASSERT (Status == EFI_SUCCESS || Status == EFI_ALREADY_STARTED);
|
||||||
}
|
}
|
||||||
EfiBootManagerFreeLoadOption (&NewOption);
|
EfiBootManagerFreeLoadOption (&NewOption);
|
||||||
EfiBootManagerFreeLoadOptions (BootOptions, BootOptionCount);
|
EfiBootManagerFreeLoadOptions (BootOptions, BootOptionCount);
|
||||||
|
@ -721,6 +725,7 @@ PlatformBootManagerAfterConsole (
|
||||||
UINTN FirmwareVerLength;
|
UINTN FirmwareVerLength;
|
||||||
UINTN PosX;
|
UINTN PosX;
|
||||||
UINTN PosY;
|
UINTN PosY;
|
||||||
|
EFI_INPUT_KEY Key;
|
||||||
|
|
||||||
FirmwareVerLength = StrLen (PcdGetPtr (PcdFirmwareVersionString));
|
FirmwareVerLength = StrLen (PcdGetPtr (PcdFirmwareVersionString));
|
||||||
|
|
||||||
|
@ -770,8 +775,10 @@ PlatformBootManagerAfterConsole (
|
||||||
//
|
//
|
||||||
// Register UEFI Shell
|
// Register UEFI Shell
|
||||||
//
|
//
|
||||||
|
Key.ScanCode = SCAN_NULL;
|
||||||
|
Key.UnicodeChar = L's';
|
||||||
PlatformRegisterFvBootOption (
|
PlatformRegisterFvBootOption (
|
||||||
&gUefiShellFileGuid, L"UEFI Shell", LOAD_OPTION_ACTIVE
|
&gUefiShellFileGuid, L"UEFI Shell", LOAD_OPTION_ACTIVE, &Key
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue