1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
|
## @file MdeModulePkg.dec
#
# This package provides the modules that conform to EFI/PI Industry standards.
# It also provides the defintions(including PPIs/PROTOCOLs/GUIDs and library classes)
# and libraries instances, which are used for those modules.
#
# Copyright (c) 2007 - 2009, Intel Corporation.
#
# All rights reserved.
# This program and the accompanying materials are licensed and made available under
# the terms and conditions of the BSD License which accompanies this distribution.
# The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
##
[Defines]
DEC_SPECIFICATION = 0x00010005
PACKAGE_NAME = MdeModulePkg
PACKAGE_GUID = BA0D78D6-2CAF-414b-BD4D-B6762A894288
PACKAGE_VERSION = 0.1
[Includes.common]
Include
[LibraryClasses.common]
## @libraryclass IpIo layer upon EFI IP4 Protocol.
# This library is only intended to be used by UEFI network stack modules.
IpIoLib|Include/Library/IpIoLib.h
## @libraryclass Basic function for UEFI network stack.
# This library is only intended to be used by UEFI network stack modules.
NetLib|Include/Library/NetLib.h
## @libraryclass The helper routines to access UDP service.
# This library is only intended to be used by UEFI network stack modules.
UdpIoLib|Include/Library/UdpIoLib.h
## @libraryclass Defines a set of methods to reset whole system.
ResetSystemLib|Include/Library/ResetSystemLib.h
## @libraryclass Defines a set of methods related do S3 mode.
S3Lib|Include/Library/S3Lib.h
## @libraryclass Defines a set of methods related recovery mode.
RecoveryLib|Include/Library/RecoveryLib.h
## @libraryclass Basic platform driver override functions.
# This library is only intended to be used by Platform Driver Override Dxe Driver and Application.
PlatformDriverOverrideLib|Include/Library/PlatformDriverOverrideLib.h
## @libraryclass Provides HII related functions.
HiiLib|Include/Library/HiiLib.h
## @libraryclass Provides a set of interfaces to do IFR opcode creation and interact with a UEFI Form Browser.
IfrSupportLib|Include/Library/IfrSupportLib.h
## @libraryclass Includes two extended HII functions to create and destory Hii Package
# by create the virtual Driver Handle.
##
ExtendedHiiLib|Include/Library/ExtendedHiiLib.h
## @libraryclass Defines APIs that is related to IFR operations but specific to EDK II
# implementation.
##
ExtendedIfrSupportLib|Include/Library/ExtendedIfrSupportLib.h
## @libraryclass Defines a set of interfaces on how to process capusle image update.
CapsuleLib|Include/Library/CapsuleLib.h
## @libraryclass Library for Deferred Procedure Calls.
DpcLib|Include/Library/DpcLib.h
## @libraryclass Provides APIs for system memory test.
##
BaseMemoryTestLib|Include/Library/BaseMemoryTestLib.h
[Guids.common]
## MdeModule package token space guid
## Include/Guid/MdeModulePkgTokenSpace.h
gEfiMdeModulePkgTokenSpaceGuid = { 0xA1AFF049, 0xFDEB, 0x442a, { 0xB3, 0x20, 0x13, 0xAB, 0x4C, 0xB7, 0x2B, 0xBC }}
## Hob guid for Pcd DataBase
## Include/Guid/PcdDataBaseHobGuid.h
gPcdDataBaseHobGuid = { 0xEA296D92, 0x0B69, 0x423C, { 0x8C, 0x28, 0x33, 0xB4, 0xE0, 0xA9, 0x12, 0x68 }}
## Guid for EDKII implementation GUIDed opcodes
# Include/Guid/MdeModuleHii.h
gEfiIfrTianoGuid = { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce }}
## Guid for Framework vfr GUIDed opcodes.
# Include/Guid/MdeModuleHii.h
gEfiIfrFrameworkGuid = { 0x31ca5d1a, 0xd511, 0x4931, { 0xb7, 0x82, 0xae, 0x6b, 0x2b, 0x17, 0x8c, 0xd7 }}
## Guid to specify the System Non Volatile FV
## Include/Guid/SystemNvDataGuid.h
gEfiSystemNvDataFvGuid = { 0xFFF12B8D, 0x7696, 0x4C8B, { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }}
## Guid specify the device is the console out device.
## Include/Guid/ConsoleOutDevice.h
gEfiConsoleOutDeviceGuid = { 0xD3B36F2C, 0xD551, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
## Guid specify the device is the console in device.
## Include/Guid/ConsoleInDevice.h
gEfiConsoleInDeviceGuid = { 0xD3B36F2B, 0xD551, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
## Hob and Variable guid specify the platform memory type information.
## Include/Guid/MemoryTypeInformation.h
gEfiMemoryTypeInformationGuid = { 0x4C19049F, 0x4137, 0x4DD3, { 0x9C, 0x10, 0x8B, 0x97, 0xA8, 0x3F, 0xFD, 0xFA }}
## Capsule update hob and variable guid
## Include/Guid/CapsuleVendor.h
gEfiCapsuleVendorGuid = { 0x711C703F, 0xC285, 0x4B10, { 0xA3, 0xB0, 0x36, 0xEC, 0xBD, 0x3C, 0x8B, 0xE2 }}
## Guid specifiy the device is the StdErr device.
## Include/Guid/StandardErrorDevice.h
gEfiStandardErrorDeviceGuid = { 0xD3B36F2D, 0xD551, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}
## Guid acted as variable store header's signature and to specify the variable list entries put in the EFI system table.
## Include/Guid/VariableFormat.h
gEfiVariableGuid = { 0xddcf3616, 0x3275, 0x4164, { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d }}
## Platform Override Variable guid
## Include/Guid/OverrideVariable.h
gEfiOverrideVariableGuid = { 0x8e3d4ad5, 0xf762, 0x438a, { 0xa1, 0xc1, 0x5b, 0x9f, 0xe6, 0x8c, 0x6b, 0x15 }}
## Performance protocol guid that also acts as the performance HOB guid and performance variable GUID
## Include/Guid/Performance.h
gPerformanceProtocolGuid = { 0x76B6BDFA, 0x2ACD, 0x4462, { 0x9E, 0x3F, 0xCB, 0x58, 0xC9, 0x69, 0xD9, 0x37 }}
## Guid is defined for CRC32 encapsulation scheme.
## Include/Guid/Crc32GuidedSectionExtraction.h
gEfiCrc32GuidedSectionExtractionGuid = { 0xFC1BCDB0, 0x7D31, 0x49aa, {0x93, 0x6A, 0xA4, 0x60, 0x0D, 0x9D, 0xD0, 0x83 } }
[Protocols.common]
## Load File protocol provides capability to load and unload EFI image into memory and execute it.
## Include/Protocol/LoadPe32Image.h
gEfiLoadPeImageProtocolGuid = { 0x5CB5C776, 0x60D5, 0x45EE, { 0x88, 0x3C, 0x45, 0x27, 0x08, 0xCD, 0x74, 0x3F }}
## Print protocol defines six basic print functions to print the format unicode and ascii string.
## Include/Protocol/Print2.h
gEfiPrint2ProtocolGuid = { 0x5bcc3dbc, 0x8c57, 0x450a, { 0xbb, 0x0c, 0xa1, 0xc0, 0xbd, 0xde, 0x48, 0x0c }}
## This protocol defines the generic memory test interfaces in Dxe phase.
## Include/Protocol/GenericMemoryTest.h
gEfiGenericMemTestProtocolGuid = { 0x309DE7F1, 0x7F5E, 0x4ACE, { 0xB4, 0x9C, 0x53, 0x1B, 0xE5, 0xAA, 0x95, 0xEF }}
## This protocol provides the interfaces to Get/Set the current video mode for GOP/UGA screen
## Include/Protocol/ConsoleControl.h
gEfiConsoleControlProtocolGuid = { 0xF42F7782, 0x012E, 0x4C12, { 0x99, 0x56, 0x49, 0xF9, 0x43, 0x04, 0xF7, 0x21 }}
## Include/Protocol/NicIp4Config.h
gEfiNicIp4ConfigProtocolGuid = {0xdca3d4d, 0x12da, 0x4728, { 0xbf, 0x7e, 0x86, 0xce, 0xb9, 0x28, 0xd0, 0x67 }}
## Include/Protocol/NicIp4Config.h
gEfiNicIp4ConfigVariableGuid = {0xd8944553, 0xc4dd, 0x41f4, { 0x9b, 0x30, 0xe1, 0x39, 0x7c, 0xfb, 0x26, 0x7b }}
## Include/Protocol/Tcp.h
gEfiTcpProtocolGuid = {0x02b3d5f2, 0xac28, 0x11d3, { 0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d }}
## Include/Protocol/PxeDhcp4CallBack.h
gEfiPxeDhcp4CallbackProtocolGuid = {0xc1544c01, 0x92a4, 0x4198, {0x8a, 0x84, 0x77, 0x85, 0x83, 0xc2, 0x36, 0x21 }}
## Include/Protocol/PxeDhcp4.h
gEfiPxeDhcp4ProtocolGuid = {0x03c4e624, 0xac28, 0x11d3, { 0x9a, 0x2d, 0x00, 0x90, 0x29, 0x3f, 0xc1, 0x4d }}
## Include/Protocol/Dpc.h
gEfiDpcProtocolGuid = {0x480f8ae9, 0xc46, 0x4aa9, { 0xbc, 0x89, 0xdb, 0x9f, 0xba, 0x61, 0x98, 0x6 }}
## Fault Tolerant Write protocol provides boot-time service to do fault tolerant write capability for block devices.
# Include/Protocol/FaultTolerantWrite.h
gEfiFaultTolerantWriteProtocolGuid = { 0x3EBD9E82, 0x2C78, 0x4DE6, { 0x97, 0x86, 0x8D, 0x4B, 0xFC, 0xB7, 0xC8, 0x81 }}
## This protocol is used to abstract the swap operation of boot block and backup block of boot FV.
# Include/Protocol/SwapAddressRange.h
gEfiSwapAddressRangeProtocolGuid = { 0x1259F60D, 0xB754, 0x468E, { 0xA7, 0x89, 0x4D, 0xB8, 0x5D, 0x55, 0xE8, 0x7E }}
[PcdsFeatureFlag]
## Indicate whether platform can support update capsule across a system reset
gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset|FALSE|BOOLEAN|0x0001001d
## This feature flag can be used to enable or disable all PCD PEIM services.
# If TRUE, all PCD PPI services will be produced.
## If FALSE, the minimal PCD PEIM services (only GetService) will be produced.
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiFullPcdDatabaseEnable|TRUE|BOOLEAN|0x00010020
## If TRUE, then the Device Path To Text Protocol should be produced by the platform.
# It can be disabled to save size.
gEfiMdeModulePkgTokenSpaceGuid.PcdDevicePathSupportDevicePathToText|TRUE|BOOLEAN|0x00010037
## If TRUE, then the Device Path From Text Protocol should be produced by the platform.
# It can be disabled to save size.
gEfiMdeModulePkgTokenSpaceGuid.PcdDevicePathSupportDevicePathFromText|TRUE|BOOLEAN|0x00010038
## If TRUE, enable the statistic functionality about variable usage. Such information is
# stored as a vendor configuration table into the EFI system table.
# If user wants to get variable usage info, this pcd should be set as TRUE.
gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics|FALSE|BOOLEAN|0x0001003f
## If TRUE, Unicode Collation Protocol will be installed.
gEfiMdeModulePkgTokenSpaceGuid.PcdUnicodeCollationSupport|TRUE|BOOLEAN|0x00010040
## If TRUE, Unicode Collation 2 Protocol will be installed.
gEfiMdeModulePkgTokenSpaceGuid.PcdUnicodeCollation2Support|TRUE|BOOLEAN|0x00010041
## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
# It could be set FALSE to save size.
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE|BOOLEAN|0x00010042
## If TRUE, UGA Draw Protocol will be installed on virtual handle created by ConsplitterDxe.
# It could be set FALSE to save size.
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|TRUE|BOOLEAN|0x00010043
## If TRUE, when PeiCore dispatches a PEI module, PeiCore will first search TE section from this PEIM to load the image.
# If TE section is not found, then PeiCore will search PE section.
# If FALSE, PeiCore will first search PE section from PEIM to load the image.
# This PCD is used to tune Pei phase performance to reduce the search image time.
# It can be set according to the generated image section type.
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSectionFirst|TRUE|BOOLEAN|0x00010044
## If TRUE, force to switch off the support of legacy usb. So legacy usb device driver can not make use of SMI
# interrupt to access usb device in the case of absence of usb stack.
##
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|FALSE|BOOLEAN|0x00010047
## If TRUE, HiiImageProtocol will be installed.
# FALSE is for size reduction.
gEfiMdeModulePkgTokenSpaceGuid.PcdSupportHiiImageProtocol|TRUE|BOOLEAN|0x00010100
## If TRUE, these interface in EFI_HII_CONFIG_ROUTING_PROTOCOL will be supported: ExtractConfig, ExportConfig, RouteConfig
# and GetAltCfg will be supported. Otherwise, these interfaces will return EFI_UNSUPPORTED.
# FALSE is for size reduction.
gEfiMdeModulePkgTokenSpaceGuid.PcdSupportFullConfigRoutingProtocol|TRUE|BOOLEAN|0x00010101
## If TRUE, USB KeyBoard Driver disables the default keyboard layout.
# The default keyboard layout serves as the backup when no keyboard layout can be retrieved
# from HII database.
gEfiMdeModulePkgTokenSpaceGuid.PcdDisableDefaultKeyboardLayoutInUsbKbDriver|FALSE|BOOLEAN|0x00010200
## If TRUE, Setup Browser supports GUID opcodes generated from Framework HII VFR file by VFR compiler.
# If TRUE, the PeiCore will handle the framework FvHob and install FvInfo PPI for it.
## This is used to provide backward compatibility support to Framework HII and Framework FvHob.
gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport|FALSE|BOOLEAN|0x00012009
##
# If TRUE, HelloWorld Application will print the verbose information.
# This PCD is a sample to explain FeatureFlag PCD usage.
##
gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintEnable|TRUE|BOOLEAN|0x0001200a
##
# If TRUE, FULL FTW protocol services (total six APIs) will be produced.
# If FASLE, only FTW Write service is available.
gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable|TRUE|BOOLEAN|0x0001200a
[PcdsFeatureFlag.IA32]
##
# This feature flag specifies whether DxeIpl switches to long mode to enter DXE phase.
# If it is TRUE, DxeIpl will load a 64-bit DxeCore and switch to long mode to hand over to DxeCore;
# otherwise, DxeIpl will load a 32-bit DxeCore and perform stack switch to hand over to DxeCore.
# It is assumed that 64-bit DxeCore is built in firmware if it is true; otherwise 32-bit DxeCore
# is built in firmware.
#
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode|TRUE|BOOLEAN|0x0001003b
[PcdsFixedAtBuild]
## Dynamic type PCD can be registered callback function for Pcd setting action.
# PcdMaxPeiPcdCallBackNumberPerPcdEntry indicate maximum number of callback function
# for a dynamic PCD used in PEI phase.
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPcdCallBackNumberPerPcdEntry|0x08|UINT32|0x0001000f
## VPD type PCD allow developer point an absoluted physical address PcdVpdBaseAddress
# to store PCD value.
#
gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress|0x0|UINT32|0x00010010
## Maximum number of FV is supported by PeiCore's dispatching.
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxFvSupported|6|UINT32|0x00010030
## Maximum PEIM count in every FV is supported by PeiCore's dispatching.
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeimPerFv|32|UINT32|0x00010031
## Maximum stack size for PeiCore.
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize|0x20000|UINT32|0x00010032
## Maximum PPI count is supported by PeiCore's PPI database.
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPpiSupported|64|UINT32|0x00010033
## Size of the NV variable range.
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x0|UINT32|0x30000002
## Maximum allowable size of a common type variable, that is, non-hardware error type variable.
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x400|UINT32|0x30000003
## Maximum allowable size of a single hardware error record variable.
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize|0x8000|UINT32|0x30000004
## Size of allocated memory for volatile variable store. Variables are stored in such region and
# total length of all variables should not larger than this value.
##
gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x10000|UINT32|0x30000005
## Size of the FTW spare block range.
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x0|UINT32|0x30000014
## Size of the FTW working block range.
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x0|UINT32|0x30000011
[PcdsFixedAtBuild,PcdsPatchableInModule]
## Maximun number of performance log entries during PEI phase.
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries|40|UINT8|0x0001002f
## RTC Update Timeout Value
gEfiMdeModulePkgTokenSpaceGuid.PcdRealTimeClockUpdateTimeout|100000|UINT32|0x00010034
[PcdsPatchableInModule,PcdsDynamic]
##
# This PCD defines the Console output column and the default value is 25 according to UEFI spec
##
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow|25|UINT32|0x40000006
##
# This PCD defines the Console output row and the default value is 80 according to UEFI spec
##
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn|80|UINT32|0x40000007
[PcdsFixedAtBuild,PcdsDynamic]
## Base address of the NV variable range in flash device
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0|UINT32|0x30000001
## Base address of the FTW spare block range in flash device.
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x0|UINT32|0x30000013
## Base address of the FTW working block range in flash device.
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x0|UINT32|0x30000010
##
# This PCD defines the print string.
# This PCD is a sample to explain String typed PCD usage.
##
gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintString|L"UEFI Hello World!\n"|VOID*|0x40000004
[PcdsFixedAtBuild,PcdsPatchableInModule,PcdsDynamic]
##
# This PCD defines the times to print hello world string.
# This PCD is a sample to explain FixedAtBuild UINT32 PCD usage.
##
gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintTimes|1|UINT32|0x40000005
## Indicate the max size of the populated capsule image that the platform can support.
# The default max size is 100MB (0x6400000) for more than one large capsule images.
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizePopulateCapsule|0x6400000|UINT32|0x0001001e
## Indicate the max size of the non-populated capsule image that the platform can support.
# The default max size is 10MB (0xa00000) for the casule image without populated flag setting.
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule|0xa00000|UINT32|0x0001001f
|