From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.65; helo=mga03.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 00F19208F7A23 for ; Wed, 20 Dec 2017 23:10:58 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Dec 2017 23:15:47 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,434,1508828400"; d="scan'208";a="4450543" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga007.jf.intel.com with ESMTP; 20 Dec 2017 23:15:47 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 20 Dec 2017 23:15:46 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.175]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.218]) with mapi id 14.03.0319.002; Thu, 21 Dec 2017 15:15:44 +0800 From: "Zeng, Star" To: "Gao, Liming" , "edk2-devel@lists.01.org" CC: "Zhu, Yonghong" , "Zeng, Star" Thread-Topic: [Patch 00/14] Enable Structure PCD support in edk2 Thread-Index: AQHTarUAXOehi12xF0acfiojy/mu1KNNcn1ggAAO2RA= Date: Thu, 21 Dec 2017 07:15:44 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483103B9C5D75@shsmsx102.ccr.corp.intel.com> References: <1512140335-6932-1-git-send-email-liming.gao@intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B9C5CE7@shsmsx102.ccr.corp.intel.com> In-Reply-To: <0C09AFA07DD0434D9E2A0C6AEB0483103B9C5CE7@shsmsx102.ccr.corp.intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch 00/14] Enable Structure PCD support in edk2 X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Dec 2017 07:10:59 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Another, please also more comments for the fields in NV_STORE_DEFAULT_BUFFE= R_HEADER. Thanks, Star -----Original Message----- From: Zeng, Star=20 Sent: Thursday, December 21, 2017 3:11 PM To: Gao, Liming ; edk2-devel@lists.01.org Cc: Zhu, Yonghong ; Zeng, Star 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, C= ould the if condition adjustment be removed? And how about declaring "exter= n UINT32 mVpdBaseAddress;" in Service.h instead of Service.c? For MdeModulePkg: Enable Firmware to retrieve the default setting, Could th= is 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 PcdN= vStoreDefaultValueBuffer. 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 ; Zhu, Yonghong Subject: [Patch 00/14] Enable Structure PCD support in edk2 All code are in https://github.com/tianocore/edk2-staging/tree/StructurePcd= V3. 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 P= CD, 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=3D542 [BaseTools] Extended SKU Support - Inheritance https://bugzilla.tianocore.org/show_bug.cgi?id=3D543 [BaseTools/PCD] Pcd Database size optimization for multi-SKU https://bugzilla.tianocore.org/show_bug.cgi?id=3D546 [BaseTools/PCD/HiiDataBase] Collect DynamicHii PCD value as the default set= ting for EFI Variable and HII VarStore. https://bugzilla.tianocore.org/show_bug.cgi?id=3D611 [BaseTools] Build report update for Structure PCD value and SKU, DefaultSto= re https://bugzilla.tianocore.org/show_bug.cgi?id=3D706 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 fro= m 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/S= ource/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 10064= 4 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