1## @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 99