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