public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-BuildSpecification PATCH 0/3] Add support for mixed PCD access
@ 2017-04-19 20:37 Michael Kinney
  2017-04-19 20:37 ` [edk2-BuildSpecification PATCH 1/3] Add rules for " Michael Kinney
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Michael Kinney @ 2017-04-19 20:37 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Yonghong Zhu, Kevin W Shaw

https://bugzilla.tianocore.org/show_bug.cgi?id=485

GitHub word diff view of the pathes in this series

* [1/3] https://github.com/mdkinney/edk2-BuildSpecification/commit/e972f4ae0135704243d04a6da2a177d9990d2340?w=1
* [2/3] https://github.com/mdkinney/edk2-BuildSpecification/commit/4192cda206dce5ca97264c992492998c47671563?w=1
* [3/3] https://github.com/mdkinney/edk2-BuildSpecification/commit/00707ca6de6872f59e2dace2dc5e4f9a93cca418?w=1

The build tools currently require a PCD to use the
same access method from all modules.  This update
still requires modules built from sources to use
the same access method, but binary modules are
allowed to use alternate access methods.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>

Michael Kinney (3):
  Add rules for for mixed PCD access
  Make room for new mixed PCD report section
  Add report section for mixed PCD access

 13_build_reports/133_output.md                     |   1 +
 13_build_reports/135_global_pcd_section.md         | 135 ------
 13_build_reports/135_mixed_pcd_section.md          |  54 +++
 13_build_reports/136_fd_section.md                 | 166 --------
 13_build_reports/136_global_pcd_section.md         | 135 ++++++
 13_build_reports/137_fd_section.md                 | 166 ++++++++
 13_build_reports/137_module_section.md             | 452 ---------------------
 .../138_execution_order_prediction_section.md      |  71 ----
 13_build_reports/138_module_section.md             | 452 +++++++++++++++++++++
 .../139_execution_order_prediction_section.md      |  71 ++++
 .../84_auto-generated_pcd_database_file.md         |  97 +++--
 README.md                                          |   1 +
 SUMMARY.md                                         |   9 +-
 13 files changed, 939 insertions(+), 871 deletions(-)
 delete mode 100644 13_build_reports/135_global_pcd_section.md
 create mode 100644 13_build_reports/135_mixed_pcd_section.md
 delete mode 100644 13_build_reports/136_fd_section.md
 create mode 100644 13_build_reports/136_global_pcd_section.md
 create mode 100644 13_build_reports/137_fd_section.md
 delete mode 100644 13_build_reports/137_module_section.md
 delete mode 100644 13_build_reports/138_execution_order_prediction_section.md
 create mode 100644 13_build_reports/138_module_section.md
 create mode 100644 13_build_reports/139_execution_order_prediction_section.md

-- 
2.6.3.windows.1



^ permalink raw reply	[flat|nested] 6+ messages in thread

* [edk2-BuildSpecification PATCH 1/3] Add rules for for mixed PCD access
  2017-04-19 20:37 [edk2-BuildSpecification PATCH 0/3] Add support for mixed PCD access Michael Kinney
@ 2017-04-19 20:37 ` Michael Kinney
  2017-04-19 20:37 ` [edk2-BuildSpecification PATCH 2/3] Make room for new mixed PCD report section Michael Kinney
  2017-04-19 20:37 ` [edk2-BuildSpecification PATCH 3/3] Add report section for mixed PCD access Michael Kinney
  2 siblings, 0 replies; 6+ messages in thread
From: Michael Kinney @ 2017-04-19 20:37 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Yonghong Zhu, Kevin W Shaw

https://bugzilla.tianocore.org/show_bug.cgi?id=485

The build tools currently require a PCD to use the
same access method from all modules.  This update
still requires modules built from sources to use
the same access method, but binary modules are
allowed to use alternate access methods.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
---
 .../84_auto-generated_pcd_database_file.md         | 97 ++++++++++++----------
 1 file changed, 54 insertions(+), 43 deletions(-)

diff --git a/8_pre-build_autogen_stage/84_auto-generated_pcd_database_file.md b/8_pre-build_autogen_stage/84_auto-generated_pcd_database_file.md
index c0d96e8..d309246 100644
--- a/8_pre-build_autogen_stage/84_auto-generated_pcd_database_file.md
+++ b/8_pre-build_autogen_stage/84_auto-generated_pcd_database_file.md
@@ -142,50 +142,61 @@ module does not follow the DEC file's access method declarations.
     PCD to use the `PcdsDynamicExDefault` access method for all INF files that
     use the PCD. The PCD must be added to the Platform's PCD Database.
 
-2. When building modules, a PCD can only use one access method for all modules
-   in a platform; a PCD cannot use the patch access method in one source module
-   and fixed access method in another source module in the same platform. The
-   build parser must break with an error message if this occurs.
-
-3. If the PCD is listed under different access methods in all INF files in the
-   platform that use the PCD, the build parser must break with an appropriate
-   error message.
-
-4. If the PCD is listed in a `[Pcd]` section in all of the modules using that
-   PCD that are listed in the DSC file, AND the PCD is listed in the DEC file
-   under `[PcdsDynamicEx]` and/or `[PcdsDynamic]` and/or
+2. When building modules from source INFs, a PCD can only use one access method
+   for all modules in a platform; a PCD cannot use the patch access method in
+   one source module and fixed access method in another source module in the
+   same platform. The build parser must break with an error message if this
+   occurs.
+
+3. Binary modules included in a platform build are permitted to use the
+   PatchableInModule or DynamicEx access methods (the Binary module must specify
+   which of these two methods were used to create the binary module) regardless
+   of the method used for a given PCD in modules built from source. The build
+   supports binary modules that use the same or different PCD access method than
+   the source modules or other binary modules. The build parser must break with
+   an error if a PCD is listed as FixedAtBuild or Dynamic (not DynamicEx) in the
+   Binary INF.
+
+4. If the PCD is listed under different access methods in all source INF files
+   in the platform that use the PCD, the build parser must break with an
+   appropriate error message.
+
+5. If the PCD is listed in a `[Pcd]` section in all of the source modules using
+   that PCD that are listed in the DSC file, AND the PCD is listed in the DEC
+   file under `[PcdsDynamicEx]` and/or `[PcdsDynamic]` and/or
    `[PcdsPatchableInModule]` and `[PcdsFixedAtBuild]` sections, the build must
-   use the PcdsFixedAtBuild access method for this PCD in all modules in the
-   platform that use this PCD.
-
-5. If the PCD is listed in a `[Pcd]` section in all of the modules using that
-   PCD that are listed in the DSC file, AND the PCD is listed in the DEC file
-   under `[PcdsDynamicEx]` and/or `[PcdsDynamic]` and `[PcdsPatchableInModule]`
-   sections, the build must use the `PcdsPatchableInModule` access method for
-   this PCD in all modules in the platform that use this PCD.
-
-6. If the PCD is listed in a `[Pcd]` section in all of the modules using that
-   PCD that are listed in the DSC file, AND the PCD is listed in the DEC file
-   under `[PcdsDynamicEx]` and `[PcdsDynamic]` sections, the build must use the
-   `PcdsDynamicDefault` access method for this PCD in all modules in the
-   platform that use this PCD.
-
-7. If the PCD is listed in a `[Pcd]` section in all of the modules using that
-   PCD that are listed in the DSC file, AND the PCD is listed in the DEC file
-   under `[PcdsDynamicEx]` sections, the build must use the
-   `PcdsDynamicExDefault` access method for this PCD in all modules in the
-   platform that use this PCD.
-
-8. If multiple modules set the `Dynamic` or `DynamicEx` PCD to the different
-   value in a platform, and the PCD is not listed in the DSC file, the build
-   should break with an appropriate error message.
-
-9. If a PCD is used in a module listed in the DSC or FDF file and the PCD is
-   not declared in any of the DEC files that the module depends on (listed in
-   the `[Packages]` section) the build must break with an appropriate error
-   message.
-
-10. If a PCD is listed in the DSC or FDF file and the PCD is not declared in any
+   use the PcdsFixedAtBuild access method for this PCD in all source modules in
+   the platform that use this PCD.
+
+6. If the PCD is listed in a `[Pcd]` section in all of the source modules using
+   that PCD that are listed in the DSC file, AND the PCD is listed in the DEC
+   file under `[PcdsDynamicEx]` and/or `[PcdsDynamic]` and
+   `[PcdsPatchableInModule]` sections, the build must use the
+   `PcdsPatchableInModule` access method for this PCD in all source modules in
+   the platform that use this PCD.
+
+7. If the PCD is listed in a `[Pcd]` section in all of the source modules using
+   that PCD that are listed in the DSC file, AND the PCD is listed in the DEC
+   file under `[PcdsDynamicEx]` and `[PcdsDynamic]` sections, the build must use
+   the `PcdsDynamicDefault` access method for this PCD in all source modules in
+   the platform that use this PCD.
+
+8. If the PCD is listed in a `[Pcd]` section in all of the source modules using
+   that PCD that are listed in the DSC file, AND the PCD is listed in the DEC
+   file under `[PcdsDynamicEx]` sections, the build must use the
+   `PcdsDynamicExDefault` access method for this PCD in all source modules in
+   the platform that use this PCD.
+
+9. If multiple source modules set the `Dynamic` or `DynamicEx` PCD to the
+   different value in the same platform, and the PCD is not listed in the DSC
+   file, the build should break with an appropriate error message.
+
+10. If a PCD is used in a module listed in the DSC or FDF file and the PCD is
+    not declared in any of the DEC files that the module depends on (listed in
+    the `[Packages]` section) the build must break with an appropriate error
+    message.
+
+11. If a PCD is listed in the DSC or FDF file and the PCD is not declared in any
     of the DEC files AND the PCD is not used by any of the modules listed in the
     DSC or FDF file, the build must break with an appropriate error message.
 
