## @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.<BR> | |
# 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 |