]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf
MdeModulePkg/Variable: Add RT GetVariable() cache support
[mirror_edk2.git] / MdeModulePkg / Universal / Variable / RuntimeDxe / VariableSmm.inf
1 ## @file
2 # Provides SMM variable service.
3 #
4 # This module installs SMM variable protocol into SMM protocol database,
5 # which can be used by SMM driver, and installs SMM variable protocol
6 # into BS protocol database, which can be used to notify the SMM Runtime
7 # Dxe driver that the SMM variable service is ready.
8 # This module should be used with SMM Runtime DXE module together. The
9 # SMM Runtime DXE module would install variable arch protocol and variable
10 # write arch protocol based on SMM variable module.
11 #
12 # Caution: This module requires additional review when modified.
13 # This driver will have external input - variable data and communicate buffer in SMM mode.
14 # This external input must be validated carefully to avoid security issues such as
15 # buffer overflow or integer overflow.
16 # The whole SMM authentication variable design relies on the integrity of flash part and SMM.
17 # which is assumed to be protected by platform. All variable code and metadata in flash/SMM Memory
18 # may not be modified without authorization. If platform fails to protect these resources,
19 # the authentication service provided in this driver will be broken, and the behavior is undefined.
20 #
21 # Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.<BR>
22 # SPDX-License-Identifier: BSD-2-Clause-Patent
23 #
24 ##
25
26 [Defines]
27 INF_VERSION = 0x00010005
28 BASE_NAME = VariableSmm
29 MODULE_UNI_FILE = VariableSmm.uni
30 FILE_GUID = 23A089B3-EED5-4ac5-B2AB-43E3298C2343
31 MODULE_TYPE = DXE_SMM_DRIVER
32 VERSION_STRING = 1.0
33 PI_SPECIFICATION_VERSION = 0x0001000A
34 ENTRY_POINT = VariableServiceInitialize
35
36 #
37 # The following information is for reference only and not required by the build tools.
38 #
39 # VALID_ARCHITECTURES = IA32 X64
40 #
41
42
43 [Sources]
44 Reclaim.c
45 Variable.c
46 VariableTraditionalMm.c
47 VariableSmm.c
48 VariableNonVolatile.c
49 VariableNonVolatile.h
50 VariableParsing.c
51 VariableParsing.h
52 VariableRuntimeCache.c
53 VariableRuntimeCache.h
54 VarCheck.c
55 Variable.h
56 PrivilegePolymorphic.h
57 VariableExLib.c
58 TcgMorLockSmm.c
59 SpeculationBarrierSmm.c
60
61 [Packages]
62 MdePkg/MdePkg.dec
63 MdeModulePkg/MdeModulePkg.dec
64
65 [LibraryClasses]
66 UefiDriverEntryPoint
67 MemoryAllocationLib
68 BaseLib
69 SynchronizationLib
70 UefiLib
71 MmServicesTableLib
72 BaseMemoryLib
73 DebugLib
74 DxeServicesTableLib
75 HobLib
76 PcdLib
77 SmmMemLib
78 AuthVariableLib
79 VarCheckLib
80 UefiBootServicesTableLib
81
82 [Protocols]
83 gEfiSmmFirmwareVolumeBlockProtocolGuid ## CONSUMES
84 ## CONSUMES
85 ## NOTIFY
86 gEfiSmmFaultTolerantWriteProtocolGuid
87 ## PRODUCES
88 ## UNDEFINED # SmiHandlerRegister
89 gEfiSmmVariableProtocolGuid
90 gEfiMmEndOfDxeProtocolGuid ## NOTIFY
91 gEdkiiSmmVarCheckProtocolGuid ## PRODUCES
92 gEfiTcgProtocolGuid ## SOMETIMES_CONSUMES
93 gEfiTcg2ProtocolGuid ## SOMETIMES_CONSUMES
94
95 [Guids]
96 ## SOMETIMES_CONSUMES ## GUID # Signature of Variable store header
97 ## SOMETIMES_PRODUCES ## GUID # Signature of Variable store header
98 ## SOMETIMES_CONSUMES ## HOB
99 ## SOMETIMES_PRODUCES ## SystemTable
100 gEfiAuthenticatedVariableGuid
101
102 ## SOMETIMES_CONSUMES ## GUID # Signature of Variable store header
103 ## SOMETIMES_PRODUCES ## GUID # Signature of Variable store header
104 ## SOMETIMES_CONSUMES ## HOB
105 ## SOMETIMES_PRODUCES ## SystemTable
106 gEfiVariableGuid
107
108 ## SOMETIMES_CONSUMES ## Variable:L"PlatformLang"
109 ## SOMETIMES_PRODUCES ## Variable:L"PlatformLang"
110 ## SOMETIMES_CONSUMES ## Variable:L"Lang"
111 ## SOMETIMES_PRODUCES ## Variable:L"Lang"
112 gEfiGlobalVariableGuid
113
114 gEfiMemoryOverwriteControlDataGuid ## SOMETIMES_CONSUMES ## Variable:L"MemoryOverwriteRequestControl"
115 gEfiMemoryOverwriteRequestControlLockGuid ## SOMETIMES_PRODUCES ## Variable:L"MemoryOverwriteRequestControlLock"
116
117 gSmmVariableWriteGuid ## PRODUCES ## GUID # Install protocol
118 gEfiSystemNvDataFvGuid ## CONSUMES ## GUID
119 gEdkiiFaultTolerantWriteGuid ## SOMETIMES_CONSUMES ## HOB
120
121 ## SOMETIMES_CONSUMES ## Variable:L"VarErrorFlag"
122 ## SOMETIMES_PRODUCES ## Variable:L"VarErrorFlag"
123 gEdkiiVarErrorFlagGuid
124
125 [Pcd]
126 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize ## CONSUMES
127 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase ## SOMETIMES_CONSUMES
128 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 ## CONSUMES
129 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize ## CONSUMES
130 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize ## CONSUMES
131 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVolatileVariableSize ## CONSUMES
132 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize ## CONSUMES
133 gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize ## CONSUMES
134 gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize ## CONSUMES
135 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize ## CONSUMES
136 gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize ## CONSUMES
137 gEfiMdeModulePkgTokenSpaceGuid.PcdReclaimVariableSpaceAtEndOfDxe ## CONSUMES
138 gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable ## SOMETIMES_CONSUMES
139 gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved ## SOMETIMES_CONSUMES
140
141 [FeaturePcd]
142 gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics ## CONSUMES # statistic the information of variable.
143 gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate ## CONSUMES # Auto update PlatformLang/Lang
144
145 [Depex]
146 TRUE
147
148 [UserExtensions.TianoCore."ExtraFiles"]
149 VariableSmmExtra.uni