BdsBoot: add boot menu text for eMMC/SD, NVMe devices

Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
This commit is contained in:
Matt DeVillier
2017-01-03 21:29:52 -06:00
parent c8a3cdb675
commit 239e19e391
2 changed files with 52 additions and 5 deletions

View File

@ -821,6 +821,9 @@ SetupResetReminder (
#define BDS_EFI_MESSAGE_USB_DEVICE_BOOT 0x0305 // Type 03; Sub-Type 05 #define BDS_EFI_MESSAGE_USB_DEVICE_BOOT 0x0305 // Type 03; Sub-Type 05
#define BDS_EFI_MESSAGE_SATA_BOOT 0x0312 // Type 03; Sub-Type 18 #define BDS_EFI_MESSAGE_SATA_BOOT 0x0312 // Type 03; Sub-Type 18
#define BDS_EFI_MESSAGE_MAC_BOOT 0x030b // Type 03; Sub-Type 11 #define BDS_EFI_MESSAGE_MAC_BOOT 0x030b // Type 03; Sub-Type 11
#define BDS_EFI_MESSAGE_SD_BOOT 0x030c // Type 03; Sub-Type 12
#define BDS_EFI_MESSAGE_EMMC_BOOT 0x030d // Type 03; Sub-Type 13
#define BDS_EFI_MESSAGE_NVME_BOOT 0x030e // Type 03; Sub-Type 14
#define BDS_EFI_MESSAGE_MISC_BOOT 0x03FF #define BDS_EFI_MESSAGE_MISC_BOOT 0x03FF
/// ///

View File

@ -3128,8 +3128,10 @@ BdsLibEnumerateAllBootOption (
UINT16 HarddriveNumber; UINT16 HarddriveNumber;
UINT16 CdromNumber; UINT16 CdromNumber;
UINT16 UsbNumber; UINT16 UsbNumber;
UINT16 SdNumber;
UINT16 MiscNumber; UINT16 MiscNumber;
UINT16 ScsiNumber; UINT16 ScsiNumber;
UINT16 NvmeNumber;
UINT16 NonBlockNumber; UINT16 NonBlockNumber;
UINTN NumberBlockIoHandles; UINTN NumberBlockIoHandles;
EFI_HANDLE *BlockIoHandles; EFI_HANDLE *BlockIoHandles;
@ -3162,8 +3164,10 @@ BdsLibEnumerateAllBootOption (
HarddriveNumber = 0; HarddriveNumber = 0;
CdromNumber = 0; CdromNumber = 0;
UsbNumber = 0; UsbNumber = 0;
SdNumber = 0;
MiscNumber = 0; MiscNumber = 0;
ScsiNumber = 0; ScsiNumber = 0;
NvmeNumber = 0;
PlatLang = NULL; PlatLang = NULL;
LastLang = NULL; LastLang = NULL;
ZeroMem (Buffer, sizeof (Buffer)); ZeroMem (Buffer, sizeof (Buffer));
@ -3306,16 +3310,44 @@ BdsLibEnumerateAllBootOption (
ScsiNumber++; ScsiNumber++;
break; break;
case BDS_EFI_MESSAGE_MISC_BOOT: case BDS_EFI_MESSAGE_EMMC_BOOT:
default:
if (MiscNumber != 0) { if (MiscNumber != 0) {
UnicodeSPrint (Buffer, sizeof (Buffer), L"%s %d", BdsLibGetStringById (STRING_TOKEN (STR_DESCRIPTION_MISC)), MiscNumber); UnicodeSPrint (Buffer, sizeof (Buffer), L"EFI eMMC Device %d", MiscNumber);
} else { } else {
UnicodeSPrint (Buffer, sizeof (Buffer), L"%s", BdsLibGetStringById (STRING_TOKEN (STR_DESCRIPTION_MISC))); UnicodeSPrint (Buffer, sizeof (Buffer), L"EFI eMMC Device");
} }
BdsLibBuildOptionFromHandle (BlockIoHandles[Index], BdsBootOptionList, Buffer); BdsLibBuildOptionFromHandle (BlockIoHandles[Index], BdsBootOptionList, Buffer);
MiscNumber++; MiscNumber++;
break; break;
case BDS_EFI_MESSAGE_SD_BOOT:
if (SdNumber != 0) {
UnicodeSPrint (Buffer, sizeof (Buffer), L"EFI SD Device %d", SdNumber);
} else {
UnicodeSPrint (Buffer, sizeof (Buffer), L"EFI SD Device");
}
BdsLibBuildOptionFromHandle (BlockIoHandles[Index], BdsBootOptionList, Buffer);
SdNumber++;
break;
case BDS_EFI_MESSAGE_NVME_BOOT:
if (NvmeNumber != 0) {
UnicodeSPrint (Buffer, sizeof (Buffer), L"EFI NVMe Device %d", NvmeNumber);
} else {
UnicodeSPrint (Buffer, sizeof (Buffer), L"EFI NVMe Device");
}
BdsLibBuildOptionFromHandle (BlockIoHandles[Index], BdsBootOptionList, Buffer);
NvmeNumber++;
break;
case BDS_EFI_MESSAGE_MISC_BOOT:
default:
if (MiscNumber == 0) {
UnicodeSPrint (Buffer, sizeof (Buffer), L"EFI eMMC Device");
BdsLibBuildOptionFromHandle (BlockIoHandles[Index], BdsBootOptionList, Buffer);
}
MiscNumber++;
break;
} }
} }
} }
@ -3960,8 +3992,20 @@ BdsGetBootTypeFromDevicePath (
BootType = BDS_EFI_MESSAGE_MAC_BOOT; BootType = BDS_EFI_MESSAGE_MAC_BOOT;
break; break;
case MSG_EMMC_DP:
BootType = BDS_EFI_MESSAGE_EMMC_BOOT;
break;
case MSG_SD_DP:
BootType = BDS_EFI_MESSAGE_SD_BOOT;
break;
case MSG_NVME_NAMESPACE_DP:
BootType = BDS_EFI_MESSAGE_NVME_BOOT;
break;
default: default:
BootType = BDS_EFI_MESSAGE_MISC_BOOT; BootType = DevicePathSubType (TempDevicePath);
break; break;
} }
return BootType; return BootType;