## @file\r
+# Fault Tolerant Write Smm Driver.\r
+#\r
# This driver installs SMM Fault Tolerant Write (FTW) protocol, which provides fault \r
# tolerant write capability in SMM environment for block devices. Its implementation \r
# depends on the full functionality SMM FVB protocol that support read, write/erase \r
# flash access.\r
#\r
-# Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>\r
#\r
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
[Defines]\r
INF_VERSION = 0x00010005\r
BASE_NAME = SmmFaultTolerantWriteDxe\r
+ MODULE_UNI_FILE = SmmFaultTolerantWriteDxe.uni\r
FILE_GUID = 470CB248-E8AC-473c-BB4F-81069A1FE6FD\r
MODULE_TYPE = DXE_SMM_DRIVER\r
VERSION_STRING = 1.0\r
UefiDriverEntryPoint\r
DebugLib\r
UefiLib\r
+ PcdLib\r
+ ReportStatusCodeLib\r
\r
[Guids]\r
- gEfiSystemNvDataFvGuid ## CONSUMES ## FV Signature of Working Space Header\r
+ #\r
+ # Signature in EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER\r
+ #\r
+ ## CONSUMES ## GUID\r
+ ## PRODUCES ## GUID\r
+ gEdkiiWorkingBlockSignatureGuid\r
\r
[Protocols]\r
- gEfiSmmSwapAddressRangeProtocolGuid | gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable ## CONSUMES\r
- gEfiSmmFirmwareVolumeBlockProtocolGuid ## CONSUMES\r
- gEfiSmmFaultTolerantWriteProtocolGuid ## PRODUCES\r
+ gEfiSmmSwapAddressRangeProtocolGuid | gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable ## SOMETIMES_CONSUMES\r
+ ## NOTIFY\r
+ ## CONSUMES\r
+ gEfiSmmFirmwareVolumeBlockProtocolGuid\r
+ ## PRODUCES\r
+ ## UNDEFINED # SmiHandlerRegister\r
+ gEfiSmmFaultTolerantWriteProtocolGuid\r
+ gEfiSmmAccess2ProtocolGuid ## CONSUMES\r
+ gEfiSmmEndOfDxeProtocolGuid ## CONSUMES\r
\r
[FeaturePcd]\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable ## CONSUMES\r
\r
[Pcd]\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase ## SOMETIMES_CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64 ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase ## SOMETIMES_CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64 ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize ## CONSUMES\r
\r
+#\r
+# gBS->CalculateCrc32() is consumed in EntryPoint.\r
+# PI spec said: When the DXE Foundation is notified that the EFI_RUNTIME_ARCH_PROTOCOL\r
+# has been installed, then the Boot Service CalculateCrc32() is available.\r
+# So add gEfiRuntimeArchProtocolGuid Depex here.\r
+#\r
[Depex]\r
- gEfiSmmFirmwareVolumeBlockProtocolGuid\r
+ gEfiSmmFirmwareVolumeBlockProtocolGuid AND gEfiRuntimeArchProtocolGuid\r
\r
+[UserExtensions.TianoCore."ExtraFiles"]\r
+ SmmFaultTolerantWriteDxeExtra.uni\r