]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/Bds/BootMenu.c
ArmPlatformPkg/Bds: Remove Linux specific boot path
[mirror_edk2.git] / ArmPlatformPkg / Bds / BootMenu.c
index a304cc4ce916f39dbe060095d3f5cec06f12013d..af7f1f1ac402ba5cc384eed55eb44f63cf4b9e80 100644 (file)
@@ -54,8 +54,6 @@ DisplayBootOptions (
     DEBUG_CODE_BEGIN ();\r
       CHAR16*                           DevicePathTxt;\r
       EFI_DEVICE_PATH_TO_TEXT_PROTOCOL* DevicePathToTextProtocol;\r
-      ARM_BDS_LOADER_TYPE               LoaderType;\r
-      ARM_BDS_LOADER_OPTIONAL_DATA*     OptionalData;\r
 \r
       Status = gBS->LocateProtocol (\r
                      &gEfiDevicePathToTextProtocolGuid,\r
@@ -70,20 +68,11 @@ DisplayBootOptions (
                                                   );\r
       Print (L"\t- %s\n", DevicePathTxt);\r
 \r
-      OptionalData = BdsLoadOption->OptionalData;\r
-      if (IS_ARM_BDS_BOOTENTRY (BdsLoadOption)) {\r
-        LoaderType = (ARM_BDS_LOADER_TYPE)ReadUnaligned32 ((CONST UINT32*)&OptionalData->Header.LoaderType);\r
-        if ((LoaderType == BDS_LOADER_KERNEL_LINUX_ATAG) ||\r
-            (LoaderType == BDS_LOADER_KERNEL_LINUX_FDT )   ) {\r
-          Print (L"\t- Arguments: %a\n", &OptionalData->Arguments.LinuxArguments + 1);\r
-        }\r
-      } else if (OptionalData != NULL) {\r
-        if (IsPrintableString (OptionalData, &IsUnicode)) {\r
-          if (IsUnicode) {\r
-            Print (L"\t- Arguments: %s\n", OptionalData);\r
-          } else {\r
-            AsciiPrint ("\t- Arguments: %a\n", OptionalData);\r
-          }\r
+      if (IsPrintableString (BdsLoadOption->OptionalData, &IsUnicode)) {\r
+        if (IsUnicode) {\r
+          Print (L"\t- Arguments: %s\n", BdsLoadOption->OptionalData);\r
+        } else {\r
+          AsciiPrint ("\t- Arguments: %a\n", BdsLoadOption->OptionalData);\r
         }\r
       }\r
 \r
@@ -272,20 +261,12 @@ BootMenuAddBootOption (
 {\r
   EFI_STATUS                Status;\r
   BDS_SUPPORTED_DEVICE*     SupportedBootDevice;\r
-  ARM_BDS_LOADER_ARGUMENTS* BootArguments;\r
   CHAR16                    BootDescription[BOOT_DEVICE_DESCRIPTION_MAX];\r
-  CHAR8                     AsciiCmdLine[BOOT_DEVICE_OPTION_MAX];\r
   CHAR16                    CmdLine[BOOT_DEVICE_OPTION_MAX];\r
   UINT32                    Attributes;\r
-  ARM_BDS_LOADER_TYPE       BootType;\r
   BDS_LOAD_OPTION_ENTRY     *BdsLoadOptionEntry;\r
   EFI_DEVICE_PATH           *DevicePath;\r
   EFI_DEVICE_PATH_PROTOCOL  *DevicePathNodes;\r
-  EFI_DEVICE_PATH_PROTOCOL  *InitrdPathNodes;\r
-  EFI_DEVICE_PATH_PROTOCOL  *InitrdPath;\r
-  UINTN                     CmdLineSize;\r
-  BOOLEAN                   InitrdSupport;\r
-  UINTN                     InitrdSize;\r
   UINT8*                    OptionalData;\r
   UINTN                     OptionalDataSize;\r
 \r
@@ -312,79 +293,15 @@ BootMenuAddBootOption (
     goto EXIT;\r
   }\r
 \r
-  if (SupportedBootDevice->Support->RequestBootType) {\r
-    Status = BootDeviceGetType (DevicePath, &BootType, &Attributes);\r
-    if (EFI_ERROR(Status)) {\r
-      Status = EFI_ABORTED;\r
-      goto EXIT;\r
-    }\r
-  } else {\r
-    BootType = BDS_LOADER_EFI_APPLICATION;\r
+  Print (L"Arguments to pass to the EFI Application: ");\r
+  Status = GetHIInputStr (CmdLine, BOOT_DEVICE_OPTION_MAX);\r
+  if (EFI_ERROR (Status)) {\r
+    Status = EFI_ABORTED;\r
+    goto EXIT;\r
   }\r
 \r
-  if ((BootType == BDS_LOADER_KERNEL_LINUX_ATAG) || (BootType == BDS_LOADER_KERNEL_LINUX_FDT)) {\r
-    Print(L"Add an initrd: ");\r
-    Status = GetHIInputBoolean (&InitrdSupport);\r
-    if (EFI_ERROR(Status)) {\r
-      Status = EFI_ABORTED;\r
-      goto EXIT;\r
-    }\r
-\r
-    if (InitrdSupport) {\r
-      // Create the specific device path node\r
-      Status = SupportedBootDevice->Support->CreateDevicePathNode (L"initrd", &InitrdPathNodes);\r
-      if (EFI_ERROR(Status) && Status != EFI_NOT_FOUND) { // EFI_NOT_FOUND is returned on empty input string, but we can boot without an initrd\r
-        Status = EFI_ABORTED;\r
-        goto EXIT;\r
-      }\r
-\r
-      if (InitrdPathNodes != NULL) {\r
-        // Append the Device Path to the selected device path\r
-        InitrdPath = AppendDevicePath (SupportedBootDevice->DevicePathProtocol, (CONST EFI_DEVICE_PATH_PROTOCOL *)InitrdPathNodes);\r
-        // Free the InitrdPathNodes created by Support->CreateDevicePathNode()\r
-        FreePool (InitrdPathNodes);\r
-\r
-        if (InitrdPath == NULL) {\r
-          Status = EFI_OUT_OF_RESOURCES;\r
-          goto EXIT;\r
-        }\r
-      } else {\r
-        InitrdPath = NULL;\r
-      }\r
-    } else {\r
-      InitrdPath = NULL;\r
-    }\r
-\r
-    Print(L"Arguments to pass to the binary: ");\r
-    Status = GetHIInputAscii (AsciiCmdLine, BOOT_DEVICE_OPTION_MAX);\r
-    if (EFI_ERROR(Status)) {\r
-      Status = EFI_ABORTED;\r
-      goto FREE_DEVICE_PATH;\r
-    }\r
-\r
-    CmdLineSize = AsciiStrSize (AsciiCmdLine);\r
-    InitrdSize = GetDevicePathSize (InitrdPath);\r
-\r
-    OptionalDataSize = sizeof(ARM_BDS_LOADER_ARGUMENTS) + CmdLineSize + InitrdSize;\r
-    BootArguments = (ARM_BDS_LOADER_ARGUMENTS*)AllocatePool (OptionalDataSize);\r
-\r
-    BootArguments->LinuxArguments.CmdLineSize = CmdLineSize;\r
-    BootArguments->LinuxArguments.InitrdSize = InitrdSize;\r
-    CopyMem ((VOID*)(&BootArguments->LinuxArguments + 1), AsciiCmdLine, CmdLineSize);\r
-    CopyMem ((VOID*)((UINTN)(&BootArguments->LinuxArguments + 1) + CmdLineSize), InitrdPath, InitrdSize);\r
-\r
-    OptionalData = (UINT8*)BootArguments;\r
-  } else {\r
-    Print (L"Arguments to pass to the EFI Application: ");\r
-    Status = GetHIInputStr (CmdLine, BOOT_DEVICE_OPTION_MAX);\r
-    if (EFI_ERROR (Status)) {\r
-      Status = EFI_ABORTED;\r
-      goto EXIT;\r
-    }\r
-\r
-    OptionalData = (UINT8*)CmdLine;\r
-    OptionalDataSize = StrSize (CmdLine);\r
-  }\r
+  OptionalData = (UINT8*)CmdLine;\r
+  OptionalDataSize = StrSize (CmdLine);\r
 \r
   Print(L"Description for this new Entry: ");\r
   Status = GetHIInputStr (BootDescription, BOOT_DEVICE_DESCRIPTION_MAX);\r
@@ -395,7 +312,7 @@ BootMenuAddBootOption (
 \r
   // Create new entry\r
   BdsLoadOptionEntry = (BDS_LOAD_OPTION_ENTRY*)AllocatePool (sizeof(BDS_LOAD_OPTION_ENTRY));\r
-  Status = BootOptionCreate (Attributes, BootDescription, DevicePath, BootType, OptionalData, OptionalDataSize, &BdsLoadOptionEntry->BdsLoadOption);\r
+  Status = BootOptionCreate (Attributes, BootDescription, DevicePath, OptionalData, OptionalDataSize, &BdsLoadOptionEntry->BdsLoadOption);\r
   if (!EFI_ERROR(Status)) {\r
     InsertTailList (BootOptionsList, &BdsLoadOptionEntry->Link);\r
   }\r
@@ -446,20 +363,10 @@ BootMenuUpdateBootOption (
   BDS_LOAD_OPTION_ENTRY         *BootOptionEntry;\r
   BDS_LOAD_OPTION               *BootOption;\r
   BDS_LOAD_OPTION_SUPPORT*      DeviceSupport;\r
-  ARM_BDS_LOADER_ARGUMENTS*     BootArguments;\r
   CHAR16                        BootDescription[BOOT_DEVICE_DESCRIPTION_MAX];\r
   CHAR8                         CmdLine[BOOT_DEVICE_OPTION_MAX];\r
   CHAR16                        UnicodeCmdLine[BOOT_DEVICE_OPTION_MAX];\r
   EFI_DEVICE_PATH               *DevicePath;\r
-  EFI_DEVICE_PATH               *TempInitrdPath;\r
-  ARM_BDS_LOADER_TYPE           BootType;\r
-  ARM_BDS_LOADER_OPTIONAL_DATA* LoaderOptionalData;\r
-  ARM_BDS_LINUX_ARGUMENTS*      LinuxArguments;\r
-  EFI_DEVICE_PATH               *InitrdPathNodes;\r
-  EFI_DEVICE_PATH               *InitrdPath;\r
-  UINTN                         InitrdSize;\r
-  UINTN                         CmdLineSize;\r
-  BOOLEAN                       InitrdSupport;\r
   UINT8*                        OptionalData;\r
   UINTN                         OptionalDataSize;\r
   BOOLEAN                       IsPrintable;\r
@@ -485,165 +392,67 @@ BootMenuUpdateBootOption (
     goto EXIT;\r
   }\r
 \r
-  if (DeviceSupport->RequestBootType) {\r
-    Status = BootDeviceGetType (DevicePath, &BootType, &BootOption->Attributes);\r
-    if (EFI_ERROR(Status)) {\r
-      Status = EFI_ABORTED;\r
-      goto EXIT;\r
-    }\r
-  }\r
-\r
-  LoaderOptionalData = BootOption->OptionalData;\r
-  if (LoaderOptionalData != NULL) {\r
-    BootType = (ARM_BDS_LOADER_TYPE)ReadUnaligned32 ((UINT32 *)(&LoaderOptionalData->Header.LoaderType));\r
-  } else {\r
-    BootType = BDS_LOADER_EFI_APPLICATION;\r
-  }\r
-\r
-  if ((BootType == BDS_LOADER_KERNEL_LINUX_ATAG) || (BootType == BDS_LOADER_KERNEL_LINUX_FDT)) {\r
-    LinuxArguments = &LoaderOptionalData->Arguments.LinuxArguments;\r
-\r
-    CmdLineSize = ReadUnaligned16 ((CONST UINT16*)&LinuxArguments->CmdLineSize);\r
-\r
-    InitrdSize = ReadUnaligned16 ((CONST UINT16*)&LinuxArguments->InitrdSize);\r
-    if (InitrdSize > 0) {\r
-      Print(L"Keep the initrd: ");\r
-    } else {\r
-      Print(L"Add an initrd: ");\r
-    }\r
-    Status = GetHIInputBoolean (&InitrdSupport);\r
-    if (EFI_ERROR(Status)) {\r
-      Status = EFI_ABORTED;\r
-      goto EXIT;\r
-    }\r
+  Print (L"Arguments to pass to the EFI Application: ");\r
 \r
-    if (InitrdSupport) {\r
-      if (InitrdSize > 0) {\r
-        // Case we update the initrd device path\r
-        Status = DeviceSupport->UpdateDevicePathNode ((EFI_DEVICE_PATH*)((UINTN)(LinuxArguments + 1) + CmdLineSize), L"initrd", &InitrdPath);\r
-        if (EFI_ERROR(Status) && Status != EFI_NOT_FOUND) {// EFI_NOT_FOUND is returned on empty input string, but we can boot without an initrd\r
-          Status = EFI_ABORTED;\r
-          goto EXIT;\r
-        }\r
-        InitrdSize = GetDevicePathSize (InitrdPath);\r
+  if (BootOption->OptionalDataSize > 0) {\r
+    IsPrintable = IsPrintableString (BootOption->OptionalData, &IsUnicode);\r
+    if (IsPrintable) {\r
+        //\r
+        // The size in bytes of the string, final zero included, should\r
+        // be equal to or at least lower than "BootOption->OptionalDataSize"\r
+        // and the "IsPrintableString()" has already tested that the length\r
+        // in number of characters is smaller than BOOT_DEVICE_OPTION_MAX,\r
+        // final '\0' included. We can thus copy the string for editing\r
+        // using "CopyMem()". Furthermore, note that in the case of an Unicode\r
+        // string "StrnCpy()" and "StrCpy()" can not be used to copy the\r
+        // string because the data pointed to by "BootOption->OptionalData"\r
+        // is not necessarily 2-byte aligned.\r
+        //\r
+      if (IsUnicode) {\r
+        CopyMem (\r
+          UnicodeCmdLine, BootOption->OptionalData,\r
+          MIN (sizeof (UnicodeCmdLine),\r
+               BootOption->OptionalDataSize)\r
+          );\r
       } else {\r
-        // Case we create the initrd device path\r
-\r
-        Status = DeviceSupport->CreateDevicePathNode (L"initrd", &InitrdPathNodes);\r
-        if (EFI_ERROR(Status) && Status != EFI_NOT_FOUND) { // EFI_NOT_FOUND is returned on empty input string, but we can boot without an initrd\r
-          Status = EFI_ABORTED;\r
-          goto EXIT;\r
-        }\r
-\r
-        if (InitrdPathNodes != NULL) {\r
-          // Duplicate Linux kernel Device Path\r
-          TempInitrdPath = DuplicateDevicePath (BootOption->FilePathList);\r
-          // Replace Linux kernel Node by EndNode\r
-          SetDevicePathEndNode (GetLastDevicePathNode (TempInitrdPath));\r
-          // Append the Device Path to the selected device path\r
-          InitrdPath = AppendDevicePath (TempInitrdPath, (CONST EFI_DEVICE_PATH_PROTOCOL *)InitrdPathNodes);\r
-          FreePool (TempInitrdPath);\r
-          // Free the InitrdPathNodes created by Support->CreateDevicePathNode()\r
-          FreePool (InitrdPathNodes);\r
-          if (InitrdPath == NULL) {\r
-            Status = EFI_OUT_OF_RESOURCES;\r
-            goto EXIT;\r
-          }\r
-          InitrdSize = GetDevicePathSize (InitrdPath);\r
-        } else {\r
-          InitrdPath = NULL;\r
-        }\r
+        CopyMem (\r
+          CmdLine, BootOption->OptionalData,\r
+          MIN (sizeof (CmdLine),\r
+               BootOption->OptionalDataSize)\r
+          );\r
       }\r
-    } else {\r
-      InitrdSize = 0;\r
-    }\r
-\r
-    Print(L"Arguments to pass to the binary: ");\r
-    if (CmdLineSize > 0) {\r
-      AsciiStrnCpy (CmdLine, (CONST CHAR8*)(LinuxArguments + 1), sizeof (CmdLine));\r
-      CmdLine[sizeof (CmdLine) - 1] = '\0';\r
-    } else {\r
-      CmdLine[0] = '\0';\r
     }\r
-    Status = EditHIInputAscii (CmdLine, BOOT_DEVICE_OPTION_MAX);\r
-    if (EFI_ERROR(Status)) {\r
-      Status = EFI_ABORTED;\r
-      goto FREE_DEVICE_PATH;\r
-    }\r
-\r
-    CmdLineSize = AsciiStrSize (CmdLine);\r
-\r
-    OptionalDataSize = sizeof(ARM_BDS_LOADER_ARGUMENTS) + CmdLineSize + InitrdSize;\r
-    BootArguments = (ARM_BDS_LOADER_ARGUMENTS*)AllocatePool (OptionalDataSize);\r
-    BootArguments->LinuxArguments.CmdLineSize = CmdLineSize;\r
-    BootArguments->LinuxArguments.InitrdSize = InitrdSize;\r
-    CopyMem (&BootArguments->LinuxArguments + 1, CmdLine, CmdLineSize);\r
-    CopyMem ((VOID*)((UINTN)(&BootArguments->LinuxArguments + 1) + CmdLineSize), InitrdPath, InitrdSize);\r
-\r
-    OptionalData = (UINT8*)BootArguments;\r
   } else {\r
-    Print (L"Arguments to pass to the EFI Application: ");\r
+    UnicodeCmdLine[0] = L'\0';\r
+    IsPrintable = TRUE;\r
+    IsUnicode = TRUE;\r
+  }\r
 \r
-    if (BootOption->OptionalDataSize > 0) {\r
-      IsPrintable = IsPrintableString (BootOption->OptionalData, &IsUnicode);\r
-      if (IsPrintable) {\r
-          //\r
-          // The size in bytes of the string, final zero included, should\r
-          // be equal to or at least lower than "BootOption->OptionalDataSize"\r
-          // and the "IsPrintableString()" has already tested that the length\r
-          // in number of characters is smaller than BOOT_DEVICE_OPTION_MAX,\r
-          // final '\0' included. We can thus copy the string for editing\r
-          // using "CopyMem()". Furthermore, note that in the case of an Unicode\r
-          // string "StrnCpy()" and "StrCpy()" can not be used to copy the\r
-          // string because the data pointed to by "BootOption->OptionalData"\r
-          // is not necessarily 2-byte aligned.\r
-          //\r
-        if (IsUnicode) {\r
-          CopyMem (\r
-            UnicodeCmdLine, BootOption->OptionalData,\r
-            MIN (sizeof (UnicodeCmdLine),\r
-                 BootOption->OptionalDataSize)\r
-            );\r
-        } else {\r
-          CopyMem (\r
-            CmdLine, BootOption->OptionalData,\r
-            MIN (sizeof (CmdLine),\r
-                 BootOption->OptionalDataSize)\r
-            );\r
-        }\r
+  // We do not request arguments for OptionalData that cannot be printed\r
+  if (IsPrintable) {\r
+    if (IsUnicode) {\r
+      Status = EditHIInputStr (UnicodeCmdLine, BOOT_DEVICE_OPTION_MAX);\r
+      if (EFI_ERROR (Status)) {\r
+        Status = EFI_ABORTED;\r
+        goto FREE_DEVICE_PATH;\r
       }\r
-    } else {\r
-      UnicodeCmdLine[0] = L'\0';\r
-      IsPrintable = TRUE;\r
-      IsUnicode = TRUE;\r
-    }\r
-\r
-    // We do not request arguments for OptionalData that cannot be printed\r
-    if (IsPrintable) {\r
-      if (IsUnicode) {\r
-        Status = EditHIInputStr (UnicodeCmdLine, BOOT_DEVICE_OPTION_MAX);\r
-        if (EFI_ERROR (Status)) {\r
-          Status = EFI_ABORTED;\r
-          goto FREE_DEVICE_PATH;\r
-        }\r
-\r
-        OptionalData = (UINT8*)UnicodeCmdLine;\r
-        OptionalDataSize = StrSize (UnicodeCmdLine);\r
-      } else {\r
-        Status = EditHIInputAscii (CmdLine, BOOT_DEVICE_OPTION_MAX);\r
-        if (EFI_ERROR (Status)) {\r
-          Status = EFI_ABORTED;\r
-          goto FREE_DEVICE_PATH;\r
-        }\r
 \r
-        OptionalData = (UINT8*)CmdLine;\r
-        OptionalDataSize = AsciiStrSize (CmdLine);\r
-      }\r
+      OptionalData = (UINT8*)UnicodeCmdLine;\r
+      OptionalDataSize = StrSize (UnicodeCmdLine);\r
     } else {\r
-      // We keep the former OptionalData\r
-      OptionalData = BootOption->OptionalData;\r
-      OptionalDataSize = BootOption->OptionalDataSize;\r
+      Status = EditHIInputAscii (CmdLine, BOOT_DEVICE_OPTION_MAX);\r
+      if (EFI_ERROR (Status)) {\r
+        Status = EFI_ABORTED;\r
+        goto FREE_DEVICE_PATH;\r
+      }\r
+\r
+      OptionalData = (UINT8*)CmdLine;\r
+      OptionalDataSize = AsciiStrSize (CmdLine);\r
     }\r
+  } else {\r
+    // We keep the former OptionalData\r
+    OptionalData = BootOption->OptionalData;\r
+    OptionalDataSize = BootOption->OptionalDataSize;\r
   }\r
 \r
   Print(L"Description for this new Entry: ");\r
@@ -655,7 +464,7 @@ BootMenuUpdateBootOption (
   }\r
 \r
   // Update the entry\r
-  Status = BootOptionUpdate (BootOption, BootOption->Attributes, BootDescription, DevicePath, BootType, OptionalData, OptionalDataSize);\r
+  Status = BootOptionUpdate (BootOption, BootOption->Attributes, BootDescription, DevicePath, OptionalData, OptionalDataSize);\r
 \r
 FREE_DEVICE_PATH:\r
   FreePool (DevicePath);\r
@@ -1139,9 +948,6 @@ BootMenuMain (
       DEBUG_CODE_BEGIN();\r
         CHAR16*                           DevicePathTxt;\r
         EFI_DEVICE_PATH_TO_TEXT_PROTOCOL* DevicePathToTextProtocol;\r
-        ARM_BDS_LOADER_OPTIONAL_DATA*     OptionalData;\r
-        UINTN                             CmdLineSize;\r
-        ARM_BDS_LOADER_TYPE               LoaderType;\r
 \r
         Status = gBS->LocateProtocol (&gEfiDevicePathToTextProtocolGuid, NULL, (VOID **)&DevicePathToTextProtocol);\r
         if (EFI_ERROR(Status)) {\r
@@ -1153,39 +959,7 @@ BootMenuMain (
 \r
         Print(L"\t- %s\n",DevicePathTxt);\r
 \r
-        // If it is a supported BootEntry then print its details\r
-        if (IS_ARM_BDS_BOOTENTRY (BootOption)) {\r
-          OptionalData = BootOption->OptionalData;\r
-          LoaderType = (ARM_BDS_LOADER_TYPE)ReadUnaligned32 ((CONST UINT32*)&OptionalData->Header.LoaderType);\r
-          if ((LoaderType == BDS_LOADER_KERNEL_LINUX_ATAG) || (LoaderType == BDS_LOADER_KERNEL_LINUX_FDT)) {\r
-            if (ReadUnaligned16 (&OptionalData->Arguments.LinuxArguments.InitrdSize) > 0) {\r
-              CmdLineSize = ReadUnaligned16 (&OptionalData->Arguments.LinuxArguments.CmdLineSize);\r
-              DevicePathTxt = DevicePathToTextProtocol->ConvertDevicePathToText (\r
-                  GetAlignedDevicePath ((EFI_DEVICE_PATH*)((UINTN)(&OptionalData->Arguments.LinuxArguments + 1) + CmdLineSize)), TRUE, TRUE);\r
-              Print(L"\t- Initrd: %s\n", DevicePathTxt);\r
-            }\r
-            if (ReadUnaligned16 (&OptionalData->Arguments.LinuxArguments.CmdLineSize) > 0) {\r
-              Print(L"\t- Arguments: %a\n", (&OptionalData->Arguments.LinuxArguments + 1));\r
-            }\r
-          }\r
-\r
-          switch (LoaderType) {\r
-            case BDS_LOADER_EFI_APPLICATION:\r
-              Print(L"\t- LoaderType: EFI Application\n");\r
-              break;\r
-\r
-            case BDS_LOADER_KERNEL_LINUX_ATAG:\r
-              Print(L"\t- LoaderType: Linux kernel with ATAG support\n");\r
-              break;\r
-\r
-            case BDS_LOADER_KERNEL_LINUX_FDT:\r
-              Print(L"\t- LoaderType: Linux kernel with FDT support\n");\r
-              break;\r
-\r
-            default:\r
-              Print(L"\t- LoaderType: Not recognized (%d)\n", LoaderType);\r
-          }\r
-        } else if (BootOption->OptionalData != NULL) {\r
+        if (BootOption->OptionalData != NULL) {\r
           if (IsPrintableString (BootOption->OptionalData, &IsUnicode)) {\r
             if (IsUnicode) {\r
               Print (L"\t- Arguments: %s\n", BootOption->OptionalData);\r