If no valid boot options were found, PlatformBootManagerLib refreshes a set of sane default options and then reboots. However, if there is in fact no persistent varstore, the same thing happens again on next boot, and we end up in an endlessly rebooting loop. So when PcdEmuVariableNvModeEnable is TRUE, skip the reboot step and enter the setup menu instead. Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Leif Lindholm <leif@nuviainc.com> Acked-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
89 lines
2.3 KiB
INI
89 lines
2.3 KiB
INI
## @file
|
|
# Implementation for PlatformBootManagerLib library class interfaces.
|
|
#
|
|
# Copyright (C) 2015-2016, Red Hat, Inc.
|
|
# Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>
|
|
# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
|
|
# Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>
|
|
#
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = PlatformBootManagerLib
|
|
FILE_GUID = 92FD2DE3-B9CB-4B35-8141-42AD34D73C9F
|
|
MODULE_TYPE = DXE_DRIVER
|
|
VERSION_STRING = 1.0
|
|
LIBRARY_CLASS = PlatformBootManagerLib|DXE_DRIVER
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = ARM AARCH64
|
|
#
|
|
|
|
[Sources]
|
|
PlatformBm.c
|
|
PlatformBm.h
|
|
|
|
[Packages]
|
|
EmbeddedPkg/EmbeddedPkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
MdePkg/MdePkg.dec
|
|
ShellPkg/ShellPkg.dec
|
|
|
|
[LibraryClasses]
|
|
BaseLib
|
|
BaseMemoryLib
|
|
BootLogoLib
|
|
CapsuleLib
|
|
DebugLib
|
|
DevicePathLib
|
|
DxeServicesLib
|
|
HobLib
|
|
MemoryAllocationLib
|
|
PcdLib
|
|
PrintLib
|
|
UefiBootManagerLib
|
|
UefiBootServicesTableLib
|
|
UefiLib
|
|
UefiRuntimeServicesTableLib
|
|
|
|
[FeaturePcd]
|
|
gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport
|
|
|
|
[FixedPcd]
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString
|
|
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
|
|
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits
|
|
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
|
|
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits
|
|
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType
|
|
|
|
[Pcd]
|
|
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut
|
|
|
|
[Guids]
|
|
gEdkiiNonDiscoverableEhciDeviceGuid
|
|
gEdkiiNonDiscoverableUhciDeviceGuid
|
|
gEdkiiNonDiscoverableXhciDeviceGuid
|
|
gEfiFileInfoGuid
|
|
gEfiFileSystemInfoGuid
|
|
gEfiFileSystemVolumeLabelInfoIdGuid
|
|
gEfiEndOfDxeEventGroupGuid
|
|
gEfiTtyTermGuid
|
|
gUefiShellFileGuid
|
|
|
|
[Protocols]
|
|
gEdkiiNonDiscoverableDeviceProtocolGuid
|
|
gEfiDevicePathProtocolGuid
|
|
gEfiGraphicsOutputProtocolGuid
|
|
gEfiLoadedImageProtocolGuid
|
|
gEfiPciRootBridgeIoProtocolGuid
|
|
gEfiSimpleFileSystemProtocolGuid
|
|
gEsrtManagementProtocolGuid
|
|
gPlatformBootManagerProtocolGuid
|