13.6 Global PCD Section
This section contains the information for all PCDs that used for all modules in a platform. The content of global PCD section is grouped by token space:
gEfiMdeModulePkgTokenSpaceGuid
...
...
gEfiNt32PkgTokenSpaceGuid
...
...
...
PCD values derived from expressions or other PCDs are not differentiated in the report. Only the final value is displayed.
The section header is:
>===============================================================================<
Platform Configuration Database Report
*B - PCD override in the build option
*P - Platform scoped PCD override in DSC file
*F - Platform scoped PCD override in FDF file
*M - Module scoped PCD override
=================================================================================
.. (List of PCDs)
<===============================================================================>
Each global PCD item contains one or more lines:
13.6.1 Required line
The first line is required:
[*P|*F|*B] <PcdCName>: <PcdType> (<DatumType>) [(<SKUID>)][(<DefaultStore>)] = <PcdValue>
Note: If the Pcd is a Structure PCD, <DatumType>
is the Struct Name.
Examples
*P PcdWinNtFirmwareVolume : FIXED (VOID*) = L"..\\Fv\\Nt32.fd"
*F PcdWinNtFlashNvStorageFtwWorkingBase : FIXED (UINT32) = 0x0028E000 (2678784)
DEC DEFAULT = 0x0 (0)
gTokenSpaceGuid
*B LogEnable : FIXED (UNIT32) = 0x1 (1)
DEC DEFAULT = 0x0 (0)
*P TestDynamic : DYN (VOID*) (DEFAULT) = L"COM1!COM2"
: DYN (VOID*) (SKU1) = L"COM3!COM4"
: DYN (VOID*) (SKU2) = L"COM5!COM6"
DEC DEFAULT = L"COM1!COM0"
13.6.2 Optional lines
13.6.2.1 Dynamic/DynamicEx
- if
<PcdType>
is DYN-HII
<VariableGuid>:<VariableName>:<Offset>
Example
*P PcdGMchDvmtTotalSize : DYN-HII (UINT8) = 0x0 (0)
gSysConfigGuid: L"Setup": 0xAA
- if
<PcdType>
is DYN-VPD
<Offset relative to VPD base address>
Example
*F PcdVpdSample : DYN-VPD (UINT32) = 0x1 (1)
0x0001FFF
13.6.2.2 Default (optional) line
The second optional line is present if the value from the DSC was overridden by build option. It is formatted as follows:
DSC DEFAULT = <Value in PCD Section in DSC>
The third optional line is present if the value from the DEC was overridden. It is formatted as follows:
DEC DEFAULT = <Value in DEC>
Example
*P PcdWinNtFirmwareFdSize : FIXED (UINT32) = 0x2a0000 (2752512)
DEC DEFAULT = 0x0 (0)
13.6.2.3 Additional optional lines
Additional lines are optional and show if the PCD's value was obtained from the INF file or DSC file components module scoped PCD section. This will be listed if the module's final PCD value is not the same as the first line.
*M means the PCD's value was obtained from the INF file or DSC file components module scoped PCD section.
These lines are formatted as:
*M Inf Filename = <Value>
Example
*P PcdDebugPrintErrorLevel : PATCH (UINT32) = 0x80000042 (2147483714)
DEC DEFAULT = 0x80000000 (2147483648)
*M Tcp4Dxe.inf = 0x0 (0)
Note: Global PCD section is present when PCD is specified in -Y option.
13.6.2.4 Rules for Structure PCD
If the Pcd is a Structure Pcd, it display in the report file would have two parts.
One is the final Pcd value and its field value, the field value is from FDF file,
DSC file PCD Section or build option, not from the final structure byte array,
and the field order is sorted by the field name. When the field value from DSC file
PCD Section, it will not have additional *P
Flag, when the field value from FDF file,
it will have additional *F
Flag before the field name, when the field value from
build option, it will have additional *B
Flag before the field name. The other part
is the DEC default value and its field value, this part is optional. The field value
in this part is from DEC file, and the field order is sorted by the field name.
Note: When the structure Pcd have some value from build option, no matter whether
the value is same with FDF or DSC file or DEC file, there will display a *B
Flag before
the PCD name. When the structure Pcd have some value from FDF file, no matter whether
the value is same with DSC file or DEC file, there will display a *F
Flag before the
PCD name. When the structure Pcd value have some value from DSC file PCD section, no
matter whether the value is same with DEC file, there will display a *P
Flag before
the PCD name.
Example
gEfiMdePkgTokenSpaceGuid
*B TestDynamicExHii : DEXHII (TEST) (SKU1) (STANDARD) = {
0xff,0x01,0x00,0x2e,0xf6,0x08,0x6f,0x19,0x5c,0x8e,0x49,0x91,0x57,0x00,0x00,0x00,
0x00,0x64,0x00,0x00,0x00}
.A = 0x1
.Array = {0x2e,0xf6,0x08,0x6f,0x19,0x5c,0x8e,0x49,0x91,0x57}
*B .C = 0x0
.D = 0x64
: DEXHII (TEST) (SKU1) (Manufacturing) = {
0xff,0x02,0x00,0x2e,0xf6,0x08,0x6f,0x20,0x5c,0x8e,0x49,0x91,0x57,0x00,0x00,0x00,
0x00,0x68,0x00,0x00,0x00}
.A = 0x2
.Array = {0x2e,0xf6,0x08,0x6f,0x20,0x5c,0x8e,0x49,0x91,0x57}
*B .C = 0x0
.D = 0x68
DEC DEFAULT = {0xFF,0xFF}
.A = 0xF
.C = 0xF
*P TestFix : FIXED (TEST) = {
0xff,0x02,0x00,0x2e,0xf6,0x08,0x6f,0x19,0x5c,0x8e,0x49,0x91,0x57,0x00,0x00,0x00,
0x00,0x64,0x00,0x00,0x00}
.A = 0x2
.Array = {0x2e,0xf6,0x08,0x6f,0x19,0x5c,0x8e,0x49,0x91,0x57}
.C = 0x0
.D = 0x64
DEC DEFAULT = {0xFF,0xFF}
.A = 0xF
.C = 0xF