-- 
2.6.3.windows.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [edk2-BuildSpecification PATCH 2/3] Make room for new mixed PCD report section
  2017-04-19 20:37 [edk2-BuildSpecification PATCH 0/3] Add support for mixed PCD access Michael Kinney
  2017-04-19 20:37 ` [edk2-BuildSpecification PATCH 1/3] Add rules for " Michael Kinney
@ 2017-04-19 20:37 ` Michael Kinney
  2017-04-19 20:37 ` [edk2-BuildSpecification PATCH 3/3] Add report section for mixed PCD access Michael Kinney
  2 siblings, 0 replies; 6+ messages in thread
From: Michael Kinney @ 2017-04-19 20:37 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Yonghong Zhu, Kevin W Shaw

https://bugzilla.tianocore.org/show_bug.cgi?id=485

The build tools currently require a PCD to use the
same access method from all modules.  This update
still requires modules built from sources to use
the same access method, but binary modules are
allowed to use alternate access methods.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
---
 13_build_reports/135_global_pcd_section.md         | 135 ------
 13_build_reports/136_fd_section.md                 | 166 --------
 13_build_reports/136_global_pcd_section.md         | 135 ++++++
 13_build_reports/137_fd_section.md                 | 166 ++++++++
 13_build_reports/137_module_section.md             | 452 ---------------------
 .../138_execution_order_prediction_section.md      |  71 ----
 13_build_reports/138_module_section.md             | 452 +++++++++++++++++++++
 .../139_execution_order_prediction_section.md      |  71 ++++
 8 files changed, 824 insertions(+), 824 deletions(-)
 delete mode 100644 13_build_reports/135_global_pcd_section.md
 delete mode 100644 13_build_reports/136_fd_section.md
 create mode 100644 13_build_reports/136_global_pcd_section.md
 create mode 100644 13_build_reports/137_fd_section.md
 delete mode 100644 13_build_reports/137_module_section.md
 delete mode 100644 13_build_reports/138_execution_order_prediction_section.md
 create mode 100644 13_build_reports/138_module_section.md
 create mode 100644 13_build_reports/139_execution_order_prediction_section.md

diff --git a/13_build_reports/135_global_pcd_section.md b/13_build_reports/135_global_pcd_section.md
deleted file mode 100644
index 664949e..0000000
--- a/13_build_reports/135_global_pcd_section.md
+++ /dev/null
@@ -1,135 +0,0 @@
-<!--- @file
-  13.5 Global PCD Section
-
-  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
-
-  Redistribution and use in source (original document form) and 'compiled'
-  forms (converted to PDF, epub, HTML and other formats) with or without
-  modification, are permitted provided that the following conditions are met:
-
-  1) Redistributions of source code (original document form) must retain the
-     above copyright notice, this list of conditions and the following
-     disclaimer as the first lines of this file unmodified.
-
-  2) Redistributions in compiled form (transformed to other DTDs, converted to
-     PDF, epub, HTML and other formats) must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
-  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-  EVENT SHALL TIANOCORE PROJECT  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
-  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--->
-
-## 13.5 Global PCD Section
-
-This section contains the information for all PCDs whose values are the same
-for all modules in a platform. The content of global PCD sub-section is grouped
-by token space:
-
-```
-gEfiNt32PkgTokenSpaceGuid
-...
-...
-gEfiMdeModulePkgTokenSpaceGuid
-...
-...
-...
-```
-
-Each global PCD item contains one or more lines:
-
-### 13.5.1 Required line
-
-The first line is required:
-
-`[*P|*F| ] <PcdCName>: <PcdType> (<DatumType>) = <PcdValue>`
-
-* *P means the Pcd's value was obtained from the DSC file
-* *F means the PCD's value was obtained from the FDF file.
-* If no *P or *F is given, the PCD's value comes from DEC file. If the value
-  obtained from either the DSC or FDF is the same as the value in the DEC, then
-  neither *P nor *F will be shown in the report.
-
-#### Examples
-
-```
-*P PcdWinNtFirmwareVolume               : FIXED   (VOID*) = L"..\\Fv\\Nt32.fd"
-*F PcdWinNtFlashNvStorageFtwWorkingBase : FIXED   (UINT32) = 0x0028E000
-                                                  DEC DEFAULT = 0x0
-```
-
-### 13.5.2 Optional lines
-
-#### 13.5.2.1 Dynamic/DynamicEx
-
-* if `<PcdType>` is DYN-HII
-
-`<VariableGuid>:<VariableName>:<Offset>`
-
-#### Example
-
-```
-*P PcdGMchDvmtTotalSize : DYN-HII (UINT8) = 0
-                          gSysConfigGuid: L"Setup": 0xAA
-```
-
-* if `<PcdType>` is DYN-VPD
-
-`<Offset relative to VPD base address>`
-
-#### Example
-
-```
-*F PcdVpdSample : DYN-VPD (UINT32) = 1
-                  0x0001FFF
-```
-
-#### 13.5.2.2 Default (optional) line
-
-The second 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
-                              DEC DEFAULT = 0x0
-```
-
-#### 13.5.2.3 Additional optional lines
-
-Additional lines are optional and show if the PCD's value was obtained from the
-INF file. This will be listed if the module's final PCD value is not the same
-as the first line. The value can be obtained from the INF file only if a single
-module uses the PCD.
-
-*M means the PCD's value was obtained from the INF file.
-
-These lines are formatted as:
-
-`*M Inf Filename = <Value>`
-
-#### Example
-
-```
-*P PcdDebugPrintErrorLevel : PATCH (UINT32) = 0x80000042
-                                DEC DEFAULT = 0x80000000
-                                            = 0x80000000
-*M Tcp4Dxe.inf                              = 0x0
-```
-
-**********
-**Note:** Global PCD section is present when **PCD** is specified in **-Y**
-option.
-**********
diff --git a/13_build_reports/136_fd_section.md b/13_build_reports/136_fd_section.md
deleted file mode 100644
index 81b8831..0000000
--- a/13_build_reports/136_fd_section.md
+++ /dev/null
@@ -1,166 +0,0 @@
-<!--- @file
-  13.6 FD Section
-
-  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
-
-  Redistribution and use in source (original document form) and 'compiled'
-  forms (converted to PDF, epub, HTML and other formats) with or without
-  modification, are permitted provided that the following conditions are met:
-
-  1) Redistributions of source code (original document form) must retain the
-     above copyright notice, this list of conditions and the following
-     disclaimer as the first lines of this file unmodified.
-
-  2) Redistributions in compiled form (transformed to other DTDs, converted to
-     PDF, epub, HTML and other formats) must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
-  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-  EVENT SHALL TIANOCORE PROJECT  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
-  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--->
-
-## 13.6 FD Section
-
-This section contains platform flash device information and its layout.
-
-### 13.6.1 FD Section Header
-
-Given that a platform may have multi-Firmware device, this section may appear
-more than once in the output report. The section header lists the name of FD
-and its base address and size. The contents of the section consist of one or
-more FD region subsection.
-
-The line format is: "`%-20(key)s: %(value)s`" to ensure vertical alignment.
-
-* FD Name : %FD UI name: FD file base name%
-* Base Address: %Base address for the FD image%
-* Size : %Size of the FD image%
-
-#### Example
-
-```
->==========================================================================<
-Firmware Device (FD)
-FD Name:          NT32
-Base Address:     0x0
-Size:             0x2a0000(2688KB)
-============================================================================
-... (one or more FD Region Sub-section)
-<==========================================================================>
-```
-
-### 13.6.2 FD Region Sub-section
-
-This sub-section contains FD region information of platform flash device. If
-the region is a firmware volume, it lists the set of modules and its space
-information; otherwise, it only lists its region name, base address and size in
-its sub-section header.
-
-The line format is: "`%-20(key)s: %(values)s`" to ensure vertical alignment.
-
-* Region Type : %The type of the FD region (FV, Data, File or None)%
-* Base Address: %Base address for the FD region%
-* Size : %Size of the FD region%
-* FV Name*: %FV name and occupation percentage%
-* Occupied Size*: %The occupied size of the FV%
-* Free Size*: %The free size of the FV%
-
-The contents of FD region sub-section contain the list:
-
-`(Offset, Module)*: %The list offset and module INF file path in the FV%`
-
-The items marked with \* are only available when the region type is FV.
-
-#### Example1:
-
-```
->--------------------------------------------------------------------------<
-FD Region
-Type:             FV
-Base Address:     0x0
-Size:             0x280000 (2560K)
-FV Name:          FvRecovery (65.9% Full)
-Occupied Size:    0x1A6028 (1688K)
-Free Size:        0xD9FD8 (872K)
-Offset     Module
-----------------------------------------------------------------------------
-0x00000078 PEI Apriori
-0x000000D8 DXE Apriori
-0x00000FE8 PeiCore (s:\edk2\MdeModulePkg\Core\Pei\PeiMain.inf)
-0x0000EFE8 PcdPeim (s:\edk2\MdeModulePkg\Universal\PCD\Pei\Pcd.inf)
-...(More list of offset and modules)
-<-------------------------------------------------------------------------->
->--------------------------------------------------------------------------<
-```
-
-#### Example2:
-
-```
->--------------------------------------------------------------------------<
-FD Region
-Type:             DATA
-Base Address:     0x280000
-Size:             0xc000 (48K)
-<-------------------------------------------------------------------------->
->--------------------------------------------------------------------------<
-FD Region
-Type:             None
-Base Address:     0x28C000
-Size:             0x2000 (8K)
-<-------------------------------------------------------------------------->
->--------------------------------------------------------------------------<
-...(More list of FD regions)
-```
-
-### 13.6.3 VPD PCD Sub-section
-
-This section lists, in Offset order, every VPD PCD specified in the DSC file.
-The line format for this section is PcdName SkuId Offset PcdSize PcdValue.
-
-* Base Address:%Base address from the start of the FD file%
-* Size :%Size of the FD region%
-
-For each PCD in this region:
-
-* PcdName : PcdTokenSpaceGuidCname.PcdCname
-* SkuId : The string name of the SkuId for this build (or DEFAULT if no SkuId
-  name is defined)
-* Offset : The number of bytes from the start of the FD file
-* PcdSize : Number of bytes reserved for this PCD
-* PcdValue : The current value of the PCD, in hex or (for `VOID*`) the byte array
-
-**********
-**Note:** There may be gaps in the address map as some PCDs may not be required
-for this specific build, but may be required for other builds based on the same
-DSC file.
-**********
-
-#### Example
-
-```
->----------------------------------------------------------------------<
-FD VPD Region
-Base Address:     0x3BC000
-Size:             0x04000 (16K)
------------------------------------------------------------------------
-gNoSuchTokenSpaceGuid.NoSuchPciSubsystemVendorId | DEFAULT | 0x003BC000 | 2 | 0x8086
-gNoSuchTokenSpaceGuid.NoSuchPciSubsystemDeviceId | DEFAULT | 0x003BC002 | 2 | 0x1000
-gNoSuchTokenSpaceGuid.NoSuchGigabitEthernetMac | DEFAULT | 0x003BC004 | 8 | {0x80, 0x40, 0x20, 0x10, 0x08, 0x04}
-gEfiMdeModulePkgTokenSpaceGuid.PcdRsa2048Sha256PublicKeyBuffer | DEFAULT | 0x003BC01C | 32 | {0x91, 0x29, 0xc4, 0xbd, 0xea, 0x6d, 0xda, 0xb3, 0xaa, 0x6f, 0x50, 0x16, 0xfc, 0xdb, 0x4b, 0x7e, 0x3c, 0xd6, 0xdc, 0xa4, 0x7a, 0x0e, 0xdd, 0xe6, 0x15, 0x8c, 0x73, 0x96, 0xa2, 0xd4, 0xa6, 0x4d}
-< ---------------------------------------------------------------------- >
-```
-
-**********
-**Note:** The whole FD section is present when **FLASH** is specified in **-Y**
-option.
-**********
diff --git a/13_build_reports/136_global_pcd_section.md b/13_build_reports/136_global_pcd_section.md
new file mode 100644
index 0000000..664949e
--- /dev/null
+++ b/13_build_reports/136_global_pcd_section.md
@@ -0,0 +1,135 @@
+<!--- @file
+  13.5 Global PCD Section
+
+  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
+
+  Redistribution and use in source (original document form) and 'compiled'
+  forms (converted to PDF, epub, HTML and other formats) with or without
+  modification, are permitted provided that the following conditions are met:
+
+  1) Redistributions of source code (original document form) must retain the
+     above copyright notice, this list of conditions and the following
+     disclaimer as the first lines of this file unmodified.
+
+  2) Redistributions in compiled form (transformed to other DTDs, converted to
+     PDF, epub, HTML and other formats) must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+  EVENT SHALL TIANOCORE PROJECT  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
+  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-->
+
+## 13.5 Global PCD Section
+
+This section contains the information for all PCDs whose values are the same
+for all modules in a platform. The content of global PCD sub-section is grouped
+by token space:
+
+```
+gEfiNt32PkgTokenSpaceGuid
+...
+...
+gEfiMdeModulePkgTokenSpaceGuid
+...
+...
+...
+```
+
+Each global PCD item contains one or more lines:
+
+### 13.5.1 Required line
+
+The first line is required:
+
+`[*P|*F| ] <PcdCName>: <PcdType> (<DatumType>) = <PcdValue>`
+
+* *P means the Pcd's value was obtained from the DSC file
+* *F means the PCD's value was obtained from the FDF file.
+* If no *P or *F is given, the PCD's value comes from DEC file. If the value
+  obtained from either the DSC or FDF is the same as the value in the DEC, then
+  neither *P nor *F will be shown in the report.
+
+#### Examples
+
+```
+*P PcdWinNtFirmwareVolume               : FIXED   (VOID*) = L"..\\Fv\\Nt32.fd"
+*F PcdWinNtFlashNvStorageFtwWorkingBase : FIXED   (UINT32) = 0x0028E000
+                                                  DEC DEFAULT = 0x0
+```
+
+### 13.5.2 Optional lines
+
+#### 13.5.2.1 Dynamic/DynamicEx
+
+* if `<PcdType>` is DYN-HII
+
+`<VariableGuid>:<VariableName>:<Offset>`
+
+#### Example
+
+```
+*P PcdGMchDvmtTotalSize : DYN-HII (UINT8) = 0
+                          gSysConfigGuid: L"Setup": 0xAA
+```
+
+* if `<PcdType>` is DYN-VPD
+
+`<Offset relative to VPD base address>`
+
+#### Example
+
+```
+*F PcdVpdSample : DYN-VPD (UINT32) = 1
+                  0x0001FFF
+```
+
+#### 13.5.2.2 Default (optional) line
+
+The second 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
+                              DEC DEFAULT = 0x0
+```
+
+#### 13.5.2.3 Additional optional lines
+
+Additional lines are optional and show if the PCD's value was obtained from the
+INF file. This will be listed if the module's final PCD value is not the same
+as the first line. The value can be obtained from the INF file only if a single
+module uses the PCD.
+
+*M means the PCD's value was obtained from the INF file.
+
+These lines are formatted as:
+
+`*M Inf Filename = <Value>`
+
+#### Example
+
+```
+*P PcdDebugPrintErrorLevel : PATCH (UINT32) = 0x80000042
+                                DEC DEFAULT = 0x80000000
+                                            = 0x80000000
+*M Tcp4Dxe.inf                              = 0x0
+```
+
+**********
+**Note:** Global PCD section is present when **PCD** is specified in **-Y**
+option.
+**********
diff --git a/13_build_reports/137_fd_section.md b/13_build_reports/137_fd_section.md
new file mode 100644
index 0000000..81b8831
--- /dev/null
+++ b/13_build_reports/137_fd_section.md
@@ -0,0 +1,166 @@
+<!--- @file
+  13.6 FD Section
+
+  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
+
+  Redistribution and use in source (original document form) and 'compiled'
+  forms (converted to PDF, epub, HTML and other formats) with or without
+  modification, are permitted provided that the following conditions are met:
+
+  1) Redistributions of source code (original document form) must retain the
+     above copyright notice, this list of conditions and the following
+     disclaimer as the first lines of this file unmodified.
+
+  2) Redistributions in compiled form (transformed to other DTDs, converted to
+     PDF, epub, HTML and other formats) must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+  EVENT SHALL TIANOCORE PROJECT  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
+  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-->
+
+## 13.6 FD Section
+
+This section contains platform flash device information and its layout.
+
+### 13.6.1 FD Section Header
+
+Given that a platform may have multi-Firmware device, this section may appear
+more than once in the output report. The section header lists the name of FD
+and its base address and size. The contents of the section consist of one or
+more FD region subsection.
+
+The line format is: "`%-20(key)s: %(value)s`" to ensure vertical alignment.
+
+* FD Name : %FD UI name: FD file base name%
+* Base Address: %Base address for the FD image%
+* Size : %Size of the FD image%
+
+#### Example
+
+```
+>==========================================================================<
+Firmware Device (FD)
+FD Name:          NT32
+Base Address:     0x0
+Size:             0x2a0000(2688KB)
+============================================================================
+... (one or more FD Region Sub-section)
+<==========================================================================>
+```
+
+### 13.6.2 FD Region Sub-section
+
+This sub-section contains FD region information of platform flash device. If
+the region is a firmware volume, it lists the set of modules and its space
+information; otherwise, it only lists its region name, base address and size in
+its sub-section header.
+
+The line format is: "`%-20(key)s: %(values)s`" to ensure vertical alignment.
+
+* Region Type : %The type of the FD region (FV, Data, File or None)%
+* Base Address: %Base address for the FD region%
+* Size : %Size of the FD region%
+* FV Name*: %FV name and occupation percentage%
+* Occupied Size*: %The occupied size of the FV%
+* Free Size*: %The free size of the FV%
+
+The contents of FD region sub-section contain the list:
+
+`(Offset, Module)*: %The list offset and module INF file path in the FV%`
+
+The items marked with \* are only available when the region type is FV.
+
+#### Example1:
+
+```
+>--------------------------------------------------------------------------<
+FD Region
+Type:             FV
+Base Address:     0x0
+Size:             0x280000 (2560K)
+FV Name:          FvRecovery (65.9% Full)
+Occupied Size:    0x1A6028 (1688K)
+Free Size:        0xD9FD8 (872K)
+Offset     Module
+----------------------------------------------------------------------------
+0x00000078 PEI Apriori
+0x000000D8 DXE Apriori
+0x00000FE8 PeiCore (s:\edk2\MdeModulePkg\Core\Pei\PeiMain.inf)
+0x0000EFE8 PcdPeim (s:\edk2\MdeModulePkg\Universal\PCD\Pei\Pcd.inf)
+...(More list of offset and modules)
+<-------------------------------------------------------------------------->
+>--------------------------------------------------------------------------<
+```
+
+#### Example2:
+
+```
+>--------------------------------------------------------------------------<
+FD Region
+Type:             DATA
+Base Address:     0x280000
+Size:             0xc000 (48K)
+<-------------------------------------------------------------------------->
+>--------------------------------------------------------------------------<
+FD Region
+Type:             None
+Base Address:     0x28C000
+Size:             0x2000 (8K)
+<-------------------------------------------------------------------------->
+>--------------------------------------------------------------------------<
+...(More list of FD regions)
+```
+
+### 13.6.3 VPD PCD Sub-section
+
+This section lists, in Offset order, every VPD PCD specified in the DSC file.
+The line format for this section is PcdName SkuId Offset PcdSize PcdValue.
+
+* Base Address:%Base address from the start of the FD file%
+* Size :%Size of the FD region%
+
+For each PCD in this region:
+
+* PcdName : PcdTokenSpaceGuidCname.PcdCname
+* SkuId : The string name of the SkuId for this build (or DEFAULT if no SkuId
+  name is defined)
+* Offset : The number of bytes from the start of the FD file
+* PcdSize : Number of bytes reserved for this PCD
+* PcdValue : The current value of the PCD, in hex or (for `VOID*`) the byte array
+
+**********
+**Note:** There may be gaps in the address map as some PCDs may not be required
+for this specific build, but may be required for other builds based on the same
+DSC file.
+**********
+
+#### Example
+
+```
+>----------------------------------------------------------------------<
+FD VPD Region
+Base Address:     0x3BC000
+Size:             0x04000 (16K)
+-----------------------------------------------------------------------
+gNoSuchTokenSpaceGuid.NoSuchPciSubsystemVendorId | DEFAULT | 0x003BC000 | 2 | 0x8086
+gNoSuchTokenSpaceGuid.NoSuchPciSubsystemDeviceId | DEFAULT | 0x003BC002 | 2 | 0x1000
+gNoSuchTokenSpaceGuid.NoSuchGigabitEthernetMac | DEFAULT | 0x003BC004 | 8 | {0x80, 0x40, 0x20, 0x10, 0x08, 0x04}
+gEfiMdeModulePkgTokenSpaceGuid.PcdRsa2048Sha256PublicKeyBuffer | DEFAULT | 0x003BC01C | 32 | {0x91, 0x29, 0xc4, 0xbd, 0xea, 0x6d, 0xda, 0xb3, 0xaa, 0x6f, 0x50, 0x16, 0xfc, 0xdb, 0x4b, 0x7e, 0x3c, 0xd6, 0xdc, 0xa4, 0x7a, 0x0e, 0xdd, 0xe6, 0x15, 0x8c, 0x73, 0x96, 0xa2, 0xd4, 0xa6, 0x4d}
+< ---------------------------------------------------------------------- >
+```
+
+**********
+**Note:** The whole FD section is present when **FLASH** is specified in **-Y**
+option.
+**********
diff --git a/13_build_reports/137_module_section.md b/13_build_reports/137_module_section.md
deleted file mode 100644
index 96200a2..0000000
--- a/13_build_reports/137_module_section.md
+++ /dev/null
@@ -1,452 +0,0 @@
-<!--- @file
-  13.7 Module Section
-
-  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
-
-  Redistribution and use in source (original document form) and 'compiled'
-  forms (converted to PDF, epub, HTML and other formats) with or without
-  modification, are permitted provided that the following conditions are met:
-
-  1) Redistributions of source code (original document form) must retain the
-     above copyright notice, this list of conditions and the following
-     disclaimer as the first lines of this file unmodified.
-
-  2) Redistributions in compiled form (transformed to other DTDs, converted to
-     PDF, epub, HTML and other formats) must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
-  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-  EVENT SHALL TIANOCORE PROJECT  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
-  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--->
-
-## 13.7 Module Section
-
-Module section lists all modules involved in the platform build. If the
-**EXECUTION_ORDER** option is specified in **-Y** option, the module sections
-are sorted according to their PEI or DXE dispatch order; otherwise the module
-sections are listed according to their DSC position.
-
-### 13.7.1 Module Section Summary
-
-This sub-section lists the module basic information: Module name: INF file,
-file GUID, module size, module build time stamp and driver type.
-
-* `Module Name` : %Module UI name: '`BASE_NAME`' in INF `[Defines]` section%
-* Module INF Path: %Path of Module INF file%
-* File GUID: %Module GUID: '`FILE_GUID`' in INF `[Defines]` section%
-* Size: %Module EFI image size%
-* Build time stamp: %The time stamp in module PE32 image% (If the time stamp is
-  cleared to be zero, the build time stamp is 1970-01-01 00:00:00 UTC time.)
-* Driver Type: %The driver's file type code[^2] and name in firmware volume%
-
-The following entries are options:
-
-* UEFI Specification Version: %The UEFI specification
-  version:'`UEFI_SPECIFICATION_VERSION`' in INF `[Defines]` section%
-* PI Specification Version: %The PI specification
-  version:'`PI_SPECIFICATION_VERSION`' in the INF `[Defines]` section%
-* `PCI Device ID`: %The PCI device ID for the device: '`PCI_DEVICE_ID`' in INF
-  `[Defines]` section%
-* `PCI Vendor ID`: %The PCI vendor ID for the device: '`PCI_VENDOR_ID`' in INF
-  `[Defines]` section%
-* `PCI Class Code`: %The PCI class code for the device: '`PCI_CLASS_CODE`' in
-  INF `[Defines]` section%
-
-[^2] The hex value in this field is the Firmware File Type value defined in
-Volume 3 of the PI Specification (Table 3 Defined File Types).
-
-
-#### Example1:
-
-```
->==========================================================================<
-Module Summary
-Module Name:        SmbiosDxe
-Module INF Path:    MdeModule\Universal\SmbiosDxe\SmbiosDxe.inf
-File GUID:          F9D88642-0737-49BC-81B5-6889CD57D9EA
-Size:               0x7000 (28.00K)
-Build Time Stamp:   1969-12-31 16:00:00
-Driver Type:        0x7 (DRIVER)
-============================================================================
-... (Module Section Details for SmbiosDxe)
-<==========================================================================>
-```
-
-#### Example2:
-
-```
->==========================================================================<
-Module Summary
-Module Name:        EbcDxe
-Module INF Path:    MdeModule\Universal\EbcDxe\EbcDxe.inf
-File GUID:          13AC6DD0-73D0-11D4-B06B-00AA00BD6DE7
-Size:               0x9000 (36.00K)
-Time Stamp:         1969-12-31 16:00:00
-Driver Type:        0x7 (DRIVER)
-============================================================================
-... (Module Section Details for EbcDxe)
-
-<==========================================================================>
-```
-
-### 13.7.2 Library Sub-section
-
-This sub-section, which follows each Module Summary section, holds the
-information for all libraries used in this module. If it is an EDKII style
-module, it further lists its correspondent library class, library constructor
-and destructor name if they exist. The library instances are sorted by the
-order of their constructor calling sequence and the reverse order of their
-destructor calling sequence.
-
-* Library INF Path: Path of library instance INF file
-* Class\*: The library class name of the library instance
-* C\*: The library constructor if it exists
-* D\*: The library destructor if it exists
-
-The items marked with \* are only available when the module is an EDKII style
-module and they must be listed in the next line immediately after library
-instance's INF path.
-
-An example of the module's library instance section is shown below.
-
-Following the subsection header, for each library instance that was linked, the
-format is:
-
-1. The first line is the INF file name; this is the fully qualified path and
-   file name of the library instance
-
-2. {ClassName} - the name of the library class that the above INF file provides
-
-   * If constructors are provided, for each constructor, the following content
-     is inserted in the curly braces after the ClassName:
-     ```
-     C = ConstructorCname
-     ```
-
-   * If destructors are provided, for each destructor, the following is
-     inserted in the curly braces before the closing curly brace.
-     ```
-     D = DestructorCname
-     ```
-
-#### Example1:
-
-```c
->--------------------------------------------------------------------------<
-Library
----------------------------------------------------------------------------
-s:\edk2\MdePkg\Library\UefiDevicePathLib\UefiDevicePathLib.inf
-{DevicePathLib}
-s:\edk2\MdePkg\Library\BaseLib\BaseLib.inf
-{BaseLib}
-s:\edk2\MdePkg\Library\BaseMemoryLib\BaseMemoryLib.inf
-{BaseMemoryLib}
-s:\edk2\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib.inf
-{MemoryAllocationLib}
-s:\edk2\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib.inf
-{UefiBootServicesTableLib: C = UefiBootServicesTableLibConstructor}
-s:\edk2\MdePkg\Library\DxePcdLib\DxePcdLib.inf
-{PcdLib: C = PcdLibConstructor}
-s:\edk2\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib.inf
-{UefiRuntimeServicesTableLib: C = UefiRuntimeServicesLibConstructor}
-s:\edk2\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsic.inf
-{IoLib}
-s:\edk2\MdePkg\Library\BasePciCf8Lib\BasePciCf8Lib.inf
-{PciCf8Lib}
-s:\edk2\MdePkg\Library\BasePciLibCf8\BasePciLibCf8.inf
-{PciLib}
-s:\edk2\MdePkg\Library\BasePrintLib\BasePrintLib.inf
-{PrintLib}
-s:\edk2\Ich9Pkg\Library\IntelIchAcpiTimerLib\IntelIchAcpiTimerLib.inf
-{TimerLib: C = IntelAcpiTimerLibConstructor}
-s:\edk2\MdePkg\Library\UefiLib\UefiLib.inf
-{UefiLib}
-s:\edk2\MdePkg\Library\BaseSynchronizationLib\BaseSynchronizationLib.inf
-{SynchronizationLib}
-s:\edk2\MdePkg\Library\DxeHobLib\DxeHobLib.inf
-{HobLib: C = DxeHobLibConstructor}
-s:\edk2\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint.inf
-{UefiDriverEntryPoint}
-s:\edk2\MdePkg\Library\UefiRuntimeLib\UefiRuntimeLib.inf
-{UefiRuntimeLib: C = UefiRuntimeLibConstructor D = UefiRuntimeLibDestructor}
-<-------------------------------------------------------------------------->
-```
-
-#### Example2:
-
-```
->--------------------------------------------------------------------------<
-Library
----------------------------------------------------------------------------
-s:\edk2\R8MyPlatformPkg\Guid\GuidLib.inf
-s:\edk2\EdkCompatibilityPkg\Foundation\Guid\EdkGuidLib.inf
-s:\edk2\EdkCompatibilityPkg\Foundation\Protocol\EdkProtocolLib.inf
-s:\edk2\EdkCompatibilityPkg\Foundation\Library\RuntimeDxe\EfiRuntimeLib\EfiRuntimeLib.inf
-s:\edk2\EdkCompatibilityPkg\Foundation\Core\Dxe\ArchProtocol\ArchProtocolLib.inf
-s:\edk2\EdkCompatibilityPkg\Foundation\Library\CompilerStub\CompilerStubLib.inf
-s:\edk2\EdkCompatibilityPkg\Foundation\Guid\EdkGuidLib.inf
-s:\edk2\EdkCompatibilityPkg\Foundation\Framework\Protocol\EdkFrameworkProtocolLib.inf
-s:\edk2\EdkCompatibilityPkg\Foundation\Efi\Guid\EfiGuidLib.inf
-s:\edk2\EdkCompatibilityPkg\Foundation\Efi\Protocol\EfiProtocolLib.inf
-s:\edk2\EdkCompatibilityPkg\Foundation\Library\EfiCommonLib\EfiCommonLib.inf
-s:\edk2\EdkCompatibilityPkg\Foundation\Framework\Guid\EdkFrameworkGuidLib.inf
-<-------------------------------------------------------------------------->
-```
-
-**********
-**Note:** This sub-section is present when **LIBRARY** is specified in **-Y**
-option.
-**********
-
-### 13.7.3 PCD Sub-section
-
-This sub-section (following the Module Summary information) holds the
-information for all PCDs used in this module. The content of module PCD
-sub-section is divided by token space such as:
-
-```
-gEfiNt32PkgTokenSpaceGuid
-...
-...
-gEfiMdeModulePkgTokenSpaceGuid
-...
-...
-...
-```
-
-Each PCD may contain up to four lines:
-
-1. The first line is a mandatory line with the following format:
-   `[*P|*M|*F| ] <PcdCName>: <PcdType> (<DatumType>) = <PcdValue>`
-   - \*P means the Pcd's value is the platform default (listed in DSC PCD common
-     section or inherited from Module INF file).
-   - \*M means the PCD's value in module INF was obtained from the `[Components]`
-     section of the DSC file.
-   - \*F means the PCD's value is override in FDF file.
-   - If no \*P or \*F, mean the PCD's value comes from DEC file.
-   - For example:
-     ```
-     *P PcdWinNtFirmwareVolume : FIXED (VOID*) = L"..\\Fv\\Nt32.fd"
-     ```
-
-2. The second line is the optional line
-   - if `<PcdType>` is DYN-HII
-     ```
-     <VariableGuid>:<VariableName>:<Offset>
-     ```
-     For example:
-     ```
-     *P PcdGMchDvmtTotalSize : DYN-HII (UINT8) = 0
-                               gSysConfigGuid: L"Setup": 0xAA
-     ```
-   - if `<PcdType>` is DYN-VPD
-     ```
-     <Offset relative to VPD base address>
-     ```
-     For example:
-     ```
-     *F PcdVpdSample : DYN-VPD (UINT32) = 1
-                       0x0001FFF
-     ```
-
-3. The third and fourth lines are both option if the module's final
-   `<PcdValue>` is not equal to the PCD value in the PCD common section in the
-   DSC file and the PCD value in the DEC file respectively.
-   ```
-   DSC DEFAULT = <Value in PCD Common Section in DSC>
-   DEC DEFAULT = <Value in DEC>
-   ```
-   For example:
-   ```
-   *P PcdPlatformBootTimeOut : DYNHII (UINT16) = 10
-                     gEfiGlobalVariableGuid: L"Timeout": 0x0
-                                                   DEC DEFAULT = 0xffff
-   *M PcdDebugPrintErrorLevel : FIXED   (UINT32) = 0x80000042
-                                DSC DEFAULT = 0x80000040
-                                DEC DEFAULT = 0x80000000
-   ```
-
-**********
-**Note:** This sub-section is present when **PCD** is specified in **-Y**
-option.
-**********
-
-### 13.7.4 DEPEX Sub-section
-
-This sub-section (following the Module Summary information) holds module
-dependency expression (DEPEX) information. The sub-section header holds the
-module dependency expression instructions and final dependency expression. If
-the module is an EDK II style module and it inherits dependency from one of its
-library instance, it lists the inherited library dependency expression in the
-sub-section contents.
-
-**********
-**Note:** For `UEFI_DRIVER` module types, the tools may optimize the depex
-to none, and therefore, a **DEPEX** report may not be output. However, some
-`UEFI_DRIVER` modules may produce a DEPEX section if libraries that they have
-been linked with have DEPEX sections.
-**********
-
-#### Example1:
-```
->--------------------------------------------------------------------------<
-Final Dependency Expression (DEPEX) Instructions
-  PUSH gEfiFirmwareVolumeBlock2ProtocolGuid
-  PUSH gEfiRuntimeArchProtocolGuid
-  PUSH gEfiPcdProtocolGuid
-  PUSH gEfiDevicePathUtilitiesProtocolGuid
-  AND
-  AND
-  AND
-  END
-----------------------------------------------------------------------------
-Dependency Expression (DEPEX) from INF
-(gEfiFirmwareVolumeBlockProtocolGuid AND gEfiRuntimeArchProtocolGuid) AND
-(gEfiPcdProtocolGuid) AND
-(gEfiDevicePathUtilitiesProtocolGuid)
----------------------------------------------------------------------------
-From Module INF:  gEfiFirmwareVolumeBlockProtocolGuid AND
-gEfiRuntimeArchProtocolGuid
-From Library INF: (gEfiPcdProtocolGuid) AND
-(gEfiDevicePathUtilitiesProtocolGuid)
-<-------------------------------------------------------------------------->
-```
-
-#### Example2:
-
-```
->--------------------------------------------------------------------------<
-Dependency Expression (DEPEX) Instructions
-  PUSH gEfiPciRootBridgeIoProtocolGuid
-  PUSH gEfiVariableArchProtocolGuid
-  PUSH gEfiVariableWriteArchProtocolGuid
-  PUSH gEfiMetronomeArchProtocolGuid
-  PUSH gEfiRuntimeArchProtocolGuid
-  PUSH gEfiHiiDatabaseProtocolGuid
-  AND
-  AND
-  AND
-  AND
-  AND
-  END
------------------------------------------------------------------------
-Dependency Expression (DEPEX) from DXS
-EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID AND EFI_VARIABLE_ARCH_PROTOCOL_GUID AND
-EFI_VARIABLE_WRITE_ARCH_PROTOCOL_GUID AND EFI_METRONOME_ARCH_PROTOCOL_GUID AND
-EFI_RUNTIME_ARCH_PROTOCOL_GUID AND EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID AND
-EFI_HII_DATABASE_PROTOCOL_GUID
-<-------------------------------------------------------------------------->
-```
-
-**********
-**Note:** This sub-section is present when **DEPEX** is specified in **-Y**
-option.
-**********
-
-### 13.7.5 Build Flags Sub-section
-
-This sub-section (following the Module Summary information) holds module build
-flags information. The sub-section header holds the module tool chain tag and
-the subsection contents list all related build flags, arranged using the tool
-code and flag attributes defined in the `Conf/tools_def.txt` file.
-
-#### Example
-
-```
->--------------------------------------------------------------------------<
-Build Flags
-Tool Chain Tag: VS2008x86
-----------------------------------------------------------------------------
-SLINK_FLAGS =  /NOLOGO /LTCG
-----------------------------------------------------------------------------
-DLINK_FLAGS =  /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /
-ALIGN:32 /SECTION:.xdata,D
-/SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /
-SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO
-/BASE:0 /DRIVER /DEBUG /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /
-BASE:0x10000 /ALIGN:4096 /FILEALIGN:4096
-/SUBSYSTEM:CONSOLE
-----------------------------------------------------------------------------
-CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /
-EHs-c- /GR- /GF /Gy /Zi /Gm
-<--------------------------------------------------------------------------->
-```
-
-**********
-**Note:** This sub-section is present when `BUILDFLAGS` is specified in
-`-Y` option.
-**********
-
-### 13.7.6 Fixed Address Prediction Sub-section
-
-This sub-section (following the Module Summary information) contains module
-notification function information. All the notification functions are listed
-with the following triplet line by line:
-
-`(Type, Address, Name)`
-
-%The address type, predicted address, and function name%
-
-The second character of the Type indicates whether the address is in Flash or
-Memory.
-
-#### Example1:
-
-```
->----------------------------------------------------------------------<
-Fixed Address Prediction
-*I   Image Loading Address
-*E   Entry Point Address
-*N   Notification Function Address
-*F   Flash Address
-*M   Memory Address
-*S   SMM RAM Offset
-TOM  Top of Memory
-Type Address        Name
------------------------------------------------------------------------
-*IF  0x00fffe6dac   (Image Base)
-*EF  0x00fffe6e74   _ModuleEntryPoint
-*NF  0x00fffe70b5   EndOfPeiCallback
-*NF  0x00fffe83f0   MemoryDiscoveredPpiNotifyCallback
-*IM  0x003ef48000   (Image Base)
-*EM  0x003ef480c8   _ModuleEntryPoint
-*NM  0x003ef48309   EndOfPeiSignalPpiNotifyCallback
-*NM  0x003ef49644   EndOfPeiCallback
-<---------------------------------------------------------------------->
-```
-
-#### Example2:
-
-```
->----------------------------------------------------------------------<
-Fixed Address Prediction
-*I   Image Loading Address
-*E   Entry Point Address
-*N   Notification Function Address
-*F   Flash Address
-*M   Memory Address
-*S   SMM RAM address
-TOM  Top of Memory
-Type Address           Name
------------------------------------------------------------------------
-*IM  TOM-0x00014000   (Image Base)
-*EM  TOM-0x00013d60   _ModuleEntryPoint
-*IS  TOM-0x00034000   (Image Base)
-*ES  TOM-0x00033d60   _ModuleEntryPoint
-<---------------------------------------------------------------------->
-```
-
-**********
-**Note:** This sub-section is present when `FIXEDADDRESS` is specified in
-`-Y` option.
-**********
diff --git a/13_build_reports/138_execution_order_prediction_section.md b/13_build_reports/138_execution_order_prediction_section.md
deleted file mode 100644
index c4e4a2b..0000000
--- a/13_build_reports/138_execution_order_prediction_section.md
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--- @file
-  13.8 Execution Order Prediction Section
-
-  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
-
-  Redistribution and use in source (original document form) and 'compiled'
-  forms (converted to PDF, epub, HTML and other formats) with or without
-  modification, are permitted provided that the following conditions are met:
-
-  1) Redistributions of source code (original document form) must retain the
-     above copyright notice, this list of conditions and the following
-     disclaimer as the first lines of this file unmodified.
-
-  2) Redistributions in compiled form (transformed to other DTDs, converted to
-     PDF, epub, HTML and other formats) must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-
-  THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
-  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-  EVENT SHALL TIANOCORE PROJECT  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
-  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--->
-
-## 13.8 Execution Order Prediction Section
-
-This section contains platform level prediction for the execution flow. Each
-phase list the following triple in their predicted order:
-
-`(Type, Name, Module INF Path)`
-
-%The entry point or notification function name%
-
-#### Example
-
-```
->======================================================================<
-Execution Order Prediction
-*P PEI phase
-*D DXE phase
-*E Module INF entry point name
-*N Module notification function name
-Type Symbol          Module INF Path
-========================================================================
-*PE   PeiCore        s:\edk2\MdeModulePkg\Core\Pei\PeiMain.inf
-*PE   PcdPeimInit    s:\edk2\MdeModulePkg\Universal\Pcd\Pei\Pcd.inf
-...
-*PN EndOfPeiCallback s:\edk2\MyPlatform\PlatformPei\PlatformPei.inf
-*DE DxeMain          s:\edk2\MdeModulePkg\Core\Dxe\DxeMain.inf
-*DE PcdDxeInit       s:\edk2\MdeModulePkg\Universal\Pcd\Dxe\Pcd.inf
-...
-<======================================================================>
-```
-
-**********
-**Note:** This section is present when **EXECUTIONORDER** is specified in
-**-Y** option.
-**********
-
-The following figure shows the HTML format with an entry expanded.
-
-![](../media/image24.png)
-
-###### Figure 24 Report.html
diff --git a/13_build_reports/138_module_section.md b/13_build_reports/138_module_section.md
new file mode 100644
index 0000000..96200a2
--- /dev/null
+++ b/13_build_reports/138_module_section.md
@@ -0,0 +1,452 @@
+<!--- @file
+  13.7 Module Section
+
+  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
+
+  Redistribution and use in source (original document form) and 'compiled'
+  forms (converted to PDF, epub, HTML and other formats) with or without
+  modification, are permitted provided that the following conditions are met:
+
+  1) Redistributions of source code (original document form) must retain the
+     above copyright notice, this list of conditions and the following
+     disclaimer as the first lines of this file unmodified.
+
+  2) Redistributions in compiled form (transformed to other DTDs, converted to
+     PDF, epub, HTML and other formats) must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+  EVENT SHALL TIANOCORE PROJECT  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
+  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-->
+
+## 13.7 Module Section
+
+Module section lists all modules involved in the platform build. If the
+**EXECUTION_ORDER** option is specified in **-Y** option, the module sections
+are sorted according to their PEI or DXE dispatch order; otherwise the module
+sections are listed according to their DSC position.
+
+### 13.7.1 Module Section Summary
+
+This sub-section lists the module basic information: Module name: INF file,
+file GUID, module size, module build time stamp and driver type.
+
+* `Module Name` : %Module UI name: '`BASE_NAME`' in INF `[Defines]` section%
+* Module INF Path: %Path of Module INF file%
+* File GUID: %Module GUID: '`FILE_GUID`' in INF `[Defines]` section%
+* Size: %Module EFI image size%
+* Build time stamp: %The time stamp in module PE32 image% (If the time stamp is
+  cleared to be zero, the build time stamp is 1970-01-01 00:00:00 UTC time.)
+* Driver Type: %The driver's file type code[^2] and name in firmware volume%
+
+The following entries are options:
+
+* UEFI Specification Version: %The UEFI specification
+  version:'`UEFI_SPECIFICATION_VERSION`' in INF `[Defines]` section%
+* PI Specification Version: %The PI specification
+  version:'`PI_SPECIFICATION_VERSION`' in the INF `[Defines]` section%
+* `PCI Device ID`: %The PCI device ID for the device: '`PCI_DEVICE_ID`' in INF
+  `[Defines]` section%
+* `PCI Vendor ID`: %The PCI vendor ID for the device: '`PCI_VENDOR_ID`' in INF
+  `[Defines]` section%
+* `PCI Class Code`: %The PCI class code for the device: '`PCI_CLASS_CODE`' in
+  INF `[Defines]` section%
+
+[^2] The hex value in this field is the Firmware File Type value defined in
+Volume 3 of the PI Specification (Table 3 Defined File Types).
+
+
+#### Example1:
+
+```
+>==========================================================================<
+Module Summary
+Module Name:        SmbiosDxe
+Module INF Path:    MdeModule\Universal\SmbiosDxe\SmbiosDxe.inf
+File GUID:          F9D88642-0737-49BC-81B5-6889CD57D9EA
+Size:               0x7000 (28.00K)
+Build Time Stamp:   1969-12-31 16:00:00
+Driver Type:        0x7 (DRIVER)
+============================================================================
+... (Module Section Details for SmbiosDxe)
+<==========================================================================>
+```
+
+#### Example2:
+
+```
+>==========================================================================<
+Module Summary
+Module Name:        EbcDxe
+Module INF Path:    MdeModule\Universal\EbcDxe\EbcDxe.inf
+File GUID:          13AC6DD0-73D0-11D4-B06B-00AA00BD6DE7
+Size:               0x9000 (36.00K)
+Time Stamp:         1969-12-31 16:00:00
+Driver Type:        0x7 (DRIVER)
+============================================================================
+... (Module Section Details for EbcDxe)
+
+<==========================================================================>
+```
+
+### 13.7.2 Library Sub-section
+
+This sub-section, which follows each Module Summary section, holds the
+information for all libraries used in this module. If it is an EDKII style
+module, it further lists its correspondent library class, library constructor
+and destructor name if they exist. The library instances are sorted by the
+order of their constructor calling sequence and the reverse order of their
+destructor calling sequence.
+
+* Library INF Path: Path of library instance INF file
+* Class\*: The library class name of the library instance
+* C\*: The library constructor if it exists
+* D\*: The library destructor if it exists
+
+The items marked with \* are only available when the module is an EDKII style
+module and they must be listed in the next line immediately after library
+instance's INF path.
+
+An example of the module's library instance section is shown below.
+
+Following the subsection header, for each library instance that was linked, the
+format is:
+
+1. The first line is the INF file name; this is the fully qualified path and
+   file name of the library instance
+
+2. {ClassName} - the name of the library class that the above INF file provides
+
+   * If constructors are provided, for each constructor, the following content
+     is inserted in the curly braces after the ClassName:
+     ```
+     C = ConstructorCname
+     ```
+
+   * If destructors are provided, for each destructor, the following is
+     inserted in the curly braces before the closing curly brace.
+     ```
+     D = DestructorCname
+     ```
+
+#### Example1:
+
+```c
+>--------------------------------------------------------------------------<
+Library
+---------------------------------------------------------------------------
+s:\edk2\MdePkg\Library\UefiDevicePathLib\UefiDevicePathLib.inf
+{DevicePathLib}
+s:\edk2\MdePkg\Library\BaseLib\BaseLib.inf
+{BaseLib}
+s:\edk2\MdePkg\Library\BaseMemoryLib\BaseMemoryLib.inf
+{BaseMemoryLib}
+s:\edk2\MdePkg\Library\UefiMemoryAllocationLib\UefiMemoryAllocationLib.inf
+{MemoryAllocationLib}
+s:\edk2\MdePkg\Library\UefiBootServicesTableLib\UefiBootServicesTableLib.inf
+{UefiBootServicesTableLib: C = UefiBootServicesTableLibConstructor}
+s:\edk2\MdePkg\Library\DxePcdLib\DxePcdLib.inf
+{PcdLib: C = PcdLibConstructor}
+s:\edk2\MdePkg\Library\UefiRuntimeServicesTableLib\UefiRuntimeServicesTableLib.inf
+{UefiRuntimeServicesTableLib: C = UefiRuntimeServicesLibConstructor}
+s:\edk2\MdePkg\Library\BaseIoLibIntrinsic\BaseIoLibIntrinsic.inf
+{IoLib}
+s:\edk2\MdePkg\Library\BasePciCf8Lib\BasePciCf8Lib.inf
+{PciCf8Lib}
+s:\edk2\MdePkg\Library\BasePciLibCf8\BasePciLibCf8.inf
+{PciLib}
+s:\edk2\MdePkg\Library\BasePrintLib\BasePrintLib.inf
+{PrintLib}
+s:\edk2\Ich9Pkg\Library\IntelIchAcpiTimerLib\IntelIchAcpiTimerLib.inf
+{TimerLib: C = IntelAcpiTimerLibConstructor}
+s:\edk2\MdePkg\Library\UefiLib\UefiLib.inf
+{UefiLib}
+s:\edk2\MdePkg\Library\BaseSynchronizationLib\BaseSynchronizationLib.inf
+{SynchronizationLib}
+s:\edk2\MdePkg\Library\DxeHobLib\DxeHobLib.inf
+{HobLib: C = DxeHobLibConstructor}
+s:\edk2\MdePkg\Library\UefiDriverEntryPoint\UefiDriverEntryPoint.inf
+{UefiDriverEntryPoint}
+s:\edk2\MdePkg\Library\UefiRuntimeLib\UefiRuntimeLib.inf
+{UefiRuntimeLib: C = UefiRuntimeLibConstructor D = UefiRuntimeLibDestructor}
+<-------------------------------------------------------------------------->
+```
+
+#### Example2:
+
+```
+>--------------------------------------------------------------------------<
+Library
+---------------------------------------------------------------------------
+s:\edk2\R8MyPlatformPkg\Guid\GuidLib.inf
+s:\edk2\EdkCompatibilityPkg\Foundation\Guid\EdkGuidLib.inf
+s:\edk2\EdkCompatibilityPkg\Foundation\Protocol\EdkProtocolLib.inf
+s:\edk2\EdkCompatibilityPkg\Foundation\Library\RuntimeDxe\EfiRuntimeLib\EfiRuntimeLib.inf
+s:\edk2\EdkCompatibilityPkg\Foundation\Core\Dxe\ArchProtocol\ArchProtocolLib.inf
+s:\edk2\EdkCompatibilityPkg\Foundation\Library\CompilerStub\CompilerStubLib.inf
+s:\edk2\EdkCompatibilityPkg\Foundation\Guid\EdkGuidLib.inf
+s:\edk2\EdkCompatibilityPkg\Foundation\Framework\Protocol\EdkFrameworkProtocolLib.inf
+s:\edk2\EdkCompatibilityPkg\Foundation\Efi\Guid\EfiGuidLib.inf
+s:\edk2\EdkCompatibilityPkg\Foundation\Efi\Protocol\EfiProtocolLib.inf
+s:\edk2\EdkCompatibilityPkg\Foundation\Library\EfiCommonLib\EfiCommonLib.inf
+s:\edk2\EdkCompatibilityPkg\Foundation\Framework\Guid\EdkFrameworkGuidLib.inf
+<-------------------------------------------------------------------------->
+```
+
+**********
+**Note:** This sub-section is present when **LIBRARY** is specified in **-Y**
+option.
+**********
+
+### 13.7.3 PCD Sub-section
+
+This sub-section (following the Module Summary information) holds the
+information for all PCDs used in this module. The content of module PCD
+sub-section is divided by token space such as:
+
+```
+gEfiNt32PkgTokenSpaceGuid
+...
+...
+gEfiMdeModulePkgTokenSpaceGuid
+...
+...
+...
+```
+
+Each PCD may contain up to four lines:
+
+1. The first line is a mandatory line with the following format:
+   `[*P|*M|*F| ] <PcdCName>: <PcdType> (<DatumType>) = <PcdValue>`
+   - \*P means the Pcd's value is the platform default (listed in DSC PCD common
+     section or inherited from Module INF file).
+   - \*M means the PCD's value in module INF was obtained from the `[Components]`
+     section of the DSC file.
+   - \*F means the PCD's value is override in FDF file.
+   - If no \*P or \*F, mean the PCD's value comes from DEC file.
+   - For example:
+     ```
+     *P PcdWinNtFirmwareVolume : FIXED (VOID*) = L"..\\Fv\\Nt32.fd"
+     ```
+
+2. The second line is the optional line
+   - if `<PcdType>` is DYN-HII
+     ```
+     <VariableGuid>:<VariableName>:<Offset>
+     ```
+     For example:
+     ```
+     *P PcdGMchDvmtTotalSize : DYN-HII (UINT8) = 0
+                               gSysConfigGuid: L"Setup": 0xAA
+     ```
+   - if `<PcdType>` is DYN-VPD
+     ```
+     <Offset relative to VPD base address>
+     ```
+     For example:
+     ```
+     *F PcdVpdSample : DYN-VPD (UINT32) = 1
+                       0x0001FFF
+     ```
+
+3. The third and fourth lines are both option if the module's final
+   `<PcdValue>` is not equal to the PCD value in the PCD common section in the
+   DSC file and the PCD value in the DEC file respectively.
+   ```
+   DSC DEFAULT = <Value in PCD Common Section in DSC>
+   DEC DEFAULT = <Value in DEC>
+   ```
+   For example:
+   ```
+   *P PcdPlatformBootTimeOut : DYNHII (UINT16) = 10
+                     gEfiGlobalVariableGuid: L"Timeout": 0x0
+                                                   DEC DEFAULT = 0xffff
+   *M PcdDebugPrintErrorLevel : FIXED   (UINT32) = 0x80000042
+                                DSC DEFAULT = 0x80000040
+                                DEC DEFAULT = 0x80000000
+   ```
+
+**********
+**Note:** This sub-section is present when **PCD** is specified in **-Y**
+option.
+**********
+
+### 13.7.4 DEPEX Sub-section
+
+This sub-section (following the Module Summary information) holds module
+dependency expression (DEPEX) information. The sub-section header holds the
+module dependency expression instructions and final dependency expression. If
+the module is an EDK II style module and it inherits dependency from one of its
+library instance, it lists the inherited library dependency expression in the
+sub-section contents.
+
+**********
+**Note:** For `UEFI_DRIVER` module types, the tools may optimize the depex
+to none, and therefore, a **DEPEX** report may not be output. However, some
+`UEFI_DRIVER` modules may produce a DEPEX section if libraries that they have
+been linked with have DEPEX sections.
+**********
+
+#### Example1:
+```
+>--------------------------------------------------------------------------<
+Final Dependency Expression (DEPEX) Instructions
+  PUSH gEfiFirmwareVolumeBlock2ProtocolGuid
+  PUSH gEfiRuntimeArchProtocolGuid
+  PUSH gEfiPcdProtocolGuid
+  PUSH gEfiDevicePathUtilitiesProtocolGuid
+  AND
+  AND
+  AND
+  END
+----------------------------------------------------------------------------
+Dependency Expression (DEPEX) from INF
+(gEfiFirmwareVolumeBlockProtocolGuid AND gEfiRuntimeArchProtocolGuid) AND
+(gEfiPcdProtocolGuid) AND
+(gEfiDevicePathUtilitiesProtocolGuid)
+---------------------------------------------------------------------------
+From Module INF:  gEfiFirmwareVolumeBlockProtocolGuid AND
+gEfiRuntimeArchProtocolGuid
+From Library INF: (gEfiPcdProtocolGuid) AND
+(gEfiDevicePathUtilitiesProtocolGuid)
+<-------------------------------------------------------------------------->
+```
+
+#### Example2:
+
+```
+>--------------------------------------------------------------------------<
+Dependency Expression (DEPEX) Instructions
+  PUSH gEfiPciRootBridgeIoProtocolGuid
+  PUSH gEfiVariableArchProtocolGuid
+  PUSH gEfiVariableWriteArchProtocolGuid
+  PUSH gEfiMetronomeArchProtocolGuid
+  PUSH gEfiRuntimeArchProtocolGuid
+  PUSH gEfiHiiDatabaseProtocolGuid
+  AND
+  AND
+  AND
+  AND
+  AND
+  END
+-----------------------------------------------------------------------
+Dependency Expression (DEPEX) from DXS
+EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID AND EFI_VARIABLE_ARCH_PROTOCOL_GUID AND
+EFI_VARIABLE_WRITE_ARCH_PROTOCOL_GUID AND EFI_METRONOME_ARCH_PROTOCOL_GUID AND
+EFI_RUNTIME_ARCH_PROTOCOL_GUID AND EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID AND
+EFI_HII_DATABASE_PROTOCOL_GUID
+<-------------------------------------------------------------------------->
+```
+
+**********
+**Note:** This sub-section is present when **DEPEX** is specified in **-Y**
+option.
+**********
+
+### 13.7.5 Build Flags Sub-section
+
+This sub-section (following the Module Summary information) holds module build
+flags information. The sub-section header holds the module tool chain tag and
+the subsection contents list all related build flags, arranged using the tool
+code and flag attributes defined in the `Conf/tools_def.txt` file.
+
+#### Example
+
+```
+>--------------------------------------------------------------------------<
+Build Flags
+Tool Chain Tag: VS2008x86
+----------------------------------------------------------------------------
+SLINK_FLAGS =  /NOLOGO /LTCG
+----------------------------------------------------------------------------
+DLINK_FLAGS =  /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /
+ALIGN:32 /SECTION:.xdata,D
+/SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /
+SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO
+/BASE:0 /DRIVER /DEBUG /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /
+BASE:0x10000 /ALIGN:4096 /FILEALIGN:4096
+/SUBSYSTEM:CONSOLE
+----------------------------------------------------------------------------
+CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /
+EHs-c- /GR- /GF /Gy /Zi /Gm
+<--------------------------------------------------------------------------->
+```
+
+**********
+**Note:** This sub-section is present when `BUILDFLAGS` is specified in
+`-Y` option.
+**********
+
+### 13.7.6 Fixed Address Prediction Sub-section
+
+This sub-section (following the Module Summary information) contains module
+notification function information. All the notification functions are listed
+with the following triplet line by line:
+
+`(Type, Address, Name)`
+
+%The address type, predicted address, and function name%
+
+The second character of the Type indicates whether the address is in Flash or
+Memory.
+
+#### Example1:
+
+```
+>----------------------------------------------------------------------<
+Fixed Address Prediction
+*I   Image Loading Address
+*E   Entry Point Address
+*N   Notification Function Address
+*F   Flash Address
+*M   Memory Address
+*S   SMM RAM Offset
+TOM  Top of Memory
+Type Address        Name
+-----------------------------------------------------------------------
+*IF  0x00fffe6dac   (Image Base)
+*EF  0x00fffe6e74   _ModuleEntryPoint
+*NF  0x00fffe70b5   EndOfPeiCallback
+*NF  0x00fffe83f0   MemoryDiscoveredPpiNotifyCallback
+*IM  0x003ef48000   (Image Base)
+*EM  0x003ef480c8   _ModuleEntryPoint
+*NM  0x003ef48309   EndOfPeiSignalPpiNotifyCallback
+*NM  0x003ef49644   EndOfPeiCallback
+<---------------------------------------------------------------------->
+```
+
+#### Example2:
+
+```
+>----------------------------------------------------------------------<
+Fixed Address Prediction
+*I   Image Loading Address
+*E   Entry Point Address
+*N   Notification Function Address
+*F   Flash Address
+*M   Memory Address
+*S   SMM RAM address
+TOM  Top of Memory
+Type Address           Name
+-----------------------------------------------------------------------
+*IM  TOM-0x00014000   (Image Base)
+*EM  TOM-0x00013d60   _ModuleEntryPoint
+*IS  TOM-0x00034000   (Image Base)
+*ES  TOM-0x00033d60   _ModuleEntryPoint
+<---------------------------------------------------------------------->
+```
+
+**********
+**Note:** This sub-section is present when `FIXEDADDRESS` is specified in
+`-Y` option.
+**********
diff --git a/13_build_reports/139_execution_order_prediction_section.md b/13_build_reports/139_execution_order_prediction_section.md
new file mode 100644
index 0000000..c4e4a2b
--- /dev/null
+++ b/13_build_reports/139_execution_order_prediction_section.md
@@ -0,0 +1,71 @@
+<!--- @file
+  13.8 Execution Order Prediction Section
+
+  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
+
+  Redistribution and use in source (original document form) and 'compiled'
+  forms (converted to PDF, epub, HTML and other formats) with or without
+  modification, are permitted provided that the following conditions are met:
+
+  1) Redistributions of source code (original document form) must retain the
+     above copyright notice, this list of conditions and the following
+     disclaimer as the first lines of this file unmodified.
+
+  2) Redistributions in compiled form (transformed to other DTDs, converted to
+     PDF, epub, HTML and other formats) must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+  EVENT SHALL TIANOCORE PROJECT  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
+  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-->
+
+## 13.8 Execution Order Prediction Section
+
+This section contains platform level prediction for the execution flow. Each
+phase list the following triple in their predicted order:
+
+`(Type, Name, Module INF Path)`
+
+%The entry point or notification function name%
+
+#### Example
+
+```
+>======================================================================<
+Execution Order Prediction
+*P PEI phase
+*D DXE phase
+*E Module INF entry point name
+*N Module notification function name
+Type Symbol          Module INF Path
+========================================================================
+*PE   PeiCore        s:\edk2\MdeModulePkg\Core\Pei\PeiMain.inf
+*PE   PcdPeimInit    s:\edk2\MdeModulePkg\Universal\Pcd\Pei\Pcd.inf
+...
+*PN EndOfPeiCallback s:\edk2\MyPlatform\PlatformPei\PlatformPei.inf
+*DE DxeMain          s:\edk2\MdeModulePkg\Core\Dxe\DxeMain.inf
+*DE PcdDxeInit       s:\edk2\MdeModulePkg\Universal\Pcd\Dxe\Pcd.inf
+...
+<======================================================================>
+```
+
+**********
+**Note:** This section is present when **EXECUTIONORDER** is specified in
+**-Y** option.
+**********
+
+The following figure shows the HTML format with an entry expanded.
+
+![](../media/image24.png)
+
+###### Figure 24 Report.html
-- 
2.6.3.windows.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [edk2-BuildSpecification PATCH 3/3] Add report section for mixed PCD access
  2017-04-19 20:37 [edk2-BuildSpecification PATCH 0/3] Add support for mixed PCD access Michael Kinney
  2017-04-19 20:37 ` [edk2-BuildSpecification PATCH 1/3] Add rules for " Michael Kinney
  2017-04-19 20:37 ` [edk2-BuildSpecification PATCH 2/3] Make room for new mixed PCD report section Michael Kinney
@ 2017-04-19 20:37 ` Michael Kinney
  2017-04-20  3:06   ` Zhu, Yonghong
  2 siblings, 1 reply; 6+ messages in thread
From: Michael Kinney @ 2017-04-19 20:37 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Yonghong Zhu, Kevin W Shaw

https://bugzilla.tianocore.org/show_bug.cgi?id=485

The build tools currently require a PCD to use the
same access method from all modules.  This update
still requires modules built from sources to use
the same access method, but binary modules are
allowed to use alternate access methods.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
---
 13_build_reports/133_output.md                     |  1 +
 13_build_reports/135_mixed_pcd_section.md          | 54 ++++++++++++++++++++++
 13_build_reports/136_global_pcd_section.md         | 14 +++---
 13_build_reports/137_fd_section.md                 | 10 ++--
 13_build_reports/138_module_section.md             | 16 +++----
 .../139_execution_order_prediction_section.md      |  4 +-
 README.md                                          |  1 +
 SUMMARY.md                                         |  9 ++--
 8 files changed, 83 insertions(+), 26 deletions(-)
 create mode 100644 13_build_reports/135_mixed_pcd_section.md

diff --git a/13_build_reports/133_output.md b/13_build_reports/133_output.md
index 5363b7f..ce64efd 100644
--- a/13_build_reports/133_output.md
+++ b/13_build_reports/133_output.md
@@ -51,6 +51,7 @@ The layout of the text report file:
 
 ```
 |---- Platform summary
