mirror of https://github.com/acidanthera/audk.git
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_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 ();
|
||||
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
BaseLib
|
||||
MemoryAllocationLib
|
||||
UefiBootServicesTableLib
|
||||
UefiRuntimeServicesTableLib
|
||||
BaseMemoryLib
|
||||
DebugLib
|
||||
PcdLib
|
||||
|
@ -79,5 +80,6 @@
|
|||
|
||||
[Guids]
|
||||
gEfiEndOfDxeEventGroupGuid
|
||||
gEfiGlobalVariableGuid
|
||||
gRootBridgesConnectedEventGroupGuid
|
||||
gUefiShellFileGuid
|
||||
|
|
Loading…
Reference in New Issue