)\r
{\r
EFI_INPUT_KEY Enter;\r
- EFI_INPUT_KEY F2;\r
+ EFI_INPUT_KEY CustomKey;\r
EFI_INPUT_KEY Down;\r
EFI_BOOT_MANAGER_LOAD_OPTION BootOption;\r
EFI_STATUS Status;\r
Enter.UnicodeChar = CHAR_CARRIAGE_RETURN;\r
EfiBootManagerRegisterContinueKeyOption (0, &Enter, NULL);\r
\r
- //\r
- // Map F2 to Boot Manager Menu\r
- //\r
- F2.ScanCode = SCAN_F2;\r
- F2.UnicodeChar = CHAR_NULL;\r
+ if (FixedPcdGetBool (PcdBootManagerEscape)) {\r
+ //\r
+ // Map Esc to Boot Manager Menu\r
+ //\r
+ CustomKey.ScanCode = SCAN_ESC;\r
+ CustomKey.UnicodeChar = CHAR_NULL;\r
+ } else {\r
+ //\r
+ // Map Esc to Boot Manager Menu\r
+ //\r
+ CustomKey.ScanCode = SCAN_F2;\r
+ CustomKey.UnicodeChar = CHAR_NULL;\r
+ }\r
+\r
EfiBootManagerGetBootManagerMenu (&BootOption);\r
- EfiBootManagerAddKeyOptionVariable (NULL, (UINT16)BootOption.OptionNumber, 0, &F2, NULL);\r
+ EfiBootManagerAddKeyOptionVariable (NULL, (UINT16)BootOption.OptionNumber, 0, &CustomKey, NULL);\r
\r
//\r
// Also add Down key to Boot Manager Menu since some serial terminals don't support F2 key.\r
//\r
PlatformRegisterFvBootOption (PcdGetPtr (PcdShellFile), L"UEFI Shell", LOAD_OPTION_ACTIVE);\r
\r
- Print (\r
- L"\n"\r
- L"F2 or Down to enter Boot Manager Menu.\n"\r
- L"ENTER to boot directly.\n"\r
- L"\n"\r
- );\r
+ if (FixedPcdGetBool (PcdBootManagerEscape)) {\r
+ Print (\r
+ L"\n"\r
+ L"Esc or Down to enter Boot Manager Menu.\n"\r
+ L"ENTER to boot directly.\n"\r
+ L"\n"\r
+ );\r
+ } else {\r
+ Print (\r
+ L"\n"\r
+ L"F2 or Down to enter Boot Manager Menu.\n"\r
+ L"ENTER to boot directly.\n"\r
+ L"\n"\r
+ );\r
+ }\r
}\r
\r
/**\r
# Above 4G Memory\r
gUefiPayloadPkgTokenSpaceGuid.PcdDispatchModuleAbove4GMemory|TRUE|BOOLEAN|0x00000019\r
\r
+# Boot Manager Key\r
+gUefiPayloadPkgTokenSpaceGuid.PcdBootManagerEscape|FALSE|BOOLEAN|0x00000020\r
+\r
## FFS filename to find the default variable initial data file.\r
# @Prompt FFS Name of variable initial data file\r
gUefiPayloadPkgTokenSpaceGuid.PcdNvsDataFile |{ 0x1a, 0xf1, 0xb1, 0xae, 0x42, 0xcc, 0xcf, 0x4e, 0xac, 0x60, 0xdb, 0xab, 0xf6, 0xca, 0x69, 0xe6 }|VOID*|0x00000025\r
DEFINE SECURITY_STUB_ENABLE = TRUE\r
DEFINE SMM_SUPPORT = FALSE\r
DEFINE ABOVE_4G_MEMORY = TRUE\r
+ DEFINE BOOT_MANAGER_ESCAPE = FALSE\r
#\r
# SBL: UEFI payload for Slim Bootloader\r
# COREBOOT: UEFI payload for coreboot\r
!endif\r
\r
gUefiPayloadPkgTokenSpaceGuid.PcdDispatchModuleAbove4GMemory|$(ABOVE_4G_MEMORY)\r
+ gUefiPayloadPkgTokenSpaceGuid.PcdBootManagerEscape|$(BOOT_MANAGER_ESCAPE)\r
\r
[PcdsPatchableInModule.X64]\r
gPcAtChipsetPkgTokenSpaceGuid.PcdRtcIndexRegister|$(RTC_INDEX_REGISTER)\r