From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web12.14344.1594707133135839865 for ; Mon, 13 Jul 2020 23:12:13 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=OshOkrKw; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: bob.c.feng@intel.com) IronPort-SDR: mx6e0LSCVWo57vP6HKCB6i5B+qtC1QFt3JxE1J82XgolYBTl9+hi52sfcr0+Qev0FwpBEkPnPi MyBVOitT52DQ== X-IronPort-AV: E=McAfee;i="6000,8403,9681"; a="136964553" X-IronPort-AV: E=Sophos;i="5.75,350,1589266800"; d="scan'208";a="136964553" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2020 23:12:12 -0700 IronPort-SDR: gx9TUyvEDoM8WfdQCOxLCsWWJOxF5ZDBKhJLuiISwBEK9mmYuYC00Q7zhGhtmB5MCHjx5NGiQi ddNWuJuF6irA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,350,1589266800"; d="scan'208";a="324454037" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by FMSMGA003.fm.intel.com with ESMTP; 13 Jul 2020 23:12:11 -0700 Received: from fmsmsx104.amr.corp.intel.com (10.18.124.202) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 13 Jul 2020 23:12:10 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 13 Jul 2020 23:12:10 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.175) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 13 Jul 2020 23:12:07 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WP5Ha/hYrjg9Vxac4Q4PvRG/4FZupUuYxH9UMRzpYoppTjFuLx9RpOh6FQ3GYoUSfMFKr63+EFN363e+vdPzAYSY8fc0YEprI8MnEZfja2pYRhPB5+0vm4eurITTmDwU6g+NF9Z07nivz2mHhaL1fJWxQHVrKQRHDkNStBuQg0i6kHcemr7WFl4pqvTPCpZ4V6y6PUZcTUVfAVIq8XKVUqW4EwJkhrbXZ6ZpnUVl8XJzGpL3/cy/8ROmSEWddgEeCmccLF4BlUGAN4LUsUtaparXGqc0TSztQcWGXHSjnogFU0iaH7s4bCi4rEYvfDe3SuobAKYynSUAjxkrRYAsVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Zq34NqqXYKmrfdSX375ztHU+YnRd7tlEn2X3hRZQuv4=; b=lYDs9Xh44FWGgsiTI77F+zq8CPaOrjNrqYN1tuuXb8XV1SC8qNJpMyP6VMMWJjKnzIQnUGUzlFwldYB4gduRyYTSUsVwfSCk4JhH0RGIN90M/8fx4Ld0uG9cbyvnVMgpS66aTyZXm80rYTy+tq4SRMJj9bS1PgihGS/pZ7YDlYtADDr+4g7zlyWwF66/MIyCncqxlXyeyEQunwyKv3rLEaoJqbT2E+DcWoEt+bqw6SfXFCR//DWhMJ5oO9XYt/wi0k1B3tRY28k6In28iizZ5ukHv+pc0FMMLFwGUEA6nSUEtPa+8VB7jJVD0SQS2Nid0mlzmOIM1pUGecvbxCCNMg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Zq34NqqXYKmrfdSX375ztHU+YnRd7tlEn2X3hRZQuv4=; b=OshOkrKwwXZJQPJy2ecILZ8CDMoWCX3Zuz3XijC3uPWd/b/gtt9LsV9tAAdpbqiuGSd1aTkgoIjVNV5S41yfMDnIGn+P0lgj4D01hOYwaUWVp+WOaXV2lQnMynckU4G9VBAvPjQ07g+Zc64NpIExu2z63DFe1p+4dEtYJduXrm4= Received: from BN6PR11MB0068.namprd11.prod.outlook.com (2603:10b6:405:69::17) by BN7PR11MB2772.namprd11.prod.outlook.com (2603:10b6:406:ae::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.21; Tue, 14 Jul 2020 06:12:06 +0000 Received: from BN6PR11MB0068.namprd11.prod.outlook.com ([fe80::6870:82d3:5bde:4153]) by BN6PR11MB0068.namprd11.prod.outlook.com ([fe80::6870:82d3:5bde:4153%6]) with mapi id 15.20.3174.025; Tue, 14 Jul 2020 06:12:05 +0000 From: "Bob Feng" To: "devel@edk2.groups.io" , "Chen, Yuwei" CC: "Gao, Liming" Subject: Re: [edk2-devel] [Patch v5 1/1] BaseTools: Add Guid name support in GenFfs. Thread-Topic: [edk2-devel] [Patch v5 1/1] BaseTools: Add Guid name support in GenFfs. Thread-Index: AQHWWaGZ0YKcqMQBpEOQd4HgGuwjBqkGl4/g Date: Tue, 14 Jul 2020 06:12:05 +0000 Message-ID: References: <20200714054234.597-1-yuwei.chen@intel.com> In-Reply-To: <20200714054234.597-1-yuwei.chen@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.45] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 45639606-10b6-446b-addd-08d827bcd557 x-ms-traffictypediagnostic: BN7PR11MB2772: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:206; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: uzk7yv4EtexU19hMNKWvohUqQpWcGSfxC4C44+wwJT3jyIKclZgI8ZU7Ky6GEAQUkNzn0sMececpHuzyzte2dpdWZuQQnF/PpAQkAWxwZGaWLJ3TlciCMXxRQFa092cOaeZ6NbYaV9+9Dy6GxViDE1q6q1cDk/I98dR76fSVMtChWuLUnrsGTKoFBrtl2rCkLFNaGaQNWRYhfjc3+WvNgsDfA0UgdxHM49F4sIzyuO8+78h+UxQHE++gEQgG2bURYc1GemrVNoAbqImQxDYEKIDp/pTne2TIxQQcbWP3GbqRJJS/1MO77AZeQ6vQ9mNTbzVfqsxAbYLBXcx+A0ks8f2FeFHhwUqDR2YjItWZMz5e0GEAt9dkQjzek70LdGjEq11Nwc14BurXMSheRjV0XA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN6PR11MB0068.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(136003)(396003)(376002)(346002)(366004)(39860400002)(33656002)(5660300002)(107886003)(4326008)(8936002)(71200400001)(478600001)(83380400001)(2906002)(966005)(6636002)(9686003)(76116006)(55016002)(52536014)(66946007)(86362001)(66446008)(8676002)(110136005)(6506007)(53546011)(66476007)(66556008)(64756008)(7696005)(186003)(316002)(26005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: yUDS1Y+QvG7/Ow+FCWZVu1RDhkOmKN5eefvLfPK8QbhxdChghAOW2vejYijcaPOQlelRcT4ccOMNCgwLCy/owl+hC6MnBG4iHYbTluWmFG7f1AKP7fgaEmJHowpGchuhFiHZaAffYyAT+mWWwNVKysVbo8C21Vd3ujooDAsL03kDwkU5Pr/74e5ksq2ZpdqKTarDou6CGL9DeI/7uuiw/E7lf+CxeIYY3GVOshmtZO8OpUJssDvJ4aev8haiDYD6IVRxjmGPpXhuZKNWRj22iwq+DhsaqBv7C8UWLDiU8GrI9uxlFE9I/H+ARftgJF1xwoz9dAGstpXBVL1oRVZ1nz6UvLgtXFWmWl7ee6APIXnPuAh2Zr+ItXZaWzOHnMr1ZSUMQRCmYRpy/luJsWuLXJ60e9k20s0MAupl56nxX2hjeqXDehabaHtFLJlUGeCxLKSPfIiIUNlqmZqiebJS4q4g/72gF9NhRzwAcD76pcXzCwWuRaS3mClsFSrzkfMk MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN6PR11MB0068.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 45639606-10b6-446b-addd-08d827bcd557 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jul 2020 06:12:05.8733 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: v72q7lpcsZkv3AWchFlN3OyW+MinBt8/iw/9u0V4KwFoYNl1HzF8zryzj1OpiXLgZ+CF7VSoOC3vNfpnGHKYMA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR11MB2772 Return-Path: bob.c.feng@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Yuwei, The change history info need to be added below --- so that it will not go = to commit message. Thanks, Bob -----Original Message----- From: devel@edk2.groups.io On Behalf Of Yuwei Chen Sent: Tuesday, July 14, 2020 1:43 PM To: devel@edk2.groups.io Cc: Feng, Bob C ; Gao, Liming Subject: [edk2-devel] [Patch v5 1/1] BaseTools: Add Guid name support in G= enFfs. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2762 The Fv Section in the FDF files use hard coding Guid values which is incon= venient to manage. This patch adds Guid name support in GenFfs to solve thi= s problem. v5 modified the format without fuctional change.=20 Signed-off-by: Yuwei Chen Cc: Bob Feng Cc: Liming Gao --- .../Source/Python/AutoGen/WorkspaceAutoGen.py | 24 +++++++++++++++++++ B= aseTools/Source/Python/Common/GlobalData.py | 1 + BaseTools/Source/Python/GenFds/FdfParser.py | 14 ++++++++++- 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/BaseTools/Source/Python/AutoGen/WorkspaceAutoGen.py b/BaseToo= ls/Source/Python/AutoGen/WorkspaceAutoGen.py index 668126aaac42..f86c749c08c3 100644 --- a/BaseTools/Source/Python/AutoGen/WorkspaceAutoGen.py +++ b/BaseTools/Source/Python/AutoGen/WorkspaceAutoGen.py @@ -108,6 +108,10 @@ class WorkspaceAutoGen(AutoGen): # # Mark now build in AutoGen Phase # + # + # Collect Platform Guids to support Guid name in Fdfparser. + # + self.CollectPlatformGuids() GlobalData.gAutoGenPhase =3D True self.ProcessModuleFromPdf() self.ProcessPcdType() @@ -153,6 +157,26 @@ class WorkspaceAutoGen(AutoGen): EdkLogger.error("build", PARAMETER_INVALID, ExtraData=3D"Build target [%s] is not support= ed by the platform. [Valid target: %s]" % (self.BuildTarget, " ".join(self.= Platform.BuildTargets))) + + def CollectPlatformGuids(self): + oriInfList =3D [] + oriPkgSet =3D set() + PlatformPkg =3D set() + for Arch in self.ArchList: + Platform =3D self.BuildDatabase[self.MetaFile, Arch, self.Bui= ldTarget, self.ToolChain] + oriInfList =3D Platform.Modules + for ModuleFile in oriInfList: + ModuleData =3D self.BuildDatabase[ModuleFile, Platform._A= rch, Platform._Target, Platform._Toolchain] + oriPkgSet.update(ModuleData.Packages) + for Pkg in oriPkgSet: + Guids =3D Pkg.Guids + GlobalData.gGuidDict.update(Guids) + if Platform.Packages: + PlatformPkg.update(Platform.Packages) + for Pkg in PlatformPkg: + Guids =3D Pkg.Guids + GlobalData.gGuidDict.update(Guids) + @cached_property def FdfProfile(self): if not self.FdfFile: diff --git a/BaseTools/Source/Python/Common/GlobalData.py b/BaseTools/Sour= ce/Python/Common/GlobalData.py index 8ac29eb7a6fb..61ab3f7e24cd 100755 --- a/BaseTools/Source/Python/Common/GlobalData.py +++ b/BaseTools/Source/Python/Common/GlobalData.py @@ -29,6 +29,7 @@ gProcessingFile =3D '' gBuildingModule =3D '' gSkuids =3D [] gDefaultStores =3D [] +gGuidDict =3D {} =20 # definition for a MACRO name. used to create regular expressions below. _MacroNamePattern =3D "[A-Z][A-Z0-9_]*" diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py b/BaseTools/Sourc= e/Python/GenFds/FdfParser.py index 9b04a76af8c5..ea2401b0e4fc 100644 --- a/BaseTools/Source/Python/GenFds/FdfParser.py +++ b/BaseTools/Source/Python/GenFds/FdfParser.py @@ -18,7 +18,7 @@ from uuid import UUID =20 from Common.BuildToolError import * from Common import EdkLogger -from Common.Misc import PathClass, tdict, ProcessDuplicatedInf +from Common.Misc import PathClass, tdict, ProcessDuplicatedInf,=20 +GuidStructureStringToGuidString from Common.StringUtils import NormPath, ReplaceMacro from Common import= GlobalData from Common.Expression import * @@ -1087,6 +1087,8 @@ class Fd= fParser: return False if GlobalData.gGuidPattern.match(self._Token) is not None: return True + elif self._Token in GlobalData.gGuidDict: + return True else: self._UndoToken() return False @@ -2248,6 +2250,8 @@ class FdfParser: =20 if not self._GetNextGuid(): raise Warning.Expected("GUID value", self.FileName, self.Curr= entLineNumber) + if self._Token in GlobalData.gGuidDict: + self._Token =3D=20 + GuidStructureStringToGuidString(GlobalData.gGuidDict[self._Token]).upp + er() =20 FvObj.FvNameGuid =3D self._Token =20 @@ -2459,6 +2463,8 @@ class FdfParser: raise Warning.ExpectedEquals(self.FileName, self.CurrentL= ineNumber) if not self._GetNextGuid(): raise Warning.Expected("GUID value", self.FileName, self.= CurrentLineNumber) + if self._Token in GlobalData.gGuidDict: + self._Token =3D=20 + GuidStructureStringToGuidString(GlobalData.gGuidDict[self._Token]).upp + er() FfsInfObj.OverrideGuid =3D self._Token =20 if self._IsKeyword("RuleOverride"): @@ -2550,6 +2556,8 @@ class FdfParser: raise Warning.Expected("')'", self.FileName, self.Cur= rentLineNumber) self._Token =3D 'PCD('+PcdPair[1]+TAB_SPLIT+PcdPair[0]+')= ' =20 + if self._Token in GlobalData.gGuidDict: + self._Token =3D=20 + GuidStructureStringToGuidString(GlobalData.gGuidDict[self._Token]).upp + er() FfsFileObj.NameGuid =3D self._Token =20 self._GetFilePart(FfsFileObj) @@ -2980,6 +2988,8 @@ class FdfParser: elif self._IsKeyword("GUIDED"): GuidValue =3D None if self._GetNextGuid(): + if self._Token in GlobalData.gGuidDict: + self._Token =3D=20 + GuidStructureStringToGuidString(GlobalData.gGuidDict[self._Token]).upp + er() GuidValue =3D self._Token =20 AttribDict =3D self._GetGuidAttrib() @@ -4049,6 +4059,8 @@ cl= ass FdfParser: elif self._IsKeyword("GUIDED"): GuidValue =3D None if self._GetNextGuid(): + if self._Token in GlobalData.gGuidDict: + self._Token =3D=20 + GuidStructureStringToGuidString(GlobalData.gGuidDict[self._Token]).upp + er() GuidValue =3D self._Token =20 if self._IsKeyword("$(NAMED_GUID)"): -- 2.27.0.windows.1