## @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.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at # http://opensource.org/licenses/bsd-license.php # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. # ## [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 [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 [Pcd] gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase ## SOMETIMES_CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64 ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase ## SOMETIMES_CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64 ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize ## 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