OvmfPkg/PlatformBootManagerLib: sync Timeout with PcdPlatformBootTimeOut

Set the Timeout global variable to the same value as
PcdPlatformBootTimeOut. This way the "setvar" command in the UEFI shell,
and the "efibootmgr" command in a Linux guest, can report the front page
timeout that was requested on the QEMU command line (see
GetFrontPageTimeoutFromQemu()).

A DEBUG_VERBOSE message is logged on success too, for our QE team's sake.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200304094413.19462-2-lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
This commit is contained in:
Laszlo Ersek 2020-03-04 10:44:12 +01:00 committed by mergify[bot]
parent 3b9cd71454
commit 9b08c655ff
2 changed files with 26 additions and 2 deletions

View File

@ -353,6 +353,7 @@ PlatformBootManagerBeforeConsole (
{
EFI_HANDLE Handle;
EFI_STATUS Status;
UINT16 FrontPageTimeout;
RETURN_STATUS PcdStatus;
DEBUG ((EFI_D_INFO, "PlatformBootManagerBeforeConsole\n"));
@ -400,9 +401,30 @@ PlatformBootManagerBeforeConsole (
PlatformInitializeConsole (
XenDetected() ? gXenPlatformConsole : gPlatformConsole);
PcdStatus = PcdSet16S (PcdPlatformBootTimeOut,
GetFrontPageTimeoutFromQemu ());
FrontPageTimeout = GetFrontPageTimeoutFromQemu ();
PcdStatus = PcdSet16S (PcdPlatformBootTimeOut, FrontPageTimeout);
ASSERT_RETURN_ERROR (PcdStatus);
//
// Reflect the PCD in the standard Timeout variable.
//
Status = gRT->SetVariable (
EFI_TIME_OUT_VARIABLE_NAME,
&gEfiGlobalVariableGuid,
(EFI_VARIABLE_NON_VOLATILE |
EFI_VARIABLE_BOOTSERVICE_ACCESS |
EFI_VARIABLE_RUNTIME_ACCESS),
sizeof FrontPageTimeout,
&FrontPageTimeout
);
DEBUG ((
EFI_ERROR (Status) ? DEBUG_ERROR : DEBUG_VERBOSE,
"%a: SetVariable(%s, %u): %r\n",
__FUNCTION__,
EFI_TIME_OUT_VARIABLE_NAME,
FrontPageTimeout,
Status
));
PlatformRegisterOptionsAndKeys ();

View File

@ -38,6 +38,7 @@
BaseLib
MemoryAllocationLib
UefiBootServicesTableLib
UefiRuntimeServicesTableLib
BaseMemoryLib
DebugLib
PcdLib
@ -79,5 +80,6 @@
[Guids]
gEfiEndOfDxeEventGroupGuid
gEfiGlobalVariableGuid
gRootBridgesConnectedEventGroupGuid
gUefiShellFileGuid