mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-10-31 17:09:09 +00:00 
			
		
		
		
	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                 F2; | ||||
|   EFI_INPUT_KEY                 CustomKey; | ||||
|   EFI_INPUT_KEY                 Down; | ||||
|   EFI_BOOT_MANAGER_LOAD_OPTION  BootOption; | ||||
|   EFI_STATUS                    Status; | ||||
| @ -186,13 +186,22 @@ PlatformBootManagerBeforeConsole ( | ||||
|   Enter.UnicodeChar = CHAR_CARRIAGE_RETURN; | ||||
|   EfiBootManagerRegisterContinueKeyOption (0, &Enter, NULL); | ||||
| 
 | ||||
|   //
 | ||||
|   // Map F2 to Boot Manager Menu
 | ||||
|   //
 | ||||
|   F2.ScanCode    = SCAN_F2; | ||||
|   F2.UnicodeChar = CHAR_NULL; | ||||
|   if (FixedPcdGetBool (PcdBootManagerEscape)) { | ||||
|     //
 | ||||
|     // Map Esc to Boot Manager Menu
 | ||||
|     //
 | ||||
|     CustomKey.ScanCode    = SCAN_ESC; | ||||
|     CustomKey.UnicodeChar = CHAR_NULL; | ||||
|   } else { | ||||
|     //
 | ||||
|     // Map Esc to Boot Manager Menu
 | ||||
|     //
 | ||||
|     CustomKey.ScanCode    = SCAN_F2; | ||||
|     CustomKey.UnicodeChar = CHAR_NULL; | ||||
|   } | ||||
| 
 | ||||
|   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.
 | ||||
| @ -251,12 +260,21 @@ PlatformBootManagerAfterConsole ( | ||||
|   //
 | ||||
|   PlatformRegisterFvBootOption (PcdGetPtr (PcdShellFile), L"UEFI Shell", LOAD_OPTION_ACTIVE); | ||||
| 
 | ||||
|   Print ( | ||||
|     L"\n" | ||||
|     L"F2 or Down      to enter Boot Manager Menu.\n" | ||||
|     L"ENTER           to boot directly.\n" | ||||
|     L"\n" | ||||
|     ); | ||||
|   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 ( | ||||
|       L"\n" | ||||
|       L"F2 or Down      to enter Boot Manager Menu.\n" | ||||
|       L"ENTER           to boot directly.\n" | ||||
|       L"\n" | ||||
|       ); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  | ||||
| @ -73,3 +73,4 @@ | ||||
|   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity | ||||
|   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits | ||||
|   gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile | ||||
|   gUefiPayloadPkgTokenSpaceGuid.PcdBootManagerEscape | ||||
|  | ||||
| @ -86,6 +86,9 @@ gUefiPayloadPkgTokenSpaceGuid.PcdPcdDriverFile|{ 0x57, 0x72, 0xcf, 0x80, 0xab, 0 | ||||
| # Above 4G Memory | ||||
| gUefiPayloadPkgTokenSpaceGuid.PcdDispatchModuleAbove4GMemory|TRUE|BOOLEAN|0x00000019 | ||||
| 
 | ||||
| # Boot Manager Key | ||||
| gUefiPayloadPkgTokenSpaceGuid.PcdBootManagerEscape|FALSE|BOOLEAN|0x00000020 | ||||
| 
 | ||||
| ## FFS filename to find the default 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 | ||||
|  | ||||
| @ -34,6 +34,7 @@ | ||||
|   DEFINE SECURITY_STUB_ENABLE         = TRUE | ||||
|   DEFINE SMM_SUPPORT                  = FALSE | ||||
|   DEFINE ABOVE_4G_MEMORY              = TRUE | ||||
|   DEFINE BOOT_MANAGER_ESCAPE          = FALSE | ||||
|   # | ||||
|   # SBL:      UEFI payload for Slim Bootloader | ||||
|   # COREBOOT: UEFI payload for coreboot | ||||
| @ -401,6 +402,7 @@ | ||||
| !endif | ||||
| 
 | ||||
|   gUefiPayloadPkgTokenSpaceGuid.PcdDispatchModuleAbove4GMemory|$(ABOVE_4G_MEMORY) | ||||
|   gUefiPayloadPkgTokenSpaceGuid.PcdBootManagerEscape|$(BOOT_MANAGER_ESCAPE) | ||||
| 
 | ||||
| [PcdsPatchableInModule.X64] | ||||
|   gPcAtChipsetPkgTokenSpaceGuid.PcdRtcIndexRegister|$(RTC_INDEX_REGISTER) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Sean Rhodes
						Sean Rhodes