Home | History | Annotate | Download | only in PlatformSetupDxe
      1 #
      2 #
      3 # Copyright (c)  1999  - 2014, Intel Corporation. All rights reserved
      4 #                                                                                  

      6 # This program and the accompanying materials are licensed and made available under

      8 # the terms and conditions of the BSD License that accompanies this distribution.  

     10 # The full text of the license may be found at                                     

     12 # http://opensource.org/licenses/bsd-license.php.                                  

     14 #                                                                                  

     16 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,            

     18 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.    

     20 #                                                                                  

     22 #
     23 #
     24 #  This driver produces UEFI PLATFORM_DRIVER_OVERRIDE_PROTOCOL if this protocol doesn't exist.
     25 #  It doesn't install again if this protocol exists.
     26 #  It only implements one interface GetDriver of PLATFORM_DRIVER_OVERRIDE_PROTOCOL protocol
     27 #  and doesn't support other two interfaces GetDriverPath, DriverLoaded.
     28 #
     29 #  This driver also offers an UI interface in device manager to let user configure
     30 #  platform override protocol to override the default algorithm for matching
     31 #  drivers to controllers.
     32 #
     33 #  The main flow:
     34 #  1. It dynamicly locate all controller device path.
     35 #  2. It dynamicly locate all drivers which support binding protocol.
     36 #  3. It export and dynamicly update two menu to let user select the
     37 #     mapping between drivers to controllers.
     38 #  4. It save all the mapping info in NV variables for the following boot,
     39 #     which will be consumed by GetDriver API of the produced the platform override protocol.
     40 #
     41 #
     42 ##
     43 
     44 [Defines]
     45   INF_VERSION                    = 0x00010005
     46   BASE_NAME                      = PlatformSetupDxe
     47   FILE_GUID                      = C1A69A12-8653-4fde-A215-48FCD95288C3
     48   MODULE_TYPE                    = DXE_DRIVER
     49   VERSION_STRING                 = 1.0
     50   ENTRY_POINT                    = PlatformSetupDxeInit
     51   UNLOAD_IMAGE                   = PlatformSetupDxeUnload
     52 
     53 #
     54 # The following information is for reference only and not required by the build tools.
     55 #
     56 #  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
     57 #
     58 
     59 [Sources]
     60   VfrStrings.uni
     61   FwVersionStrings.uni
     62   Vfr.vfr
     63   Main.vfi
     64   Boot.vfi
     65   PlatformSetupDxe.c
     66   SetupInfoRecords.c
     67   PlatformSetupDxe.h
     68   Security.vfi
     69   SouthClusterConfig.vfi
     70   Thermal.vfi
     71   SetupFunctions.c
     72   UnCore.vfi
     73   SystemComponent.vfi
     74   DebugConfig.vfi
     75   UqiList.uni
     76 
     77 [Packages]
     78   MdePkg/MdePkg.dec
     79   MdeModulePkg/MdeModulePkg.dec
     80   IntelFrameworkPkg/IntelFrameworkPkg.dec
     81   Vlv2TbltDevicePkg/PlatformPkg.dec
     82   Vlv2DeviceRefCodePkg/Vlv2DeviceRefCodePkg.dec    #for PchAccess.h
     83   SecurityPkg/SecurityPkg.dec
     84 
     85 [LibraryClasses]
     86   BaseLib
     87   DebugLib
     88   UefiLib
     89   UefiDriverEntryPoint
     90   UefiBootServicesTableLib
     91   HiiLib
     92   BaseMemoryLib
     93   MemoryAllocationLib
     94   DevicePathLib
     95   DxeServicesTableLib
     96   UefiRuntimeServicesTableLib
     97   PrintLib
     98   BiosIdLib
     99   CpuIA32Lib
    100   IoLib
    101 
    102 [Guids]
    103   ##  This GUID C Name is not required for build since it is from UefiLib and not directly used by this module source.
    104   ##  gEfiGlobalVariableGuid                      ## SOMETIMES_CONSUMED ## Variable:L"PlatformLang" this variable specifies the platform supported language string (RFC 4646 format)
    105   ##  gEfiGlobalVariableGuid                      ## SOMETIMES_CONSUMED ## Variable:L"Lang" this variable specifies the platform supported language string (ISO 639-2 format)
    106   ##
    107   # There could be more than one variables, from PlatDriOver, PlatDriOver1, PlatDriOver2,...
    108   #
    109   # gEfiCallerIdGuid                            ## Private  ## Variable:L"PlatDriOver"
    110   gEfiIfrTianoGuid                              ## CONSUMES ## Guid
    111   gEfiProcessorSubClassGuid
    112   gEfiMiscSubClassGuid
    113   gEfiCacheSubClassGuid
    114   gEfiMemorySubClassGuid
    115   gEfiPlatformInfoGuid
    116   gEfiNormalSetupGuid
    117   gEfiSecureBootEnableDisableGuid
    118   gOsSelectionVariableGuid
    119   gEfiGlobalVariableGuid
    120 
    121 [Protocols]
    122   gEfiComponentName2ProtocolGuid                ## SOMETIMES_CONSUMED (Get Driver Name if ComponentName2Protocol exists)
    123   gEfiComponentNameProtocolGuid                 ## SOMETIMES_CONSUMED (Get Driver Name if ComponentNameProtocol exists and ComponentName2Protocol doesn't exist)
    124   gEfiFirmwareVolume2ProtocolGuid               ## SOMETIMES_CONSUMED (Get Driver Name from EFI UI section if ComponentName2Protocol and ComponentNameProtocol don't exist)
    125   gEfiPciIoProtocolGuid                         ## SOMETIMES_CONSUMED (Find the PCI device if PciIo protocol is installed)
    126   gEfiPciRootBridgeIoProtocolGuid
    127   gEfiBusSpecificDriverOverrideProtocolGuid     ## SOMETIMES_CONSUMED (Check whether the PCI device contains one or more efi drivers in its option rom by this protocol)
    128 
    129   gEfiDriverBindingProtocolGuid                 ## SOMETIMES_CONSUMED
    130   gEfiLoadedImageProtocolGuid                   ## SOMETIMES_CONSUMED
    131   gEfiLoadedImageDevicePathProtocolGuid         ## SOMETIMES_CONSUMED (Show the drivers in the second page that support DriverBindingProtocol, LoadedImageProtocol and LoadedImageDevicePathProtocol)
    132   gEfiDevicePathProtocolGuid                    ## SOMETIMES_CONSUMED (Show the controller device in the first page that support DevicePathProtocol)
    133 
    134   gEfiFormBrowser2ProtocolGuid                  ## CONSUMED
    135   gEfiHiiConfigRoutingProtocolGuid              ## CONSUMED
    136   gEfiHiiConfigAccessProtocolGuid               ## PRODUCED
    137   gEfiDevicePathToTextProtocolGuid              ## CONSUMED
    138   gEdkiiFormBrowserEx2ProtocolGuid
    139 
    140   gEfiDataHubProtocolGuid
    141   gEfiLegacyBiosProtocolGuid
    142   gEfiSimpleNetworkProtocolGuid
    143 
    144   gEfiDiskInfoProtocolGuid                      ## CONSUMED
    145   gEfiMpServiceProtocolGuid
    146   gDxePchPlatformPolicyProtocolGuid
    147   gEfiCpuIo2ProtocolGuid
    148   gEfiTdtOperationProtocolGuid
    149   gEfiSmbiosProtocolGuid                        ## PROTOCOL CONSUMES
    150 
    151 [Pcd.common]
    152   gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
    153 
    154 [Depex]
    155   gEfiFormBrowser2ProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid
    156