MdeModulePkg/FaultTolerantWriteDxe: factor out boot service accesses
[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   FaultTolerantWriteTraditionalMm.c\r
41   FaultTolerantWriteSmm.c\r
42   FaultTolerantWrite.h\r
43   FaultTolerantWriteSmmCommon.h\r
44 \r
45 [Packages]\r
46   MdePkg/MdePkg.dec\r
47   MdeModulePkg/MdeModulePkg.dec\r
48 \r
49 [LibraryClasses]\r
50   MmServicesTableLib\r
51   MemoryAllocationLib\r
52   BaseMemoryLib\r
53   UefiDriverEntryPoint\r
54   DebugLib\r
55   UefiLib\r
56   PcdLib\r
57   ReportStatusCodeLib\r
58   SmmMemLib\r
59   BaseLib\r
60 \r
61 [Guids]\r
62   #\r
63   # Signature in EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER\r
64   #\r
65   ## CONSUMES           ## GUID\r
66   ## PRODUCES           ## GUID\r
67   gEdkiiWorkingBlockSignatureGuid\r
68 \r
69 [Protocols]\r
70   gEfiSmmSwapAddressRangeProtocolGuid | gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable  ## SOMETIMES_CONSUMES\r
71   ## NOTIFY\r
72   ## CONSUMES\r
73   gEfiSmmFirmwareVolumeBlockProtocolGuid\r
74   ## PRODUCES\r
75   ## UNDEFINED # SmiHandlerRegister\r
76   gEfiSmmFaultTolerantWriteProtocolGuid\r
77   gEfiMmEndOfDxeProtocolGuid                      ## CONSUMES\r
78 \r
79 [FeaturePcd]\r
80   gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable    ## CONSUMES\r
81 \r
82 [Pcd]\r
83   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase    ## SOMETIMES_CONSUMES\r
84   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64  ## CONSUMES\r
85   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize    ## CONSUMES\r
86   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase      ## SOMETIMES_CONSUMES\r
87   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64    ## CONSUMES\r
88   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize      ## CONSUMES\r
89 \r
90 #\r
91 # gBS->CalculateCrc32() is consumed in EntryPoint.\r
92 # PI spec said: When the DXE Foundation is notified that the EFI_RUNTIME_ARCH_PROTOCOL\r
93 # has been installed, then the Boot Service CalculateCrc32() is available.\r
94 # So add gEfiRuntimeArchProtocolGuid Depex here.\r
95 #\r
96 [Depex]\r
97   gEfiSmmFirmwareVolumeBlockProtocolGuid AND gEfiRuntimeArchProtocolGuid\r
98 \r
99 [UserExtensions.TianoCore."ExtraFiles"]\r
100   SmmFaultTolerantWriteDxeExtra.uni\r