1 | ## @file
|
---|
2 | # Produces Tcg2 protocol and measure boot environment
|
---|
3 | #
|
---|
4 | # Spec Compliance Info:
|
---|
5 | # "TCG PC Client Platform Firmware Profile Specification for TPM Family 2.0 Level 00 Revision 1.03 v51"
|
---|
6 | # along with
|
---|
7 | # "Errata for PC Client Specific Platform Firmware Profile Specification Version 1.0 Revision 1.03"
|
---|
8 | # "TCG EFI Protocol Specification" "Family 2.0" "Level 00 Revision 00.13"
|
---|
9 | # along with
|
---|
10 | # "Errata Version 0.5 for TCG EFI Protocol Specification"
|
---|
11 | #
|
---|
12 | # This module will produce Tcg2 protocol and measure boot environment.
|
---|
13 | #
|
---|
14 | # Caution: This module requires additional review when modified.
|
---|
15 | # This driver will have external input - PE/COFF image.
|
---|
16 | # This external input must be validated carefully to avoid security issue like
|
---|
17 | # buffer overflow, integer overflow.
|
---|
18 | #
|
---|
19 | # Copyright (c) 2015 - 2024, Intel Corporation. All rights reserved.<BR>
|
---|
20 | # SPDX-License-Identifier: BSD-2-Clause-Patent
|
---|
21 | #
|
---|
22 | ##
|
---|
23 |
|
---|
24 | [Defines]
|
---|
25 | INF_VERSION = 0x00010005
|
---|
26 | BASE_NAME = Tcg2Dxe
|
---|
27 | MODULE_UNI_FILE = Tcg2Dxe.uni
|
---|
28 | FILE_GUID = FDFF263D-5F68-4591-87BA-B768F445A9AF
|
---|
29 | MODULE_TYPE = DXE_DRIVER
|
---|
30 | VERSION_STRING = 1.0
|
---|
31 | ENTRY_POINT = DriverEntry
|
---|
32 |
|
---|
33 | #
|
---|
34 | # The following information is for reference only and not required by the build tools.
|
---|
35 | #
|
---|
36 | # VALID_ARCHITECTURES = IA32 X64
|
---|
37 | #
|
---|
38 |
|
---|
39 | [Sources]
|
---|
40 | Tcg2Dxe.c
|
---|
41 | MeasureBootPeCoff.c
|
---|
42 |
|
---|
43 | [Packages]
|
---|
44 | MdePkg/MdePkg.dec
|
---|
45 | MdeModulePkg/MdeModulePkg.dec
|
---|
46 | SecurityPkg/SecurityPkg.dec
|
---|
47 | CryptoPkg/CryptoPkg.dec
|
---|
48 |
|
---|
49 | [LibraryClasses]
|
---|
50 | MemoryAllocationLib
|
---|
51 | BaseLib
|
---|
52 | UefiBootServicesTableLib
|
---|
53 | HobLib
|
---|
54 | UefiDriverEntryPoint
|
---|
55 | UefiRuntimeServicesTableLib
|
---|
56 | BaseMemoryLib
|
---|
57 | DebugLib
|
---|
58 | Tpm2CommandLib
|
---|
59 | PrintLib
|
---|
60 | UefiLib
|
---|
61 | Tpm2DeviceLib
|
---|
62 | HashLib
|
---|
63 | PerformanceLib
|
---|
64 | ReportStatusCodeLib
|
---|
65 | Tcg2PhysicalPresenceLib
|
---|
66 | PeCoffLib
|
---|
67 |
|
---|
68 | [Guids]
|
---|
69 | ## SOMETIMES_CONSUMES ## Variable:L"SecureBoot"
|
---|
70 | ## SOMETIMES_CONSUMES ## Variable:L"PK"
|
---|
71 | ## SOMETIMES_CONSUMES ## Variable:L"KEK"
|
---|
72 | ## SOMETIMES_CONSUMES ## Variable:L"BootXXXX"
|
---|
73 | gEfiGlobalVariableGuid
|
---|
74 |
|
---|
75 | ## SOMETIMES_CONSUMES ## Variable:L"db"
|
---|
76 | ## SOMETIMES_CONSUMES ## Variable:L"dbx"
|
---|
77 | gEfiImageSecurityDatabaseGuid
|
---|
78 |
|
---|
79 | gTcgEventEntryHobGuid ## SOMETIMES_CONSUMES ## HOB
|
---|
80 | gTpmErrorHobGuid ## SOMETIMES_CONSUMES ## HOB
|
---|
81 | gEfiEventExitBootServicesGuid ## CONSUMES ## Event
|
---|
82 | gEventExitBootServicesFailedGuid ## SOMETIMES_CONSUMES ## Event
|
---|
83 | gEfiTpmDeviceInstanceNoneGuid ## SOMETIMES_CONSUMES ## GUID # TPM device identifier
|
---|
84 | gEfiTpmDeviceInstanceTpm12Guid ## SOMETIMES_CONSUMES ## GUID # TPM device identifier
|
---|
85 |
|
---|
86 | gTcgEvent2EntryHobGuid ## SOMETIMES_CONSUMES ## HOB
|
---|
87 | gTpm2StartupLocalityHobGuid ## SOMETIMES_CONSUMES ## HOB
|
---|
88 | gTcg800155PlatformIdEventHobGuid ## SOMETIMES_CONSUMES ## HOB
|
---|
89 | gEfiDeviceSignatureDatabaseGuid
|
---|
90 |
|
---|
91 | [Protocols]
|
---|
92 | gEfiTcg2ProtocolGuid ## PRODUCES
|
---|
93 | gEfiTcg2FinalEventsTableGuid ## PRODUCES
|
---|
94 | gEfiMpServiceProtocolGuid ## SOMETIMES_CONSUMES
|
---|
95 | gEfiVariableWriteArchProtocolGuid ## NOTIFY
|
---|
96 | gEfiResetNotificationProtocolGuid ## CONSUMES
|
---|
97 |
|
---|
98 | [Pcd]
|
---|
99 | gEfiSecurityPkgTokenSpaceGuid.PcdTpmPlatformClass ## SOMETIMES_CONSUMES
|
---|
100 | gEfiSecurityPkgTokenSpaceGuid.PcdFirmwareDebuggerInitialized ## SOMETIMES_CONSUMES
|
---|
101 | gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid ## CONSUMES
|
---|
102 | gEfiSecurityPkgTokenSpaceGuid.PcdStatusCodeSubClassTpmDevice ## SOMETIMES_CONSUMES
|
---|
103 | gEfiSecurityPkgTokenSpaceGuid.PcdTcg2HashAlgorithmBitmap ## CONSUMES
|
---|
104 | gEfiSecurityPkgTokenSpaceGuid.PcdTcg2NumberOfPCRBanks ## CONSUMES
|
---|
105 | gEfiSecurityPkgTokenSpaceGuid.PcdTcgLogAreaMinLen ## CONSUMES
|
---|
106 | gEfiSecurityPkgTokenSpaceGuid.PcdTcg2FinalLogAreaLen ## CONSUMES
|
---|
107 | gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableRev ## CONSUMES
|
---|
108 | gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableLaml ## PRODUCES
|
---|
109 | gEfiSecurityPkgTokenSpaceGuid.PcdTpm2AcpiTableLasa ## PRODUCES
|
---|
110 | gEfiMdeModulePkgTokenSpaceGuid.PcdTcgPfpMeasurementRevision ## CONSUMES
|
---|
111 | gEfiMdeModulePkgTokenSpaceGuid.PcdEnableSpdmDeviceAuthentication ## CONSUMES
|
---|
112 |
|
---|
113 | [Depex]
|
---|
114 | # According to PcdTpm2AcpiTableRev definition in SecurityPkg.dec
|
---|
115 | # This PCD should be configured at DynamicHii or DynamicHiiEx.
|
---|
116 | # So, this PCD read operation depends on GetVariable service.
|
---|
117 | # Add VariableArch protocol dependency to make sure PCD read works.
|
---|
118 | gEfiVariableArchProtocolGuid
|
---|
119 |
|
---|
120 | [UserExtensions.TianoCore."ExtraFiles"]
|
---|
121 | Tcg2DxeExtra.uni
|
---|