-#/** @file\r
-# This driver installs Fault Tolerant Write (FTW) protocol, \r
+## @file\r
+# Fault Tolerant Write Dxe Driver.\r
+#\r
+# This driver installs Fault Tolerant Write (FTW) protocol,\r
# which provides fault tolerant write capability for block devices.\r
# Its implementation depends on the full functionality FVB protocol that support read, write/erase flash access.\r
#\r
-# Copyright (c) 2006 - 2009, Intel Corporation\r
+# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
#\r
-# All rights reserved. This program and the accompanying materials\r
+# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
# which accompanies this distribution. The full text of the license may be found at\r
# http://opensource.org/licenses/bsd-license.php\r
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
#\r
-#**/\r
+##\r
\r
[Defines]\r
INF_VERSION = 0x00010005\r
BASE_NAME = FaultTolerantWriteDxe\r
+ MODULE_UNI_FILE = FaultTolerantWriteDxe.uni\r
FILE_GUID = FE5CEA76-4F72-49e8-986F-2CD899DFFE5D\r
MODULE_TYPE = DXE_DRIVER\r
VERSION_STRING = 1.0\r
- ENTRY_POINT = InitializeFaultTolerantWrite\r
+ ENTRY_POINT = FaultTolerantWriteInitialize\r
\r
#\r
# The following information is for reference only and not required by the build tools.\r
#\r
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC\r
+# VALID_ARCHITECTURES = IA32 X64 EBC\r
#\r
\r
-[Sources.common]\r
+[Sources]\r
FtwMisc.c\r
UpdateWorkingBlock.c\r
FaultTolerantWrite.c\r
+ FaultTolerantWriteDxe.c\r
FaultTolerantWrite.h\r
\r
[Packages]\r
BaseMemoryLib\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
- gEfiSwapAddressRangeProtocolGuid | PcdFullFtwServiceEnable ## CONSUMES\r
- gEfiFirmwareVolumeBlockProtocolGuid ## CONSUMES\r
+ gEfiSwapAddressRangeProtocolGuid | gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable ## SOMETIMES_CONSUMES\r
+ ## NOTIFY\r
+ ## CONSUMES\r
+ gEfiFirmwareVolumeBlockProtocolGuid\r
gEfiFaultTolerantWriteProtocolGuid ## PRODUCES\r
\r
[FeaturePcd]\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable ## CONSUMES\r
\r
[Pcd]\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase\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
- gEfiFirmwareVolumeBlockProtocolGuid AND gEfiAlternateFvBlockGuid ## gEfiAlternateFvBlockGuid specifies FVB protocol with read, write/erase flash access.\r
+ gEfiFirmwareVolumeBlockProtocolGuid AND gEfiRuntimeArchProtocolGuid\r
\r
+[UserExtensions.TianoCore."ExtraFiles"]\r
+ FaultTolerantWriteDxeExtra.uni\r