REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3479 Updates VariableRuntimeDxe, VariableSmm, and VariableStandaloneMm to acquire variable flash information from the Variable Flash Information library. Note: This introduces a dependency on VariableFlashInfoLib in these modules. Therefore, a platform building the variable modules must specify an instance of VariableFlashInfoLib in their platform build. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Acked-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
		
			
				
	
	
		
			151 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
| ## @file
 | |
| #  Provides variable service.
 | |
| #
 | |
| #  This module installs variable arch protocol and variable write arch protocol to provide
 | |
| #  variable services: SetVariable, GetVariable, GetNextVariableName and QueryVariableInfo.
 | |
| #
 | |
| #  Caution: This module requires additional review when modified.
 | |
| #  This driver will have external input - variable data.
 | |
| #  This external input must be validated carefully to avoid security issues such as
 | |
| #  buffer overflow or integer overflow.
 | |
| #
 | |
| # Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
 | |
| # Copyright (c) Microsoft Corporation.
 | |
| # SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| #
 | |
| ##
 | |
| 
 | |
| [Defines]
 | |
|   INF_VERSION                    = 0x00010005
 | |
|   BASE_NAME                      = VariableRuntimeDxe
 | |
|   MODULE_UNI_FILE                = VariableRuntimeDxe.uni
 | |
|   FILE_GUID                      = CBD2E4D5-7068-4FF5-B462-9822B4AD8D60
 | |
|   MODULE_TYPE                    = DXE_RUNTIME_DRIVER
 | |
|   VERSION_STRING                 = 1.0
 | |
|   ENTRY_POINT                    = VariableServiceInitialize
 | |
| 
 | |
| #
 | |
| # The following information is for reference only and not required by the build tools.
 | |
| #
 | |
| #  VALID_ARCHITECTURES           = IA32 X64 EBC
 | |
| #
 | |
| #  VIRTUAL_ADDRESS_MAP_CALLBACK  =  VariableClassAddressChangeEvent
 | |
| #
 | |
| 
 | |
| [Sources]
 | |
|   Reclaim.c
 | |
|   Variable.c
 | |
|   VariableDxe.c
 | |
|   Variable.h
 | |
|   VariableNonVolatile.c
 | |
|   VariableNonVolatile.h
 | |
|   VariableParsing.c
 | |
|   VariableParsing.h
 | |
|   VariableRuntimeCache.c
 | |
|   VariableRuntimeCache.h
 | |
|   PrivilegePolymorphic.h
 | |
|   Measurement.c
 | |
|   TcgMorLockDxe.c
 | |
|   VarCheck.c
 | |
|   VariableExLib.c
 | |
|   SpeculationBarrierDxe.c
 | |
|   VariableLockRequestToLock.c
 | |
| 
 | |
| [Packages]
 | |
|   MdePkg/MdePkg.dec
 | |
|   MdeModulePkg/MdeModulePkg.dec
 | |
| 
 | |
| [LibraryClasses]
 | |
|   MemoryAllocationLib
 | |
|   BaseLib
 | |
|   SynchronizationLib
 | |
|   UefiLib
 | |
|   UefiBootServicesTableLib
 | |
|   BaseMemoryLib
 | |
|   DebugLib
 | |
|   UefiRuntimeLib
 | |
|   DxeServicesTableLib
 | |
|   UefiDriverEntryPoint
 | |
|   PcdLib
 | |
|   HobLib
 | |
|   TpmMeasurementLib
 | |
|   AuthVariableLib
 | |
|   VarCheckLib
 | |
|   VariableFlashInfoLib
 | |
|   VariablePolicyLib
 | |
|   VariablePolicyHelperLib
 | |
|   SafeIntLib
 | |
| 
 | |
| [Protocols]
 | |
|   gEfiFirmwareVolumeBlockProtocolGuid           ## CONSUMES
 | |
|   ## CONSUMES
 | |
|   ## NOTIFY
 | |
|   gEfiFaultTolerantWriteProtocolGuid
 | |
|   gEfiVariableWriteArchProtocolGuid             ## PRODUCES
 | |
