]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/BdsDxe/BdsEntry.c
MdeModulePkg/BdsDxe: Revert "fall back to UI loop before hanging"
[mirror_edk2.git] / MdeModulePkg / Universal / BdsDxe / BdsEntry.c
index 49e403e18104b7da3e34272eebc48356d6947bd1..39b643c77a6352243247b6527572ac43ecf09f7f 100644 (file)
@@ -634,55 +634,6 @@ BdsFormalizeEfiGlobalVariable (
   BdsFormalizeOSIndicationVariable ();\r
 }\r
 \r
-/**\r
-  Enter an infinite loop of calling the Boot Manager Menu.\r
-\r
-  This is a last resort alternative to BdsEntry() giving up for good. This\r
-  function never returns.\r
-\r
-  @param[in] BootManagerMenu  The EFI_BOOT_MANAGER_LOAD_OPTION located and/or\r
-                              created by the EfiBootManagerGetBootManagerMenu()\r
-                              call in BdsEntry().\r
-**/\r
-VOID\r
-BdsBootManagerMenuLoop (\r
-  IN EFI_BOOT_MANAGER_LOAD_OPTION *BootManagerMenu\r
-  )\r
-{\r
-  EFI_INPUT_KEY Key;\r
-\r
-  //\r
-  // Normally BdsDxe does not print anything to the system console, but this is\r
-  // a last resort -- the end-user will likely not see any DEBUG messages\r
-  // logged in this situation.\r
-  //\r
-  // AsciiPrint() will NULL-check gST->ConOut internally. We check gST->ConIn\r
-  // here to see if it makes sense to request and wait for a keypress.\r
-  //\r
-  if (gST->ConIn != NULL) {\r
-    AsciiPrint (\r
-      "%a: No bootable option or device was found.\n"\r
-      "%a: Press any key to enter the Boot Manager Menu.\n",\r
-      gEfiCallerBaseName,\r
-      gEfiCallerBaseName\r
-      );\r
-    BdsWaitForSingleEvent (gST->ConIn->WaitForKey, 0);\r
-\r
-    //\r
-    // Drain any queued keys.\r
-    //\r
-    while (!EFI_ERROR (gST->ConIn->ReadKeyStroke (gST->ConIn, &Key))) {\r
-      //\r
-      // just throw away Key\r
-      //\r
-    }\r
-  }\r
-\r
-  for (;;) {\r
-    EfiBootManagerBoot (BootManagerMenu);\r
-  }\r
-}\r
-\r
 /**\r
 \r
   Service routine for BdsInstance->Entry(). Devices are connected, the\r
@@ -1081,19 +1032,16 @@ BdsEntry (
     } while (BootSuccess);\r
   }\r
 \r
+  if (BootManagerMenuStatus != EFI_NOT_FOUND) {\r
+    EfiBootManagerFreeLoadOption (&BootManagerMenu);\r
+  }\r
+\r
   if (!BootSuccess) {\r
     LoadOptions = EfiBootManagerGetLoadOptions (&LoadOptionCount, LoadOptionTypePlatformRecovery);\r
     ProcessLoadOptions (LoadOptions, LoadOptionCount);\r
     EfiBootManagerFreeLoadOptions (LoadOptions, LoadOptionCount);\r
   }\r
 \r
-  //\r
-  // If BootManagerMenu is available, fall back to it indefinitely.\r
-  //\r
-  if (BootManagerMenuStatus != EFI_NOT_FOUND) {\r
-    BdsBootManagerMenuLoop (&BootManagerMenu);\r
-  }\r
-\r
   DEBUG ((EFI_D_ERROR, "[Bds] Unable to boot!\n"));\r
   CpuDeadLoop ();\r
 }\r