From nobody Fri May 17 13:20:20 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+102120+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+102120+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1680092446; cv=none; d=zohomail.com; s=zohoarc; b=VV0MddljBnaIvnIs4s6A+WBhvzTDMTs47toTja9p/IEZhlnrG6QGwh44/UQOQV6b7KV+CHPfNGLvlYaz4yQPB+M+nsLi7FlgNU1jSZtN29E7Z+CSq9o1Aws92lA8VTAhr/OKTg3ZNW/fMEiGy2uA8HDMFSNMes+atJBC1p+3d7Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1680092446; 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=drHynmaLghBh49xRLcByRFkfrbbY/jGI8gw/xbIVuwo=; b=ZgU2fzZKODnadkdQ0T82fFsqskbeb3SkxiMg2vDgLE6J8MhYJKpjdUCOXW1luSSZdMurC0/zGXb/bLkEi+mfRdmIg8b6RvGQ6Doz4moOWpg3aL1E9xmLS8lmGjRFBQ8HwdmcunVrmvfTRxsSyaQhZDO19e59Of4NkDYKTw6S1N8= 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+102120+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 1680092446156680.928454355761; Wed, 29 Mar 2023 05:20:46 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 78XCYY1788612x6fiCL4FAm0; Wed, 29 Mar 2023 05:20:44 -0700 X-Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web11.20978.1680085263627154979 for ; Wed, 29 Mar 2023 03:21:03 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10663"; a="427112946" X-IronPort-AV: E=Sophos;i="5.98,300,1673942400"; d="scan'208";a="427112946" X-Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2023 03:21:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10663"; a="808145117" X-IronPort-AV: E=Sophos;i="5.98,300,1673942400"; d="scan'208";a="808145117" X-Received: from gguo-desk.gar.corp.intel.com ([10.5.215.23]) by orsmga004.jf.intel.com with ESMTP; 29 Mar 2023 03:21:00 -0700 From: linusx.wu@intel.com To: devel@edk2.groups.io Cc: Linus Wu , Guo Dong , Ray Ni , Sean Rhodes , James Lu , Gua Guo Subject: [edk2-devel] [PATCH] UefiPayloadPkg: Support more input parameter Date: Wed, 29 Mar 2023 18:20:57 +0800 Message-Id: <29d9e1b5a1b44b615c8a7e4fa78b60e76c22aa06.1680082801.git.linusx.wu@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,linusx.wu@intel.com X-Gm-Message-State: AZoJ4ApRz1V9mdBhcL1qFlPbx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1680092444; bh=eLd437ki4Q+n8b403dl9Ajdoc9vHY3BkJYePSSyK5iE=; h=Cc:Date:From:Reply-To:Subject:To; b=FpQdUQw86slcSMp9qxLH+c/CUC0jJHfNWOH2BhM9FM5mLN5pq9+77CHGU22M1w3N1Tu v5BWjI3LVKZgPzph8r78evKTRDsAq4T6JI+ohSD9eflFQluGAo/xlANejWgJbsvuPIHZo zthafpKJ07Pqay/Bbh3jMutm3DEJs30fNQc= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1680092446586100003 Content-Type: text/plain; charset="utf-8" From: Linus Wu REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4386 Add additional input parameter support --SpecRevision: user input spec version --Revision: user input revision --ProducerId: producer company name 1. UniversalPayloadBuild.py 2. Downgrade spec revision from 0.9 to 0.7 Cc: Guo Dong Cc: Ray Ni Cc: Sean Rhodes Cc: James Lu Cc: Gua Guo Signed-off-by: Linus Wu Reviewed-by: Gua Guo --- UefiPayloadPkg/UniversalPayloadBuild.py | 45 ++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/UefiPayloadPkg/UniversalPayloadBuild.py b/UefiPayloadPkg/Unive= rsalPayloadBuild.py index 522855eba4..7cd04fdceb 100644 --- a/UefiPayloadPkg/UniversalPayloadBuild.py +++ b/UefiPayloadPkg/UniversalPayloadBuild.py @@ -31,11 +31,48 @@ class UPLD_INFO_HEADER(LittleEndianStructure): def __init__(self): self.Identifier =3D b'PLDH' self.HeaderLength =3D sizeof(UPLD_INFO_HEADER) - self.SpecRevision =3D 0x0009 + self.SpecRevision =3D 0x0070 self.Revision =3D 0x0000010105 self.ImageId =3D b'UEFI' self.ProducerId =3D b'INTEL' =20 +def GenSpecRevision (Argument): + try: + (MajorStr, MinorStr) =3D Argument.split('.') + except: + raise argparse.ArgumentTypeError ('{} is not a valid SpecRevision = format (Major[8-bits].Minor[8-bits]).'.format (Argument)) + # + # Spec Revision Bits 15 : 8 - Major Version. Bits 7 : 0 - Minor Versio= n. + # + if len(MinorStr) > 0 and len(MinorStr) < 3: + try: + Minor =3D int(MinorStr, 16) if len(MinorStr) =3D=3D 2 else (in= t(MinorStr, 16) << 4) + except: + raise argparse.ArgumentTypeError ('{} Minor version of SpecRev= ision is not a valid integer value.'.format (Argument)) + else: + raise argparse.ArgumentTypeError ('{} is not a valid SpecRevision = format (Major[8-bits].Minor[8-bits]).'.format (Argument)) + + if len(MajorStr) > 0 and len(MajorStr) < 3: + try: + Major =3D int(MajorStr, 16) + except: + raise argparse.ArgumentTypeError ('{} Major version of SpecRev= ision is not a valid integer value.'.format (Argument)) + else: + raise argparse.ArgumentTypeError ('{} is not a valid SpecRevision = format (Major[8-bits].Minor[8-bits]).'.format (Argument)) + + return int('0x{0:02x}{1:02x}'.format(Major, Minor), 0) + +def Validate32BitInteger (Argument): + try: + Value =3D int (Argument, 0) + except: + raise argparse.ArgumentTypeError ('{} is not a valid integer value= .'.format (Argument)) + if Value < 0: + raise argparse.ArgumentTypeError ('{} is a negative value.'.format= (Argument)) + if Value > 0xffffffff: + raise argparse.ArgumentTypeError ('{} is larger than 32-bits.'.for= mat (Argument)) + return Value + def RunCommand(cmd): print(cmd) p =3D subprocess.Popen(cmd, shell=3DTrue, stdout=3Dsubprocess.PIPE, st= derr=3Dsubprocess.STDOUT,cwd=3Dos.environ['WORKSPACE']) @@ -111,6 +148,9 @@ def BuildUniversalPayload(Args, MacroList): # Buid Universal Payload Information Section ".upld_info" # upld_info_hdr =3D UPLD_INFO_HEADER() + upld_info_hdr.SpecRevision =3D Args.SpecRevision + upld_info_hdr.Revision =3D Args.Revision + upld_info_hdr.ProducerId =3D Args.ProducerId.encode()[:16] upld_info_hdr.ImageId =3D Args.ImageId.encode()[:16] upld_info_hdr.Attribute |=3D 1 if BuildTarget =3D=3D "DEBUG" else 0 fp =3D open(UpldInfoFile, 'wb') @@ -156,6 +196,9 @@ 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("-s", "--SpecRevision", type=3DGenSpecRevision, de= fault =3D'0.7', help=3D'Indicates compliance with a revision of this specif= ication in the BCD format.') + parser.add_argument("-r", "--Revision", type=3DValidate32BitInteger, d= efault =3D'0x0000010105', help=3D'Revision of the Payload binary. Major.Min= or.Revision.Build') + parser.add_argument("-o", "--ProducerId", default =3D'INTEL', help=3D'= A null-terminated OEM-supplied string that identifies the payload producer = (16 bytes maximal).') 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 (#102120): https://edk2.groups.io/g/devel/message/102120 Mute This Topic: https://groups.io/mt/97925255/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-