]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Fix the BDS to show UEFI hard drive boot option as "EFI Hard Drive" instead of "EFI...
authorniruiyu <niruiyu@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 5 Jul 2011 07:55:45 +0000 (07:55 +0000)
committerniruiyu <niruiyu@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 5 Jul 2011 07:55:45 +0000 (07:55 +0000)
Signed-off-by: niruiyu
Reviewed-by: li-elvin
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11974 6f19259b-4bc3-4df7-8a09-765794883524

IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c
IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsStrings.uni

index 774f0929443c9b49e951b2c1ea2b6ed84a1b2ffc..1ac2946360d700abba6e73a9c067fdc7623602a9 100644 (file)
@@ -1435,6 +1435,7 @@ BdsLibEnumerateAllBootOption (
 {\r
   EFI_STATUS                    Status;\r
   UINT16                        FloppyNumber;\r
+  UINT16                        HarddriveNumber;\r
   UINT16                        CdromNumber;\r
   UINT16                        UsbNumber;\r
   UINT16                        MiscNumber;\r
@@ -1467,13 +1468,14 @@ BdsLibEnumerateAllBootOption (
   EFI_IMAGE_OPTIONAL_HEADER_UNION       HdrData;\r
   EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION   Hdr;\r
 \r
-  FloppyNumber  = 0;\r
-  CdromNumber   = 0;\r
-  UsbNumber     = 0;\r
-  MiscNumber    = 0;\r
-  ScsiNumber    = 0;\r
-  PlatLang      = NULL;\r
-  LastLang      = NULL;\r
+  FloppyNumber    = 0;\r
+  HarddriveNumber = 0;\r
+  CdromNumber     = 0;\r
+  UsbNumber       = 0;\r
+  MiscNumber      = 0;\r
+  ScsiNumber      = 0;\r
+  PlatLang        = NULL;\r
+  LastLang        = NULL;\r
   ZeroMem (Buffer, sizeof (Buffer));\r
 \r
   //\r
@@ -1562,18 +1564,27 @@ BdsLibEnumerateAllBootOption (
         break;\r
 \r
       //\r
-      // Assume a removable SATA device should be the DVD/CD device\r
+      // Assume a removable SATA device should be the DVD/CD device, a fixed SATA device should be the Hard Drive device.\r
       //\r
       case BDS_EFI_MESSAGE_ATAPI_BOOT:\r
       case BDS_EFI_MESSAGE_SATA_BOOT:\r
-        if (CdromNumber != 0) {\r
-          UnicodeSPrint (Buffer, sizeof (Buffer), L"%s %d", BdsLibGetStringById (STRING_TOKEN (STR_DESCRIPTION_CD_DVD)), CdromNumber);\r
+        if (BlkIo->Media->RemovableMedia) {\r
+          if (CdromNumber != 0) {\r
+            UnicodeSPrint (Buffer, sizeof (Buffer), L"%s %d", BdsLibGetStringById (STRING_TOKEN (STR_DESCRIPTION_CD_DVD)), CdromNumber);\r
+          } else {\r
+            UnicodeSPrint (Buffer, sizeof (Buffer), L"%s", BdsLibGetStringById (STRING_TOKEN (STR_DESCRIPTION_CD_DVD)));\r
+          }\r
+          CdromNumber++;\r
         } else {\r
-          UnicodeSPrint (Buffer, sizeof (Buffer), L"%s", BdsLibGetStringById (STRING_TOKEN (STR_DESCRIPTION_CD_DVD)));\r
+          if (HarddriveNumber != 0) {\r
+            UnicodeSPrint (Buffer, sizeof (Buffer), L"%s %d", BdsLibGetStringById (STRING_TOKEN (STR_DESCRIPTION_HARDDRIVE)), HarddriveNumber);\r
+          } else {\r
+            UnicodeSPrint (Buffer, sizeof (Buffer), L"%s", BdsLibGetStringById (STRING_TOKEN (STR_DESCRIPTION_HARDDRIVE)));\r
+          }\r
+          HarddriveNumber++;\r
         }\r
         DEBUG ((DEBUG_INFO | DEBUG_LOAD, "Buffer: %S\n", Buffer));\r
         BdsLibBuildOptionFromHandle (BlockIoHandles[Index], BdsBootOptionList, Buffer);\r
-        CdromNumber++;\r
         break;\r
 \r
       case BDS_EFI_MESSAGE_USB_DEVICE_BOOT:\r
index f84f30c7eec1a641de1e82a3a4ee807f4afe5952..7c3b4f96900c0d36ad9c272b5a6372afb1a3a788 100644 (file)
Binary files a/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsStrings.uni and b/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsStrings.uni differ