+    |----- Mixed PCD section
     |----- Global PCD section
     |----- FD section*
         |---- FD Region sub-section*
diff --git a/13_build_reports/135_mixed_pcd_section.md b/13_build_reports/135_mixed_pcd_section.md
new file mode 100644
index 0000000..98d6662
--- /dev/null
+++ b/13_build_reports/135_mixed_pcd_section.md
@@ -0,0 +1,54 @@
+<!--- @file
+  13.5 Mixed PCD Section
+
+  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
+
+  Redistribution and use in source (original document form) and 'compiled'
+  forms (converted to PDF, epub, HTML and other formats) with or without
+  modification, are permitted provided that the following conditions are met:
+
+  1) Redistributions of source code (original document form) must retain the
+     above copyright notice, this list of conditions and the following
+     disclaimer as the first lines of this file unmodified.
+
+  2) Redistributions in compiled form (transformed to other DTDs, converted to
+     PDF, epub, HTML and other formats) must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY EXPRESS OR
+  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+  EVENT SHALL TIANOCORE PROJECT  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF
+  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-->
+
+## 13.6 Mixed PCD Section
+
+There is an optional sub-section that, when present, lists the PCDs in the
+platform that use multiple access methods. This sub-section is only present if
+there are Binary modules included in the platform build and the binary module
+uses a different PCD access method than other modules in the same platform
+build.
+
+The sub-section header is:
+
+```
+>===============================================================================<
+The following PCDs use different access methods:
+=================================================================================
+.. (List of PCDs)
+<===============================================================================>
+```
+
+Format for the entries in this section:
+
+```
+<PcdTokenSpaceGuid>.<PcdCName>
+```
diff --git a/13_build_reports/136_global_pcd_section.md b/13_build_reports/136_global_pcd_section.md
index 664949e..f24f97a 100644
--- a/13_build_reports/136_global_pcd_section.md
+++ b/13_build_reports/136_global_pcd_section.md
@@ -1,5 +1,5 @@
 <!--- @file
