]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf
MdeModulePkg: Replace BSD License with BSD+Patent License
[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 VarCheck.c
49 Variable.h
50 PrivilegePolymorphic.h
51 VariableExLib.c
52 TcgMorLockSmm.c
53 SpeculationBarrierSmm.c
54
55 [Packages]
56 MdePkg/MdePkg.dec
57 MdeModulePkg/MdeModulePkg.dec
58
59 [LibraryClasses]
60 UefiDriverEntryPoint
61 MemoryAllocationLib
62 BaseLib
63 SynchronizationLib
64 UefiLib
65 MmServicesTableLib
66 BaseMemoryLib
67 DebugLib
68 DxeServicesTableLib
69 HobLib
70 PcdLib
71 SmmMemLib
72 AuthVariableLib
73 VarCheckLib
74 UefiBootServicesTableLib
75
76 [Protocols]
77 gEfiSmmFirmwareVolumeBlockProtocolGuid ## CONSUMES
78 ## CONSUMES
79 ## NOTIFY
80 gEfiSmmFaultTolerantWriteProtocolGuid
81 ## PRODUCES
82 ## UNDEFINED # SmiHandlerRegister
83 gEfiSmmVariableProtocolGuid
84 gEfiMmEndOfDxeProtocolGuid ## NOTIFY
85 gEdkiiSmmVarCheckProtocolGuid ## PRODUCES
86 gEfiTcgProtocolGuid ## SOMETIMES_CONSUMES
87 gEfiTcg2ProtocolGuid ## SOMETIMES_CONSUMES
88
89 [Guids]
90 ## SOMETIMES_CONSUMES ## GUID # Signature of Variable store header
91 ## SOMETIMES_PRODUCES ## GUID # Signature of Variable store header
92 ## SOMETIMES_CONSUMES ## HOB
93 ## SOMETIMES_PRODUCES ## SystemTable
94 gEfiAuthenticatedVariableGuid
95
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 gEfiVariableGuid
101
102 ## SOMETIMES_CONSUMES ## Variable:L"PlatformLang"
103 ## SOMETIMES_PRODUCES ## Variable:L"PlatformLang"
104 ## SOMETIMES_CONSUMES ## Variable:L"Lang"
105 ## SOMETIMES_PRODUCES ## Variable:L"Lang"
106 gEfiGlobalVariableGuid
107
108 gEfiMemoryOverwriteControlDataGuid ## SOMETIMES_CONSUMES ## Variable:L"MemoryOverwriteRequestControl"
109 gEfiMemoryOverwriteRequestControlLockGuid ## SOMETIMES_PRODUCES ## Variable:L"MemoryOverwriteRequestControlLock"
110
111 gSmmVariableWriteGuid ## PRODUCES ## GUID # Install protocol
112 gEfiSystemNvDataFvGuid ## CONSUMES ## GUID
113 gEdkiiFaultTolerantWriteGuid ## SOMETIMES_CONSUMES ## HOB
114
115 ## SOMETIMES_CONSUMES ## Variable:L"VarErrorFlag"
116 ## SOMETIMES_PRODUCES ## Variable:L"VarErrorFlag"
117 gEdkiiVarErrorFlagGuid
118
119 [Pcd]
120 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize ## CONSUMES
121 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase ## SOMETIMES_CONSUMES
122 gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 ## CONSUMES
123 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize ## CONSUMES
124 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize ## CONSUMES
125 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVolatileVariableSize ## CONSUMES
126 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize ## CONSUMES
127 gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize ## CONSUMES
128 gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize ## CONSUMES
129 gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize ## CONSUMES
130 gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize ## CONSUMES
131 gEfiMdeModulePkgTokenSpaceGuid.PcdReclaimVariableSpaceAtEndOfDxe ## CONSUMES
132 gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable ## SOMETIMES_CONSUMES
133 gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved ## SOMETIMES_CONSUMES
134
135 [FeaturePcd]
136 gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics ## CONSUMES # statistic the information of variable.
137 gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate ## CONSUMES # Auto update PlatformLang/Lang
138
139 [Depex]
140 TRUE
141
142 [UserExtensions.TianoCore."ExtraFiles"]
143 VariableSmmExtra.uni