1## @file 2# Provides ACPI methods for TPM 2.0 support 3# 4# Spec Compliance Info: 5# "TCG ACPI Specification Version 1.2 Revision 8" 6# "Physical Presence Interface Specification Version 1.30 Revision 00.52" 7# along with 8# "Errata Version 0.4 for TCG PC Client Platform Physical Presence Interface Specification" 9# "Platform Reset Attack Mitigation Specification Version 1.00" 10# TPM2.0 ACPI device object 11# "TCG PC Client Platform Firmware Profile Specification for TPM Family 2.0 Level 00 Revision 1.03 v51" 12# along with 13# "Errata for PC Client Specific Platform Firmware Profile Specification Version 1.0 Revision 1.03" 14# 15# This driver implements TPM 2.0 definition block in ACPI table and 16# registers SMI callback functions for Tcg2 physical presence and 17# MemoryClear to handle the requests from ACPI method. 18# 19# Caution: This module requires additional review when modified. 20# This driver will have external input - variable and ACPINvs data in SMM mode. 21# This external input must be validated carefully to avoid security issue. 22# 23# Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.<BR> 24# Copyright (c) Microsoft Corporation.<BR> 25# SPDX-License-Identifier: BSD-2-Clause-Patent 26# 27## 28 29[Defines] 30 INF_VERSION = 0x00010005 31 BASE_NAME = Tcg2Smm 32 MODULE_UNI_FILE = Tcg2Smm.uni 33 FILE_GUID = 44A20657-10B8-4049-A148-ACD8812AF257 34 MODULE_TYPE = DXE_SMM_DRIVER 35 PI_SPECIFICATION_VERSION = 0x0001000A 36 VERSION_STRING = 1.0 37 ENTRY_POINT = InitializeTcgSmm 38 39[Sources] 40 Tcg2Smm.h 41 Tcg2Smm.c 42 Tpm.asl 43 44[Packages] 45 MdePkg/MdePkg.dec 46 MdeModulePkg/MdeModulePkg.dec 47 SecurityPkg/SecurityPkg.dec 48 49[LibraryClasses] 50 BaseLib 51 BaseMemoryLib 52 UefiDriverEntryPoint 53 SmmServicesTableLib 54 UefiBootServicesTableLib 55 DebugLib 56 DxeServicesLib 57 TpmMeasurementLib 58 Tpm2CommandLib 59 Tcg2PhysicalPresenceLib 60 PcdLib 61 62[Guids] 63 ## SOMETIMES_PRODUCES ## Variable:L"MemoryOverwriteRequestControl" 64 ## SOMETIMES_CONSUMES ## Variable:L"MemoryOverwriteRequestControl" 65 gEfiMemoryOverwriteControlDataGuid 66 67 gEfiTpmDeviceInstanceTpm20DtpmGuid ## PRODUCES ## GUID # TPM device identifier 68 69[Protocols] 70 gEfiSmmSwDispatch2ProtocolGuid ## CONSUMES 71 gEfiSmmVariableProtocolGuid ## CONSUMES 72 gEfiAcpiTableProtocolGuid ## CONSUMES 73 74[FixedPcd] 75 gEfiSecurityPkgTokenSpaceGuid.PcdSmiCommandIoPort ## CONSUMES 76 77[Pcd] 78 gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid ## CONSUMES 79 gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemId ## SOMETIMES_CONSUMES 80 gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemTableId ## SOMETIMES_CONSUMES 81 gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemRevision ## SOMETIMES_CONSUMES 82 gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorId ## SOMETIMES_CONSUMES 83 gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorRevision ## SOMETIMES_CONSUMES 84 gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress ## CONSUMES 85 gEfiSecurityPkgTokenSpaceGuid.PcdTcgPhysicalPresenceInterfaceVer ## CONSUMES 86 gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableRev ## CONSUMES 87 gEfiSecurityPkgTokenSpaceGuid.PcdTpmPlatformClass ## SOMETIMES_CONSUMES 88 gEfiSecurityPkgTokenSpaceGuid.PcdTpm2CurrentIrqNum ## CONSUMES 89 gEfiSecurityPkgTokenSpaceGuid.PcdTpm2PossibleIrqNumBuf ## CONSUMES 90 gEfiSecurityPkgTokenSpaceGuid.PcdActiveTpmInterfaceType ## CONSUMES 91 gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableLaml ## CONSUMES 92 gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableLasa ## CONSUMES 93 94[Depex] 95 gEfiAcpiTableProtocolGuid AND 96 gEfiSmmSwDispatch2ProtocolGuid AND 97 gEfiSmmVariableProtocolGuid AND 98 gEfiTcg2ProtocolGuid 99 100[UserExtensions.TianoCore."ExtraFiles"] 101 Tcg2SmmExtra.uni 102