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