summaryrefslogtreecommitdiff
path: root/ArmPkg/Library/PlatformBootManagerLib
diff options
context:
space:
mode:
Diffstat (limited to 'ArmPkg/Library/PlatformBootManagerLib')
-rw-r--r--ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c25
-rw-r--r--ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf1
2 files changed, 26 insertions, 0 deletions
diff --git a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c b/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c
index 95e739c..ccdb3e0 100644
--- a/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c
+++ b/ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c
@@ -515,6 +515,8 @@ PlatformBootManagerBeforeConsole (
PlatformRegisterOptionsAndKeys ();
}
+#define VERSION_STRING_PREFIX L"Tianocore/EDK2 firmware version "
+
/**
Do the platform specific action after the console is ready
Possible things that can be done in PlatformBootManagerAfterConsole:
@@ -534,14 +536,37 @@ PlatformBootManagerAfterConsole (
{
ESRT_MANAGEMENT_PROTOCOL *EsrtManagement;
EFI_STATUS Status;
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;
+ UINTN FirmwareVerLength;
+ UINTN PosX;
+ UINTN PosY;
+
+ FirmwareVerLength = StrLen (PcdGetPtr (PcdFirmwareVersionString));
//
// Show the splash screen.
//
Status = BootLogoEnableLogo ();
if (EFI_ERROR (Status)) {
+ if (FirmwareVerLength > 0) {
+ Print (VERSION_STRING_PREFIX L"%s",
+ PcdGetPtr (PcdFirmwareVersionString));
+ }
Print (L"Press ESCAPE for boot options ");
+ } else if (FirmwareVerLength > 0) {
+ Status = gBS->HandleProtocol (gST->ConsoleOutHandle,
+ &gEfiGraphicsOutputProtocolGuid, (VOID **)&GraphicsOutput);
+ if (!EFI_ERROR (Status)) {
+ PosX = (GraphicsOutput->Mode->Info->HorizontalResolution -
+ (StrLen (VERSION_STRING_PREFIX) + FirmwareVerLength) *
+ EFI_GLYPH_WIDTH) / 2;
+ PosY = 0;
+
+ PrintXY (PosX, PosY, NULL, NULL, VERSION_STRING_PREFIX L"%s",
+ PcdGetPtr (PcdFirmwareVersionString));
+ }
}
+
//
// Connect the rest of the devices.
//
diff --git a/ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf b/ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
index fce7349..71f1d04 100644
--- a/ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
+++ b/ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
@@ -59,6 +59,7 @@
gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport
[FixedPcd]
+ gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity