--- /dev/null
+## @file\r
+# Produces a Firmware Management Protocol that supports updates to a firmware\r
+# image stored in a firmware device with platform and firmware device specific\r
+# information provided through PCDs and libraries.\r
+#\r
+# Copyright (c) 2016, Microsoft Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>\r
+#\r
+# Redistribution and use in source and binary forms, with or without\r
+# modification, are permitted provided that the following conditions are met:\r
+# 1. Redistributions of source code must retain the above copyright notice,\r
+# this list of conditions and the following disclaimer.\r
+# 2. Redistributions in binary form must reproduce the above copyright notice,\r
+# this list of conditions and the following disclaimer in the documentation\r
+# and/or other materials provided with the distribution.\r
+#\r
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\r
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
+# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\r
+# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\r
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\r
+# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\r
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\r
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+##\r
+\r
+[Defines]\r
+ INF_VERSION = 0x00010005\r
+ BASE_NAME = FmpDxe\r
+ MODULE_UNI_FILE = FmpDxe.uni\r
+ FILE_GUID = 78EF0A56-1CF0-4535-B5DA-F6FD2F405A11\r
+ MODULE_TYPE = DXE_DRIVER\r
+ VERSION_STRING = 1.0\r
+ ENTRY_POINT = FmpDxeEntryPoint\r
+\r
+#\r
+# The following information is for reference only and not required by the build tools.\r
+#\r
+# VALID_ARCHITECTURES = IA32 X64 IPF ARM AARCH64\r
+#\r
+\r
+[Sources]\r
+ FmpDxe.c\r
+ DetectTestKey.c\r
+ VariableSupport.h\r
+ VariableSupport.c\r
+\r
+[Packages]\r
+ MdePkg/MdePkg.dec\r
+ MdeModulePkg/MdeModulePkg.dec\r
+ CryptoPkg/CryptoPkg.dec\r
+ FmpDevicePkg/FmpDevicePkg.dec\r
+\r
+[LibraryClasses]\r
+ UefiDriverEntryPoint\r
+ DebugLib\r
+ BaseLib\r
+ BaseMemoryLib\r
+ UefiBootServicesTableLib\r
+ MemoryAllocationLib\r
+ UefiLib\r
+ BaseCryptLib\r
+ FmpAuthenticationLib\r
+ FmpDeviceLib\r
+ FmpPayloadHeaderLib\r
+ CapsuleUpdatePolicyLib\r
+\r
+[Guids]\r
+ gEfiEndOfDxeEventGroupGuid\r
+\r
+[Protocols]\r
+ gEdkiiVariableLockProtocolGuid ## CONSUMES\r
+ gEfiFirmwareManagementProtocolGuid ## PRODUCES\r
+ gEdkiiFirmwareManagementProgressProtocolGuid ## PRODUCES\r
+\r
+[Pcd]\r
+ gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceSystemResetRequired ## CONSUMES\r
+ gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceImageIdName ## CONSUMES\r
+ gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceBuildTimeLowestSupportedVersion ## CONSUMES\r
+ gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceLockEventGuid ## CONSUMES\r
+ gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceProgressWatchdogTimeInSeconds ## CONSUMES\r
+ gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceProgressColor ## CONSUMES\r
+ gFmpDevicePkgTokenSpaceGuid.PcdFmpDevicePkcs7CertBufferXdr ## CONSUMES\r
+ gFmpDevicePkgTokenSpaceGuid.PcdFmpDeviceTestKeySha256Digest ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdTestKeyUsed ## SOMETIMES_PRODUCES\r
+\r
+[Depex]\r
+ gEfiVariableWriteArchProtocolGuid AND gEdkiiVariableLockProtocolGuid\r
+\r
+[UserExtensions.TianoCore."ExtraFiles"]\r
+ FmpDxeExtra.uni\r