-#/** @file\r
+## @file\r
+# BDSDxe module is core driver for BDS phase.\r
#\r
-# BDSDxe module is core driver for BDS phase. \r
# When DxeCore dispatching all DXE driver, this module will produce architecture protocol \r
# gEfiBdsArchProtocolGuid. After DxeCore finish dispatching, DxeCore will invoke Entry\r
# interface of protocol gEfiBdsArchProtocolGuid, then BDS phase is entered.\r
#\r
# Generally, this module take reposiblity to connect all necessary devices for platform boot, \r
-# these boot device path are hold in PlatformBdsLib library instance produced by platform.\r
+# these boot device path are hold in PlatformBdsLib library instance produced by platform.\r
# For legacy boot, BDS will transfer control to legacy BIOS after legacy boot device is select.\r
# For EFI boot, BDS will load boot loader file EFI\BOOT\BOOTIA32.EFI, EFI\BOOT\BOOTX64.EFI, \r
# EFI\BOOT\BOOTIA64.EFI file from selected boot device and transfer control to boot loader.\r
# BDSDxe also maintain the UI for "Boot Manager, Boot Maintaince Manager, Device Manager" which\r
# is used for user to configure boot option or maintain hardware device.\r
# \r
-# Copyright (c) 2008, Intel Corporation. <BR>\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2008 - 2015, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
# which accompanies this distribution. The full text of the license may be found at\r
# http://opensource.org/licenses/bsd-license.php\r
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
# \r
-#**/\r
+##\r
\r
[Defines]\r
INF_VERSION = 0x00010005\r
BASE_NAME = BdsDxe\r
+ MODULE_UNI_FILE = BdsDxe.uni\r
FILE_GUID = FC5C7020-1A48-4198-9BE2-EAD5ABC8CF2F\r
MODULE_TYPE = DXE_DRIVER\r
VERSION_STRING = 1.0 \r
- EFI_SPECIFICATION_VERSION = 0x00020000\r
ENTRY_POINT = BdsInitialize\r
\r
#\r
# VALID_ARCHITECTURES = IA32 X64 IPF EBC\r
#\r
\r
-[Sources.common]\r
+[Sources]\r
FrontPage.h\r
Language.h\r
Bds.h\r
HwErrRecSupport.h\r
\r
DeviceMngr/DeviceManager.h\r
+ DeviceMngr/DeviceManagerVfr.h\r
DeviceMngr/DeviceManagerVfr.Vfr\r
+ DeviceMngr/DriverHealthVfr.Vfr\r
DeviceMngr/DeviceManagerStrings.uni\r
DeviceMngr/DeviceManager.c\r
BootMngr/BootManagerVfr.Vfr\r
MdePkg/MdePkg.dec\r
MdeModulePkg/MdeModulePkg.dec\r
IntelFrameworkPkg/IntelFrameworkPkg.dec\r
-\r
+ IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec\r
+ \r
[LibraryClasses]\r
DevicePathLib\r
BaseLib\r
HobLib\r
UefiRuntimeServicesTableLib\r
- IfrSupportLib\r
- ExtendedIfrSupportLib\r
GenericBdsLib\r
ReportStatusCodeLib\r
PerformanceLib\r
DebugLib\r
PrintLib\r
HiiLib\r
- ExtendedHiiLib\r
UefiDriverEntryPoint\r
PlatformBdsLib\r
CapsuleLib\r
-\r
+ PcdLib\r
+ UefiHiiServicesLib\r
+ \r
[Guids]\r
- gEfiGlobalVariableGuid ## SOMETIMES_PRODUCES ## Variable:L"BootNext" (The number of next boot option)\r
- ## SOMETIMES_PRODUCES ## Variable:L"BootXX" (Boot option variable)\r
- ## SOMETIMES_PRODUCES ## Variable:L"PlatformLang" (Platform supported languange in Rfc3066 format)\r
- ## SOMETIMES_PRODUCES ## Variable:L"Lang" (Platform supported languange in Iso639 format)\r
- ## SOMETIMES_PRODUCES ## Variable:L"KeyOrder" (Number of hotkey)\r
- ## SOMETIMES_PRODUCES ## Variable:L"KeyXX" (Hotkey option variable)\r
- ## PRODUCES ## Variable:L"HwErrRecSupport" (The level of platform supported hardware Error Record Persistence)\r
- ## SOMETIMES_PRODUCES ## Variable:L"BootOptionSupport" (The feature supported in boot option menu, value could be: EFI_BOOT_OPTION_SUPPORT_KEY, EFI_BOOT_OPTION_SUPPORT_APP\r
- ## SOMETIMES_PRODUCES (not PcdUefiVariableDefaultLangDeprecate)## Variable:L"LangCodes" (Value of PcdUefiVariableDefaultLangCodes)\r
- ## PRODUCES ## Variable:L"PlatformLangCodes" (Value of PcdUefiVariableDefaultPlatformLangCodes)\r
- ## PRODUCES ## Variable:L"Timeout" (The time out value in second of showing progress bar)\r
- ## SOMETIMES_PRODUCES ## Variable:L"BootOrder" (The boot option array)\r
- ## SOMETIMES_PRODUCES ## Variable:L"DriverOrder" (The driver order list)\r
- ## SOMETIMES_CONSUMES ## Variable:L"ConIn" (The device path of console in device)\r
- ## SOMETIMES_CONSUMES ## Variable:L"ConOut" (The device path of console out device)\r
- ## SOMETIMES_CONSUMES ## Variable:L"ErrOut" (The device path of error out device)\r
- gEfiBootStateGuid ## SOMETIMES_PRODUCES (Produce when status has not been set yet) ## Variable:L"BootState" (Indicate the state of last boot)\r
- gEfiFileSystemVolumeLabelInfoIdGuid ## CONSUMES ## GUID (Indicate the information type is volume)\r
- gEfiFileInfoGuid ## CONSUMES ## GUID (Indicate the information type is file)\r
- gEfiMiscSubClassGuid ## CONSUMES ## GUID (Indicate the datahub for holding misc sub class record)\r
- gEfiMemorySubClassGuid ## CONSUMES ## GUID (Indicate the datahub for holding memory record)\r
- gEfiProcessorSubClassGuid ## CONSUMES ## GUID (Indicate the datahub for holding processor record)\r
- gEfiCapsuleVendorGuid ## CONSUMES ## GUID (Indicate the hob for holding capsure vendor)\r
+ ## SOMETIMES_PRODUCES ## Variable:L"BootXXXX" # Boot option variable\r
+ ## SOMETIMES_PRODUCES ## Variable:L"DriverXXXX" # Driver load option.\r
+ ## SOMETIMES_PRODUCES ## Variable:L"PlatformLang" # Platform supported languange in Rfc4646 format\r
+ ## SOMETIMES_PRODUCES ## Variable:L"Lang" # Platform supported languange in Iso639 format\r
+ ## SOMETIMES_PRODUCES ## Variable:L"LangCodes" # Value of PcdUefiVariableDefaultLangCodes\r
+ ## PRODUCES ## Variable:L"PlatformLangCodes" # Value of PcdUefiVariableDefaultPlatformLangCodes\r
+ ## SOMETIMES_PRODUCES ## Variable:L"KeyXXXX" # Hotkey option variable\r
+ ## PRODUCES ## Variable:L"HwErrRecSupport" # The level of platform supported hardware Error Record Persistence\r
+ ## PRODUCES ## Variable:L"Timeout" # The time out value in second of showing progress bar\r
+ ## SOMETIMES_PRODUCES ## Variable:L"BootOptionSupport" # The feature supported in boot option menu, value could be: EFI_BOOT_OPTION_SUPPORT_KEY, EFI_BOOT_OPTION_SUPPORT_APP\r
+ ## SOMETIMES_PRODUCES ## Variable:L"BootOrder" # The boot option array\r
+ ## SOMETIMES_PRODUCES ## Variable:L"DriverOrder" # The driver order list\r
+ ## SOMETIMES_CONSUMES ## Variable:L"ConIn" # The device path of console in device\r
+ ## SOMETIMES_PRODUCES ## Variable:L"ConIn" # The device path of console in device\r
+ ## SOMETIMES_CONSUMES ## Variable:L"ConOut" # The device path of console out device\r
+ ## SOMETIMES_PRODUCES ## Variable:L"ConOut" # The device path of console out device\r
+ ## SOMETIMES_CONSUMES ## Variable:L"ErrOut" # The device path of error out device\r
+ ## SOMETIMES_PRODUCES ## Variable:L"ErrOut" # The device path of error out device\r
+ ## SOMETIMES_CONSUMES ## Variable:L"ConInDev" # The device path of console in device\r
+ ## SOMETIMES_CONSUMES ## Variable:L"ConOutDev" # The device path of console out device\r
+ ## SOMETIMES_CONSUMES ## Variable:L"ErrOutDev" # The device path of error out device\r
+ ## SOMETIMES_PRODUCES ## Variable:L"BootNext" # The number of next boot option\r
+ gEfiGlobalVariableGuid\r
+ gEfiFileSystemVolumeLabelInfoIdGuid ## SOMETIMES_CONSUMES ## UNDEFINED # Indicate the information type is volume\r
+ gEfiFileInfoGuid ## SOMETIMES_CONSUMES ## UNDEFINED # Indicate the information type is file\r
+ gEfiHiiPlatformSetupFormsetGuid ## SOMETIMES_CONSUMES ## UNDEFINED # Indicate the formset class guid to be displayed\r
+ gEfiIfrTianoGuid ## SOMETIMES_PRODUCES ## UNDEFINED # Extended IFR Guid Opcode\r
+ gEfiHiiDriverHealthFormsetGuid ## SOMETIMES_CONSUMES ## UNDEFINED # Indicate the Driver Health formset class guid to be displayed\r
+ ## SOMETIMES_PRODUCES ## Variable:L"LegacyDevOrder"\r
+ ## SOMETIMES_CONSUMES ## Variable:L"LegacyDevOrder"\r
+ gEfiLegacyDevOrderVariableGuid\r
+ gFrontPageFormSetGuid ## SOMETIMES_CONSUMES ## HII # FrontPage HII Package\r
+ gBootMaintFormSetGuid ## SOMETIMES_CONSUMES ## HII # BootMaint HII Package\r
+ gFileExploreFormSetGuid ## SOMETIMES_CONSUMES ## HII # FileExplore HII Package\r
+ gBootManagerFormSetGuid ## SOMETIMES_CONSUMES ## HII # BootManager HII Package\r
+ gDeviceManagerFormSetGuid ## SOMETIMES_CONSUMES ## HII # DeviceManager HII Package\r
+ gDriverHealthFormSetGuid ## SOMETIMES_CONSUMES ## HII # DriverHealth HII Package\r
+ ## SOMETIMES_PRODUCES ## Event\r
+ ## SOMETIMES_CONSUMES ## Event\r
+ gConnectConInEventGuid\r
+ gEfiFmpCapsuleGuid ## SOMETIMES_CONSUMES ## GUID # FMP Capsule\r
+ gEdkiiStatusCodeDataTypeVariableGuid ## SOMETIMES_CONSUMES ## GUID\r
+ gEfiUartDevicePathGuid ## SOMETIMES_CONSUMES ## GUID (Identify the device path for UARD device)\r
+ gPerformanceProtocolGuid ## SOMETIMES_PRODUCES ## Variable:L"PerfDataMemAddr" (The ACPI address of performance data)\r
\r
[Protocols]\r
- gEfiHiiStringProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiSimpleFileSystemProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiLoadFileProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiBdsArchProtocolGuid # PROTOCOL ALWAYS_PRODUCES\r
- gEfiDataHubProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiGenericMemTestProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiLegacyBiosProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiConsoleControlProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiHiiDatabaseProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiUgaDrawProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiBlockIoProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiGraphicsOutputProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiSimpleTextInputExProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiHiiConfigRoutingProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiHiiConfigAccessProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiFormBrowser2ProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiSerialIoProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
- gEfiDevicePathProtocolGuid # PROTOCOL ALWAYS_CONSUMES\r
+ gEfiSimpleFileSystemProtocolGuid ## SOMETIMES_CONSUMES\r
+ gEfiLoadFileProtocolGuid ## SOMETIMES_CONSUMES\r
+ gEfiBdsArchProtocolGuid ## PRODUCES\r
+ gEfiSmbiosProtocolGuid ## CONSUMES\r
+ gEfiGenericMemTestProtocolGuid ## SOMETIMES_CONSUMES\r
+ gEfiLegacyBiosProtocolGuid ## SOMETIMES_CONSUMES\r
+ gEfiUgaDrawProtocolGuid |gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport ## SOMETIMES_CONSUMES\r
+ gEfiBlockIoProtocolGuid ## SOMETIMES_CONSUMES\r
+ gEfiGraphicsOutputProtocolGuid ## SOMETIMES_CONSUMES\r
+ ## CONSUMES\r
+ ## NOTIFY\r
+ gEfiSimpleTextInputExProtocolGuid \r
+ gEfiHiiConfigAccessProtocolGuid ## SOMETIMES_PRODUCES\r
+ gEfiFormBrowser2ProtocolGuid ## CONSUMES\r
+ gEfiSerialIoProtocolGuid ## SOMETIMES_CONSUMES\r
+ gEfiDevicePathProtocolGuid ## CONSUMES\r
+ gEfiDriverHealthProtocolGuid ## SOMETIMES_CONSUMES\r
+ gEfiPciIoProtocolGuid ## SOMETIMES_CONSUMES\r
+ gEfiBootLogoProtocolGuid ## SOMETIMES_CONSUMES\r
+ gEdkiiVariableLockProtocolGuid ## SOMETIMES_CONSUMES\r
\r
-[FeaturePcd.common]\r
- gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdSupportHardwareErrorRecord\r
- gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport\r
+[FeaturePcd]\r
+ gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate ## CONSUMES\r
+ gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport ## CONSUMES\r
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdBootlogoOnlyEnable ## CONSUMES\r
\r
-[Pcd.common]\r
- gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangCodes\r
- gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLang\r
- gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLangCodes\r
- gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdHardwareErrorRecordLevel\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn\r
+[Pcd]\r
+ gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangCodes ## SOMETIMES_CONSUMES\r
+ gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLang ## SOMETIMES_CONSUMES\r
+ gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLangCodes ## CONSUMES\r
+ gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang ## SOMETIMES_CONSUMES\r
+ ## CONSUMES\r
+ ## PRODUCES\r
+ gEfiMdePkgTokenSpaceGuid.PcdHardwareErrorRecordLevel\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow ## PRODUCES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn ## PRODUCES\r
+ ## SOMETIMES_CONSUMES\r
+ ## SOMETIMES_PRODUCES\r
+ gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut\r
+ ## CONSUMES\r
+ ## PRODUCES\r
+ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdBootState\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor ## CONSUMES \r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareRevision ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution ## PRODUCES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution ## PRODUCES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdConInConnectOnDemand ## SOMETIMES_CONSUMES\r
+ ## CONSUMES\r
+ ## SOMETIMES_PRODUCES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutColumn\r
+ ## CONSUMES\r
+ ## SOMETIMES_PRODUCES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutRow\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdErrorCodeSetVariable ## CONSUMES\r
\r
[Depex]\r
- gEfiHiiDatabaseProtocolGuid\r
+ TRUE\r
\r
#\r
# [BootMode] \r
-# BOOT_ON_FLASH_UPDATE ## SOMETIMES_CONSUMES\r
+# FLASH_UPDATE ## SOMETIMES_CONSUMES # Update Capsule Image\r
#\r
-# \r
-# [Hob]\r
-# CAPSULE_HOB ## SOMETIMES_CONSUMES\r
-#\r
-# \r
+\r
+[UserExtensions.TianoCore."ExtraFiles"]\r
+ BdsDxeExtra.uni\r