summaryrefslogtreecommitdiff
path: root/MdeModulePkg/MdeModulePkg.dec
blob: 83b09ec201911adcc20c03451cc5f27a5822a77b (plain)
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
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
## @file  MdeModulePkg.dec
#
# This package provides the modules that conform to UEFI/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 - 2010, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials are licensed and made available under 
# the terms and conditions of the BSD License that 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.91

[Includes]
  Include


[LibraryClasses]
  ##  @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.
  #   This library class is no longer used and modules using this library should
  #   directly locate EFI_PEI_S3_RESUME_PPI defined in PI 1.2 specification.
  S3Lib|Include/Library/S3Lib.h

  ##  @libraryclass  Defines a set of methods related recovery mode.
  #   This library class is no longer used and modules using this library should
  #   directly locate EFI_PEI_RECOVERY_MODULE_PPI defined in PI 1.2 specification.
  RecoveryLib|Include/Library/RecoveryLib.h

  ##  @libraryclass  Provides HII related functions.
  HiiLib|Include/Library/HiiLib.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 global variables that are pointers
  #   to the UEFI HII related protocols.
  #
  UefiHiiServicesLib|Include/Library/UefiHiiServicesLib.h

  ##  @libraryclass    Provides a set of interfaces to abstract the policy of security measurement.
  #
  SecurityManagementLib|MdeModulePkg/Include/Library/SecurityManagementLib.h

  ##  @libraryclass  OEM status code libary is used to report status code to OEM device.
  #
  OemHookStatusCodeLib|Include/Library/OemHookStatusCodeLib.h

  ##  @libraryclass  Debug Agent is used to provide soft debug capability.
  #
  DebugAgentLib|Include/Library/DebugAgentLib.h

[Guids]
  ## 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 }}

  ## 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 } }

  ## Include/Guid/NicIp4ConfigNvData.h
  gEfiNicIp4ConfigVariableGuid   = {0xd8944553, 0xc4dd, 0x41f4, { 0x9b, 0x30, 0xe1, 0x39, 0x7c, 0xfb, 0x26, 0x7b }}

  ## Include/Guid/StatusCodeCallbackGuid.h
  gStatusCodeCallbackGuid   = {0xe701458c, 0x4900, 0x4ca5, {0xb7, 0x72, 0x3d, 0x37, 0x94, 0x9f, 0x79, 0x27}}

  ## GUID identifies status code records HOB that originate from the PEI status code
  #  Include/Guid/MemoryStatusCodeRecord.h
  gMemoryStatusCodeRecordGuid     = { 0x060CC026, 0x4C0D, 0x4DDA, { 0x8F, 0x41, 0x59, 0x5F, 0xEF, 0x00, 0xA5, 0x02 }}

  ## GUID used to pass DEBUG() macro information through the Status Code Protocol and Status Code PPI
  #  Include/Guid/StatusCodeDataTypeDebug.h
  gEfiStatusCodeDataTypeDebugGuid  = { 0x9A4E9246, 0xD553, 0x11D5, { 0x87, 0xE2, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xB9 }}

  ##  A configuration Table Guid for Load module at fixed address 
  #  Include/Guid/LoadModuleAtFixedAddress.h
  gLoadFixedAddressConfigurationTableGuid  = { 0x2CA88B53,0xD296,0x4080, { 0xA4,0xA5,0xCA,0xD9,0xBA,0xE2,0x4B,0x9 } }

