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