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