]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
MdeModulePkg/FaultTolerantWriteDxe: factor out boot service accesses
[mirror_edk2.git] / MdeModulePkg / Universal / FaultTolerantWriteDxe / FaultTolerantWriteSmm.inf
index 7740efa35966a5dff76697bd9652d0cd0d15fdfe..1653365bc247f39966d48c9984a33a737fcba0c4 100644 (file)
@@ -1,10 +1,12 @@
 ## @file\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
+#   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 - 2013, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2010 - 2018, 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
@@ -18,6 +20,7 @@
 [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
@@ -34,6 +37,7 @@
   FtwMisc.c\r
   UpdateWorkingBlock.c\r
   FaultTolerantWrite.c\r
+  FaultTolerantWriteTraditionalMm.c\r
   FaultTolerantWriteSmm.c\r
   FaultTolerantWrite.h\r
   FaultTolerantWriteSmmCommon.h\r
@@ -43,7 +47,7 @@
   MdeModulePkg/MdeModulePkg.dec\r
 \r
 [LibraryClasses]\r
-  SmmServicesTableLib\r
+  MmServicesTableLib\r
   MemoryAllocationLib\r
   BaseMemoryLib\r
   UefiDriverEntryPoint\r
   UefiLib\r
   PcdLib\r
   ReportStatusCodeLib\r
+  SmmMemLib\r
+  BaseLib\r
 \r
 [Guids]\r
-  gEdkiiWorkingBlockSignatureGuid                  ## 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
-  gEfiSmmAccess2ProtocolGuid                       ## CONSUMES\r
-  gEfiSmmEndOfDxeProtocolGuid                      ## CONSUMES\r
+  gEfiSmmSwapAddressRangeProtocolGuid | gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable  ## SOMETIMES_CONSUMES\r
+  ## NOTIFY\r
+  ## CONSUMES\r
+  gEfiSmmFirmwareVolumeBlockProtocolGuid\r
+  ## PRODUCES\r
+  ## UNDEFINED # SmiHandlerRegister\r
+  gEfiSmmFaultTolerantWriteProtocolGuid\r
+  gEfiMmEndOfDxeProtocolGuid                      ## 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