Home | History | Annotate | Download | only in RuntimeDxe
      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