[Protocols]
  ## Load File protocol provides capability to load and unload EFI image into memory and execute it.
  #  Include/Protocol/LoadPe32Image.h
  #  This protocol is deprecated. Native EDKII module should NOT use this protocol to load/unload image.
  #  If developer need implement such functionality, they should use BasePeCoffLib.
  gEfiLoadPeImageProtocolGuid    = { 0x5CB5C776, 0x60D5, 0x45EE, { 0x88, 0x3C, 0x45, 0x27, 0x08, 0xCD, 0x74, 0x3F }}

  ## Print protocol defines basic print functions to print the format unicode and ascii string.
  # Include/Protocol/Print2.h
  gEfiPrint2ProtocolGuid          = { 0xf05976ef, 0x83f1, 0x4f3d, { 0x86, 0x19, 0xf7, 0x59, 0x5d, 0x41, 0xe5, 0x38 } }

  ## 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 }}

  ## 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 use VariableInfo application in MdeModulePkg\Application directory to get
  #  variable usage info, this pcd should be set as TRUE. Otherwise VariableInfo application can
  #  not output useful info.
  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. 
  #  DUET platform requires the token to be TRUE.
  gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|FALSE|BOOLEAN|0x00010047

  ## If TRUE, HiiImageProtocol will be installed.
  #  FALSE is for size reduction.
  gEfiMdeModulePkgTokenSpaceGuid.PcdSupportHiiImageProtocol|TRUE|BOOLEAN|0x00010100

  ## 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|0x0001200b

  ## If TRUE, DXE IPL must support the UEFI decompression algorithm.
  #  If FALSE, DXE IPL will not support UEFI decompression to save space.
  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSupportUefiDecompress|TRUE|BOOLEAN|0x0001200c

  ## This PCD specifies whether PciBus supports the hot plug device.
  gEfiMdeModulePkgTokenSpaceGuid.PcdPciBusHotplugDeviceSupport|TRUE|BOOLEAN|0x0001003d

  ## This PCD specifies whether the PCI bus driver probes non-standard, 
  #  such as 2K/1K/512, granularity for PCI to PCI bridge I/O window.
  gEfiMdeModulePkgTokenSpaceGuid.PcdPciBridgeIoAlignmentProbe|FALSE|BOOLEAN|0x0001004e
  ## This PCD specifies whether StatusCode is reported via Serial port.
  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE|BOOLEAN|0x00010022

  ## This PCD specifies whether StatusCode is stored in memory.
  #  The memory is boot time memory in PEI Phase and is runtime memory in DXE Phase.
  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE|BOOLEAN|0x00010023

  ## This PCD specifies whether Peiphase StatusCode is replayed in DxePhase.
  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeReplayIn|FALSE|BOOLEAN|0x0001002d

  ## This PCD specified whether ACPI SDT protocol is installed.
  gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|FALSE|BOOLEAN|0x0001004d

  ## If TRUE, then unaligned I/O, MMIO, and PCI Configuration cycles through the PCI I/O Protocol are enabled.
  #  If FALSE, then unaligned I/O, MMIO, and PCI Configuration cycles through the PCI I/O Protocol are disabled.
  #  The default value for this PCD is to disable support for unaligned PCI I/O Protocol requests.
  gEfiMdeModulePkgTokenSpaceGuid.PcdUnalignedPciIoEnable|FALSE|BOOLEAN|0x0001003e
  
[PcdsFeatureFlag.IA32, PcdsFeatureFlag.X64]
  ##
  # 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. Note that this value should less than or equal to PcdFlashNvStorageFtwSpareSize
  #  The root cause is that variable driver will use FTW protocol to reclaim variable region.
  #  If the length of variable region is larger than FTW spare size, it means the whole variable region can not
  #  be reflushed through the manner of fault tolerant write.
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x0|UINT32|0x30000002

  ## The maximum size of single common variable, that is non-HwErr type varible.
  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x400|UINT32|0x30000003

  ## The maximum size of single hardware error record variable.
  # In IA32/X64 platforms, this value should be larger than 1KB.
  # In IA64 platforms, this value should be larger than 128KB.
  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize|0x8000|UINT32|0x30000004

  ## The size of reserved HwErr variable space. Note that this value must be less than or equal to PcdFlashNvStorageVariableSize
  # In EdkII implementation, HwErr type variable is stored with common non-volatile variables in the same NV region.
  # so the platform integrator should ensure this value is less than or equal to PcdFlashNvStorageVariableSize.
  # this value is used to guarantee the space of HwErr type variable and not populated by common variable.
  gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize|0x0000|UINT32|0x30000006

  ## The size of volatile buffer. This buffer is used to store VOLATILE attribute variable.
  gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x10000|UINT32|0x30000005

  ## Size of the FTW spare block range. Note that this value should larger than PcdFlashNvStorageVariableSize
  # The root cause is that variable driver will use FTW protocol to reclaim variable region.
  # If the length of variable region is larger than FTW spare size, it means the whole variable region can not
  # be reflushed through the manner of fault tolerant write.
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x0|UINT32|0x30000014

  ## Size of the FTW working block range.
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x0|UINT32|0x30000011

  ## FFS filename to find the ACPI tables
  gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiTableStorageFile|{ 0x25, 0x4e, 0x37, 0x7e, 0x01, 0x8e, 0xee, 0x4f, 0x87, 0xf2, 0x39, 0xc, 0x23, 0xc6, 0x6, 0xcd }|VOID*|16

  ## Single root I/O virtualization virtual function memory BAR alignment
  #  BITN set indicates 2 of n+12 power
  #  BIT0 set indicates 4KB alignment
  #  BIT1 set indicates 8KB alignment
  gEfiMdeModulePkgTokenSpaceGuid.PcdSrIovSystemPageSize|0x1|UINT32|0x10000047
  
  ## Flag of enabling/disabling the feature of Loading Module at Fixed Address 
  #  -1: Enable the feature as fixed offset to TOLM
  #   0: Disable the feature.
  #  Positive Value:  Enable the feature as fixed absolute address, and the value is the top memory address 
  gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable|0|UINT64|0x30001015
  
  ## Smbios version
  gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0206|UINT16|0x00010055

  ## TFTP BlockSize. Initial value 0 means using default block size which is (MTU-IP_HEADER-UDP_HEADER-TFTP_HEADER)
  #  to handle all link layers. If the value is non zero, the PCD value will be used as block size.
  #
  gEfiMdeModulePkgTokenSpaceGuid.PcdTftpBlockSize|0x0|UINT64|0x30001026

