Home | History | Annotate | Download | only in BdsDxe
      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