From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web11.6794.1678951263764387081 for ; Thu, 16 Mar 2023 00:21:03 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=CTYYY7G5; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: gua.guo@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678951263; x=1710487263; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=ZvJDosXe21vdXgDHSVyYSvhIgze1/6iAe56Jj4ZWZWs=; b=CTYYY7G5Enog+0ycPFT9BI5u+JIPqqwzjzDZEAhyqPJa5UJMtOu60VNo XjiRgfY/iw+m4dIA2h8sNjzOJg17j8JZY8nDx5er96Ah+rmsmQfF1wgld nIoOL0Yqj2Q/ba60YXSf/dmjrKvlZJTdw++O4HEOT3hohqGofzv8eR60a G96dtBJo8lCFXgZQ3bJRIes5yHhDmaekhBkijmOdf3V4tVLlPX7g6XPcb rGHY5j9a5QwAPgXmlgkFTq6bXvQvfMP1g0H9TsBfqGN96MRfj+ohkpAa/ DYy7QMU9HO3jEPjkLxlj9GtMkJDNxe2c2EO4cDJs1GGlGCRUzF+aXjkks g==; X-IronPort-AV: E=McAfee;i="6500,9779,10650"; a="339443549" X-IronPort-AV: E=Sophos;i="5.98,265,1673942400"; d="scan'208";a="339443549" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Mar 2023 00:21:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10650"; a="629765087" X-IronPort-AV: E=Sophos;i="5.98,265,1673942400"; d="scan'208";a="629765087" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga003.jf.intel.com with ESMTP; 16 Mar 2023 00:21:03 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 16 Mar 2023 00:21:02 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 16 Mar 2023 00:21:02 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Thu, 16 Mar 2023 00:21:02 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.175) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Thu, 16 Mar 2023 00:20:58 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ma3LYYOAGqBwRhSTqVEcLcEnYsAnROcYCoeMGpHgW2bqz32lZWlt5hvtHHgBJiYccUGiHgPJtoIVDSu22IbvSgErknnquw5cOl3m6OJPX8NeOT6RcUlrxYGmtkMpvVMrQX3Fee9l/YIx3VC0iPip7J16qaGSyf1iibxliFd8dGQv/eeWdfLB7Iuy0Q26c2y0JluXcUA7DoLwCPBCceRsvUpCSdiLhFpEQDcsdsO1rcieTWdoKjujhYzosXs1VwmN70EN6H2/JkqgIrBs2y47ANk5tWZ0Sx8o5KzIDzcsNiJqxhS2nJPc8w3nTk/kZTGp0VOywsAy+45QeQHCNQr1uw== 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=yRbnaR4UX1UXf/XfdmSwMhafkn1J1NRuIO9JgPuf1wc=; b=iV+Fav4W70CZGbO2na9OSm6Hr8dH427QJcWtDx+ATVQ+SPR5K7rSsRbwb7C2S/Kc7c/PqYk7PXXX/MwzK35edIJM4LU4+HPBDUSOrzEWkxI7IPUxHubdNfp0EZFsgwO2UGmELYk2snAl+D2oy4G7kXYfUyBx2gBTF7armt3Zqp9En6Q4HNa7RfuQvecZORF4vDbiW7IdP8H3P2mK1x7/JFKMt9s4NGTT5U6DA+6q3NlhOKHvf8X7ceGgHD300h+jAqnWVa/wE/AztZALLup0g+sL1vVojY0wu45QdvgoVCfqcfYPpPkTpTb0NR02q9l2BKVGcGeAyFMBnlCCEb7ckg== 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 BL1PR11MB5478.namprd11.prod.outlook.com (2603:10b6:208:31d::12) by SA1PR11MB6782.namprd11.prod.outlook.com (2603:10b6:806:25e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.26; Thu, 16 Mar 2023 07:20:56 +0000 Received: from BL1PR11MB5478.namprd11.prod.outlook.com ([fe80::828:a400:e971:c953]) by BL1PR11MB5478.namprd11.prod.outlook.com ([fe80::828:a400:e971:c953%4]) with mapi id 15.20.6178.029; Thu, 16 Mar 2023 07:20:56 +0000 From: "Guo, Gua" To: "Liu, KasimX" , "devel@edk2.groups.io" CC: "Dong, Guo" , "Ni, Ray" , "Lu, James" Subject: Re: [PATCH] UefiPayloadPkg:Add new build commands for Universalpayload Thread-Topic: [PATCH] UefiPayloadPkg:Add new build commands for Universalpayload Thread-Index: AQHZV9U1KuM0qvzQzUWAZ54zB6vlya78/ngQ Date: Thu, 16 Mar 2023 07:20:56 +0000 Message-ID: References: <1629baa064819fae7cf91506b145151f131c5deb.1678949430.git.kasimx.liu@intel.com> In-Reply-To: <1629baa064819fae7cf91506b145151f131c5deb.1678949430.git.kasimx.liu@intel.com> Accept-Language: en-US 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: BL1PR11MB5478:EE_|SA1PR11MB6782:EE_ x-ms-office365-filtering-correlation-id: ddd85271-8340-4645-7fb0-08db25eefc24 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: t/6fSO44y4KvHuPmLfYVgajxndP3YzFgMuQd2DdUAMkOLIz89ySjHEfRTDfKv0s3CdLs7MTjna/Xp9wNvlMV4bWdUGH3fJM4xVFZmyzV3xzoT10g6XTcnov4Uh8nP9EjRni7UPvZSB42PTAEM4rcrdu7OccpS7v4zBmMnOaDEwcDKjucZn9vPKt3GT3u0XdX2Nm+l5/m8nBKz/1ofkIxjLIG606zBHIf97iyElnqv1MOw4usknnekhWlhVbTCgT0gltXZX8CnOOFDdc+z6pkpaQENa1Ls6+nhBhbkOGzrF2eUD6RXFlcATdmnkB732rkq+dQHfNkurBIXbw3MwOwHBi/sau7eqEnpq3g5NXjHoWtLNQpHAQ7Py7kWEw2WZU8Yl5In20+rFVHjwfPgCOos7OwHZb+8Q580ISnW/qfaIGuP012d8v/LjXcCrEFiy7BkvkzwjO+/6ksgb0MiraANNX0zmXOzKzkt4VcYI76d/1aEn/X7DHasHsT8GxHj01KMOpoBmbzIKwiPsHitLszTHixOdyviZp6+S8+kTq7WvYg+KdUw22KYfPuq86ZF5U0ATeo9gVWpCpuAwdgzjQ7pFocMg+fSXIPOMzMSE3yPr97bXf0ZhhfNAQX+wPze9GcE+o+HjpLwp1bIpeE/biOnN5ZQaj+xCtMZ+iR749WUPBZcdoiPxpUlUdpgpS4sYAP x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5478.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(366004)(39860400002)(376002)(396003)(346002)(136003)(451199018)(5660300002)(66446008)(83380400001)(66556008)(478600001)(6506007)(53546011)(26005)(9686003)(966005)(107886003)(71200400001)(186003)(7696005)(4326008)(38070700005)(86362001)(316002)(76116006)(66946007)(8676002)(52536014)(66476007)(41300700001)(64756008)(33656002)(8936002)(55016003)(110136005)(38100700002)(54906003)(122000001)(2906002)(82960400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?g7OoMFv1i3kgBwY73NKByLdo/qjl+uOKOzJk3yTdH89+oc8zocxljEHTjE4T?= =?us-ascii?Q?9KheyyD+9eZIgR6wpbWebDtgFGjgT/PBYGwoY2ikTyx/JLHu1p7rXBQ+/TcL?= =?us-ascii?Q?AjqJzicOy3Qh0iuKh5zRDmZCp9fVuUBEzhs0BOpVUsL64r4MYUJO94gv+eCk?= =?us-ascii?Q?vEphcaSBpxeqtianU71XfddLx2lGiW+YHEjd6e0rtcDW9Vr5UFcAvrFR/esV?= =?us-ascii?Q?mCPgiFJLBgqbM8DjVXhH+fbwGyZ8Sg7+PXMWtrjsAv0odID0uFn5376LNAzv?= =?us-ascii?Q?VIDCH0qIK3uP4Ubu0nJSOR7wBReU1A75kxxC0YFryyzrTYDmJWOPWowBef20?= =?us-ascii?Q?kBULmuawBAV5xU5HjShw4xP5PnMZH/ZhtUdY5rFAox3QANgKmxTHnt5ubveG?= =?us-ascii?Q?UhS4BtlwCXbrIM0dgZEkbI2uANwEGwHmP/21DkKnQVU48Rh+XI/Z79K++Ik9?= =?us-ascii?Q?NRdpCxwRl5h0w30HDFdQy7zzpv2RgpK53ygbsdCiP6YHcMzEfhxjtLL6Xd/r?= =?us-ascii?Q?cl6lALYWQIGqPXt9v//hKBsrAiCwWQqYzXD7tK3VobsqZ0Mv95KQ5ggX8rHY?= =?us-ascii?Q?kxCOrPme2mAhx8in2eMoGAtewqM8R2y/SOB1omp7fuWzO64ZTCrlzi6Mem9V?= =?us-ascii?Q?Tsp812MKSpz57jHSBbEDykYS+nK9tqYriy7GbHKEA35tyAntdg5FKU8w1KiY?= =?us-ascii?Q?KCyjd/RLvBsrlBoSnPlpv3WoVGfwv2Qx8wOxcxG6hQKGAUjS08UrVHDOgS5z?= =?us-ascii?Q?KEorZEkLWStfseRMVCNiNRl23KvQzrDhiA2hQKNOwADuibXHu7l0Ppc3iLck?= =?us-ascii?Q?rvjjCc5HP2gzb+ts1WJOKCEpLvTO5udJL23dk/KcAnU91CN48/gj8xE7AJ54?= =?us-ascii?Q?S/ivzv1pLBtvkV4GZmb4CP5kMje504PWrAwzyXIilhfu4nFqbxl0rIeldMen?= =?us-ascii?Q?G3KEelX9Ofc+Knw2WGVv8cORknrZpzOGarv1rNTA37ie6Zm9JWfOB/TNBADt?= =?us-ascii?Q?zf6a0zPjGfxAOcknKyvHSE9ixDIb922/HsjV2kiENw7Kk31x9wNXzJdr/Lrd?= =?us-ascii?Q?xIb+SowPnuButQU0ni3hjxAcR/+6HkhlH1vWCak6El8UFdUn6yB2yk/Mt3s8?= =?us-ascii?Q?pPnwKtua5rqiFEcSgn8IYKjDH8kEYi6sG4nN94qoRNG9LXB+AqGgGnXM5D9N?= =?us-ascii?Q?+tfeyn9yR2uaCE6JsVknoBEcA5/qfkfBDZeNNpN5BzbXrRx5KivbXMkNzwdI?= =?us-ascii?Q?Y+UmazB/KHgVnQlY6hwMbhHP+2WtyZtA7deyT5OfyjeIAP4RtIh8KMH0hnM0?= =?us-ascii?Q?Mhoi87vHWAQBS4kbuem1nIWcQUTWuLnYe/gvlA7tELvzv0IAj3eHHw4zJpp0?= =?us-ascii?Q?cZU/ySwNB2oz4l7TWFU17mx1PAIS8Pk94SexfFHnrYgousQRxw8iHPXIu80r?= =?us-ascii?Q?Gj22rbArueXC/zIapqnA3jc+V+NrsLSLxR4xgIHzcioiUNOJbzJiQI118AyU?= =?us-ascii?Q?rC80bho5teFt9Vu28h0I9Ew7MIAsorVMPXI4tSsjTuO6QLQ3yKtowo67icEc?= =?us-ascii?Q?eRkUfpDbUrmINBzf+yM=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5478.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ddd85271-8340-4645-7fb0-08db25eefc24 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Mar 2023 07:20:56.5439 (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: pywYPNzqm3TaahxXdgHTjn4MPdvTyqU6HANQPJ31LZ9drCnnc7uzuBeohQ/yEhdfIkumsl8gBnH/Owvvc5AZnw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB6782 Return-Path: gua.guo@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Look like create Case2 and Case3 behavior. It looks good from my view point= . Just minor request, In commit message please use "UniversalPayload" but "Un= iversalpayload" Case1: > "python UefiPayloadPkg/UniversalPayloadBuild.py", output UefiUpl.e= lf Case2: > "python UefiPayloadPkg/UniversalPayloadBuild.py -pb ",= use pre-build UefiUplEntry.elf to generate UefiUpl.elf Case3: > "python UefiPayloadPkg/UniversalPayloadBuild.py -e", output UefiUp= lEntry.elf Reviewed-by: Gua Guo -----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