From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web11.64692.1679544176306129900 for ; Wed, 22 Mar 2023 21:02:56 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=jd9Umm5r; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: james.lu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1679544176; x=1711080176; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=DGy/BQ9jPcanzupiQxKKYPui2PvcxnoyG06bA7Khf3o=; b=jd9Umm5rO+zMXDXjYyyJVFTy000efZx1Rle7DPHCudktShfCuumfJi22 f1eVl95xFJ4A1f57iga5ODq/S9gHIyfHWIwO+MzPPjySi9ZtEVhEqPSvU TMPCHlVxKEDoHFIr2j6yfxFMsvTqa9iBwMm5ISjEaoGMiA+NcPoy0TFN1 DNNvA2Wy6FxbgcQahpmZiaNyNv5Ge5PX4h99Rwl1UUnydAgpZCHMTnKJt wzxLE1Ob1Chl8/JUCk7OVpjcT0EWERtGm/54lk6U9v60mRwnBHoDCQY6F mzC60n92aVZoptAfiqMEWXyaWa3jBKiVPLeZ4JuQlE74dUYBRRwCxSp2N w==; X-IronPort-AV: E=McAfee;i="6600,9927,10657"; a="338110747" X-IronPort-AV: E=Sophos;i="5.98,283,1673942400"; d="scan'208";a="338110747" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Mar 2023 21:02:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10657"; a="659431065" X-IronPort-AV: E=Sophos;i="5.98,283,1673942400"; d="scan'208";a="659431065" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga006.jf.intel.com with ESMTP; 22 Mar 2023 21:02:45 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Wed, 22 Mar 2023 21:02:45 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Wed, 22 Mar 2023 21:02:45 -0700 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.42) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Wed, 22 Mar 2023 21:02:45 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fnNRh6Ze+UAUoUZC76DksrlLQPaNijUGoU1nVNeG83h0PYkI6n7vz7cefAua5a0DMkW83871K2EHryMHzHzy/Fvn+4nvvNBopEe2czuuP8zMam6tJzNMhb7S6I5p8QIHSgP+Uw2itSiR1lsDE6bXhJt5/aXJjvujU2HfNxYZsM5lVdJfZspFHJlwmgQ5qL16gKN91bjggIjmAi3rdoI/5hnja7ff6Hu/6vgqzr/rA9reRpx5XaGNbuopFVMyf/HmZyOhVHlIxwn9kJFsGz0o8hXIl0jNBhsswMwuqBHndwUpufbJIoVdHfiq0HGyMiMAf91YgRZZd8ZXu67MIK2saw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=acQh6rWaA0J/qKGSVN9S15PbwwG9zI7/uzfIPlHUyMA=; b=TK/qIaVFE7kqB65mJq/VKgCsUTiXwINpGkiADs2ISuJTXIdIwIEOoX41HzJwUPahfwPDzuGKCEWYtlTnd4C11ejofOfupxa4rvz4oDHK/oYuRvboAg6W8LMtV9NnUrCOUQlHWVqsTFO970ZbWqm0kFKBIdUKzPtwGLytKCg3MJBLSwcjtNlhk6dq4QAYSMxpytSa5kAAR6N5Kf/0fCynJUhAPNv3/NA/dLexhvBvkxsxLMIBnm9ED7yv6dHesolyFz/JIahDMW1aVRew6xs2QVq8gBX8B5IRKG1+YBv31QjMFXCvLSpkWe1XXtOwSqV228PrbVaMkYLCcgNKF5lOqQ== 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 Received: from IA0PR11MB7837.namprd11.prod.outlook.com (2603:10b6:208:406::9) by CH0PR11MB5491.namprd11.prod.outlook.com (2603:10b6:610:d6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.38; Thu, 23 Mar 2023 04:02:43 +0000 Received: from IA0PR11MB7837.namprd11.prod.outlook.com ([fe80::6697:ecb8:1027:87bc]) by IA0PR11MB7837.namprd11.prod.outlook.com ([fe80::6697:ecb8:1027:87bc%5]) with mapi id 15.20.6178.037; Thu, 23 Mar 2023 04:02:42 +0000 From: "Lu, James" To: "Liu, KasimX" , "devel@edk2.groups.io" CC: "Dong, Guo" , "Ni, Ray" , "Guo, Gua" Subject: Re: [PATCH] UefiPayloadPkg:Add new build commands for Universalpayload Thread-Topic: [PATCH] UefiPayloadPkg:Add new build commands for Universalpayload Thread-Index: AQHZV9U1UgMgwC5FMUi1HixNsAl/9a8HyNlQ Date: Thu, 23 Mar 2023 04:02:41 +0000 Message-ID: References: <1629baa064819fae7cf91506b145151f131c5deb.1678949430.git.kasimx.liu@intel.com> In-Reply-To: <1629baa064819fae7cf91506b145151f131c5deb.1678949430.git.kasimx.liu@intel.com> Accept-Language: en-001, en-US, zh-TW X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA0PR11MB7837:EE_|CH0PR11MB5491:EE_ x-ms-office365-filtering-correlation-id: 7b459069-5a1b-4709-1c68-08db2b537334 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 25zfVD6C/2IIFet07dSfrPjtQraR2iAb7gPTvu/Uq2LsFJBOkXJBVo/tlUWN0ypqkLBjBGmeEuTarl+D7XDtTAG9KDZwEXoO/zYzV3c/qlr9rx4PHq+PobFTijJv5QggiyITyw9FQHAydlxZBSy2AV1dCYKEHfpPMCfYl4jx74MVRbBF8DI86cUZRR0XqEE0oc9GlsDLr7A9BhSHNySjhZRuiZ9pvRSzd5cAaGNcIKLH3O2pyQi9sJcr2vxXXmrTbifyw7E2ufMwL54iLgwbz+agWARTdEewSjHdBS+vp3eFRRzyk2uHtmJKut2hjFOPTsHxibNPjsMRRqh/50vYQ1iAHpUQeexql0fpPvoMGwZu2JT+InGvIps0LbdeKK0MqhuoJhPW0C24eY15SN1tOvqeOfk/cIIIsj0NCaImQXrCYlGdyCRlQgvqgNPBc7f3sFFp9cQ0Y0EZGTkAd+/BOvZwXRHk96NNXMHAfhVwd7hOBBjXeVnidEmW9WmeWPreRL6HWSs0LqZXcrRIBWYRoq06sSpFiRX4b+TJ3WE11iBkw2KTD4irwKUp7LGvT4Zb6okmfn/3vta2Hvxt4920+V/+roA+1RwRoSsfHWK0awjCpG2k1tuCL/yaDR7MiMV+nPKTO52071EMnzi9WSWyc0sT5v8U6oNXSMoV4LGpq/oBs+dLf/MWsZ4g7F6oErLj x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR11MB7837.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(396003)(136003)(39860400002)(346002)(376002)(366004)(451199018)(122000001)(55016003)(82960400001)(38100700002)(186003)(9686003)(54906003)(110136005)(2906002)(316002)(33656002)(83380400001)(41300700001)(966005)(86362001)(7696005)(64756008)(4326008)(76116006)(66556008)(66476007)(66946007)(8676002)(66446008)(71200400001)(26005)(478600001)(6506007)(53546011)(107886003)(8936002)(52536014)(38070700005)(5660300002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?WonhMBYK9FZWblu5W1TjbvvkYfJM+QUkvTxeEjEnfQdTGEzUPUOfqg6BduWc?= =?us-ascii?Q?ewLWLLqSw89m8USl0XeTlsdtdzqRk3Lfdki4uHDfmCZDc8+PqbVqTb+88xDA?= =?us-ascii?Q?v4JZkRCDl5MiUCaSZco/4eqZFW7D7yUvwEOuZ6ErRQKGmIimqX8wAKPa11et?= =?us-ascii?Q?1eZkDORpGFW2yRmRJUXupdHW1SeZPmxwqcseEpL9j4okK+ZnbpEIb1jxG8RM?= =?us-ascii?Q?bZF3KsrtbsuMxK9kRostdO4jYTLfIozseESJYIjml2YModK3lbuPwmG8Mi/W?= =?us-ascii?Q?KC/b+LB5VLV72Ykj5dorvIXMcTghqM3dSGGyUd/COZ+5YnkpeJ2SLPPXDNK+?= =?us-ascii?Q?ZKvbmqAKyv5UoGM3dsY4D63ZL/1fbMleh6jnAQ1p+X7lRf2oVpvJTO0ORIAk?= =?us-ascii?Q?VtEEkSwcDii4rxwvb9fOt/7+CmcuKcm06FUAXRRRNv1J+nmLpwScVw+aRzW6?= =?us-ascii?Q?pQ9mdzjjwBurjDHAm54MnrHhi2/XfO5YqRWVZS1UMd8VQHs0ZYoE3jl0PlV9?= =?us-ascii?Q?366jlMOWdGp2GgIWu85T9LPiBhpHaRSzU2DiVrrCYn0ANUKxlupaui/WxTFQ?= =?us-ascii?Q?/8FBB899xSiowxKIGVq+3m1qgGDyhtBbg3KFME2AQ/R1iNhQoobkf/jqR0bO?= =?us-ascii?Q?za7ZFKXg0idmb8pfxd6AMVKeXHi8NpkH9wteg7xydIbTUXPtqhIgqCUmwd2T?= =?us-ascii?Q?kRSr82Q266nY1kio+8xAoZYnJ6maa6HEYA2GXluwRTybSQFxYhCBfn4getGj?= =?us-ascii?Q?td/fd5BCsy/kbUbNndC0ofwRPs940tztuSvvajejmT+STW5quB3UOd6VaHQR?= =?us-ascii?Q?STEZO5sbj3wm9ui8k1ReoksYNS4CKa/5WkIbD26yLgAf5Xj9CpDay1IYx8vP?= =?us-ascii?Q?PHUXPhjEgV4yvqqc3LFiG+yyHVOOy/GVbwI9QK3kToP02QrsRdfWuS6c+qKm?= =?us-ascii?Q?4n0eBwwSoPA7QjMwnv+4M9Dunbl1pKJZ8HEz28800QPmC4bVzdh4xXzsyIPo?= =?us-ascii?Q?i7SXTCcydSBoY2nq4xGGpv7NG7bQ2Fqkz/LRe4LiP53DmV+xFxrGj1B8kG5Z?= =?us-ascii?Q?dojhLi2v2IO2h+lJBT9ULmlT+2/NmcvvfpYpIRELAGfryTlt+3CUf6DAuw5k?= =?us-ascii?Q?b6UuKfnvh7p7R32V6a6OqoNOE7zXqzj9LoHRc+7WdoSkQPf70Y4wtbUMRcYM?= =?us-ascii?Q?qHsqpSzaOqy7U86QXQ+gRZyvSpAZWXNPHesp2OynSQmdLnpHzSpYqfwZooMS?= =?us-ascii?Q?RQn9hNlo06P6RwqQOlBEDgr+br8l+Ji1yFrdou9lNMggG6FRYQjy3/WZpuZ+?= =?us-ascii?Q?TvJQMU3fIrlBKkTdF08hoXlXEGWdHi0vVfnHbASJF8xLseYg1HkuosJbkg2N?= =?us-ascii?Q?Q9jgXFvtymZ4no2xXXh1Ta7x++5h6tijnbE6pCAIHJZbsopX8yl3eM2+a1gg?= =?us-ascii?Q?92ICGpD2saddKwDXlHff7iCb5UobVccusKi9YK+Owdw+Rnc6NA7ZiUf1sD2M?= =?us-ascii?Q?2CAnpkBJ2nJf9gFnGZC6Z0+lZdg9KCllKE7vlJkQ3+EKGcapB7Hj3X/VkyAh?= =?us-ascii?Q?NS0YhTZAEJJbKVqLFazcibD+g/RW3spdsQmhLxAK?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA0PR11MB7837.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7b459069-5a1b-4709-1c68-08db2b537334 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2023 04:02:41.7975 (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: W7McLkIluX6VlyE80OdEkMSBpZF/8Gqw3cyT8oRHwGusNEgeQExAkyd9E4jVeBWlG39jJ2IjWKOMFKxiyESdww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR11MB5491 Return-Path: james.lu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: James Lu Thanks, James -----Original Message----- From: Liu, KasimX =20 Sent: Thursday, March 16, 2023 3:01 PM To: devel@edk2.groups.io Cc: Liu, KasimX ; Dong, Guo ; Ni,= Ray ; Lu, James ; Guo, Gua Subject: [PATCH] UefiPayloadPkg:Add new build commands for Universalpayload From: KasimX Liu REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4375 add '-pb' command of build bios with exist PreUniversalpayload file. '-e' command of olny build the Universalpayloadentry file. Cc: Guo Dong Cc: Ray Ni Cc: James Lu Cc: Gua Guo Signed-off-by: KasimX Liu --- UefiPayloadPkg/UniversalPayloadBuild.py | 78 +++++++++++++------------ 1 file changed, 42 insertions(+), 36 deletions(-) diff --git a/UefiPayloadPkg/UniversalPayloadBuild.py b/UefiPayloadPkg/Unive= rsalPayloadBuild.py index 522855eba4..aad4f7f195 100644 --- a/UefiPayloadPkg/UniversalPayloadBuild.py +++ b/UefiPayloadPkg/UniversalPayloadBuild.py @@ -65,6 +65,8 @@ def BuildUniversalPayload(Args, MacroList): ObjCopyFlag =3D "elf32-i386" EntryOutputDir =3D os.path.join(BuildDir, "{}_{}".format (BuildTar= get, ElfToolChain), os.path.normpath("IA32/UefiPayloadPkg/UefiPayloadEntry/= UniversalPayloadEntry/DEBUG/UniversalPayloadEntry.dll")) =20 + if Args.PreBuildUplBinary is not None: + EntryOutputDir =3D os.path.abspath(Args.PreBuildUplBinary) EntryModuleInf =3D os.path.normpath("UefiPayloadPkg/UefiPayloadEntry/U= niversalPayloadEntry.inf") DscPath =3D os.path.normpath("UefiPayloadPkg/UefiPayloadPkg.dsc") DxeFvOutputDir =3D os.path.join(BuildDir, "{}_{}".format (BuildTarget,= ToolChain), os.path.normpath("FV/DXEFV.Fv")) @@ -95,18 +97,19 @@ def BuildUniversalPayload(Args, MacroList): # # Building DXE core and DXE drivers as DXEFV. # - BuildPayload =3D "build -p {} -b {} -a X64 -t {} -y {} {}".format (Dsc= Path, BuildTarget, ToolChain, PayloadReportPath, Quiet) - BuildPayload +=3D Pcds - BuildPayload +=3D Defines - RunCommand(BuildPayload) + if Args.BuildEntryOnly =3D=3D False: + BuildPayload =3D "build -p {} -b {} -a X64 -t {} -y {} {}".format = (DscPath, BuildTarget, ToolChain, PayloadReportPath, Quiet) + BuildPayload +=3D Pcds + BuildPayload +=3D Defines + RunCommand(BuildPayload) # # Building Universal Payload entry. # - BuildModule =3D "build -p {} -b {} -a {} -m {} -t {} -y {} {}".format = (DscPath, BuildTarget, BuildArch, EntryModuleInf, ElfToolChain, ModuleRepor= tPath, Quiet) - BuildModule +=3D Pcds - BuildModule +=3D Defines - RunCommand(BuildModule) - + if Args.PreBuildUplBinary is None: + BuildModule =3D "build -p {} -b {} -a {} -m {} -t {} -y {} {}".for= mat (DscPath, BuildTarget, BuildArch, EntryModuleInf, ElfToolChain, ModuleR= eportPath, Quiet) + BuildModule +=3D Pcds + BuildModule +=3D Defines + RunCommand(BuildModule) # # Buid Universal Payload Information Section ".upld_info" # @@ -117,33 +120,34 @@ def BuildUniversalPayload(Args, MacroList): fp.write(bytearray(upld_info_hdr)) fp.close() =20 - # - # Copy the DXEFV as a section in elf format Universal Payload entry. - # - remove_section =3D '"{}" -I {} -O {} --remove-section .upld_info --rem= ove-section .upld.uefi_fv --remove-section .upld.bds_fv {}'.format ( - LlvmObjcopyPath, - ObjCopyFlag, - ObjCopyFlag, - EntryOutputDir - ) - add_section =3D '"{}" -I {} -O {} --add-section .upld_info=3D{} --a= dd-section .upld.uefi_fv=3D{} --add-section .upld.bds_fv=3D{} {}'.format ( - LlvmObjcopyPath, - ObjCopyFlag, - ObjCopyFlag, - UpldInfoFile, - DxeFvOutputDir, - BdsFvOutputDir, - EntryOutputDir - ) - set_section =3D '"{}" -I {} -O {} --set-section-alignment .upld_inf= o=3D4 --set-section-alignment .upld.uefi_fv=3D16 --set-section-alignment .u= pld.bds_fv=3D16 {}'.format ( - LlvmObjcopyPath, - ObjCopyFlag, - ObjCopyFlag, - EntryOutputDir - ) - RunCommand(remove_section) - RunCommand(add_section) - RunCommand(set_section) + if Args.BuildEntryOnly =3D=3D False: + # + # Copy the DXEFV as a section in elf format Universal Payload entr= y. + # + remove_section =3D '"{}" -I {} -O {} --remove-section .upld_info -= -remove-section .upld.uefi_fv --remove-section .upld.bds_fv {}'.format ( + LlvmObjcopyPath, + ObjCopyFlag, + ObjCopyFlag, + EntryOutputDir + ) + add_section =3D '"{}" -I {} -O {} --add-section .upld_info=3D{}= --add-section .upld.uefi_fv=3D{} --add-section .upld.bds_fv=3D{} {}'.forma= t ( + LlvmObjcopyPath, + ObjCopyFlag, + ObjCopyFlag, + UpldInfoFile, + DxeFvOutputDir, + BdsFvOutputDir, + EntryOutputDir + ) + set_section =3D '"{}" -I {} -O {} --set-section-alignment .upld= _info=3D4 --set-section-alignment .upld.uefi_fv=3D16 --set-section-alignmen= t .upld.bds_fv=3D16 {}'.format ( + LlvmObjcopyPath, + ObjCopyFlag, + ObjCopyFlag, + EntryOutputDir + ) + RunCommand(remove_section) + RunCommand(add_section) + RunCommand(set_section) =20 shutil.copy (EntryOutputDir, os.path.join(BuildDir, 'UniversalPayload.= elf')) =20 @@ -156,6 +160,8 @@ def main(): parser.add_argument('-i', '--ImageId', type=3Dstr, help=3D'Specify pay= load ID (16 bytes maximal).', default =3D'UEFI') parser.add_argument('-q', '--Quiet', action=3D'store_true', help=3D'Di= sable all build messages except FATAL ERRORS.') parser.add_argument("-p", "--pcd", action=3D"append") + parser.add_argument("-e", "--BuildEntryOnly", action=3D'store_true', h= elp=3D'Build UniversalPayload Entry file') + parser.add_argument("-pb", "--PreBuildUplBinary", default=3DNone, help= =3D'Specify the UniversalPayload file') MacroList =3D {} args =3D parser.parse_args() if args.Macro is not None: --=20 2.39.1.windows.1