[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

  ## Maximum address that the DXE Core will allocate the EFI_SYSTEM_TABLE_POINTER
  #  structure.  The default value for this PCD is 0, which means that the DXE Core
  #  will allocate the buffer from the EFI_SYSTEM_TABLE_POINTER structure on a 4MB
  #  boundary as close to the top of memory as feasible.  If this PCD is set to a 
  #  value other than 0, then the DXE Core will first attempt to allocate the 
  #  EFI_SYSTEM_TABLE_POINTER structure on a 4MB boundary below the address specified
  #  by this PCD, and if that allocation fails, retry the allocation on a 4MB
  #  boundary as close to the top of memory as feasible.
  #
  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxEfiSystemTablePointerAddress|0x0|UINT64|0x30001027
  
[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

  ## 64-bit Base address of the NV variable range in flash device
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0x0|UINT64|0x80000001

  ## 64-bit Base address of the FTW spare block range in flash device.
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0x0|UINT64|0x80000013

  ## 64-bit Base address of the FTW working block range in flash device.
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0x0|UINT64|0x80000010

  ## 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

  ## This PCD defines a reserved memory range for the EMU Variable driver's NV Variable Store
  #  The range is valid if non-zero.  The memory range size must be PcdVariableStoreSize.
  gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0|UINT64|0x40000008

  ## This PCD specifies whether the Single Root I/O virtualization support.
  gEfiMdeModulePkgTokenSpaceGuid.PcdSrIovSupport|TRUE|BOOLEAN|0x10000044

  ## This PCD specifies whether the Alternative Routing-ID support.
  gEfiMdeModulePkgTokenSpaceGuid.PcdAriSupport|TRUE|BOOLEAN|0x10000045

  ## This PCD specifies whether the Multi Root I/O virtualization support.
  gEfiMdeModulePkgTokenSpaceGuid.PcdMrIovSupport|FALSE|BOOLEAN|0x10000046

[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 capsule image with reset flag 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 capsule image without reset flag that the platform can support.
  #  The default max size is 10MB (0xa00000) for the casule image without reset flag setting.
  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizeNonPopulateCapsule|0xa00000|UINT32|0x0001001f

  ## Null-terminated Unicode string of the firmware vendor name that is default name filled into the EFI System Table
  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor|L"EDK II"|VOID*|0x00010050

  ## Firmware revision that is default value filled into the EFI System Table
  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareRevision|0x00010000|UINT32|0x00010051

  ## Null-terminated Unicode string that described the firmware version
  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L""|VOID*|0x00010052

  ## Null-terminated Unicode string that contains the date the formware was released
  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareReleaseDateString|L""|VOID*|0x00010053

  ## PcdStatusCodeMemorySize is used when PcdStatusCodeUseMemory is set to true
  #  (PcdStatusCodeMemorySize * KBytes) is the total taken memory size.
  #  The default value in PeiPhase is 1 KBytes.
  #  The default value in DxePhase is 128 KBytes.
  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1|UINT16|0x00010054

[PcdsPatchableInModule]
  ## Specify  memory size with page number for PEI code when 
  #  the feature of Loading Module at Fixed Address is enabled
  gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressPeiCodePageNumber|0|UINT32|0x00000029
  
  ## Specify  memory size with page number for DXE boot time code when 
  #  the feature of Loading Module at Fixed Address is enabled
  gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePageNumber|0|UINT32|0x0000002a
  
  ## Specify  memory size with page number for DXE runtime code when 
  #  the feature of Loading Module at Fixed Address is enabled
  gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageNumber|0|UINT32|0x0000002b
 
  ## Specify  memory size with page number for SMM code when 
  #  the feature of Loading Module at Fixed Address is enabled
  gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressSmmCodePageNumber|0|UINT32|0x0000002c