|   gEfiVariableArchProtocolGuid                  ## PRODUCES
 | |
|   gEdkiiVariableLockProtocolGuid                ## PRODUCES
 | |
|   gEdkiiVariablePolicyProtocolGuid              ## CONSUMES
 | |
|   gEdkiiVarCheckProtocolGuid                    ## PRODUCES
 | |
| 
 | |
| [Guids]
 | |
|   ## SOMETIMES_CONSUMES   ## GUID # Signature of Variable store header
 | |
|   ## SOMETIMES_PRODUCES   ## GUID # Signature of Variable store header
 | |
|   ## SOMETIMES_CONSUMES   ## HOB
 | |
|   ## SOMETIMES_PRODUCES   ## SystemTable
 | |
|   gEfiAuthenticatedVariableGuid
 | |
| 
 | |
|   ## SOMETIMES_CONSUMES   ## GUID # Signature of Variable store header
 | |
|   ## SOMETIMES_PRODUCES   ## GUID # Signature of Variable store header
 | |
|   ## SOMETIMES_CONSUMES   ## HOB
 | |
|   ## SOMETIMES_PRODUCES   ## SystemTable
 | |
|   gEfiVariableGuid
 | |
| 
 | |
|   ## SOMETIMES_CONSUMES   ## Variable:L"PlatformLang"
 | |
|   ## SOMETIMES_PRODUCES   ## Variable:L"PlatformLang"
 | |
|   ## SOMETIMES_CONSUMES   ## Variable:L"Lang"
 | |
|   ## SOMETIMES_PRODUCES   ## Variable:L"Lang"
 | |
|   ## SOMETIMES_CONSUMES   ## Variable:L"PK"
 | |
|   ## SOMETIMES_CONSUMES   ## Variable:L"KEK"
 | |
|   ## SOMETIMES_CONSUMES   ## Variable:L"SecureBoot"
 | |
|   gEfiGlobalVariableGuid
 | |
| 
 | |
|   gEfiMemoryOverwriteControlDataGuid            ## SOMETIMES_CONSUMES   ## Variable:L"MemoryOverwriteRequestControl"
 | |
|   gEfiMemoryOverwriteRequestControlLockGuid     ## SOMETIMES_PRODUCES   ## Variable:L"MemoryOverwriteRequestControlLock"
 | |
| 
 | |
|   gEfiEventVirtualAddressChangeGuid             ## CONSUMES             ## Event
 | |
|   gEfiSystemNvDataFvGuid                        ## CONSUMES             ## GUID
 | |
|   gEfiEndOfDxeEventGroupGuid                    ## CONSUMES             ## Event
 | |
|   gEdkiiFaultTolerantWriteGuid                  ## SOMETIMES_CONSUMES   ## HOB
 | |
| 
 | |
|   ## SOMETIMES_CONSUMES   ## Variable:L"VarErrorFlag"
 | |
|   ## SOMETIMES_PRODUCES   ## Variable:L"VarErrorFlag"
 | |
|   gEdkiiVarErrorFlagGuid
 | |
| 
 | |
|   ## SOMETIMES_CONSUMES   ## Variable:L"db"
 | |
|   ## SOMETIMES_CONSUMES   ## Variable:L"dbx"
 | |
|   ## SOMETIMES_CONSUMES   ## Variable:L"dbt"
 | |
|   gEfiImageSecurityDatabaseGuid
 | |
| 
 | |
| [Pcd]
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize                 ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize             ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVolatileVariableSize         ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize    ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize               ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize                ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize           ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize  ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdReclaimVariableSpaceAtEndOfDxe  ## CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable         ## SOMETIMES_CONSUMES
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved      ## SOMETIMES_CONSUMES
 | |
| 
 | |
| [FeaturePcd]
 | |
|   gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics  ## CONSUMES # statistic the information of variable.
 | |
|   gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate ## CONSUMES # Auto update PlatformLang/Lang
 | |
| 
 | |
| [Depex]
 | |
|   TRUE
 | |
| 
 | |
| [UserExtensions.TianoCore."ExtraFiles"]
 | |
|   VariableRuntimeDxeExtra.uni
 |