1## @file
2#  BDSDxe module is core driver for BDS phase.
3#
4#  When DxeCore dispatching all DXE driver, this module will produce architecture protocol
5#  gEfiBdsArchProtocolGuid. After DxeCore finish dispatching, DxeCore will invoke Entry
6#  interface of protocol gEfiBdsArchProtocolGuid, then BDS phase is entered.
7#
8#  Generally, this module take reposiblity to connect all necessary devices for platform boot,
9#  these boot device path are hold in PlatformBdsLib library instance produced by platform.
10#  For legacy boot, BDS will transfer control to legacy BIOS after legacy boot device is select.
11#  For EFI boot, BDS will load boot loader file EFI\BOOT\BOOTIA32.EFI, EFI\BOOT\BOOTX64.EFI,
12#  EFI\BOOT\BOOTIA64.EFI file from selected boot device and transfer control to boot loader.
13#
14#  BDSDxe also maintain the UI for "Boot Manager, Boot Maintaince Manager, Device Manager" which
15#  is used for user to configure boot option or maintain hardware device.
16#
17#  Copyright (c) 2008 - 2015, Intel Corporation. All rights reserved.<BR>
18#  This program and the accompanying materials
19#  are licensed and made available under the terms and conditions of the BSD License
20#  which accompanies this distribution.  The full text of the license may be found at
21#  http://opensource.org/licenses/bsd-license.php
22#
23#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
24#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
25#
26##
27
28[Defines]
29  INF_VERSION                    = 0x00010005
30  BASE_NAME                      = BdsDxe
31  MODULE_UNI_FILE                = BdsDxe.uni
32  FILE_GUID                      = FC5C7020-1A48-4198-9BE2-EAD5ABC8CF2F
33  MODULE_TYPE                    = DXE_DRIVER
34  VERSION_STRING                 = 1.0
35  ENTRY_POINT                    = BdsInitialize
36
37#
38# The following information is for reference only and not required by the build tools.
39#
40#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
41#
42
43[Sources]
44  FrontPage.h
45  Language.h
46  Bds.h
47  Hotkey.h
48  BootMaint/BBSsupport.h
49  BootMngr/BootManager.h
50  BootMaint/BootMaint.h
51  String.h
52  BootMaint/FormGuid.h
53  HwErrRecSupport.c
54  HwErrRecSupport.h
55
56  DeviceMngr/DeviceManager.h
57  DeviceMngr/DeviceManagerVfr.h
58  DeviceMngr/DeviceManagerVfr.Vfr
59  DeviceMngr/DriverHealthVfr.Vfr
60  DeviceMngr/DeviceManagerStrings.uni
61  DeviceMngr/DeviceManager.c
62  BootMngr/BootManagerVfr.Vfr
63  BootMngr/BootManagerStrings.uni
64  BootMngr/BootManager.c
65  BootMaint/FE.vfr
66  BootMaint/FileExplorer.c
67  BootMaint/BootMaint.c
68  BootMaint/BBSsupport.c
69  BootMaint/UpdatePage.c
70  BootMaint/Variable.c
71  BootMaint/Data.c
72  BootMaint/ConsoleOption.c
73  BootMaint/BootOption.c
74  BootMaint/BmLib.c
75  BootMaint/Bm.vfr
76  BootMaint/Bmstring.uni
77  Hotkey.c
78  MemoryTest.c
79  Capsules.c
80  Strings.uni
81  String.c
82  Language.c
83  FrontPageVfr.Vfr
84  FrontPageStrings.uni
85  FrontPage.c
86  BdsEntry.c
87
88
89[Packages]
90  MdePkg/MdePkg.dec
91  MdeModulePkg/MdeModulePkg.dec
92  IntelFrameworkPkg/IntelFrameworkPkg.dec
93  IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
94
95[LibraryClasses]
96  DevicePathLib
97  BaseLib
98  HobLib
99  UefiRuntimeServicesTableLib
100  GenericBdsLib
101  ReportStatusCodeLib
102  PerformanceLib
103  MemoryAllocationLib
104  UefiLib
105  UefiBootServicesTableLib
106  BaseMemoryLib
107  DebugLib
108  PrintLib
109  HiiLib
110  UefiDriverEntryPoint
111  PlatformBdsLib
112  CapsuleLib
113  PcdLib
114  UefiHiiServicesLib
115
116[Guids]
117  ## SOMETIMES_PRODUCES ## Variable:L"BootXXXX"          # Boot option variable
118  ## SOMETIMES_PRODUCES ## Variable:L"DriverXXXX"        # Driver load option.
119  ## SOMETIMES_PRODUCES ## Variable:L"PlatformLang"      # Platform supported languange in Rfc4646 format
120  ## SOMETIMES_PRODUCES ## Variable:L"Lang"              # Platform supported languange in Iso639 format
121  ## SOMETIMES_PRODUCES ## Variable:L"LangCodes"         # Value of PcdUefiVariableDefaultLangCodes
122  ## PRODUCES           ## Variable:L"PlatformLangCodes" # Value of PcdUefiVariableDefaultPlatformLangCodes
123  ## SOMETIMES_PRODUCES ## Variable:L"KeyXXXX"  # Hotkey option variable
124  ## PRODUCES           ## Variable:L"HwErrRecSupport"   # The level of platform supported hardware Error Record Persistence
125  ## PRODUCES           ## Variable:L"Timeout"     # The time out value in second of showing progress bar
126  ## 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
127  ## SOMETIMES_PRODUCES ## Variable:L"BootOrder"   # The boot option array
128  ## SOMETIMES_PRODUCES ## Variable:L"DriverOrder" # The driver order list
129  ## SOMETIMES_CONSUMES ## Variable:L"ConIn"  # The device path of console in device
130  ## SOMETIMES_PRODUCES ## Variable:L"ConIn"  # The device path of console in device
131  ## SOMETIMES_CONSUMES ## Variable:L"ConOut" # The device path of console out device
132  ## SOMETIMES_PRODUCES ## Variable:L"ConOut" # The device path of console out device
133  ## SOMETIMES_CONSUMES ## Variable:L"ErrOut" # The device path of error out device
134  ## SOMETIMES_PRODUCES ## Variable:L"ErrOut" # The device path of error out device
135  ## SOMETIMES_CONSUMES ## Variable:L"ConInDev"  # The device path of console in device
136  ## SOMETIMES_CONSUMES ## Variable:L"ConOutDev" # The device path of console out device
137  ## SOMETIMES_CONSUMES ## Variable:L"ErrOutDev" # The device path of error out device
138  ## SOMETIMES_PRODUCES ## Variable:L"BootNext"  # The number of next boot option
139  gEfiGlobalVariableGuid
140  gEfiFileSystemVolumeLabelInfoIdGuid           ## SOMETIMES_CONSUMES ## UNDEFINED # Indicate the information type is volume
141  gEfiFileInfoGuid                              ## SOMETIMES_CONSUMES ## UNDEFINED # Indicate the information type is file
142  gEfiHiiPlatformSetupFormsetGuid               ## SOMETIMES_CONSUMES ## UNDEFINED # Indicate the formset class guid to be displayed
143  gEfiIfrTianoGuid                              ## SOMETIMES_PRODUCES ## UNDEFINED # Extended IFR Guid Opcode
144  gEfiHiiDriverHealthFormsetGuid                ## SOMETIMES_CONSUMES ## UNDEFINED # Indicate the Driver Health formset class guid to be displayed
145  ## SOMETIMES_PRODUCES ## Variable:L"LegacyDevOrder"
146  ## SOMETIMES_CONSUMES ## Variable:L"LegacyDevOrder"
147  gEfiLegacyDevOrderVariableGuid
148  gFrontPageFormSetGuid                         ## SOMETIMES_CONSUMES ## HII # FrontPage HII Package
149  gBootMaintFormSetGuid                         ## SOMETIMES_CONSUMES ## HII # BootMaint HII Package
150  gFileExploreFormSetGuid                       ## SOMETIMES_CONSUMES ## HII # FileExplore HII Package
151  gBootManagerFormSetGuid                       ## SOMETIMES_CONSUMES ## HII # BootManager HII Package
152  gDeviceManagerFormSetGuid                     ## SOMETIMES_CONSUMES ## HII # DeviceManager HII Package
153  gDriverHealthFormSetGuid                      ## SOMETIMES_CONSUMES ## HII # DriverHealth HII Package
154  ## SOMETIMES_PRODUCES ## Event
155  ## SOMETIMES_CONSUMES ## Event
156  gConnectConInEventGuid
157  gEfiFmpCapsuleGuid                            ## SOMETIMES_CONSUMES ## GUID # FMP Capsule
158  gEdkiiStatusCodeDataTypeVariableGuid          ## SOMETIMES_CONSUMES ## GUID
159  gEfiUartDevicePathGuid                        ## SOMETIMES_CONSUMES ## GUID (Identify the device path for UARD device)
160  gPerformanceProtocolGuid                      ## SOMETIMES_PRODUCES ## Variable:L"PerfDataMemAddr" (The ACPI address of performance data)
161
162[Protocols]
163  gEfiSimpleFileSystemProtocolGuid              ## SOMETIMES_CONSUMES
164  gEfiLoadFileProtocolGuid                      ## SOMETIMES_CONSUMES
165  gEfiBdsArchProtocolGuid                       ## PRODUCES
166  gEfiSmbiosProtocolGuid                        ## CONSUMES
167  gEfiGenericMemTestProtocolGuid                ## SOMETIMES_CONSUMES
168  gEfiLegacyBiosProtocolGuid                    ## SOMETIMES_CONSUMES
169  gEfiUgaDrawProtocolGuid |gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport ## SOMETIMES_CONSUMES
170  gEfiBlockIoProtocolGuid                       ## SOMETIMES_CONSUMES
171  gEfiGraphicsOutputProtocolGuid                ## SOMETIMES_CONSUMES
172  ## CONSUMES
173  ## NOTIFY
174  gEfiSimpleTextInputExProtocolGuid
175  gEfiHiiConfigAccessProtocolGuid               ## SOMETIMES_PRODUCES
176  gEfiFormBrowser2ProtocolGuid                  ## CONSUMES
177  gEfiSerialIoProtocolGuid                      ## SOMETIMES_CONSUMES
178  gEfiDevicePathProtocolGuid                    ## CONSUMES
179  gEfiDriverHealthProtocolGuid                  ## SOMETIMES_CONSUMES
180  gEfiPciIoProtocolGuid                         ## SOMETIMES_CONSUMES
181  gEfiBootLogoProtocolGuid                      ## SOMETIMES_CONSUMES
182  gEdkiiVariableLockProtocolGuid                ## SOMETIMES_CONSUMES
183
184[FeaturePcd]
185  gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate    ## CONSUMES
186  gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport                   ## CONSUMES
187  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdBootlogoOnlyEnable ## CONSUMES
188
189[Pcd]
190  gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangCodes          ## SOMETIMES_CONSUMES
191  gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLang               ## SOMETIMES_CONSUMES
192  gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLangCodes  ## CONSUMES
193  gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang       ## SOMETIMES_CONSUMES
194  ## CONSUMES
195  ## PRODUCES
196  gEfiMdePkgTokenSpaceGuid.PcdHardwareErrorRecordLevel
197  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow     ## PRODUCES
198  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn  ## PRODUCES
199  ## SOMETIMES_CONSUMES
200  ## SOMETIMES_PRODUCES
201  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut
202  ## CONSUMES
203  ## PRODUCES
204  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdBootState
205  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor   ## CONSUMES
206  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareRevision ## CONSUMES
207  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution  ## PRODUCES
208  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution    ## PRODUCES
209  gEfiMdeModulePkgTokenSpaceGuid.PcdConInConnectOnDemand       ## SOMETIMES_CONSUMES
210  ## CONSUMES
211  ## SOMETIMES_PRODUCES
212  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutColumn
213  ## CONSUMES
214  ## SOMETIMES_PRODUCES
215  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupConOutRow
216  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoHorizontalResolution            ## CONSUMES
217  gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution              ## CONSUMES
218  gEfiMdeModulePkgTokenSpaceGuid.PcdErrorCodeSetVariable                      ## CONSUMES
219
220[Depex]
221  TRUE
222
223#
224# [BootMode]
225#   FLASH_UPDATE    ## SOMETIMES_CONSUMES # Update Capsule Image
226#
227
228[UserExtensions.TianoCore."ExtraFiles"]
229  BdsDxeExtra.uni
230