1## @file
2#  Runtime DXE part corresponding to SMM authenticated variable module.
3#
4#  This module installs variable arch protocol and variable write arch protocol to provide
5#  variable service. This module need work together with SMM authenticated variable module.
6#
7#  Caution: This module requires additional review when modified.
8#  This driver will have external input - variable data.
9#  This external input must be validated carefully to avoid security issues such as
10#  buffer overflow or integer overflow.
11#    The whole SMM authentication variable design relies on the integrity of flash part and SMM.
12#  which is assumed to be protected by platform.  All variable code and metadata in flash/SMM Memory
13#  may not be modified without authorization. If platform fails to protect these resources,
14#  the authentication service provided in this driver will be broken, and the behavior is undefined.
15#
16# Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>
17# This program and the accompanying materials
18# are licensed and made available under the terms and conditions of the BSD License
19# which accompanies this distribution. The full text of the license may be found at
20# http://opensource.org/licenses/bsd-license.php
21# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
22# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
23#
24##
25
26[Defines]
27  INF_VERSION                    = 0x00010005
28  BASE_NAME                      = VariableSmmRuntimeDxe
29  MODULE_UNI_FILE                = VariableSmmRuntimeDxe.uni
30  FILE_GUID                      = 9F7DCADE-11EA-448a-A46F-76E003657DD1
31  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
32  VERSION_STRING                 = 1.0
33  ENTRY_POINT                    = VariableSmmRuntimeInitialize
34
35#
36# The following information is for reference only and not required by the build tools.
37#
38#  VALID_ARCHITECTURES           = IA32 X64
39#
40#  VIRTUAL_ADDRESS_MAP_CALLBACK  =  VariableAddressChangeEvent
41#
42
43[Sources]
44  VariableSmmRuntimeDxe.c
45  Measurement.c
46
47[Packages]
48  MdePkg/MdePkg.dec
49  MdeModulePkg/MdeModulePkg.dec
50
51[LibraryClasses]
52  MemoryAllocationLib
53  BaseLib
54  UefiBootServicesTableLib
55  DebugLib
56  UefiRuntimeLib
57  DxeServicesTableLib
58  UefiDriverEntryPoint
59  TpmMeasurementLib
60
61[Protocols]
62  gEfiVariableWriteArchProtocolGuid             ## PRODUCES
63  gEfiVariableArchProtocolGuid                  ## PRODUCES
64  gEfiSmmCommunicationProtocolGuid              ## CONSUMES
65  ## CONSUMES
66  ## NOTIFY
67  ## UNDEFINED # Used to do smm communication
68  gEfiSmmVariableProtocolGuid
69  gEdkiiVariableLockProtocolGuid                ## PRODUCES
70  gEdkiiVarCheckProtocolGuid                    ## PRODUCES
71
72[Guids]
73  gEfiEventVirtualAddressChangeGuid             ## CONSUMES ## Event
74  gEfiEventExitBootServicesGuid                 ## CONSUMES ## Event
75  ## CONSUMES ## GUID # Locate protocol
76  ## CONSUMES ## GUID # Protocol notify
77  gSmmVariableWriteGuid
78
79  ## SOMETIMES_CONSUMES   ## Variable:L"PK"
80  ## SOMETIMES_CONSUMES   ## Variable:L"KEK"
81  ## SOMETIMES_CONSUMES   ## Variable:L"SecureBoot"
82  gEfiGlobalVariableGuid
83
84  ## SOMETIMES_CONSUMES   ## Variable:L"DB"
85  ## SOMETIMES_CONSUMES   ## Variable:L"DBX"
86  gEfiImageSecurityDatabaseGuid
87
88[Depex]
89  gEfiSmmCommunicationProtocolGuid
90
91[UserExtensions.TianoCore."ExtraFiles"]
92  VariableSmmRuntimeDxeExtra.uni
93