| ## @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 - 2015, Intel Corporation. All rights reserved.<BR> | |
| # | |
| # 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 | |
| FaultTolerantWriteSmm.c | |
| FaultTolerantWrite.h | |
| FaultTolerantWriteSmmCommon.h | |
| [Packages] | |
| MdePkg/MdePkg.dec | |
| MdeModulePkg/MdeModulePkg.dec | |
| [LibraryClasses] | |
| SmmServicesTableLib | |
| MemoryAllocationLib | |
| BaseMemoryLib | |
| UefiDriverEntryPoint | |
| DebugLib | |
| UefiLib | |
| PcdLib | |
| ReportStatusCodeLib | |
| SmmMemLib | |
| [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 | |
| gEfiSmmEndOfDxeProtocolGuid ## 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 |