606cc2266bda6869a17273029e1d892e0c9f7489
[mirror_edk2.git] / MdeModulePkg / Universal / FaultTolerantWriteDxe / FaultTolerantWriteSmm.inf
1 ## @file\r
2 #   Fault Tolerant Write Smm Driver.\r
3 #\r
4 #   This driver installs SMM Fault Tolerant Write (FTW) protocol, which provides fault\r
5 #   tolerant write capability in SMM environment for block devices. Its implementation\r
6 #   depends on the full functionality SMM FVB protocol that support read, write/erase\r
7 #   flash access.\r
8 #\r
9 # Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>\r
10 #\r
11 #  This program and the accompanying materials\r
12 #  are licensed and made available under the terms and conditions of the BSD License\r
13 #  which accompanies this distribution. The full text of the license may be found at\r
14 #  http://opensource.org/licenses/bsd-license.php\r
15 #  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
16 #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
17 #\r
18 ##\r
19 \r
20 [Defines]\r
21   INF_VERSION                    = 0x00010005\r
22   BASE_NAME                      = SmmFaultTolerantWriteDxe\r
23   MODULE_UNI_FILE                = SmmFaultTolerantWriteDxe.uni\r
24   FILE_GUID                      = 470CB248-E8AC-473c-BB4F-81069A1FE6FD\r
25   MODULE_TYPE                    = DXE_SMM_DRIVER\r
26   VERSION_STRING                 = 1.0\r
27   PI_SPECIFICATION_VERSION       = 0x0001000A\r
28   ENTRY_POINT                    = SmmFaultTolerantWriteInitialize\r
29 \r
30 #\r
31 # The following information is for reference only and not required by the build tools.\r
32 #\r
33 #  VALID_ARCHITECTURES           = IA32 X64\r
34 #\r
35 \r
36 [Sources]\r
37   FtwMisc.c\r
38   UpdateWorkingBlock.c\r
39   FaultTolerantWrite.c\r
40   FaultTolerantWriteSmm.c\r
41   FaultTolerantWrite.h\r
42   FaultTolerantWriteSmmCommon.h\r
43 \r
44 [Packages]\r
45   MdePkg/MdePkg.dec\r
46   MdeModulePkg/MdeModulePkg.dec\r
47 \r
48 [LibraryClasses]\r
49   SmmServicesTableLib\r
50   MemoryAllocationLib\r
51   BaseMemoryLib\r
52   UefiDriverEntryPoint\r
53   DebugLib\r
54   UefiLib\r
55   PcdLib\r
56   ReportStatusCodeLib\r
57   SmmMemLib\r
58   BaseLib\r
59 \r
60 [Guids]\r
61   #\r
62   # Signature in EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER\r
63   #\r
64   ## CONSUMES           ## GUID\r
65   ## PRODUCES           ## GUID\r
66   gEdkiiWorkingBlockSignatureGuid\r
67 \r
68 [Protocols]\r
69   gEfiSmmSwapAddressRangeProtocolGuid | gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable  ## SOMETIMES_CONSUMES\r
70   ## NOTIFY\r
71   ## CONSUMES\r
72   gEfiSmmFirmwareVolumeBlockProtocolGuid\r
73   ## PRODUCES\r
74   ## UNDEFINED # SmiHandlerRegister\r
75   gEfiSmmFaultTolerantWriteProtocolGuid\r
76   gEfiSmmEndOfDxeProtocolGuid                      ## CONSUMES\r
77 \r
78 [FeaturePcd]\r
79   gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable    ## CONSUMES\r
80 \r
81 [Pcd]\r
82   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase    ## SOMETIMES_CONSUMES\r
83   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64  ## CONSUMES\r
84   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize    ## CONSUMES\r
85   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase      ## SOMETIMES_CONSUMES\r
86   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64    ## CONSUMES\r
87   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize      ## CONSUMES\r
88 \r
89 #\r
90 # gBS->CalculateCrc32() is consumed in EntryPoint.\r
91 # PI spec said: When the DXE Foundation is notified that the EFI_RUNTIME_ARCH_PROTOCOL\r
92 # has been installed, then the Boot Service CalculateCrc32() is available.\r
93 # So add gEfiRuntimeArchProtocolGuid Depex here.\r
94 #\r
95 [Depex]\r
96   gEfiSmmFirmwareVolumeBlockProtocolGuid AND gEfiRuntimeArchProtocolGuid\r
97 \r
98 [UserExtensions.TianoCore."ExtraFiles"]\r
99   SmmFaultTolerantWriteDxeExtra.uni\r