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