-  13.5 Global PCD Section
+  13.6 Global PCD Section
 
   Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
 
@@ -29,7 +29,7 @@
 
 -->
 
-## 13.5 Global PCD Section
+## 13.6 Global PCD Section
 
 This section contains the information for all PCDs whose values are the same
 for all modules in a platform. The content of global PCD sub-section is grouped
@@ -47,7 +47,7 @@ gEfiMdeModulePkgTokenSpaceGuid
 
 Each global PCD item contains one or more lines:
 
-### 13.5.1 Required line
+### 13.6.1 Required line
 
 The first line is required:
 
@@ -67,9 +67,9 @@ The first line is required:
                                                   DEC DEFAULT = 0x0
 ```
 
-### 13.5.2 Optional lines
+### 13.6.2 Optional lines
 
-#### 13.5.2.1 Dynamic/DynamicEx
+#### 13.6.2.1 Dynamic/DynamicEx
 
 * if `<PcdType>` is DYN-HII
 
@@ -93,7 +93,7 @@ The first line is required:
                   0x0001FFF
 ```
 
-#### 13.5.2.2 Default (optional) line
+#### 13.6.2.2 Default (optional) line
 
 The second optional line is present if the value from the DEC was overridden.
 It is formatted as follows:
@@ -107,7 +107,7 @@ It is formatted as follows:
                               DEC DEFAULT = 0x0
 ```
 
-#### 13.5.2.3 Additional optional lines
+#### 13.6.2.3 Additional optional lines
 
 Additional lines are optional and show if the PCD's value was obtained from the
 INF file. This will be listed if the module's final PCD value is not the same
diff --git a/13_build_reports/137_fd_section.md b/13_build_reports/137_fd_section.md
index 81b8831..49c2695 100644
--- a/13_build_reports/137_fd_section.md
+++ b/13_build_reports/137_fd_section.md
@@ -1,5 +1,5 @@
 <!--- @file
-  13.6 FD Section
+  13.7 FD Section
 
   Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
 
@@ -29,11 +29,11 @@
 
 -->
 
-## 13.6 FD Section
+## 13.7 FD Section
 
 This section contains platform flash device information and its layout.
 
-### 13.6.1 FD Section Header
+### 13.7.1 FD Section Header
 
 Given that a platform may have multi-Firmware device, this section may appear
 more than once in the output report. The section header lists the name of FD
@@ -59,7 +59,7 @@ Size:             0x2a0000(2688KB)
 <==========================================================================>
 ```
 
