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:
parent
3b9cd71454
commit
9b08c655ff
|
@ -353,6 +353,7 @@ PlatformBootManagerBeforeConsole (
|
||||||
{
|
{
|
||||||
EFI_HANDLE Handle;
|
EFI_HANDLE Handle;
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
UINT16 FrontPageTimeout;
|
||||||
RETURN_STATUS PcdStatus;
|
RETURN_STATUS PcdStatus;
|
||||||
|
|
||||||
DEBUG ((EFI_D_INFO, "PlatformBootManagerBeforeConsole\n"));
|
DEBUG ((EFI_D_INFO, "PlatformBootManagerBeforeConsole\n"));
|
||||||
|
@ -400,9 +401,30 @@ PlatformBootManagerBeforeConsole (
|
||||||
|
|
||||||
PlatformInitializeConsole (
|
PlatformInitializeConsole (
|
||||||
XenDetected() ? gXenPlatformConsole : gPlatformConsole);
|
XenDetected() ? gXenPlatformConsole : gPlatformConsole);
|
||||||
PcdStatus = PcdSet16S (PcdPlatformBootTimeOut,
|
|
||||||
GetFrontPageTimeoutFromQemu ());
|
FrontPageTimeout = GetFrontPageTimeoutFromQemu ();
|
||||||
|
PcdStatus = PcdSet16S (PcdPlatformBootTimeOut, FrontPageTimeout);
|
||||||
ASSERT_RETURN_ERROR (PcdStatus);
|
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 ();
|
PlatformRegisterOptionsAndKeys ();
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
BaseLib
|
BaseLib
|
||||||
MemoryAllocationLib
|
MemoryAllocationLib
|
||||||
UefiBootServicesTableLib
|
UefiBootServicesTableLib
|
||||||
|
UefiRuntimeServicesTableLib
|
||||||
BaseMemoryLib
|
BaseMemoryLib
|
||||||
DebugLib
|
DebugLib
|
||||||
PcdLib
|
PcdLib
|
||||||
|
@ -79,5 +80,6 @@
|
||||||
|
|
||||||
[Guids]
|
[Guids]
|
||||||
gEfiEndOfDxeEventGroupGuid
|
gEfiEndOfDxeEventGroupGuid
|
||||||
|
gEfiGlobalVariableGuid
|
||||||
gRootBridgesConnectedEventGroupGuid
|
gRootBridgesConnectedEventGroupGuid
|
||||||
gUefiShellFileGuid
|
gUefiShellFileGuid
|
||||||
|
|
Loading…
Reference in New Issue