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