-### 13.6.2 FD Region Sub-section
+### 13.7.2 FD Region Sub-section
 
 This sub-section contains FD region information of platform flash device. If
 the region is a firmware volume, it lists the set of modules and its space
@@ -122,7 +122,7 @@ Size:             0x2000 (8K)
 ...(More list of FD regions)
 ```
 
-### 13.6.3 VPD PCD Sub-section
+### 13.7.3 VPD PCD Sub-section
 
 This section lists, in Offset order, every VPD PCD specified in the DSC file.
 The line format for this section is PcdName SkuId Offset PcdSize PcdValue.
diff --git a/13_build_reports/138_module_section.md b/13_build_reports/138_module_section.md
index 96200a2..23e039b 100644
--- a/13_build_reports/138_module_section.md
+++ b/13_build_reports/138_module_section.md
@@ -1,5 +1,5 @@
 <!--- @file
-  13.7 Module Section
+  13.8 Module Section
 
   Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
 
@@ -29,14 +29,14 @@
 
 -->
 
-## 13.7 Module Section
+## 13.8 Module Section
 
 Module section lists all modules involved in the platform build. If the
 **EXECUTION_ORDER** option is specified in **-Y** option, the module sections
 are sorted according to their PEI or DXE dispatch order; otherwise the module
 sections are listed according to their DSC position.
 
-### 13.7.1 Module Section Summary
+### 13.8.1 Module Section Summary
 
 This sub-section lists the module basic information: Module name: INF file,
 file GUID, module size, module build time stamp and driver type.
@@ -99,7 +99,7 @@ Driver Type:        0x7 (DRIVER)
 <==========================================================================>
 ```
 
