]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf
MdeModulePkg/Variable: Parameterize auth status in VariableParsing
[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
7cd69959 21# Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.<BR>\r
9d510e61 22# SPDX-License-Identifier: BSD-2-Clause-Patent\r
4b738c76 23#\r
4b738c76
HT
24##\r
25\r
26[Defines]\r
27 INF_VERSION = 0x00010005\r
28 BASE_NAME = VariableSmm\r
6036e94d 29 MODULE_UNI_FILE = VariableSmm.uni\r
4b738c76
HT
30 FILE_GUID = 23A089B3-EED5-4ac5-B2AB-43E3298C2343\r
31 MODULE_TYPE = DXE_SMM_DRIVER\r
32 VERSION_STRING = 1.0\r
33 PI_SPECIFICATION_VERSION = 0x0001000A\r
34 ENTRY_POINT = VariableServiceInitialize\r
35\r
36#\r
37# The following information is for reference only and not required by the build tools.\r
38#\r
39# VALID_ARCHITECTURES = IA32 X64\r
40#\r
41\r
42\r
43[Sources]\r
44 Reclaim.c\r
45 Variable.c\r
a855f63e 46 VariableTraditionalMm.c\r
4b738c76 47 VariableSmm.c\r
20a27a64
MK
48 VariableParsing.c\r
49 VariableParsing.h\r
efb01a10 50 VarCheck.c\r
4b738c76 51 Variable.h\r
00663d04 52 PrivilegePolymorphic.h\r
fa0737a8 53 VariableExLib.c\r
2f6aa774 54 TcgMorLockSmm.c\r
49395ea0 55 SpeculationBarrierSmm.c\r
4b738c76
HT
56\r
57[Packages]\r
58 MdePkg/MdePkg.dec\r
59 MdeModulePkg/MdeModulePkg.dec\r
60\r
61[LibraryClasses]\r
62 UefiDriverEntryPoint\r
63 MemoryAllocationLib\r
64 BaseLib\r
65 SynchronizationLib\r
66 UefiLib\r
a855f63e 67 MmServicesTableLib\r
4b738c76
HT
68 BaseMemoryLib\r
69 DebugLib\r
70 DxeServicesTableLib\r
71 HobLib\r
72 PcdLib\r
842b1242 73 SmmMemLib\r
fa0737a8 74 AuthVariableLib\r
8021f4c7 75 VarCheckLib\r
fda8f631 76 UefiBootServicesTableLib\r
4b738c76
HT
77\r
78[Protocols]\r
6036e94d
SZ
79 gEfiSmmFirmwareVolumeBlockProtocolGuid ## CONSUMES\r
80 ## CONSUMES\r
81 ## NOTIFY\r
82 gEfiSmmFaultTolerantWriteProtocolGuid\r
83 ## PRODUCES\r
84 ## UNDEFINED # SmiHandlerRegister\r
85 gEfiSmmVariableProtocolGuid\r
a855f63e 86 gEfiMmEndOfDxeProtocolGuid ## NOTIFY\r
efb01a10 87 gEdkiiSmmVarCheckProtocolGuid ## PRODUCES\r
fda8f631
LE
88 gEfiTcgProtocolGuid ## SOMETIMES_CONSUMES\r
89 gEfiTcg2ProtocolGuid ## SOMETIMES_CONSUMES\r
4b738c76
HT
90\r
91[Guids]\r
8d878f84
LG
92 ## SOMETIMES_CONSUMES ## GUID # Signature of Variable store header\r
93 ## SOMETIMES_PRODUCES ## GUID # Signature of Variable store header\r
6036e94d 94 ## SOMETIMES_CONSUMES ## HOB\r
fa0737a8
SZ
95 ## SOMETIMES_PRODUCES ## SystemTable\r
96 gEfiAuthenticatedVariableGuid\r
97\r
8d878f84
LG
98 ## SOMETIMES_CONSUMES ## GUID # Signature of Variable store header\r
99 ## SOMETIMES_PRODUCES ## GUID # Signature of Variable store header\r
fa0737a8
SZ
100 ## SOMETIMES_CONSUMES ## HOB\r
101 ## SOMETIMES_PRODUCES ## SystemTable\r
6036e94d 102 gEfiVariableGuid\r
fa0737a8 103\r
6036e94d
SZ
104 ## SOMETIMES_CONSUMES ## Variable:L"PlatformLang"\r
105 ## SOMETIMES_PRODUCES ## Variable:L"PlatformLang"\r
106 ## SOMETIMES_CONSUMES ## Variable:L"Lang"\r
107 ## SOMETIMES_PRODUCES ## Variable:L"Lang"\r
6036e94d 108 gEfiGlobalVariableGuid\r
fa0737a8 109\r
8d878f84
LG
110 gEfiMemoryOverwriteControlDataGuid ## SOMETIMES_CONSUMES ## Variable:L"MemoryOverwriteRequestControl"\r
111 gEfiMemoryOverwriteRequestControlLockGuid ## SOMETIMES_PRODUCES ## Variable:L"MemoryOverwriteRequestControlLock"\r
2f6aa774 112\r
fa0737a8 113 gSmmVariableWriteGuid ## PRODUCES ## GUID # Install protocol\r
6036e94d 114 gEfiSystemNvDataFvGuid ## CONSUMES ## GUID\r
fa0737a8 115 gEdkiiFaultTolerantWriteGuid ## SOMETIMES_CONSUMES ## HOB\r
8d878f84
LG
116\r
117 ## SOMETIMES_CONSUMES ## Variable:L"VarErrorFlag"\r
118 ## SOMETIMES_PRODUCES ## Variable:L"VarErrorFlag"\r
119 gEdkiiVarErrorFlagGuid\r
4b738c76
HT
120\r
121[Pcd]\r
fa0737a8
SZ
122 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize ## CONSUMES\r
123 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase ## SOMETIMES_CONSUMES\r
124 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 ## CONSUMES\r
125 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize ## CONSUMES\r
126 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize ## CONSUMES\r
9b4a2032 127 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVolatileVariableSize ## CONSUMES\r
fa0737a8
SZ
128 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize ## CONSUMES\r
129 gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize ## CONSUMES\r
130 gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize ## CONSUMES\r
4edb1866
SZ
131 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize ## CONSUMES\r
132 gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize ## CONSUMES\r
fa0737a8 133 gEfiMdeModulePkgTokenSpaceGuid.PcdReclaimVariableSpaceAtEndOfDxe ## CONSUMES\r
7cd69959
SZ
134 gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable ## SOMETIMES_CONSUMES\r
135 gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved ## SOMETIMES_CONSUMES\r
0fb5e515 136\r
4b738c76 137[FeaturePcd]\r
fa0737a8
SZ
138 gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics ## CONSUMES # statistic the information of variable.\r
139 gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate ## CONSUMES # Auto update PlatformLang/Lang\r
4b738c76
HT
140\r
141[Depex]\r
142 TRUE\r
143\r
6036e94d
SZ
144[UserExtensions.TianoCore."ExtraFiles"]\r
145 VariableSmmExtra.uni\r