]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatformDriOverrideDxe.inf
MdeModulePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdeModulePkg / Universal / PlatformDriOverrideDxe / PlatformDriOverrideDxe.inf
CommitLineData
6bfbb5f0 1## @file\r
6d8ced29
LG
2# This driver produces UEFI PLATFORM_DRIVER_OVERRIDE_PROTOCOL if this protocol doesn't exist.\r
3# It doesn't install again if this protocol exists.\r
d1102dba
LG
4# It only implements one interface GetDriver of PLATFORM_DRIVER_OVERRIDE_PROTOCOL protocol\r
5# and doesn't support other two interfaces GetDriverPath, DriverLoaded.\r
6#\r
6d8ced29
LG
7# This driver also offers an UI interface in device manager to let user configure\r
8# platform override protocol to override the default algorithm for matching\r
9# drivers to controllers.\r
10#\r
11# The main flow:\r
12# 1. It dynamicly locate all controller device path.\r
13# 2. It dynamicly locate all drivers which support binding protocol.\r
14# 3. It export and dynamicly update two menu to let user select the\r
15# mapping between drivers to controllers.\r
d1102dba 16# 4. It save all the mapping info in NV variables for the following boot,\r
6d8ced29
LG
17# which will be consumed by GetDriver API of the produced the platform override protocol.\r
18#\r
a81d26ab
LG
19# Caution: This module is a sample implementation for the test purpose.\r
20#\r
d1102dba 21# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
a6f164a7 22#\r
9d510e61 23# SPDX-License-Identifier: BSD-2-Clause-Patent\r
a6f164a7 24#\r
6bfbb5f0 25##\r
a6f164a7 26\r
27[Defines]\r
28 INF_VERSION = 0x00010005\r
6d8ced29 29 BASE_NAME = PlatDriOverrideDxe\r
6036e94d 30 MODULE_UNI_FILE = PlatDriOverrideDxe.uni\r
a6f164a7 31 FILE_GUID = 35034CE2-A6E5-4fb4-BABE-A0156E9B2549\r
6d8ced29 32 MODULE_TYPE = DXE_DRIVER\r
a6f164a7 33 VERSION_STRING = 1.0\r
6d8ced29
LG
34 ENTRY_POINT = PlatDriOverrideDxeInit\r
35 UNLOAD_IMAGE = PlatDriOverrideDxeUnload\r
a6f164a7 36\r
37#\r
38# The following information is for reference only and not required by the build tools.\r
39#\r
de005223 40# VALID_ARCHITECTURES = IA32 X64 EBC\r
a6f164a7 41#\r
42\r
6bfbb5f0 43[Sources]\r
6d8ced29
LG
44 VfrStrings.uni\r
45 Vfr.vfr\r
46 PlatDriOverrideDxe.c\r
47 PlatOverMngr.h\r
48 PlatDriOverrideLib.c\r
49 InternalPlatDriOverrideDxe.h\r
a6f164a7 50\r
51[Packages]\r
52 MdePkg/MdePkg.dec\r
53 MdeModulePkg/MdeModulePkg.dec\r
54\r
55[LibraryClasses]\r
56 BaseLib\r
a6f164a7 57 DebugLib\r
6d8ced29
LG
58 UefiLib\r
59 UefiDriverEntryPoint\r
68dbca6c 60 UefiBootServicesTableLib\r
6d8ced29
LG
61 HiiLib\r
62 BaseMemoryLib\r
63 MemoryAllocationLib\r
64 DevicePathLib\r
65 DxeServicesTableLib\r
66 UefiRuntimeServicesTableLib\r
d1102dba
LG
67 PrintLib\r
68\r
6d8ced29 69[Guids]\r
6036e94d
SZ
70 #\r
71 # This GUID C Name is not required for build since it is from UefiLib and not directly used by this module source.\r
72 # gEfiGlobalVariableGuid ## SOMETIMES_CONSUMES ## Variable:L"PlatformLang" # this variable specifies the platform supported language string (RFC 4646 format)\r
73 # gEfiGlobalVariableGuid ## SOMETIMES_CONSUMES ## Variable:L"Lang" # this variable specifies the platform supported language string (ISO 639-2 format)\r
74 #\r
6d8ced29 75 # There could be more than one variables, from PlatDriOver, PlatDriOver1, PlatDriOver2,...\r
6036e94d 76 # gEfiCallerIdGuid ## Private ## Variable:L"PlatDriOver"\r
6d8ced29 77 #\r
6036e94d
SZ
78 gEfiIfrTianoGuid ## SOMETIMES_PRODUCES ## UNDEFINED\r
79 ## SOMETIMES_CONSUMES ## GUID # HiiIsConfigHdrMatch Data\r
80 ## SOMETIMES_PRODUCES ## GUID # HiiGetBrowserData Data\r
81 ## SOMETIMES_CONSUMES ## GUID # HiiSetBrowserData Data\r
82 ## SOMETIMES_PRODUCES ## GUID # HiiConstructConfigHdr Data\r
83 ## CONSUMES ## HII\r
84 gPlatformOverridesManagerGuid\r
a6f164a7 85\r
68dbca6c 86[Protocols]\r
6036e94d
SZ
87 gEfiComponentName2ProtocolGuid ## SOMETIMES_CONSUMES # Get Driver Name if ComponentName2Protocol exists\r
88 gEfiComponentNameProtocolGuid ## SOMETIMES_CONSUMES # Get Driver Name if ComponentNameProtocol exists and ComponentName2Protocol doesn't exist\r
89 gEfiFirmwareVolume2ProtocolGuid ## SOMETIMES_CONSUMES # Get Driver Name from EFI UI section if ComponentName2Protocol and ComponentNameProtocol don't exist\r
90 gEfiPciIoProtocolGuid ## SOMETIMES_CONSUMES # Find the PCI device if PciIo protocol is installed\r
91 gEfiBusSpecificDriverOverrideProtocolGuid ## SOMETIMES_CONSUMES # Check whether the PCI device contains one or more efi drivers in its option rom by this protocol\r
6d8ced29 92\r
6036e94d
SZ
93 gEfiDriverBindingProtocolGuid ## SOMETIMES_CONSUMES\r
94 gEfiLoadedImageProtocolGuid ## SOMETIMES_CONSUMES\r
95 gEfiLoadedImageDevicePathProtocolGuid ## SOMETIMES_CONSUMES # Show the drivers in the second page that support DriverBindingProtocol, LoadedImageProtocol and LoadedImageDevicePathProtocol\r
6d8ced29 96\r
6036e94d
SZ
97 gEfiFormBrowser2ProtocolGuid ## CONSUMES\r
98 gEfiHiiConfigRoutingProtocolGuid ## CONSUMES\r
99 gEfiHiiConfigAccessProtocolGuid ## PRODUCES\r
100 gEfiPlatformDriverOverrideProtocolGuid ## PRODUCES\r
101 ## PRODUCES\r
102 ## SOMETIMES_CONSUMES # Show the controller device in the first page that support DevicePathProtocol\r
103 gEfiDevicePathProtocolGuid\r
c9eb1bae 104\r
105[Depex]\r
6036e94d
SZ
106 gEfiFormBrowser2ProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid\r
107\r
108[UserExtensions.TianoCore."ExtraFiles"]\r
109 PlatDriOverrideDxeExtra.uni\r