-### 13.7.2 Library Sub-section
+### 13.8.2 Library Sub-section
 
 This sub-section, which follows each Module Summary section, holds the
 information for all libraries used in this module. If it is an EDKII style
@@ -208,7 +208,7 @@ s:\edk2\EdkCompatibilityPkg\Foundation\Framework\Guid\EdkFrameworkGuidLib.inf
 option.
 **********
 
-### 13.7.3 PCD Sub-section
+### 13.8.3 PCD Sub-section
 
 This sub-section (following the Module Summary information) holds the
 information for all PCDs used in this module. The content of module PCD
@@ -281,7 +281,7 @@ Each PCD may contain up to four lines:
 option.
 **********
 
-### 13.7.4 DEPEX Sub-section
+### 13.8.4 DEPEX Sub-section
 
 This sub-section (following the Module Summary information) holds module
 dependency expression (DEPEX) information. The sub-section header holds the
@@ -353,7 +353,7 @@ EFI_HII_DATABASE_PROTOCOL_GUID
 option.
 **********
 
-### 13.7.5 Build Flags Sub-section
+### 13.8.5 Build Flags Sub-section
 
 This sub-section (following the Module Summary information) holds module build
 flags information. The sub-section header holds the module tool chain tag and
@@ -387,7 +387,7 @@ EHs-c- /GR- /GF /Gy /Zi /Gm
 `-Y` option.
 **********
 
-### 13.7.6 Fixed Address Prediction Sub-section
+### 13.8.6 Fixed Address Prediction Sub-section
 
 This sub-section (following the Module Summary information) contains module
 notification function information. All the notification functions are listed
diff --git a/13_build_reports/139_execution_order_prediction_section.md b/13_build_reports/139_execution_order_prediction_section.md
index c4e4a2b..7a2f277 100644
--- a/13_build_reports/139_execution_order_prediction_section.md
+++ b/13_build_reports/139_execution_order_prediction_section.md
@@ -1,5 +1,5 @@
 <!--- @file
-  13.8 Execution Order Prediction Section
+  13.9 Execution Order Prediction Section
 
   Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
 
@@ -29,7 +29,7 @@
 
 -->
 
-## 13.8 Execution Order Prediction Section
+## 13.9 Execution Order Prediction Section
 
 This section contains platform level prediction for the execution flow. Each
 phase list the following triple in their predicted order:
