## @file # Produces Tcg2 protocol and measure boot environment # # Spec Compliance Info: # "TCG PC Client Platform Firmware Profile Specification for TPM Family 2.0 Level 00 Revision 1.03 v51" # along with # "Errata for PC Client Specific Platform Firmware Profile Specification Version 1.0 Revision 1.03" # "TCG EFI Protocol Specification" "Family 2.0" "Level 00 Revision 00.13" # along with # "Errata Version 0.5 for TCG EFI Protocol Specification" # # This module will produce Tcg2 protocol and measure boot environment. # # Caution: This module requires additional review when modified. # This driver will have external input - PE/COFF image. # This external input must be validated carefully to avoid security issue like # buffer overflow, integer overflow. # # Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent # ## [Defines] INF_VERSION = 0x00010005 BASE_NAME = Tcg2Dxe MODULE_UNI_FILE = Tcg2Dxe.uni FILE_GUID = FDFF263D-5F68-4591-87BA-B768F445A9AF MODULE_TYPE = DXE_DRIVER VERSION_STRING = 1.0 ENTRY_POINT = DriverEntry # # The following information is for reference only and not required by the build tools. # # VALID_ARCHITECTURES = IA32 X64 # [Sources] Tcg2Dxe.c MeasureBootPeCoff.c [Packages] MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec SecurityPkg/SecurityPkg.dec CryptoPkg/CryptoPkg.dec [LibraryClasses] MemoryAllocationLib BaseLib UefiBootServicesTableLib HobLib UefiDriverEntryPoint UefiRuntimeServicesTableLib BaseMemoryLib DebugLib Tpm2CommandLib PrintLib UefiLib Tpm2DeviceLib HashLib PerformanceLib ReportStatusCodeLib Tcg2PhysicalPresenceLib PeCoffLib [Guids] ## SOMETIMES_CONSUMES ## Variable:L"SecureBoot" ## SOMETIMES_CONSUMES ## Variable:L"PK" ## SOMETIMES_CONSUMES ## Variable:L"KEK" ## SOMETIMES_CONSUMES ## Variable:L"BootXXXX" gEfiGlobalVariableGuid ## SOMETIMES_CONSUMES ## Variable:L"db" ## SOMETIMES_CONSUMES ## Variable:L"dbx" gEfiImageSecurityDatabaseGuid gTcgEventEntryHobGuid ## SOMETIMES_CONSUMES ## HOB gTpmErrorHobGuid ## SOMETIMES_CONSUMES ## HOB gEfiEventExitBootServicesGuid ## CONSUMES ## Event gEventExitBootServicesFailedGuid ## SOMETIMES_CONSUMES ## Event gEfiTpmDeviceInstanceNoneGuid ## SOMETIMES_CONSUMES ## GUID # TPM device identifier gEfiTpmDeviceInstanceTpm12Guid ## SOMETIMES_CONSUMES ## GUID # TPM device identifier gTcgEvent2EntryHobGuid ## SOMETIMES_CONSUMES ## HOB gTpm2StartupLocalityHobGuid ## SOMETIMES_CONSUMES ## HOB gTcg800155PlatformIdEventHobGuid ## SOMETIMES_CONSUMES ## HOB [Protocols] gEfiTcg2ProtocolGuid ## PRODUCES gEfiTcg2FinalEventsTableGuid ## PRODUCES gEfiMpServiceProtocolGuid ## SOMETIMES_CONSUMES gEfiVariableWriteArchProtocolGuid ## NOTIFY gEfiResetNotificationProtocolGuid ## CONSUMES [Pcd] gEfiSecurityPkgTokenSpaceGuid.PcdTpmPlatformClass ## SOMETIMES_CONSUMES gEfiSecurityPkgTokenSpaceGuid.PcdFirmwareDebuggerInitialized ## SOMETIMES_CONSUMES gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid ## CONSUMES gEfiSecurityPkgTokenSpaceGuid.PcdStatusCodeSubClassTpmDevice ## SOMETIMES_CONSUMES gEfiSecurityPkgTokenSpaceGuid.PcdTcg2HashAlgorithmBitmap ## CONSUMES gEfiSecurityPkgTokenSpaceGuid.PcdTcg2NumberOfPCRBanks ## CONSUMES gEfiSecurityPkgTokenSpaceGuid.PcdTcgLogAreaMinLen ## CONSUMES gEfiSecurityPkgTokenSpaceGuid.PcdTcg2FinalLogAreaLen ## CONSUMES gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableRev ## CONSUMES gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableLaml ## PRODUCES gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableLasa ## PRODUCES gEfiMdeModulePkgTokenSpaceGuid.PcdTcgPfpMeasurementRevision ## CONSUMES [Depex] # According to PcdTpm2AcpiTableRev definition in SecurityPkg.dec # This PCD should be configured at DynamicHii or DynamicHiiEx. # So, this PCD read operation depends on GetVariable service. # Add VariableArch protocol dependency to make sure PCD read works. gEfiVariableArchProtocolGuid [UserExtensions.TianoCore."ExtraFiles"] Tcg2DxeExtra.uni