mirror of https://github.com/acidanthera/audk.git
OvmfPkg: BDS: drop custom boot timeout, revert to IntelFrameworkModulePkg's
PlatformBdsEnterFrontPage() already implements a keypress wait (for entering the setup utility at boot) with a nice progress bar, only OVMF has not been using it. Removing our custom code and utilizing PlatformBdsEnterFrontPage()'s builtin wait has the following benefits: - It simplifies OVMF's BDS code. - Because now we call PlatformBdsEnterFrontPage() unconditionally, it actually has a chance to look at the EFI_OS_INDICATIONS_BOOT_TO_FW_UI bit of the "OsIndications" variable, improving compliance with the UEFI specification. References: - https://bugzilla.redhat.com/show_bug.cgi?id=1153927 - http://thread.gmane.org/gmane.comp.bios.tianocore.devel/10487 - The progress bar looks nice. (And it keeps the earlier behavior intact, when the user presses a key on the TianoCore splash screen.) In any case, we set the timeout to 0 (which doesn't show the progress bar and proceeds to the boot options immediately) in order to keep the boot time down. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16310 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
b90ffb9fc8
commit
b1220e2820
|
@ -1062,10 +1062,6 @@ Returns:
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
UINT16 Timeout;
|
UINT16 Timeout;
|
||||||
EFI_EVENT UserInputDurationTime;
|
|
||||||
UINTN Index;
|
|
||||||
EFI_INPUT_KEY Key;
|
|
||||||
EFI_TPL OldTpl;
|
|
||||||
EFI_BOOT_MODE BootMode;
|
EFI_BOOT_MODE BootMode;
|
||||||
|
|
||||||
DEBUG ((EFI_D_INFO, "PlatformBdsPolicyBehavior\n"));
|
DEBUG ((EFI_D_INFO, "PlatformBdsPolicyBehavior\n"));
|
||||||
|
@ -1114,19 +1110,7 @@ Returns:
|
||||||
//
|
//
|
||||||
PlatformBdsNoConsoleAction ();
|
PlatformBdsNoConsoleAction ();
|
||||||
}
|
}
|
||||||
//
|
|
||||||
// Create a 300ms duration event to ensure user has enough input time to enter Setup
|
|
||||||
//
|
|
||||||
Status = gBS->CreateEvent (
|
|
||||||
EVT_TIMER,
|
|
||||||
0,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
&UserInputDurationTime
|
|
||||||
);
|
|
||||||
ASSERT (Status == EFI_SUCCESS);
|
|
||||||
Status = gBS->SetTimer (UserInputDurationTime, TimerRelative, 3000000);
|
|
||||||
ASSERT (Status == EFI_SUCCESS);
|
|
||||||
//
|
//
|
||||||
// Memory test and Logo show
|
// Memory test and Logo show
|
||||||
//
|
//
|
||||||
|
@ -1153,25 +1137,7 @@ Returns:
|
||||||
//
|
//
|
||||||
BdsLibBuildOptionFromVar (BootOptionList, L"BootOrder");
|
BdsLibBuildOptionFromVar (BootOptionList, L"BootOrder");
|
||||||
|
|
||||||
//
|
PlatformBdsEnterFrontPage (Timeout, TRUE);
|
||||||
// To give the User a chance to enter Setup here, if user set TimeOut is 0.
|
|
||||||
// BDS should still give user a chance to enter Setup
|
|
||||||
//
|
|
||||||
// Check whether the user input after the duration time has expired
|
|
||||||
//
|
|
||||||
OldTpl = EfiGetCurrentTpl();
|
|
||||||
gBS->RestoreTPL (TPL_APPLICATION);
|
|
||||||
gBS->WaitForEvent (1, &UserInputDurationTime, &Index);
|
|
||||||
gBS->CloseEvent (UserInputDurationTime);
|
|
||||||
Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);
|
|
||||||
gBS->RaiseTPL (OldTpl);
|
|
||||||
|
|
||||||
if (!EFI_ERROR (Status)) {
|
|
||||||
//
|
|
||||||
// Enter Setup if user input
|
|
||||||
//
|
|
||||||
PlatformBdsEnterFrontPage (Timeout, TRUE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
|
|
@ -331,6 +331,7 @@
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800
|
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600
|
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600
|
||||||
|
|
||||||
|
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
|
|
|
@ -337,6 +337,7 @@
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800
|
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600
|
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600
|
||||||
|
|
||||||
|
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
|
|
|
@ -336,6 +336,7 @@
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800
|
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|800
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600
|
gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|600
|
||||||
|
|
||||||
|
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in New Issue