--- /dev/null
+## @file\r
+#\r
+# Produces EFI_CC_MEASUREMENT_PROTOCOL and measure boot environment\r
+#\r
+#\r
+# Copyright (c) 2020 - 2022, Intel Corporation. All rights reserved.<BR>\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
+#\r
+##\r
+\r
+[Defines]\r
+ INF_VERSION = 0x00010005\r
+ BASE_NAME = TdTcg2Dxe\r
+ FILE_GUID = F062221E-C607-44C2-B0B4-C3886331D351\r
+ MODULE_TYPE = DXE_DRIVER\r
+ VERSION_STRING = 1.0\r
+ ENTRY_POINT = DriverEntry\r
+\r
+#\r
+# The following information is for reference only and not required by the build tools.\r
+#\r
+# VALID_ARCHITECTURES = X64\r
+#\r
+\r
+[Sources]\r
+ TdTcg2Dxe.c\r
+ MeasureBootPeCoff.c\r
+\r
+[Packages]\r
+ MdePkg/MdePkg.dec\r
+ MdeModulePkg/MdeModulePkg.dec\r
+ SecurityPkg/SecurityPkg.dec\r
+ CryptoPkg/CryptoPkg.dec\r
+ OvmfPkg/OvmfPkg.dec\r
+\r
+[LibraryClasses]\r
+ MemoryAllocationLib\r
+ BaseLib\r
+ UefiBootServicesTableLib\r
+ HobLib\r
+ UefiDriverEntryPoint\r
+ UefiRuntimeServicesTableLib\r
+ BaseMemoryLib\r
+ DebugLib\r
+ PrintLib\r
+ UefiLib\r
+ HashLib\r
+ PerformanceLib\r
+ ReportStatusCodeLib\r
+ PeCoffLib\r
+ TpmMeasurementLib\r
+ TdxLib\r
+\r
+[Guids]\r
+ ## SOMETIMES_CONSUMES ## Variable:L"SecureBoot"\r
+ ## SOMETIMES_CONSUMES ## Variable:L"PK"\r
+ ## SOMETIMES_CONSUMES ## Variable:L"KEK"\r
+ ## SOMETIMES_CONSUMES ## Variable:L"BootXXXX"\r
+ gEfiGlobalVariableGuid\r
+\r
+ ## SOMETIMES_CONSUMES ## Variable:L"db"\r
+ ## SOMETIMES_CONSUMES ## Variable:L"dbx"\r
+ gEfiImageSecurityDatabaseGuid\r
+\r
+ # gTcgEventEntryHobGuid ## SOMETIMES_CONSUMES ## HOB\r
+ gEfiEventExitBootServicesGuid ## CONSUMES ## Event\r
+ gEventExitBootServicesFailedGuid ## SOMETIMES_CONSUMES ## Event\r
+\r
+ gCcEventEntryHobGuid ## SOMETIMES_CONSUMES ## HOB\r
+ gTcg800155PlatformIdEventHobGuid ## SOMETIMES_CONSUMES ## HOB\r
+ gEfiCcFinalEventsTableGuid ## PRODUCES\r
+\r
+[Protocols]\r
+ gEfiCcMeasurementProtocolGuid ## PRODUCES\r
+ gEfiMpServiceProtocolGuid ## SOMETIMES_CONSUMES\r
+ gEfiVariableWriteArchProtocolGuid ## NOTIFY\r
+ gEfiResetNotificationProtocolGuid ## CONSUMES\r
+ gEfiAcpiTableProtocolGuid ## NOTIFY\r
+\r
+[Pcd]\r
+ gEfiSecurityPkgTokenSpaceGuid.PcdTpmPlatformClass ## SOMETIMES_CONSUMES\r
+ gEfiSecurityPkgTokenSpaceGuid.PcdFirmwareDebuggerInitialized ## SOMETIMES_CONSUMES\r
+ gEfiSecurityPkgTokenSpaceGuid.PcdStatusCodeSubClassTpmDevice ## SOMETIMES_CONSUMES\r
+ gEfiSecurityPkgTokenSpaceGuid.PcdTcg2HashAlgorithmBitmap ## CONSUMES\r
+ gEfiSecurityPkgTokenSpaceGuid.PcdTcg2NumberOfPCRBanks ## CONSUMES\r
+ gEfiSecurityPkgTokenSpaceGuid.PcdTcgLogAreaMinLen ## CONSUMES\r
+ gEfiSecurityPkgTokenSpaceGuid.PcdTcg2FinalLogAreaLen ## CONSUMES\r
+ gUefiOvmfPkgTokenSpaceGuid.PcdCcEventlogAcpiTableLaml ## PRODUCES\r
+ gUefiOvmfPkgTokenSpaceGuid.PcdCcEventlogAcpiTableLasa ## PRODUCES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemId ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemTableId ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemRevision ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorId ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorRevision ## CONSUMES\r
+\r
+[Depex]\r
+ # According to PcdTpm2AcpiTableRev definition in SecurityPkg.dec\r
+ # This PCD should be configured at DynamicHii or DynamicHiiEx.\r
+ # So, this PCD read operation depends on GetVariable service.\r
+ # Add VariableArch protocol dependency to make sure PCD read works.\r
+ gEfiVariableArchProtocolGuid AND gEfiAcpiTableProtocolGuid\r