From nobody Mon May 6 12:04:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+101281+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+101281+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1678983983; cv=none; d=zohomail.com; s=zohoarc; b=XRSXEd2rBEtALH3YmEP6Zqa6ctM8twUmDrhDey5F8gAfQZwwvpVV3SFbg8OcQSDia4UtM+6n1k5n0/QxREwKYhUj8xRtDJ4svD7ZS1PYuIPDgDofQW/9voSmgHYLTbHKdAcBP8vR6YsxoarexO6+v45BqwC89jnqvuvOImud3As= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1678983983; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=/FItiQDvjELtbuc2Gd7xW1Yw1QyIiUvjSsVgvYd2vBw=; b=bkNfxhCU7SNp2aHJaVR8nOQ8I1spqqslkL6veWkh+1Vy7NwUAfRt1h30+YAq/bd/SjLBvgAFr0y9VVfDQSqf9WS/JvaJqbMKHoIxw/Q5JrvK7hCVuWD1wZyOUGOaaEUD107T4/tYyBD5vQ6f7AFS4VwIXUJmol57DFthe//8lZw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+101281+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1678983983565111.93577307582507; Thu, 16 Mar 2023 09:26:23 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id nVxeYY1788612xV0OeNxxrop; Thu, 16 Mar 2023 09:26:23 -0700 X-Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web10.6597.1678950111571141620 for ; Thu, 16 Mar 2023 00:01:51 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10650"; a="335393007" X-IronPort-AV: E=Sophos;i="5.98,265,1673942400"; d="scan'208";a="335393007" X-Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Mar 2023 00:01:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10650"; a="1009121391" X-IronPort-AV: E=Sophos;i="5.98,265,1673942400"; d="scan'208";a="1009121391" X-Received: from jenkailx-desk1.gar.corp.intel.com ([10.227.107.51]) by fmsmga005.fm.intel.com with ESMTP; 16 Mar 2023 00:01:20 -0700 From: kasimx.liu@intel.com To: devel@edk2.groups.io Cc: KasimX Liu , Guo Dong , Ray Ni , James Lu , Gua Guo Subject: [edk2-devel] [PATCH] UefiPayloadPkg:Add new build commands for Universalpayload Date: Thu, 16 Mar 2023 15:01:15 +0800 Message-Id: <1629baa064819fae7cf91506b145151f131c5deb.1678949430.git.kasimx.liu@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,kasimx.liu@intel.com X-Gm-Message-State: YKKNjzDYy68ISicoBThaeqqCx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1678983983; bh=t4EQgyjgL6vj+jBdEzmYd70WYmrxC5Dk0/CcL5GAHZU=; h=Cc:Date:From:Reply-To:Subject:To; b=TFQLWCGIKjrAubXu8YDhogFlPCdTOox0yfXktAkInn+txC58lDtRpqaHRsCKxQc2sO4 am578VfoRZVHZsDyupREYZ1qA/tjhawYw+WjdUhlEnH6SsAzXJZ30DuqAX98OAnt81mTL id9sFEkU4kxf4KgwZfyuJcY2WWfoeYRMbPQ= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1678983985293100003 Content-Type: text/plain; charset="utf-8" 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 Reviewed-by: Gua Guo Reviewed-by: James Lu --- 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 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#101281): https://edk2.groups.io/g/devel/message/101281 Mute This Topic: https://groups.io/mt/97645785/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-