* [Patch 00/14] Enable Structure PCD support in edk2
@ 2017-12-01 14:58 Liming Gao
2017-12-21 7:11 ` Zeng, Star
2017-12-25 9:36 ` Gao, Liming
0 siblings, 2 replies; 8+ messages in thread
From: Liming Gao @ 2017-12-01 14:58 UTC (permalink / raw)
To: edk2-devel; +Cc: star.zeng, yonghong.zhu
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Patch 00/14] Enable Structure PCD support in edk2
2017-12-01 14:58 [Patch 00/14] Enable Structure PCD support in edk2 Liming Gao
@ 2017-12-21 7:11 ` Zeng, Star
2017-12-21 7:15 ` Zeng, Star
2017-12-25 9:36 ` Gao, Liming
1 sibling, 1 reply; 8+ messages in thread
From: Zeng, Star @ 2017-12-21 7:11 UTC (permalink / raw)
To: Gao, Liming, edk2-devel@lists.01.org; +Cc: Zhu, Yonghong, Zeng, Star
Liming,
I have some comments to the patch series about MdeModulePkg changes.
For MdeModulePkg: Update PCD driver to support Dynamic PcdVpdBaseAddress,
Could the if condition adjustment be removed? And how about declaring "extern UINT32 mVpdBaseAddress;" in Service.h instead of Service.c?
For MdeModulePkg: Enable Firmware to retrieve the default setting,
Could this patch be spilt to three by driver update or more patches?
Could the code have more specific name for DATA_DELTA, and etc?
Please update MdeModulePkg.uni for new PCDs PcdSetNvStoreDefaultId and PcdNvStoreDefaultValueBuffer.
Should more comments be added for PcdSetNvStoreDefaultId to state that this PCD should be set at PEI phase?
Should PcdSetNvStoreDefaultIdCallBack use current buffer length instead of max buffer length for NvStoreDefaultValueBuffer?
Please re-check the code logic in ConvertNormalVarStorageToAuthVarStorage() about pad between header, name and data.
Thanks,
Star
-----Original Message-----
From: Gao, Liming
Sent: Friday, December 1, 2017 10:59 PM
To: edk2-devel@lists.01.org
Cc: Zeng, Star <star.zeng@intel.com>; Zhu, Yonghong <yonghong.zhu@intel.com>
Subject: [Patch 00/14] Enable Structure PCD support in edk2
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Patch 00/14] Enable Structure PCD support in edk2
2017-12-21 7:11 ` Zeng, Star
@ 2017-12-21 7:15 ` Zeng, Star
2017-12-21 8:18 ` Gao, Liming
0 siblings, 1 reply; 8+ messages in thread
From: Zeng, Star @ 2017-12-21 7:15 UTC (permalink / raw)
To: Gao, Liming, edk2-devel@lists.01.org; +Cc: Zhu, Yonghong, Zeng, Star
Another, please also more comments for the fields in NV_STORE_DEFAULT_BUFFER_HEADER.
Thanks,
Star
-----Original Message-----
From: Zeng, Star
Sent: Thursday, December 21, 2017 3:11 PM
To: Gao, Liming <liming.gao@intel.com>; edk2-devel@lists.01.org
Cc: Zhu, Yonghong <yonghong.zhu@intel.com>; Zeng, Star <star.zeng@intel.com>
Subject: RE: [Patch 00/14] Enable Structure PCD support in edk2
Liming,
I have some comments to the patch series about MdeModulePkg changes.
For MdeModulePkg: Update PCD driver to support Dynamic PcdVpdBaseAddress, Could the if condition adjustment be removed? And how about declaring "extern UINT32 mVpdBaseAddress;" in Service.h instead of Service.c?
For MdeModulePkg: Enable Firmware to retrieve the default setting, Could this patch be spilt to three by driver update or more patches?
Could the code have more specific name for DATA_DELTA, and etc?
Please update MdeModulePkg.uni for new PCDs PcdSetNvStoreDefaultId and PcdNvStoreDefaultValueBuffer.
Should more comments be added for PcdSetNvStoreDefaultId to state that this PCD should be set at PEI phase?
Should PcdSetNvStoreDefaultIdCallBack use current buffer length instead of max buffer length for NvStoreDefaultValueBuffer?
Please re-check the code logic in ConvertNormalVarStorageToAuthVarStorage() about pad between header, name and data.
Thanks,
Star
-----Original Message-----
From: Gao, Liming
Sent: Friday, December 1, 2017 10:59 PM
To: edk2-devel@lists.01.org
Cc: Zeng, Star <star.zeng@intel.com>; Zhu, Yonghong <yonghong.zhu@intel.com>
Subject: [Patch 00/14] Enable Structure PCD support in edk2
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Patch 00/14] Enable Structure PCD support in edk2
2017-12-21 7:15 ` Zeng, Star
@ 2017-12-21 8:18 ` Gao, Liming
0 siblings, 0 replies; 8+ messages in thread
From: Gao, Liming @ 2017-12-21 8:18 UTC (permalink / raw)
To: Zeng, Star, edk2-devel@lists.01.org
Star:
Thanks for your comments. I will update the patches and send new version for review.
>-----Original Message-----
>From: Zeng, Star
>Sent: Thursday, December 21, 2017 3:16 PM
>To: Gao, Liming <liming.gao@intel.com>; edk2-devel@lists.01.org
>Cc: Zhu, Yonghong <yonghong.zhu@intel.com>; Zeng, Star
><star.zeng@intel.com>
>Subject: RE: [Patch 00/14] Enable Structure PCD support in edk2
>
>Another, please also more comments for the fields in
>NV_STORE_DEFAULT_BUFFER_HEADER.
>
>
>Thanks,
>Star
>-----Original Message-----
>From: Zeng, Star
>Sent: Thursday, December 21, 2017 3:11 PM
>To: Gao, Liming <liming.gao@intel.com>; edk2-devel@lists.01.org
>Cc: Zhu, Yonghong <yonghong.zhu@intel.com>; Zeng, Star
><star.zeng@intel.com>
>Subject: RE: [Patch 00/14] Enable Structure PCD support in edk2
>
>Liming,
>
>I have some comments to the patch series about MdeModulePkg changes.
>
>For MdeModulePkg: Update PCD driver to support Dynamic
>PcdVpdBaseAddress, Could the if condition adjustment be removed? And
>how about declaring "extern UINT32 mVpdBaseAddress;" in Service.h instead
>of Service.c?
>
>For MdeModulePkg: Enable Firmware to retrieve the default setting, Could
>this patch be spilt to three by driver update or more patches?
>Could the code have more specific name for DATA_DELTA, and etc?
>Please update MdeModulePkg.uni for new PCDs PcdSetNvStoreDefaultId and
>PcdNvStoreDefaultValueBuffer.
>Should more comments be added for PcdSetNvStoreDefaultId to state that
>this PCD should be set at PEI phase?
>Should PcdSetNvStoreDefaultIdCallBack use current buffer length instead of
>max buffer length for NvStoreDefaultValueBuffer?
>Please re-check the code logic in
>ConvertNormalVarStorageToAuthVarStorage() about pad between header,
>name and data.
>
>
>
>Thanks,
>Star
>-----Original Message-----
>From: Gao, Liming
>Sent: Friday, December 1, 2017 10:59 PM
>To: edk2-devel@lists.01.org
>Cc: Zeng, Star <star.zeng@intel.com>; Zhu, Yonghong
><yonghong.zhu@intel.com>
>Subject: [Patch 00/14] Enable Structure PCD support in edk2
>
>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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Patch 00/14] Enable Structure PCD support in edk2
2017-12-01 14:58 [Patch 00/14] Enable Structure PCD support in edk2 Liming Gao
2017-12-21 7:11 ` Zeng, Star
@ 2017-12-25 9:36 ` Gao, Liming
2017-12-25 10:04 ` Ard Biesheuvel
1 sibling, 1 reply; 8+ messages in thread
From: Gao, Liming @ 2017-12-25 9:36 UTC (permalink / raw)
To: Gao, Liming, edk2-devel@lists.01.org
Cc: Zeng, Star, Feng, Bob C, Zhu, Yonghong
Hi, all
I just push this feature in edk2 trunk. Revision c40dbe5e7bf9.. 7c7362651323. If you find any issue, please let me know.
Thanks
Liming
>-----Original Message-----
>From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
>Liming Gao
>Sent: Friday, December 01, 2017 10:59 PM
>To: edk2-devel@lists.01.org
>Cc: Zeng, Star <star.zeng@intel.com>
>Subject: [edk2] [Patch 00/14] Enable Structure PCD support in edk2
>
>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
>
>_______________________________________________
>edk2-devel mailing list
>edk2-devel@lists.01.org
>https://lists.01.org/mailman/listinfo/edk2-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Patch 00/14] Enable Structure PCD support in edk2
2017-12-25 9:36 ` Gao, Liming
@ 2017-12-25 10:04 ` Ard Biesheuvel
2017-12-25 10:10 ` Gao, Liming
0 siblings, 1 reply; 8+ messages in thread
From: Ard Biesheuvel @ 2017-12-25 10:04 UTC (permalink / raw)
To: Gao, Liming; +Cc: edk2-devel@lists.01.org, Zeng, Star
On 25 December 2017 at 09:36, Gao, Liming <liming.gao@intel.com> wrote:
> Hi, all
> I just push this feature in edk2 trunk. Revision c40dbe5e7bf9.. 7c7362651323. If you find any issue, please let me know.
>
Hello Liming,
The patch
MdeModulePkg HiiDataBase: Enable Firmware to retrieve the default setting
breaks the build on GCC:
MdeModulePkg/Universal/HiiDatabaseDxe/Database.c: In function
'UpdateDefaultSettingInFormPackage':
MdeModulePkg/Universal/HiiDatabaseDxe/Database.c:1002:12: error:
'Width' may be used uninitialized in this function
[-Werror=maybe-uninitialized]
if (Width > 0) {
^
--
Ard.
> Thanks
> Liming
>>-----Original Message-----
>>From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
>>Liming Gao
>>Sent: Friday, December 01, 2017 10:59 PM
>>To: edk2-devel@lists.01.org
>>Cc: Zeng, Star <star.zeng@intel.com>
>>Subject: [edk2] [Patch 00/14] Enable Structure PCD support in edk2
>>
>>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
>>
>>_______________________________________________
>>edk2-devel mailing list
>>edk2-devel@lists.01.org
>>https://lists.01.org/mailman/listinfo/edk2-devel
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Patch 00/14] Enable Structure PCD support in edk2
2017-12-25 10:04 ` Ard Biesheuvel
@ 2017-12-25 10:10 ` Gao, Liming
2017-12-25 10:14 ` Ard Biesheuvel
0 siblings, 1 reply; 8+ messages in thread
From: Gao, Liming @ 2017-12-25 10:10 UTC (permalink / raw)
To: Ard Biesheuvel; +Cc: edk2-devel@lists.01.org, Zeng, Star
Ard:
Thanks for your quick report. I verify it with GCC5 and GCC49 tool chain on IA32 and X64 arch. But, I don't get this warning. Could you let me how to catch it?
>-----Original Message-----
>From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]
>Sent: Monday, December 25, 2017 6:04 PM
>To: Gao, Liming <liming.gao@intel.com>
>Cc: edk2-devel@lists.01.org; Zeng, Star <star.zeng@intel.com>
>Subject: Re: [edk2] [Patch 00/14] Enable Structure PCD support in edk2
>
>On 25 December 2017 at 09:36, Gao, Liming <liming.gao@intel.com> wrote:
>> Hi, all
>> I just push this feature in edk2 trunk. Revision c40dbe5e7bf9..
>7c7362651323. If you find any issue, please let me know.
>>
>
>Hello Liming,
>
>The patch
>
>MdeModulePkg HiiDataBase: Enable Firmware to retrieve the default setting
>
>breaks the build on GCC:
>
>MdeModulePkg/Universal/HiiDatabaseDxe/Database.c: In function
>'UpdateDefaultSettingInFormPackage':
>MdeModulePkg/Universal/HiiDatabaseDxe/Database.c:1002:12: error:
>'Width' may be used uninitialized in this function
>[-Werror=maybe-uninitialized]
> if (Width > 0) {
> ^
>
>--
>Ard.
>
>
>
>> Thanks
>> Liming
>>>-----Original Message-----
>>>From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
>>>Liming Gao
>>>Sent: Friday, December 01, 2017 10:59 PM
>>>To: edk2-devel@lists.01.org
>>>Cc: Zeng, Star <star.zeng@intel.com>
>>>Subject: [edk2] [Patch 00/14] Enable Structure PCD support in edk2
>>>
>>>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
>>>
>>>_______________________________________________
>>>edk2-devel mailing list
>>>edk2-devel@lists.01.org
>>>https://lists.01.org/mailman/listinfo/edk2-devel
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.01.org
>> https://lists.01.org/mailman/listinfo/edk2-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Patch 00/14] Enable Structure PCD support in edk2
2017-12-25 10:10 ` Gao, Liming
@ 2017-12-25 10:14 ` Ard Biesheuvel
0 siblings, 0 replies; 8+ messages in thread
From: Ard Biesheuvel @ 2017-12-25 10:14 UTC (permalink / raw)
To: Gao, Liming; +Cc: edk2-devel@lists.01.org, Zeng, Star
On 25 December 2017 at 10:10, Gao, Liming <liming.gao@intel.com> wrote:
> Ard:
> Thanks for your quick report. I verify it with GCC5 and GCC49 tool chain on IA32 and X64 arch. But, I don't get this warning. Could you let me how to catch it?
>
This is using GCC48 for ARM/AARCH64. The diagnostic may be inaccurate,
but given that GCC 4.8 is still supported, I suppose we need to add an
annotated initialisation for Width like we do in other places.
>>-----Original Message-----
>>From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org]
>>Sent: Monday, December 25, 2017 6:04 PM
>>To: Gao, Liming <liming.gao@intel.com>
>>Cc: edk2-devel@lists.01.org; Zeng, Star <star.zeng@intel.com>
>>Subject: Re: [edk2] [Patch 00/14] Enable Structure PCD support in edk2
>>
>>On 25 December 2017 at 09:36, Gao, Liming <liming.gao@intel.com> wrote:
>>> Hi, all
>>> I just push this feature in edk2 trunk. Revision c40dbe5e7bf9..
>>7c7362651323. If you find any issue, please let me know.
>>>
>>
>>Hello Liming,
>>
>>The patch
>>
>>MdeModulePkg HiiDataBase: Enable Firmware to retrieve the default setting
>>
>>breaks the build on GCC:
>>
>>MdeModulePkg/Universal/HiiDatabaseDxe/Database.c: In function
>>'UpdateDefaultSettingInFormPackage':
>>MdeModulePkg/Universal/HiiDatabaseDxe/Database.c:1002:12: error:
>>'Width' may be used uninitialized in this function
>>[-Werror=maybe-uninitialized]
>> if (Width > 0) {
>> ^
>>
>>--
>>Ard.
>>
>>
>>
>>> Thanks
>>> Liming
>>>>-----Original Message-----
>>>>From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
>>>>Liming Gao
>>>>Sent: Friday, December 01, 2017 10:59 PM
>>>>To: edk2-devel@lists.01.org
>>>>Cc: Zeng, Star <star.zeng@intel.com>
>>>>Subject: [edk2] [Patch 00/14] Enable Structure PCD support in edk2
>>>>
>>>>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
>>>>
>>>>_______________________________________________
>>>>edk2-devel mailing list
>>>>edk2-devel@lists.01.org
>>>>https://lists.01.org/mailman/listinfo/edk2-devel
>>> _______________________________________________
>>> edk2-devel mailing list
>>> edk2-devel@lists.01.org
>>> https://lists.01.org/mailman/listinfo/edk2-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-12-25 10:09 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-01 14:58 [Patch 00/14] Enable Structure PCD support in edk2 Liming Gao
2017-12-21 7:11 ` 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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox