No longer call all NVMe & VirtIO devices just "Harddisk". Admittedly, VirtIO disks are now just called 'Misc Device' instead, but at least that is now Someone Else's Problemâ„¢.
Signed-off-by: David Woodhouse <dw...@infradead.org> --- OvmfPkg/Csm/LegacyBiosDxe/LegacyBbs.c | 47 ++++++++++++++++++++- OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf | 1 + 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/OvmfPkg/Csm/LegacyBiosDxe/LegacyBbs.c b/OvmfPkg/Csm/LegacyBiosDxe/LegacyBbs.c index 5e4c7a249e..f3cc64f89d 100644 --- a/OvmfPkg/Csm/LegacyBiosDxe/LegacyBbs.c +++ b/OvmfPkg/Csm/LegacyBiosDxe/LegacyBbs.c @@ -8,6 +8,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #include "LegacyBiosInterface.h" #include <IndustryStandard/Pci.h> +#include <Library/UefiBootManagerLib.h> // Give floppy 3 states // FLOPPY_PRESENT_WITH_MEDIA = Floppy controller present and media is inserted @@ -280,6 +281,8 @@ LegacyBiosBuildBbs ( UINTN BusNum; UINTN DevNum; UINTN FuncNum; + CHAR16 *Description; + CHAR8 AsciiDescription[32]; for (Removable = 0; Removable < 2; Removable++) { for (BlockIndex = 0; BlockIndex < NumberBlockIoHandles; BlockIndex++) { @@ -372,8 +375,48 @@ LegacyBiosBuildBbs ( continue; } - DEBUG ((DEBUG_INFO, "Add Legacy Bbs entry for PCI %d/%d/%d\n", - BusNum, DevNum, FuncNum)); + Description = EfiBootManagerGetBootDescription(L"Legacy ", BlockIoHandles[BlockIndex]); + + DEBUG ((DEBUG_INFO, "Add Legacy Bbs entry for PCI %d/%d/%d: %s\n", + BusNum, DevNum, FuncNum, Description ? Description : L"<No description>")); + + if (Description != NULL) { + VOID *BbsDescription; + + // + // Truncate Description and convert to ASCII. + // + if (StrLen (Description) >= sizeof (AsciiDescription)) { + Description[sizeof (AsciiDescription) - 1] = L'0'; + } + UnicodeStrToAsciiStrS (Description, AsciiDescription, sizeof (AsciiDescription)); + + // + // Copy to low memory and reference from BbsTable + // + Status = Private->LegacyBios.GetLegacyRegion( + &Private->LegacyBios, + AsciiStrSize(AsciiDescription), + (UINTN)0, /* Any region */ + (UINTN)1, /* Alignment */ + &BbsDescription + ); + + if (!EFI_ERROR (Status)) { + Status = Private->LegacyBios.CopyLegacyRegion ( + &Private->LegacyBios, + AsciiStrSize(AsciiDescription), + BbsDescription, + AsciiDescription + ); + } + if (!EFI_ERROR (Status)) { + BbsTable[BbsIndex].DescStringSegment = (UINT16) (((UINTN) BbsDescription >> 16) << 12); + BbsTable[BbsIndex].DescStringOffset = (UINT16) (UINTN) BbsDescription; + } + + FreePool (Description); + } BbsTable[BbsIndex].Bus = BusNum; BbsTable[BbsIndex].Device = DevNum; diff --git a/OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf b/OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf index f6379dcc46..0b9fef02dc 100644 --- a/OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf +++ b/OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf @@ -55,6 +55,7 @@ [LibraryClasses] DevicePathLib UefiBootServicesTableLib + UefiBootManagerLib MemoryAllocationLib UefiDriverEntryPoint BaseMemoryLib -- 2.21.0 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#42815): https://edk2.groups.io/g/devel/message/42815 Mute This Topic: https://groups.io/mt/32202511/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-