1## @file
2#  Produces Tcg2 protocol and measure boot environment
3#  This module will produce Tcg2 protocol and measure boot environment.
4#
5#  Caution: This module requires additional review when modified.
6#  This driver will have external input - PE/COFF image.
7#  This external input must be validated carefully to avoid security issue like
8#  buffer overflow, integer overflow.
9#
10# Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
11# This program and the accompanying materials
12# are licensed and made available under the terms and conditions of the BSD License
13# which accompanies this distribution. The full text of the license may be found at
14# http://opensource.org/licenses/bsd-license.php
15# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
16# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17#
18##
19
20[Defines]
21  INF_VERSION                    = 0x00010005
22  BASE_NAME                      = Tcg2Dxe
23  MODULE_UNI_FILE                = Tcg2Dxe.uni
24  FILE_GUID                      = FDFF263D-5F68-4591-87BA-B768F445A9AF
25  MODULE_TYPE                    = DXE_DRIVER
26  VERSION_STRING                 = 1.0
27  ENTRY_POINT                    = DriverEntry
28
29#
30# The following information is for reference only and not required by the build tools.
31#
32#  VALID_ARCHITECTURES           = IA32 X64 IPF
33#
34
35[Sources]
36  Tcg2Dxe.c
37  MeasureBootPeCoff.c
38
39[Packages]
40  MdePkg/MdePkg.dec
41  MdeModulePkg/MdeModulePkg.dec
42  SecurityPkg/SecurityPkg.dec
43  CryptoPkg/CryptoPkg.dec
44
45[LibraryClasses]
46  MemoryAllocationLib
47  BaseLib
48  UefiBootServicesTableLib
49  HobLib
50  UefiDriverEntryPoint
51  UefiRuntimeServicesTableLib
52  BaseMemoryLib
53  DebugLib
54  Tpm2CommandLib
55  PrintLib
56  UefiLib
57  Tpm2DeviceLib
58  HashLib
59  PerformanceLib
60  ReportStatusCodeLib
61  Tcg2PhysicalPresenceLib
62  PeCoffLib
63
64[Guids]
65  ## SOMETIMES_CONSUMES     ## Variable:L"SecureBoot"
66  ## SOMETIMES_CONSUMES     ## Variable:L"PK"
67  ## SOMETIMES_CONSUMES     ## Variable:L"KEK"
68  ## SOMETIMES_CONSUMES     ## Variable:L"BootXXXX"
69  gEfiGlobalVariableGuid
70
71  ## SOMETIMES_CONSUMES      ## Variable:L"db"
72  ## SOMETIMES_CONSUMES      ## Variable:L"dbx"
73  gEfiImageSecurityDatabaseGuid
74
75  gTcgEventEntryHobGuid                              ## SOMETIMES_CONSUMES  ## HOB
76  gTpmErrorHobGuid                                   ## SOMETIMES_CONSUMES  ## HOB
77  gEfiEventExitBootServicesGuid                      ## CONSUMES            ## Event
78  gEventExitBootServicesFailedGuid                   ## SOMETIMES_CONSUMES  ## Event
79  gEfiTpmDeviceInstanceNoneGuid                      ## SOMETIMES_CONSUMES  ## GUID       # TPM device identifier
80  gEfiTpmDeviceInstanceTpm12Guid                     ## SOMETIMES_CONSUMES  ## GUID       # TPM device identifier
81
82  gTcgEvent2EntryHobGuid                             ## SOMETIMES_CONSUMES  ## HOB
83
84[Protocols]
85  gEfiTcg2ProtocolGuid                               ## PRODUCES
86  gEfiTcg2FinalEventsTableGuid                       ## PRODUCES
87  gEfiAcpiTableProtocolGuid                          ## NOTIFY
88  gEfiMpServiceProtocolGuid                          ## SOMETIMES_CONSUMES
89  gEfiVariableWriteArchProtocolGuid                  ## NOTIFY
90
91[Pcd]
92  gEfiSecurityPkgTokenSpaceGuid.PcdTpmPlatformClass                         ## SOMETIMES_CONSUMES
93  gEfiSecurityPkgTokenSpaceGuid.PcdFirmwareDebuggerInitialized              ## SOMETIMES_CONSUMES
94  gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid                          ## CONSUMES
95  gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress                           ## SOMETIMES_CONSUMES
96  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemId                        ## SOMETIMES_CONSUMES
97  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemTableId                   ## SOMETIMES_CONSUMES
98  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemRevision                  ## SOMETIMES_CONSUMES
99  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorId                    ## SOMETIMES_CONSUMES
100  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorRevision              ## SOMETIMES_CONSUMES
101  gEfiSecurityPkgTokenSpaceGuid.PcdStatusCodeSubClassTpmDevice              ## SOMETIMES_CONSUMES
102  gEfiSecurityPkgTokenSpaceGuid.PcdTcg2HashAlgorithmBitmap                  ## CONSUMES
103  gEfiSecurityPkgTokenSpaceGuid.PcdTcg2NumberOfPCRBanks                     ## CONSUMES
104  gEfiSecurityPkgTokenSpaceGuid.PcdTcgLogAreaMinLen                         ## CONSUMES
105  gEfiSecurityPkgTokenSpaceGuid.PcdTcg2FinalLogAreaLen                      ## CONSUMES
106
107[Depex]
108  TRUE
109
110[UserExtensions.TianoCore."ExtraFiles"]
111  Tcg2DxeExtra.uni
112