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