## @file # Fault Tolerant Write Smm Driver. # # This driver installs SMM Fault Tolerant Write (FTW) protocol, which provides fault # tolerant write capability in SMM environment for block devices. Its implementation # depends on the full functionality SMM FVB protocol that support read, write/erase # flash access. # # Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # ## [Defines] INF_VERSION = 0x00010005 BASE_NAME = SmmFaultTolerantWriteDxe MODULE_UNI_FILE = SmmFaultTolerantWriteDxe.uni FILE_GUID = 470CB248-E8AC-473c-BB4F-81069A1FE6FD MODULE_TYPE = DXE_SMM_DRIVER VERSION_STRING = 1.0 PI_SPECIFICATION_VERSION = 0x0001000A ENTRY_POINT = SmmFaultTolerantWriteInitialize # # The following information is for reference only and not required by the build tools. # # VALID_ARCHITECTURES = IA32 X64 # [Sources] FtwMisc.c UpdateWorkingBlock.c FaultTolerantWrite.c FaultTolerantWriteTraditionalMm.c FaultTolerantWriteSmm.c FaultTolerantWrite.h FaultTolerantWriteSmmCommon.h [Packages] MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec [LibraryClasses] MmServicesTableLib MemoryAllocationLib BaseMemoryLib UefiDriverEntryPoint DebugLib UefiLib PcdLib ReportStatusCodeLib SmmMemLib BaseLib SafeIntLib VariableFlashInfoLib [Guids] # # Signature in EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER # ## CONSUMES ## GUID ## PRODUCES ## GUID gEdkiiWorkingBlockSignatureGuid [Protocols] gEfiSmmSwapAddressRangeProtocolGuid | gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable ## SOMETIMES_CONSUMES ## NOTIFY ## CONSUMES gEfiSmmFirmwareVolumeBlockProtocolGuid ## PRODUCES ## UNDEFINED # SmiHandlerRegister gEfiSmmFaultTolerantWriteProtocolGuid gEfiMmEndOfDxeProtocolGuid ## CONSUMES [FeaturePcd] gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable ## CONSUMES # # gBS->CalculateCrc32() is consumed in EntryPoint. # PI spec said: When the DXE Foundation is notified that the EFI_RUNTIME_ARCH_PROTOCOL # has been installed, then the Boot Service CalculateCrc32() is available. # So add gEfiRuntimeArchProtocolGuid Depex here. # [Depex] gEfiSmmFirmwareVolumeBlockProtocolGuid AND gEfiRuntimeArchProtocolGuid [UserExtensions.TianoCore."ExtraFiles"] SmmFaultTolerantWriteDxeExtra.uni