mirror of
https://github.com/acidanthera/audk.git
synced 2025-08-31 14:38:09 +02:00
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3169 This change separated the original Tcg2Smm module into 2 drivers: the SMM driver that registers callback for physical presence and memory clear; the Tcg2Acpi driver that patches and publishes ACPI table for runtime use. Tcg2Smm introduced an SMI root handler to allow Tcg2Acpi to communicate the NVS region used by Tpm.asl and exchange the registered SwSmiValue. Lastly, Tcg2Smm driver will publish gTcg2MmSwSmiRegisteredGuid at the end of entrypoint to ensure Tcg2Acpi to load after Tcg2Smm is ready to communicate. Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Qi Zhang <qi1.zhang@intel.com> Cc: Rahul Kumar <rahul1.kumar@intel.com> Signed-off-by: Kun Qin <kun.q@outlook.com> Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com> Message-Id: <MWHPR06MB310295CC623EF7C062844DFFF3969@MWHPR06MB3102.namprd06.prod.outlook.com>
87 lines
3.0 KiB
INI
87 lines
3.0 KiB
INI
## @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
|
|
# registers SMI callback functions for Tcg2 physical presence and
|
|
# MemoryClear to handle the requests from ACPI method.
|
|
#
|
|
# 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 = Tcg2Smm
|
|
MODULE_UNI_FILE = Tcg2Smm.uni
|
|
FILE_GUID = 44A20657-10B8-4049-A148-ACD8812AF257
|
|
MODULE_TYPE = DXE_SMM_DRIVER
|
|
PI_SPECIFICATION_VERSION = 0x0001000A
|
|
VERSION_STRING = 1.0
|
|
ENTRY_POINT = InitializeTcgSmm
|
|
|
|
[Sources]
|
|
Tcg2Smm.h
|
|
Tcg2Smm.c
|
|
Tcg2TraditionalMm.c
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
SecurityPkg/SecurityPkg.dec
|
|
|
|
[LibraryClasses]
|
|
BaseLib
|
|
BaseMemoryLib
|
|
UefiDriverEntryPoint
|
|
MmServicesTableLib
|
|
UefiBootServicesTableLib
|
|
DebugLib
|
|
DxeServicesLib
|
|
TpmMeasurementLib
|
|
Tpm2CommandLib
|
|
Tcg2PhysicalPresenceLib
|
|
PcdLib
|
|
SmmMemLib
|
|
|
|
[Guids]
|
|
## SOMETIMES_PRODUCES ## Variable:L"MemoryOverwriteRequestControl"
|
|
## SOMETIMES_CONSUMES ## Variable:L"MemoryOverwriteRequestControl"
|
|
gEfiMemoryOverwriteControlDataGuid
|
|
|
|
gEfiTpmDeviceInstanceTpm20DtpmGuid ## PRODUCES ## GUID # TPM device identifier
|
|
gTcg2MmSwSmiRegisteredGuid ## PRODUCES
|
|
gTpmNvsMmGuid ## CONSUMES
|
|
|
|
[Protocols]
|
|
gEfiSmmSwDispatch2ProtocolGuid ## CONSUMES
|
|
gEfiSmmVariableProtocolGuid ## CONSUMES
|
|
gEfiMmReadyToLockProtocolGuid ## CONSUMES
|
|
|
|
[Pcd]
|
|
gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid ## CONSUMES
|
|
|
|
[Depex]
|
|
gEfiSmmSwDispatch2ProtocolGuid AND
|
|
gEfiSmmVariableProtocolGuid AND
|
|
gEfiTcg2ProtocolGuid
|
|
|
|
[UserExtensions.TianoCore."ExtraFiles"]
|
|
Tcg2SmmExtra.uni
|