diff --git a/README.md b/README.md
index 21bb782..c511971 100644
--- a/README.md
+++ b/README.md
@@ -206,3 +206,4 @@ Copyright (c) 2008-2017, Intel Corporation. All rights reserved.
 |            | [#483](https://bugzilla.tianocore.org/show_bug.cgi?id=483) Build Spec: add description for merge Pre-build and Post-build into build process                                                                                                                                                                                                                        |               |
 |            | [#490](https://bugzilla.tianocore.org/show_bug.cgi?id=490) Build Spec: specify the alignment requirements for VOID* PCDs stored in a PCD section                                                                                                                                                                                                                    |               |
 |            | [#479](https://bugzilla.tianocore.org/show_bug.cgi?id=479) Build spec: add description for nmake long command line handling                                                                                                                                                                                                                                         |               |
+|            | [#485](https://bugzilla.tianocore.org/show_bug.cgi?id=485) Build spec: add support for mixed Pcd access method                                                                                                                                                                                                                                                      |               |
diff --git a/SUMMARY.md b/SUMMARY.md
index e374319..386fb4f 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -107,10 +107,11 @@
   * [13.2 Sample Launch Steps: NT32 platform](13_build_reports/132_sample_launch_steps_nt32_platform.md#132-sample-launch-steps-nt32-platform)
   * [13.3 Output](13_build_reports/133_output.md#133-output)
   * [13.4 Platform Summary](13_build_reports/134_platform_summary.md#134-platform-summary)
-  * [13.5 Global PCD Section](13_build_reports/135_global_pcd_section.md#135-global-pcd-section)
-  * [13.6 FD Section](13_build_reports/136_fd_section.md#136-fd-section)
-  * [13.7 Module Section](13_build_reports/137_module_section.md#137-module-section)
-  * [13.8 Execution Order Prediction Section](13_build_reports/138_execution_order_prediction_section.md#138-execution-order-prediction-section)
+  * [13.5 Mixed PCD Section](13_build_reports/135_mixed_pcd_section.md#135-mixed-pcd-section)
+  * [13.6 Global PCD Section](13_build_reports/136_global_pcd_section.md#136-global-pcd-section)
+  * [13.7 FD Section](13_build_reports/137_fd_section.md#137-fd-section)
+  * [13.8 Module Section](13_build_reports/138_module_section.md#138-module-section)
+  * [13.9 Execution Order Prediction Section](13_build_reports/139_execution_order_prediction_section.md#139-execution-order-prediction-section)
 * [Appendix A Variables](appendix_a_variables.md#appendix-a-variables)
 * [Appendix B tools_def.txt](appendix_b_toolsdef_txt.md#appendix-b-tools_deftxt)
 * [Appendix C target.txt](appendix_c_targettxt.md#appendix-c-targettxt)
-- 
2.6.3.windows.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [edk2-BuildSpecification PATCH 3/3] Add report section for mixed PCD access
  2017-04-19 20:37 ` [edk2-BuildSpecification PATCH 3/3] Add report section for mixed PCD access Michael Kinney
@ 2017-04-20  3:06   ` Zhu, Yonghong
  2017-04-20  4:15     ` Kinney, Michael D
  0 siblings, 1 reply; 6+ messages in thread
From: Zhu, Yonghong @ 2017-04-20  3:06 UTC (permalink / raw)
  To: Kinney, Michael D, edk2-devel@lists.01.org
  Cc: Gao, Liming, Shaw, Kevin W, Zhu, Yonghong

Hi Mike,

Is this section 13.5 but not 13.6 ?  others are good to me. Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com> 

## 13.6 Mixed PCD Section

Best Regards,
Zhu Yonghong

-----Original Message-----
From: Kinney, Michael D 
Sent: Thursday, April 20, 2017 4:37 AM
To: edk2-devel@lists.01.org
Cc: Gao, Liming <liming.gao@intel.com>; Zhu, Yonghong <yonghong.zhu@intel.com>; Shaw, Kevin W <kevin.w.shaw@intel.com>
Subject: [edk2-BuildSpecification PATCH 3/3] Add report section for mixed PCD access

https://bugzilla.tianocore.org/show_bug.cgi?id=485

The build tools currently require a PCD to use the same access method from all modules.  This update still requires modules built from sources to use the same access method, but binary modules are allowed to use alternate access methods.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
---
 13_build_reports/133_output.md                     |  1 +
 13_build_reports/135_mixed_pcd_section.md          | 54 ++++++++++++++++++++++
 13_build_reports/136_global_pcd_section.md         | 14 +++---
 13_build_reports/137_fd_section.md                 | 10 ++--
 13_build_reports/138_module_section.md             | 16 +++----
 .../139_execution_order_prediction_section.md      |  4 +-
 README.md                                          |  1 +
 SUMMARY.md                                         |  9 ++--
 8 files changed, 83 insertions(+), 26 deletions(-)  create mode 100644 13_build_reports/135_mixed_pcd_section.md

diff --git a/13_build_reports/133_output.md b/13_build_reports/133_output.md index 5363b7f..ce64efd 100644
--- a/13_build_reports/133_output.md
+++ b/13_build_reports/133_output.md
@@ -51,6 +51,7 @@ The layout of the text report file:
 
 ```
 |---- Platform summary
+    |----- Mixed PCD section
     |----- Global PCD section
     |----- FD section*
         |---- FD Region sub-section*
diff --git a/13_build_reports/135_mixed_pcd_section.md b/13_build_reports/135_mixed_pcd_section.md
new file mode 100644
index 0000000..98d6662
--- /dev/null
+++ b/13_build_reports/135_mixed_pcd_section.md
@@ -0,0 +1,54 @@
+<!--- @file
+  13.5 Mixed PCD Section
+
+  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
+
+  Redistribution and use in source (original document form) and 'compiled'
+  forms (converted to PDF, epub, HTML and other formats) with or 
+ without  modification, are permitted provided that the following conditions are met:
+
+  1) Redistributions of source code (original document form) must retain the
+     above copyright notice, this list of conditions and the following
+     disclaimer as the first lines of this file unmodified.
+
+  2) Redistributions in compiled form (transformed to other DTDs, converted to
+     PDF, epub, HTML and other formats) must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in the
+     documentation and/or other materials provided with the distribution.
+
+  THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY 
+ EXPRESS OR  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+ IMPLIED WARRANTIES OF  MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
+ PURPOSE ARE DISCLAIMED. IN NO  EVENT SHALL TIANOCORE PROJECT  BE 
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL, EXEMPLARY, OR 
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,  PROCUREMENT OF 
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;  OR 
+ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,  
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
+ OR
+  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, 
+ EVEN IF  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-->
+
+## 13.6 Mixed PCD Section
+
+There is an optional sub-section that, when present, lists the PCDs in 
+the platform that use multiple access methods. This sub-section is only 
+present if there are Binary modules included in the platform build and 
+the binary module uses a different PCD access method than other modules 
+in the same platform build.
+
+The sub-section header is:
+
+```
+>======================================================================
+>=========<
+The following PCDs use different access methods:
+=======================================================================
+==========
+.. (List of PCDs)
+<======================================================================
+=========>
+```
+
+Format for the entries in this section:
+
+```
+<PcdTokenSpaceGuid>.<PcdCName>
+```
diff --git a/13_build_reports/136_global_pcd_section.md b/13_build_reports/136_global_pcd_section.md
index 664949e..f24f97a 100644
--- a/13_build_reports/136_global_pcd_section.md
+++ b/13_build_reports/136_global_pcd_section.md
@@ -1,5 +1,5 @@
 <!--- @file
-  13.5 Global PCD Section
+  13.6 Global PCD Section
 
   Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
 
@@ -29,7 +29,7 @@
 
 -->
 
-## 13.5 Global PCD Section
+## 13.6 Global PCD Section
 
 This section contains the information for all PCDs whose values are the same  for all modules in a platform. The content of global PCD sub-section is grouped @@ -47,7 +47,7 @@ gEfiMdeModulePkgTokenSpaceGuid
 
 Each global PCD item contains one or more lines:
 
-### 13.5.1 Required line
+### 13.6.1 Required line
 
 The first line is required:
 
@@ -67,9 +67,9 @@ The first line is required:
                                                   DEC DEFAULT = 0x0  ```
 
-### 13.5.2 Optional lines
+### 13.6.2 Optional lines
 
-#### 13.5.2.1 Dynamic/DynamicEx
+#### 13.6.2.1 Dynamic/DynamicEx
 
 * if `<PcdType>` is DYN-HII
 
@@ -93,7 +93,7 @@ The first line is required:
                   0x0001FFF
 ```
 
-#### 13.5.2.2 Default (optional) line
+#### 13.6.2.2 Default (optional) line
 
 The second optional line is present if the value from the DEC was overridden.
 It is formatted as follows:
@@ -107,7 +107,7 @@ It is formatted as follows:
                               DEC DEFAULT = 0x0  ```
 
-#### 13.5.2.3 Additional optional lines
+#### 13.6.2.3 Additional optional lines
 
 Additional lines are optional and show if the PCD's value was obtained from the  INF file. This will be listed if the module's final PCD value is not the same diff --git a/13_build_reports/137_fd_section.md b/13_build_reports/137_fd_section.md
index 81b8831..49c2695 100644
--- a/13_build_reports/137_fd_section.md
+++ b/13_build_reports/137_fd_section.md
@@ -1,5 +1,5 @@
 <!--- @file
-  13.6 FD Section
+  13.7 FD Section
 
   Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
 
@@ -29,11 +29,11 @@
 
 -->
 
-## 13.6 FD Section
+## 13.7 FD Section
 
 This section contains platform flash device information and its layout.
 
-### 13.6.1 FD Section Header
+### 13.7.1 FD Section Header
 
 Given that a platform may have multi-Firmware device, this section may appear  more than once in the output report. The section header lists the name of FD
@@ -59,7 +59,7 @@ Size:             0x2a0000(2688KB)
 <==========================================================================>
 ```
 
-### 13.6.2 FD Region Sub-section
+### 13.7.2 FD Region Sub-section
 
 This sub-section contains FD region information of platform flash device. If  the region is a firmware volume, it lists the set of modules and its space
@@ -122,7 +122,7 @@ Size:             0x2000 (8K)
 ...(More list of FD regions)
 ```
 
-### 13.6.3 VPD PCD Sub-section
+### 13.7.3 VPD PCD Sub-section
 
 This section lists, in Offset order, every VPD PCD specified in the DSC file.
 The line format for this section is PcdName SkuId Offset PcdSize PcdValue.
diff --git a/13_build_reports/138_module_section.md b/13_build_reports/138_module_section.md
index 96200a2..23e039b 100644
--- a/13_build_reports/138_module_section.md
+++ b/13_build_reports/138_module_section.md
@@ -1,5 +1,5 @@
 <!--- @file
-  13.7 Module Section
+  13.8 Module Section
 
   Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
 
@@ -29,14 +29,14 @@
 
 -->
 
-## 13.7 Module Section
+## 13.8 Module Section
 
 Module section lists all modules involved in the platform build. If the
 **EXECUTION_ORDER** option is specified in **-Y** option, the module sections  are sorted according to their PEI or DXE dispatch order; otherwise the module  sections are listed according to their DSC position.
 
-### 13.7.1 Module Section Summary
+### 13.8.1 Module Section Summary
 
 This sub-section lists the module basic information: Module name: INF file,  file GUID, module size, module build time stamp and driver type.
@@ -99,7 +99,7 @@ Driver Type:        0x7 (DRIVER)
 <==========================================================================>
 ```
 
-### 13.7.2 Library Sub-section
+### 13.8.2 Library Sub-section
 
 This sub-section, which follows each Module Summary section, holds the  information for all libraries used in this module. If it is an EDKII style @@ -208,7 +208,7 @@ s:\edk2\EdkCompatibilityPkg\Foundation\Framework\Guid\EdkFrameworkGuidLib.inf
 option.
 **********
 
-### 13.7.3 PCD Sub-section
+### 13.8.3 PCD Sub-section
 
 This sub-section (following the Module Summary information) holds the  information for all PCDs used in this module. The content of module PCD @@ -281,7 +281,7 @@ Each PCD may contain up to four lines:
 option.
 **********
 
-### 13.7.4 DEPEX Sub-section
+### 13.8.4 DEPEX Sub-section
 
 This sub-section (following the Module Summary information) holds module  dependency expression (DEPEX) information. The sub-section header holds the @@ -353,7 +353,7 @@ EFI_HII_DATABASE_PROTOCOL_GUID  option.
 **********
 
-### 13.7.5 Build Flags Sub-section
+### 13.8.5 Build Flags Sub-section
 
 This sub-section (following the Module Summary information) holds module build  flags information. The sub-section header holds the module tool chain tag and @@ -387,7 +387,7 @@ EHs-c- /GR- /GF /Gy /Zi /Gm  `-Y` option.
 **********
 
-### 13.7.6 Fixed Address Prediction Sub-section
+### 13.8.6 Fixed Address Prediction Sub-section
 
 This sub-section (following the Module Summary information) contains module  notification function information. All the notification functions are listed diff --git a/13_build_reports/139_execution_order_prediction_section.md b/13_build_reports/139_execution_order_prediction_section.md
index c4e4a2b..7a2f277 100644
--- a/13_build_reports/139_execution_order_prediction_section.md
+++ b/13_build_reports/139_execution_order_prediction_section.md
@@ -1,5 +1,5 @@
 <!--- @file
-  13.8 Execution Order Prediction Section
+  13.9 Execution Order Prediction Section
 
   Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
 
@@ -29,7 +29,7 @@
 
 -->
 
-## 13.8 Execution Order Prediction Section
+## 13.9 Execution Order Prediction Section
 
 This section contains platform level prediction for the execution flow. Each  phase list the following triple in their predicted order:
diff --git a/README.md b/README.md
index 21bb782..c511971 100644
--- a/README.md
+++ b/README.md
@@ -206,3 +206,4 @@ Copyright (c) 2008-2017, Intel Corporation. All rights reserved.
 |            | [#483](https://bugzilla.tianocore.org/show_bug.cgi?id=483) Build Spec: add description for merge Pre-build and Post-build into build process                                                                                                                                                                                                                        |               |
 |            | [#490](https://bugzilla.tianocore.org/show_bug.cgi?id=490) Build Spec: specify the alignment requirements for VOID* PCDs stored in a PCD section                                                                                                                                                                                                                    |               |
 |            | [#479](https://bugzilla.tianocore.org/show_bug.cgi?id=479) Build spec: add description for nmake long command line handling                                                                                                                                                                                                                                         |               |
+|            | [#485](https://bugzilla.tianocore.org/show_bug.cgi?id=485) Build spec: add support for mixed Pcd access method                                                                                                                                                                                                                                                      |               |
diff --git a/SUMMARY.md b/SUMMARY.md
index e374319..386fb4f 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -107,10 +107,11 @@
   * [13.2 Sample Launch Steps: NT32 platform](13_build_reports/132_sample_launch_steps_nt32_platform.md#132-sample-launch-steps-nt32-platform)
   * [13.3 Output](13_build_reports/133_output.md#133-output)
   * [13.4 Platform Summary](13_build_reports/134_platform_summary.md#134-platform-summary)
-  * [13.5 Global PCD Section](13_build_reports/135_global_pcd_section.md#135-global-pcd-section)
-  * [13.6 FD Section](13_build_reports/136_fd_section.md#136-fd-section)
-  * [13.7 Module Section](13_build_reports/137_module_section.md#137-module-section)
-  * [13.8 Execution Order Prediction Section](13_build_reports/138_execution_order_prediction_section.md#138-execution-order-prediction-section)
+  * [13.5 Mixed PCD 
+ Section](13_build_reports/135_mixed_pcd_section.md#135-mixed-pcd-secti
+ on)
+  * [13.6 Global PCD 
+ Section](13_build_reports/136_global_pcd_section.md#136-global-pcd-sec
+ tion)
+  * [13.7 FD 
+ Section](13_build_reports/137_fd_section.md#137-fd-section)
+  * [13.8 Module 
+ Section](13_build_reports/138_module_section.md#138-module-section)
+  * [13.9 Execution Order Prediction 
+ Section](13_build_reports/139_execution_order_prediction_section.md#13
+ 9-execution-order-prediction-section)
 * [Appendix A Variables](appendix_a_variables.md#appendix-a-variables)
 * [Appendix B tools_def.txt](appendix_b_toolsdef_txt.md#appendix-b-tools_deftxt)
 * [Appendix C target.txt](appendix_c_targettxt.md#appendix-c-targettxt)
--
2.6.3.windows.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [edk2-BuildSpecification PATCH 3/3] Add report section for mixed PCD access
  2017-04-20  3:06   ` Zhu, Yonghong
@ 2017-04-20  4:15     ` Kinney, Michael D
  0 siblings, 0 replies; 6+ messages in thread
From: Kinney, Michael D @ 2017-04-20  4:15 UTC (permalink / raw)
  To: Zhu, Yonghong, edk2-devel@lists.01.org, Kinney, Michael D
  Cc: Gao, Liming, Shaw, Kevin W

Zhu Yonghong,

Yes.  That is supposed to be 13.5.  I will fix before I checkin.

Mike

> -----Original Message-----
> From: Zhu, Yonghong
> Sent: Wednesday, April 19, 2017 8:07 PM
> To: Kinney, Michael D <michael.d.kinney@intel.com>; edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>; Shaw, Kevin W <kevin.w.shaw@intel.com>;
> Zhu, Yonghong <yonghong.zhu@intel.com>
> Subject: RE: [edk2-BuildSpecification PATCH 3/3] Add report section for mixed PCD
> access
> 
> Hi Mike,
> 
> Is this section 13.5 but not 13.6 ?  others are good to me. Reviewed-by: Yonghong
> Zhu <yonghong.zhu@intel.com>
> 
> ## 13.6 Mixed PCD Section
> 
> Best Regards,
> Zhu Yonghong
> 
> -----Original Message-----
> From: Kinney, Michael D
> Sent: Thursday, April 20, 2017 4:37 AM
> To: edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>; Zhu, Yonghong <yonghong.zhu@intel.com>;
> Shaw, Kevin W <kevin.w.shaw@intel.com>
> Subject: [edk2-BuildSpecification PATCH 3/3] Add report section for mixed PCD
> access
> 
> https://bugzilla.tianocore.org/show_bug.cgi?id=485
> 
> The build tools currently require a PCD to use the same access method from all
> modules.  This update still requires modules built from sources to use the same
> access method, but binary modules are allowed to use alternate access methods.
> 
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Yonghong Zhu <yonghong.zhu@intel.com>
> Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Michael Kinney <michael.d.kinney@intel.com>
> ---
>  13_build_reports/133_output.md                     |  1 +
>  13_build_reports/135_mixed_pcd_section.md          | 54 ++++++++++++++++++++++
>  13_build_reports/136_global_pcd_section.md         | 14 +++---
>  13_build_reports/137_fd_section.md                 | 10 ++--
>  13_build_reports/138_module_section.md             | 16 +++----
>  .../139_execution_order_prediction_section.md      |  4 +-
>  README.md                                          |  1 +
>  SUMMARY.md                                         |  9 ++--
>  8 files changed, 83 insertions(+), 26 deletions(-)  create mode 100644
> 13_build_reports/135_mixed_pcd_section.md
> 
> diff --git a/13_build_reports/133_output.md b/13_build_reports/133_output.md
> index 5363b7f..ce64efd 100644
> --- a/13_build_reports/133_output.md
> +++ b/13_build_reports/133_output.md
> @@ -51,6 +51,7 @@ The layout of the text report file:
> 
>  ```
>  |---- Platform summary
> +    |----- Mixed PCD section
>      |----- Global PCD section
>      |----- FD section*
>          |---- FD Region sub-section*
> diff --git a/13_build_reports/135_mixed_pcd_section.md
> b/13_build_reports/135_mixed_pcd_section.md
> new file mode 100644
> index 0000000..98d6662
> --- /dev/null
> +++ b/13_build_reports/135_mixed_pcd_section.md
> @@ -0,0 +1,54 @@
> +<!--- @file
> +  13.5 Mixed PCD Section
> +
> +  Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
> +
> +  Redistribution and use in source (original document form) and 'compiled'
> +  forms (converted to PDF, epub, HTML and other formats) with or
> + without  modification, are permitted provided that the following conditions are
> met:
> +
> +  1) Redistributions of source code (original document form) must retain the
> +     above copyright notice, this list of conditions and the following
> +     disclaimer as the first lines of this file unmodified.
> +
> +  2) Redistributions in compiled form (transformed to other DTDs, converted to
> +     PDF, epub, HTML and other formats) must reproduce the above copyright
> +     notice, this list of conditions and the following disclaimer in the
> +     documentation and/or other materials provided with the distribution.
> +
> +  THIS DOCUMENTATION IS PROVIDED BY TIANOCORE PROJECT "AS IS" AND ANY
> + EXPRESS OR  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + IMPLIED WARRANTIES OF  MERCHANTABILITY AND FITNESS FOR A PARTICULAR
> + PURPOSE ARE DISCLAIMED. IN NO  EVENT SHALL TIANOCORE PROJECT  BE
> + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL, EXEMPLARY, OR
> + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,  PROCUREMENT OF
> + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;  OR
> + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
> + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
> + OR
> +  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION,
> + EVEN IF  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +-->
> +
> +## 13.6 Mixed PCD Section
> +
> +There is an optional sub-section that, when present, lists the PCDs in
> +the platform that use multiple access methods. This sub-section is only
> +present if there are Binary modules included in the platform build and
> +the binary module uses a different PCD access method than other modules
> +in the same platform build.
> +
> +The sub-section header is:
> +
> +```
> +>======================================================================
> +>=========<
> +The following PCDs use different access methods:
> +=======================================================================
> +==========
> +.. (List of PCDs)
> +<======================================================================
> +=========>
> +```
> +
> +Format for the entries in this section:
> +
> +```
> +<PcdTokenSpaceGuid>.<PcdCName>
> +```
> diff --git a/13_build_reports/136_global_pcd_section.md
> b/13_build_reports/136_global_pcd_section.md
> index 664949e..f24f97a 100644
> --- a/13_build_reports/136_global_pcd_section.md
> +++ b/13_build_reports/136_global_pcd_section.md
> @@ -1,5 +1,5 @@
>  <!--- @file
> -  13.5 Global PCD Section
> +  13.6 Global PCD Section
> 
>    Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
> 
> @@ -29,7 +29,7 @@
> 
>  -->
> 
> -## 13.5 Global PCD Section
> +## 13.6 Global PCD Section
> 
>  This section contains the information for all PCDs whose values are the same
> for all modules in a platform. The content of global PCD sub-section is grouped
> @@ -47,7 +47,7 @@ gEfiMdeModulePkgTokenSpaceGuid
> 
>  Each global PCD item contains one or more lines:
> 
> -### 13.5.1 Required line
> +### 13.6.1 Required line
> 
>  The first line is required:
> 
> @@ -67,9 +67,9 @@ The first line is required:
>                                                    DEC DEFAULT = 0x0  ```
> 
> -### 13.5.2 Optional lines
> +### 13.6.2 Optional lines
> 
> -#### 13.5.2.1 Dynamic/DynamicEx
> +#### 13.6.2.1 Dynamic/DynamicEx
> 
>  * if `<PcdType>` is DYN-HII
> 
> @@ -93,7 +93,7 @@ The first line is required:
>                    0x0001FFF
>  ```
> 
> -#### 13.5.2.2 Default (optional) line
> +#### 13.6.2.2 Default (optional) line
> 
>  The second optional line is present if the value from the DEC was overridden.
>  It is formatted as follows:
> @@ -107,7 +107,7 @@ It is formatted as follows:
>                                DEC DEFAULT = 0x0  ```
> 
> -#### 13.5.2.3 Additional optional lines
> +#### 13.6.2.3 Additional optional lines
> 
>  Additional lines are optional and show if the PCD's value was obtained from the
> INF file. This will be listed if the module's final PCD value is not the same
> diff --git a/13_build_reports/137_fd_section.md
> b/13_build_reports/137_fd_section.md
> index 81b8831..49c2695 100644
> --- a/13_build_reports/137_fd_section.md
> +++ b/13_build_reports/137_fd_section.md
> @@ -1,5 +1,5 @@
>  <!--- @file
> -  13.6 FD Section
> +  13.7 FD Section
> 
>    Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
> 
> @@ -29,11 +29,11 @@
> 
>  -->
> 
> -## 13.6 FD Section
> +## 13.7 FD Section
> 
>  This section contains platform flash device information and its layout.
> 
> -### 13.6.1 FD Section Header
> +### 13.7.1 FD Section Header
> 
>  Given that a platform may have multi-Firmware device, this section may appear
> more than once in the output report. The section header lists the name of FD
> @@ -59,7 +59,7 @@ Size:             0x2a0000(2688KB)
>  <==========================================================================>
>  ```
> 
> -### 13.6.2 FD Region Sub-section
> +### 13.7.2 FD Region Sub-section
> 
>  This sub-section contains FD region information of platform flash device. If
> the region is a firmware volume, it lists the set of modules and its space
> @@ -122,7 +122,7 @@ Size:             0x2000 (8K)
>  ...(More list of FD regions)
>  ```
> 
> -### 13.6.3 VPD PCD Sub-section
> +### 13.7.3 VPD PCD Sub-section
> 
>  This section lists, in Offset order, every VPD PCD specified in the DSC file.
>  The line format for this section is PcdName SkuId Offset PcdSize PcdValue.
> diff --git a/13_build_reports/138_module_section.md
> b/13_build_reports/138_module_section.md
> index 96200a2..23e039b 100644
> --- a/13_build_reports/138_module_section.md
> +++ b/13_build_reports/138_module_section.md
> @@ -1,5 +1,5 @@
>  <!--- @file
> -  13.7 Module Section
> +  13.8 Module Section
> 
>    Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
> 
> @@ -29,14 +29,14 @@
> 
>  -->
> 
> -## 13.7 Module Section
> +## 13.8 Module Section
> 
>  Module section lists all modules involved in the platform build. If the
>  **EXECUTION_ORDER** option is specified in **-Y** option, the module sections
> are sorted according to their PEI or DXE dispatch order; otherwise the module
> sections are listed according to their DSC position.
> 
> -### 13.7.1 Module Section Summary
> +### 13.8.1 Module Section Summary
> 
>  This sub-section lists the module basic information: Module name: INF file,
> file GUID, module size, module build time stamp and driver type.
> @@ -99,7 +99,7 @@ Driver Type:        0x7 (DRIVER)
>  <==========================================================================>
>  ```
> 
> -### 13.7.2 Library Sub-section
> +### 13.8.2 Library Sub-section
> 
>  This sub-section, which follows each Module Summary section, holds the
> information for all libraries used in this module. If it is an EDKII style @@ -
> 208,7 +208,7 @@
> s:\edk2\EdkCompatibilityPkg\Foundation\Framework\Guid\EdkFrameworkGuidLib.inf
>  option.
>  **********
> 
> -### 13.7.3 PCD Sub-section
> +### 13.8.3 PCD Sub-section
> 
>  This sub-section (following the Module Summary information) holds the
> information for all PCDs used in this module. The content of module PCD @@ -281,7
> +281,7 @@ Each PCD may contain up to four lines:
>  option.
>  **********
> 
> -### 13.7.4 DEPEX Sub-section
> +### 13.8.4 DEPEX Sub-section
> 
>  This sub-section (following the Module Summary information) holds module
> dependency expression (DEPEX) information. The sub-section header holds the @@ -
> 353,7 +353,7 @@ EFI_HII_DATABASE_PROTOCOL_GUID  option.
>  **********
> 
> -### 13.7.5 Build Flags Sub-section
> +### 13.8.5 Build Flags Sub-section
> 
>  This sub-section (following the Module Summary information) holds module build
> flags information. The sub-section header holds the module tool chain tag and @@
> -387,7 +387,7 @@ EHs-c- /GR- /GF /Gy /Zi /Gm  `-Y` option.
>  **********
> 
> -### 13.7.6 Fixed Address Prediction Sub-section
> +### 13.8.6 Fixed Address Prediction Sub-section
> 
>  This sub-section (following the Module Summary information) contains module
> notification function information. All the notification functions are listed diff
> --git a/13_build_reports/139_execution_order_prediction_section.md
> b/13_build_reports/139_execution_order_prediction_section.md
> index c4e4a2b..7a2f277 100644
> --- a/13_build_reports/139_execution_order_prediction_section.md
> +++ b/13_build_reports/139_execution_order_prediction_section.md
> @@ -1,5 +1,5 @@
>  <!--- @file
> -  13.8 Execution Order Prediction Section
> +  13.9 Execution Order Prediction Section
> 
>    Copyright (c) 2008-2017, Intel Corporation. All rights reserved.<BR>
> 
> @@ -29,7 +29,7 @@
> 
>  -->
> 
> -## 13.8 Execution Order Prediction Section
> +## 13.9 Execution Order Prediction Section
> 
>  This section contains platform level prediction for the execution flow. Each
> phase list the following triple in their predicted order:
> diff --git a/README.md b/README.md
> index 21bb782..c511971 100644
> --- a/README.md
> +++ b/README.md
> @@ -206,3 +206,4 @@ Copyright (c) 2008-2017, Intel Corporation. All rights
> reserved.
>  |            | [#483](https://bugzilla.tianocore.org/show_bug.cgi?id=483) Build
> Spec: add description for merge Pre-build and Post-build into build process
> |               |
>  |            | [#490](https://bugzilla.tianocore.org/show_bug.cgi?id=490) Build
> Spec: specify the alignment requirements for VOID* PCDs stored in a PCD section
> |               |
>  |            | [#479](https://bugzilla.tianocore.org/show_bug.cgi?id=479) Build
> spec: add description for nmake long command line handling
> |               |
> +|            | [#485](https://bugzilla.tianocore.org/show_bug.cgi?id=485) Build
> spec: add support for mixed Pcd access method
> |               |
> diff --git a/SUMMARY.md b/SUMMARY.md
> index e374319..386fb4f 100644
> --- a/SUMMARY.md
> +++ b/SUMMARY.md
> @@ -107,10 +107,11 @@
>    * [13.2 Sample Launch Steps: NT32
> platform](13_build_reports/132_sample_launch_steps_nt32_platform.md#132-sample-
> launch-steps-nt32-platform)
>    * [13.3 Output](13_build_reports/133_output.md#133-output)
>    * [13.4 Platform Summary](13_build_reports/134_platform_summary.md#134-
> platform-summary)
> -  * [13.5 Global PCD Section](13_build_reports/135_global_pcd_section.md#135-
> global-pcd-section)
> -  * [13.6 FD Section](13_build_reports/136_fd_section.md#136-fd-section)
> -  * [13.7 Module Section](13_build_reports/137_module_section.md#137-module-
> section)
> -  * [13.8 Execution Order Prediction
> Section](13_build_reports/138_execution_order_prediction_section.md#138-
> execution-order-prediction-section)
> +  * [13.5 Mixed PCD
> + Section](13_build_reports/135_mixed_pcd_section.md#135-mixed-pcd-secti
> + on)
> +  * [13.6 Global PCD
> + Section](13_build_reports/136_global_pcd_section.md#136-global-pcd-sec
> + tion)
> +  * [13.7 FD
> + Section](13_build_reports/137_fd_section.md#137-fd-section)
> +  * [13.8 Module
> + Section](13_build_reports/138_module_section.md#138-module-section)
> +  * [13.9 Execution Order Prediction
> + Section](13_build_reports/139_execution_order_prediction_section.md#13
> + 9-execution-order-prediction-section)
>  * [Appendix A Variables](appendix_a_variables.md#appendix-a-variables)
>  * [Appendix B tools_def.txt](appendix_b_toolsdef_txt.md#appendix-b-tools_deftxt)
>  * [Appendix C target.txt](appendix_c_targettxt.md#appendix-c-targettxt)
> --
> 2.6.3.windows.1



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-04-20  4:15 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-19 20:37 [edk2-BuildSpecification PATCH 0/3] Add support for mixed PCD access Michael Kinney
2017-04-19 20:37 ` [edk2-BuildSpecification PATCH 1/3] Add rules for " Michael Kinney
2017-04-19 20:37 ` [edk2-BuildSpecification PATCH 2/3] Make room for new mixed PCD report section Michael Kinney
2017-04-19 20:37 ` [edk2-BuildSpecification PATCH 3/3] Add report section for mixed PCD access Michael Kinney
2017-04-20  3:06   ` Zhu, Yonghong
2017-04-20  4:15     ` Kinney, Michael D

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox