From: Liming Gao <liming.gao@intel.com>
To: edk2-devel@lists.01.org
Cc: star.zeng@intel.com, yonghong.zhu@intel.com
Subject: [Patch 00/14] Enable Structure PCD support in edk2
Date: Fri, 1 Dec 2017 22:58:55 +0800 [thread overview]
Message-ID: <1512140335-6932-1-git-send-email-liming.gao@intel.com> (raw)
All code are in https://github.com/tianocore/edk2-staging/tree/StructurePcdV3.
Patches are 544d8e..dd79a7. Unit Test cases are 89e7c7..1b2d19.
The patches will not be sent by mail. Please review them in edk2-staging.
Structure PCD is to support the same C structure/Enum/Macro definition in PCD,
and specify the value for individual fields in a VOID* PCD in DEC/DSC. It
includes the group of the sub features.
[BaseTools] Structure PCD value assignment in DEC/DSC
https://bugzilla.tianocore.org/show_bug.cgi?id=542
[BaseTools] Extended SKU Support - Inheritance
https://bugzilla.tianocore.org/show_bug.cgi?id=543
[BaseTools/PCD] Pcd Database size optimization for multi-SKU
https://bugzilla.tianocore.org/show_bug.cgi?id=546
[BaseTools/PCD/HiiDataBase] Collect DynamicHii PCD value as the default setting
for EFI Variable and HII VarStore.
https://bugzilla.tianocore.org/show_bug.cgi?id=611
[BaseTools] Build report update for Structure PCD value and SKU, DefaultStore
https://bugzilla.tianocore.org/show_bug.cgi?id=706
The main changes are in BaseTools to calculate structure PCD value.
Firmware code Pcd driver, HiiDataBase and Variable driver are updated.
And, PCD database format has been optimized. So, its version is changed
from current 6 to 7. Besides it, others are compatible. There is no impact
on current platform and current usage. If you find any breaking,
please raise it to me.
The detail changes are specified in each tracker and each RFC.
Unit Test:
1) Windows VS2015 Build TestPkg and Nt32Pkg
2) Linux GCC5 Build OvmfPkg
3) Verify Strucutre PCD field value collection
4) Verify Strucutre PCD from the different SKUs
5) Structure DynamicHii PCD is saved as the default EFI variable
6) Structure DynamicHii PCD impacts HII IFR default setting
7) Strucutre PCD field value is shown in build report.
8) Multiple SKU PCD values is shown in build report.
Liming Gao (14):
BaseTools: Update Makefile to work at absolute path
BaseTools: Add PcdValueCommon logic into C source CommonLib
MdeModulePkg: Update PCD driver to support Dynamic PcdVpdBaseAddress
MdeModulePkg: Enable Firmware to retrieve the default setting
MdeModulePkg: Update PCD driver to support the optimized PcdDataBase
MdeModulePkg: Pcd/HiiDatabase Update default setting format with max
size
BaseTools: Support Structure PCD value assignment in DEC/DSC
BaseTools: Collect DynamicHii PCD values and assign it to VPD PCD
Value
BaseTools: Support Structure PCD value inherit between the different
SKUs
BaseTools: PcdDataBase Optimization for multiple SkuIds
BaseTools: Report Structure PCD value and SKU, DefaultStore info
BaseTools: Update NV Default Header format to include the max size
BaseTools: Optimize VPD PCD value for the different SKUs
BaseTools: Fixed the issue of Multiple Skus are always disables
BaseTools/Source/C/Common/GNUmakefile | 3 +-
BaseTools/Source/C/Common/Makefile | 3 +-
BaseTools/Source/C/Common/PcdValueCommon.c | 607 +++++
BaseTools/Source/C/Common/PcdValueCommon.h | 78 +
BaseTools/Source/C/Makefiles/app.makefile | 2 +-
BaseTools/Source/C/Makefiles/ms.app | 4 +-
BaseTools/Source/Python/AutoGen/AutoGen.py | 406 ++-
BaseTools/Source/Python/AutoGen/GenC.py | 77 +-
BaseTools/Source/Python/AutoGen/GenMake.py | 2 +-
BaseTools/Source/Python/AutoGen/GenPcdDb.py | 260 +-
BaseTools/Source/Python/AutoGen/GenVar.py | 341 +++
BaseTools/Source/Python/Common/BuildToolError.py | 3 +
BaseTools/Source/Python/Common/DataType.py | 2 +
BaseTools/Source/Python/Common/GlobalData.py | 6 +
BaseTools/Source/Python/Common/Misc.py | 221 +-
.../Source/Python/Common/ToolDefClassObject.py | 1 -
BaseTools/Source/Python/Common/VpdInfoFile.py | 11 +-
.../Source/Python/CommonDataClass/CommonClass.py | 5 +-
.../Source/Python/CommonDataClass/DataClass.py | 11 +
.../Source/Python/Workspace/BuildClassObject.py | 66 +
BaseTools/Source/Python/Workspace/DecBuildData.py | 463 ++++
BaseTools/Source/Python/Workspace/DscBuildData.py | 1961 ++++++++++++++
BaseTools/Source/Python/Workspace/InfBuildData.py | 1212 +++++++++
.../Source/Python/Workspace/MetaFileParser.py | 311 ++-
BaseTools/Source/Python/Workspace/MetaFileTable.py | 11 +-
.../Source/Python/Workspace/WorkspaceCommon.py | 44 +-
.../Source/Python/Workspace/WorkspaceDatabase.py | 2834 +-------------------
BaseTools/Source/Python/build/BuildReport.py | 296 +-
BaseTools/Source/Python/build/build.py | 2 +
.../Include/Guid/PcdDataBaseSignatureGuid.h | 82 +-
MdeModulePkg/MdeModulePkg.dec | 20 +-
MdeModulePkg/Universal/HiiDatabaseDxe/Database.c | 470 ++++
.../Universal/HiiDatabaseDxe/HiiDatabase.h | 9 +-
.../Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf | 1 +
MdeModulePkg/Universal/PCD/Dxe/Pcd.c | 29 +-
MdeModulePkg/Universal/PCD/Dxe/Service.c | 322 +--
MdeModulePkg/Universal/PCD/Dxe/Service.h | 35 +-
MdeModulePkg/Universal/PCD/Pei/Pcd.c | 343 ++-
MdeModulePkg/Universal/PCD/Pei/Pcd.inf | 5 +
MdeModulePkg/Universal/PCD/Pei/Service.c | 150 +-
MdeModulePkg/Universal/PCD/Pei/Service.h | 33 +-
.../Universal/Variable/RuntimeDxe/Variable.c | 106 +-
42 files changed, 7036 insertions(+), 3812 deletions(-)
create mode 100644 BaseTools/Source/C/Common/PcdValueCommon.c
create mode 100644 BaseTools/Source/C/Common/PcdValueCommon.h
create mode 100644 BaseTools/Source/Python/AutoGen/GenVar.py
create mode 100644 BaseTools/Source/Python/Workspace/DecBuildData.py
create mode 100644 BaseTools/Source/Python/Workspace/DscBuildData.py
create mode 100644 BaseTools/Source/Python/Workspace/InfBuildData.py
--
2.8.0.windows.1
next reply other threads:[~2017-12-01 14:55 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-01 14:58 Liming Gao [this message]
2017-12-21 7:11 ` [Patch 00/14] Enable Structure PCD support in edk2 Zeng, Star
2017-12-21 7:15 ` Zeng, Star
2017-12-21 8:18 ` Gao, Liming
2017-12-25 9:36 ` Gao, Liming
2017-12-25 10:04 ` Ard Biesheuvel
2017-12-25 10:10 ` Gao, Liming
2017-12-25 10:14 ` Ard Biesheuvel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1512140335-6932-1-git-send-email-liming.gao@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox