mirror of https://github.com/acidanthera/audk.git
UefiPayloadPkg: Make Boot Manager Key configurable
Provide a build option to use [Esc] instead of [F2] for devices such as Chromebooks that don't have F-keys. Cc: Guo Dong <guo.dong@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Maurice Ma <maurice.ma@intel.com> Cc: Benjamin You <benjamin.you@intel.com> Signed-off-by: Sean Rhodes <sean@starlabs.systems> Reviewed-by: Ray Ni <ray.ni@Intel.com> Reviewed-by: Guo Dong <guo.dong@intel.com>
This commit is contained in:
parent
79f2734e5a
commit
af74efe494
|
@ -164,7 +164,7 @@ PlatformBootManagerBeforeConsole (
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_INPUT_KEY Enter;
|
EFI_INPUT_KEY Enter;
|
||||||
EFI_INPUT_KEY F2;
|
EFI_INPUT_KEY CustomKey;
|
||||||
EFI_INPUT_KEY Down;
|
EFI_INPUT_KEY Down;
|
||||||
EFI_BOOT_MANAGER_LOAD_OPTION BootOption;
|
EFI_BOOT_MANAGER_LOAD_OPTION BootOption;
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
@ -186,13 +186,22 @@ PlatformBootManagerBeforeConsole (
|
||||||
Enter.UnicodeChar = CHAR_CARRIAGE_RETURN;
|
Enter.UnicodeChar = CHAR_CARRIAGE_RETURN;
|
||||||
EfiBootManagerRegisterContinueKeyOption (0, &Enter, NULL);
|
EfiBootManagerRegisterContinueKeyOption (0, &Enter, NULL);
|
||||||
|
|
||||||
|
if (FixedPcdGetBool (PcdBootManagerEscape)) {
|
||||||
//
|
//
|
||||||
// Map F2 to Boot Manager Menu
|
// Map Esc to Boot Manager Menu
|
||||||
//
|
//
|
||||||
F2.ScanCode = SCAN_F2;
|
CustomKey.ScanCode = SCAN_ESC;
|
||||||
F2.UnicodeChar = CHAR_NULL;
|
CustomKey.UnicodeChar = CHAR_NULL;
|
||||||
|
} else {
|
||||||
|
//
|
||||||
|
// Map Esc to Boot Manager Menu
|
||||||
|
//
|
||||||
|
CustomKey.ScanCode = SCAN_F2;
|
||||||
|
CustomKey.UnicodeChar = CHAR_NULL;
|
||||||
|
}
|
||||||
|
|
||||||
EfiBootManagerGetBootManagerMenu (&BootOption);
|
EfiBootManagerGetBootManagerMenu (&BootOption);
|
||||||
EfiBootManagerAddKeyOptionVariable (NULL, (UINT16)BootOption.OptionNumber, 0, &F2, NULL);
|
EfiBootManagerAddKeyOptionVariable (NULL, (UINT16)BootOption.OptionNumber, 0, &CustomKey, NULL);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Also add Down key to Boot Manager Menu since some serial terminals don't support F2 key.
|
// Also add Down key to Boot Manager Menu since some serial terminals don't support F2 key.
|
||||||
|
@ -251,12 +260,21 @@ PlatformBootManagerAfterConsole (
|
||||||
//
|
//
|
||||||
PlatformRegisterFvBootOption (PcdGetPtr (PcdShellFile), L"UEFI Shell", LOAD_OPTION_ACTIVE);
|
PlatformRegisterFvBootOption (PcdGetPtr (PcdShellFile), L"UEFI Shell", LOAD_OPTION_ACTIVE);
|
||||||
|
|
||||||
|
if (FixedPcdGetBool (PcdBootManagerEscape)) {
|
||||||
|
Print (
|
||||||
|
L"\n"
|
||||||
|
L"Esc or Down to enter Boot Manager Menu.\n"
|
||||||
|
L"ENTER to boot directly.\n"
|
||||||
|
L"\n"
|
||||||
|
);
|
||||||
|
} else {
|
||||||
Print (
|
Print (
|
||||||
L"\n"
|
L"\n"
|
||||||
L"F2 or Down to enter Boot Manager Menu.\n"
|
L"F2 or Down to enter Boot Manager Menu.\n"
|
||||||
L"ENTER to boot directly.\n"
|
L"ENTER to boot directly.\n"
|
||||||
L"\n"
|
L"\n"
|
||||||
);
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -73,3 +73,4 @@
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
|
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits
|
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile
|
gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile
|
||||||
|
gUefiPayloadPkgTokenSpaceGuid.PcdBootManagerEscape
|
||||||
|
|
|
@ -86,6 +86,9 @@ gUefiPayloadPkgTokenSpaceGuid.PcdPcdDriverFile|{ 0x57, 0x72, 0xcf, 0x80, 0xab, 0
|
||||||
# Above 4G Memory
|
# Above 4G Memory
|
||||||
gUefiPayloadPkgTokenSpaceGuid.PcdDispatchModuleAbove4GMemory|TRUE|BOOLEAN|0x00000019
|
gUefiPayloadPkgTokenSpaceGuid.PcdDispatchModuleAbove4GMemory|TRUE|BOOLEAN|0x00000019
|
||||||
|
|
||||||
|
# Boot Manager Key
|
||||||
|
gUefiPayloadPkgTokenSpaceGuid.PcdBootManagerEscape|FALSE|BOOLEAN|0x00000020
|
||||||
|
|
||||||
## FFS filename to find the default variable initial data file.
|
## FFS filename to find the default variable initial data file.
|
||||||
# @Prompt FFS Name of variable initial data file
|
# @Prompt FFS Name of variable initial data file
|
||||||
gUefiPayloadPkgTokenSpaceGuid.PcdNvsDataFile |{ 0x1a, 0xf1, 0xb1, 0xae, 0x42, 0xcc, 0xcf, 0x4e, 0xac, 0x60, 0xdb, 0xab, 0xf6, 0xca, 0x69, 0xe6 }|VOID*|0x00000025
|
gUefiPayloadPkgTokenSpaceGuid.PcdNvsDataFile |{ 0x1a, 0xf1, 0xb1, 0xae, 0x42, 0xcc, 0xcf, 0x4e, 0xac, 0x60, 0xdb, 0xab, 0xf6, 0xca, 0x69, 0xe6 }|VOID*|0x00000025
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
DEFINE SECURITY_STUB_ENABLE = TRUE
|
DEFINE SECURITY_STUB_ENABLE = TRUE
|
||||||
DEFINE SMM_SUPPORT = FALSE
|
DEFINE SMM_SUPPORT = FALSE
|
||||||
DEFINE ABOVE_4G_MEMORY = TRUE
|
DEFINE ABOVE_4G_MEMORY = TRUE
|
||||||
|
DEFINE BOOT_MANAGER_ESCAPE = FALSE
|
||||||
#
|
#
|
||||||
# SBL: UEFI payload for Slim Bootloader
|
# SBL: UEFI payload for Slim Bootloader
|
||||||
# COREBOOT: UEFI payload for coreboot
|
# COREBOOT: UEFI payload for coreboot
|
||||||
|
@ -401,6 +402,7 @@
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
gUefiPayloadPkgTokenSpaceGuid.PcdDispatchModuleAbove4GMemory|$(ABOVE_4G_MEMORY)
|
gUefiPayloadPkgTokenSpaceGuid.PcdDispatchModuleAbove4GMemory|$(ABOVE_4G_MEMORY)
|
||||||
|
gUefiPayloadPkgTokenSpaceGuid.PcdBootManagerEscape|$(BOOT_MANAGER_ESCAPE)
|
||||||
|
|
||||||
[PcdsPatchableInModule.X64]
|
[PcdsPatchableInModule.X64]
|
||||||
gPcAtChipsetPkgTokenSpaceGuid.PcdRtcIndexRegister|$(RTC_INDEX_REGISTER)
|
gPcAtChipsetPkgTokenSpaceGuid.PcdRtcIndexRegister|$(RTC_INDEX_REGISTER)
|
||||||
|
|
Loading…
Reference in New Issue