Removes any boot options that point to binaries built into the firmware and have become stale due to any of the following: - DXEFV's base address or size changed (historical), - DXEFV's FvNameGuid changed, - the FILE_GUID of the pointed-to binary changed, - the referenced binary is no longer built into the firmware. For example, multiple such "EFI Internal Shell" boot options can coexist. They technically differ from each other, but may not describe any built-in shell binary exactly. Such options can accumulate in a varstore over time, and while they remain generally bootable (thanks to the efforts of BmGetFileBufferByFvFilePath()), they look bad. Filter out any stale options. This functionality is not added to QemuBootOrderLib, because it is independent from QEMU and fw_cfg. Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Gary Lin <glin@suse.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ruiyu Ni <ruiyu.ni@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
81 lines
2.4 KiB
INI
81 lines
2.4 KiB
INI
## @file
|
|
# Platform BDS customizations library.
|
|
#
|
|
# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
|
|
# This program and the accompanying materials
|
|
# are licensed and made available under the terms and conditions of the BSD License
|
|
# which accompanies this distribution. The full text of the license may be found at
|
|
# http://opensource.org/licenses/bsd-license.php
|
|
#
|
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = PlatformBootManagerLib
|
|
FILE_GUID = FB65006C-AC9F-4992-AD80-184B2BDBBD83
|
|
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 = IA32 X64 IPF EBC
|
|
#
|
|
|
|
[Sources]
|
|
BdsPlatform.c
|
|
PlatformData.c
|
|
QemuKernel.c
|
|
BdsPlatform.h
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
|
|
OvmfPkg/OvmfPkg.dec
|
|
|
|
[LibraryClasses]
|
|
BaseLib
|
|
MemoryAllocationLib
|
|
UefiBootServicesTableLib
|
|
BaseMemoryLib
|
|
DebugLib
|
|
PcdLib
|
|
UefiBootManagerLib
|
|
BootLogoLib
|
|
DevicePathLib
|
|
PciLib
|
|
NvVarsFileLib
|
|
QemuFwCfgLib
|
|
LoadLinuxLib
|
|
QemuBootOrderLib
|
|
UefiLib
|
|
|
|
[Pcd]
|
|
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdEmuVariableEvent
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashVariablesEnable
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId
|
|
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut
|
|
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile
|
|
|
|
[Pcd.IA32, Pcd.X64]
|
|
gEfiMdePkgTokenSpaceGuid.PcdFSBClock
|
|
|
|
[Protocols]
|
|
gEfiDecompressProtocolGuid
|
|
gEfiPciRootBridgeIoProtocolGuid
|
|
gEfiS3SaveStateProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
|
gEfiDxeSmmReadyToLockProtocolGuid # PROTOCOL SOMETIMES_PRODUCED
|
|
gEfiLoadedImageProtocolGuid # PROTOCOL SOMETIMES_PRODUCED
|
|
gEfiFirmwareVolume2ProtocolGuid # PROTOCOL SOMETIMES_CONSUMED
|
|
|
|
[Guids]
|
|
gEfiXenInfoGuid
|
|
gEfiEndOfDxeEventGroupGuid
|
|
gRootBridgesConnectedEventGroupGuid
|