## @file | |
# Provides ACPI methods for TPM 2.0 support | |
# | |
# Spec Compliance Info: | |
# "TCG ACPI Specification Version 1.2 Revision 8" | |
# "Physical Presence Interface Specification Version 1.30 Revision 00.52" | |
# along with | |
# "Errata Version 0.4 for TCG PC Client Platform Physical Presence Interface Specification" | |
# "Platform Reset Attack Mitigation Specification Version 1.00" | |
# TPM2.0 ACPI device object | |
# "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" | |
# | |
# This driver implements TPM 2.0 definition block in ACPI table and | |
# populates registered SMI callback functions for Tcg2 physical presence | |
# and MemoryClear to handle the requests for ACPI method. It needs to be | |
# used together with Tcg2 MM drivers to exchange information on registered | |
# SwSmiValue and allocated NVS region address. | |
# | |
# Caution: This module requires additional review when modified. | |
# This driver will have external input - variable and ACPINvs data in SMM mode. | |
# This external input must be validated carefully to avoid security issue. | |
# | |
# Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.<BR> | |
# Copyright (c) Microsoft Corporation.<BR> | |
# SPDX-License-Identifier: BSD-2-Clause-Patent | |
# | |
## | |
[Defines] | |
INF_VERSION = 0x00010005 | |
BASE_NAME = Tcg2Acpi | |
FILE_GUID = 0D4BBF18-C2CC-4C23-BD63-BFDAD4C710D0 | |
MODULE_TYPE = DXE_DRIVER | |
PI_SPECIFICATION_VERSION = 0x0001000A | |
VERSION_STRING = 1.0 | |
ENTRY_POINT = InitializeTcgAcpi | |
[Sources] | |
Tcg2Acpi.c | |
Tpm.asl | |
[Packages] | |
MdePkg/MdePkg.dec | |
MdeModulePkg/MdeModulePkg.dec | |
SecurityPkg/SecurityPkg.dec | |
[LibraryClasses] | |
BaseLib | |
BaseMemoryLib | |
UefiDriverEntryPoint | |
UefiBootServicesTableLib | |
DebugLib | |
DxeServicesLib | |
TpmMeasurementLib | |
Tpm2CommandLib | |
Tcg2PhysicalPresenceLib | |
PcdLib | |
MmUnblockMemoryLib | |
[Guids] | |
gEfiTpmDeviceInstanceTpm20DtpmGuid ## PRODUCES ## GUID # TPM device identifier | |
gTpmNvsMmGuid ## CONSUMES | |
gEdkiiPiSmmCommunicationRegionTableGuid ## CONSUMES | |
[Protocols] | |
gEfiAcpiTableProtocolGuid ## CONSUMES | |
gEfiMmCommunicationProtocolGuid ## CONSUMES | |
[FixedPcd] | |
gEfiSecurityPkgTokenSpaceGuid.PcdSmiCommandIoPort ## CONSUMES | |
[Pcd] | |
gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid ## CONSUMES | |
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemId ## SOMETIMES_CONSUMES | |
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemTableId ## SOMETIMES_CONSUMES | |
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemRevision ## SOMETIMES_CONSUMES | |
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorId ## SOMETIMES_CONSUMES | |
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorRevision ## SOMETIMES_CONSUMES | |
gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress ## CONSUMES | |
gEfiSecurityPkgTokenSpaceGuid.PcdTcgPhysicalPresenceInterfaceVer ## CONSUMES | |
gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableRev ## CONSUMES | |
gEfiSecurityPkgTokenSpaceGuid.PcdTpmPlatformClass ## SOMETIMES_CONSUMES | |
gEfiSecurityPkgTokenSpaceGuid.PcdTpm2CurrentIrqNum ## CONSUMES | |
gEfiSecurityPkgTokenSpaceGuid.PcdTpm2PossibleIrqNumBuf ## CONSUMES | |
gEfiSecurityPkgTokenSpaceGuid.PcdActiveTpmInterfaceType ## CONSUMES | |
gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableLaml ## CONSUMES | |
gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableLasa ## CONSUMES | |
[Depex] | |
gEfiAcpiTableProtocolGuid AND | |
gTcg2MmSwSmiRegisteredGuid AND | |
gEfiTcg2ProtocolGuid |