From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web12.14478.1632623598508546011 for ; Sat, 25 Sep 2021 19:33:18 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=hEHk3cnl; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: dun.tan@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10118"; a="223953135" X-IronPort-AV: E=Sophos;i="5.85,322,1624345200"; d="scan'208";a="223953135" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Sep 2021 19:33:17 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,322,1624345200"; d="scan'208";a="654405248" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga005.jf.intel.com with ESMTP; 25 Sep 2021 19:33:17 -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.2242.12; Sat, 25 Sep 2021 19:33:16 -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.2242.12 via Frontend Transport; Sat, 25 Sep 2021 19:33:16 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.173) 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.2242.12; Sat, 25 Sep 2021 19:33:16 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L4A9iKBCf6BlTHqSgT/fSvZXvQ73V4uBfUP6vwGnMrUyeBVj31y8n4cQNKbvLeGLrMYV5+ppgoLg3hKckQlq152/lANnJtmWGUj/bvbDUBfgXBkopEt82R9OY6wVvDo71TlIOepVd5WuGPyv8t+G2ZsnVbuLsUQ0IYqfH3m3mwalCsto0V/Yzre/jfdfpSZrvy5PLSshiTF7fSHcUhJzMLSnFDW0STbPKmgkwxeT0dLmNl/r8VOzlpaORZoGO+a9a1pKCFKuj3HuISc0HDFyPGPW99OrernnyvpukxsBzDs7LLGYt5drk0jWdoTZfb2yZOd1pEWyebfYE2d4H7oalA== 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; bh=dA3j01X/+teclGE9bjX7PjBD3xMR97nOJsn6yVoVb8Q=; b=ZvhtDae/6dtfmtUsFTcU9jAN1Z+LCM7oI6lrpLJ+C/b88zcNZHctPZ50QrKovYtYLBF9MEYKloNcD0FTn1ksFRDWc2frq8JmB3QNClapNM57lXcNlTO6PHE3z2qGkJvPtepWtHQNdP2XC1sUMTJYze+tW0g4QcpU4pyjU+EEWOXVZTW9fGM26l7tjlzPt+J+0GH5PfSyIdmqDXsmyoSs2hJGsLa7v5CLY/eIG3aqVGqj4rAeuCHhnXaNXUTC0O/Dj6s9LYCiEVVITybsBm3yhKbHxpWWOTNugGiPc+g5SB71Lyq5MzTPokOElPwOMprSkNtbT6TczZyYIBwGh3d+YA== 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=dA3j01X/+teclGE9bjX7PjBD3xMR97nOJsn6yVoVb8Q=; b=hEHk3cnlIUnqpQ8fSxnFZtGMSEDSEiEGASO8C7ec26HSdELAT0M9SpLwrKmrk7S8OpABOZHJrZsQfdZujtqyI82N69eFE0/7NrqShIlp0hHSHif7I5WIlNraosq1FSezZYYWLrGU8dCyCEaebgbnLZGAk2E2YRqsiHvdcbaA20I= Received: from BN9PR11MB5483.namprd11.prod.outlook.com (2603:10b6:408:104::10) by BN6PR11MB1252.namprd11.prod.outlook.com (2603:10b6:404:47::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.13; Sun, 26 Sep 2021 02:33:15 +0000 Received: from BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::882:4e40:b0e4:239e]) by BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::882:4e40:b0e4:239e%7]) with mapi id 15.20.4544.021; Sun, 26 Sep 2021 02:33:15 +0000 From: "duntan" To: "Ni, Ray" , "Dong, Guo" , "devel@edk2.groups.io" CC: "Ma, Maurice" , "You, Benjamin" Subject: Re: [`edk2-devel][PATCH v2] UefiPayloadPkg: Add ".upld_info" in universal payload Thread-Topic: [`edk2-devel][PATCH v2] UefiPayloadPkg: Add ".upld_info" in universal payload Thread-Index: AQHXsnuVkZpNAEy8+k25OjHMxUCA/Ku1lfxA Date: Sun, 26 Sep 2021 02:33:15 +0000 Message-ID: References: <20210925231211.221-1-guo.dong@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.200.16 dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 17d422b2-caa4-4dc8-c0ae-08d98095fe28 x-ms-traffictypediagnostic: BN6PR11MB1252: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:345; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: SXRvbVAfRG73LPEksfH/slsN09YGI4xBvHp7xeEBIAFIvgozGRFj/RvUc5VJ13DXeef9lDRtwj39xDXZ58yNR8nIMvb6FNBFm8//ZI2CSdTMpvm1Ca4ZdRiJiTjOQVMGWXcjEl7GmimnJWsjn5MGHn9PFUoyu0cPQvgerOzVHzPZnYsOo1OkANnNQM6Q5lW7LIEW0Lw5ywWECmhGFZEEWifIPCsnj6TpaUBTglHUnRuzqOTvGsnpukwrQfHGhsPELtnupdD5hg23eGmSApTMBK005Rf6fvf+4ExnEKNCVWhaJ/L7JT/PasOzfMnTOEWQBaoPx/Ow/+UoNmEdfL6G62oE6J3UbMWN3w4juX/Pkg3208Qz7m4hX28YfKQFuetNcpDa9uXRZ+0m452HdmsWMPdt4SPKAQfuJNHxUKMdd6euPfJXP7DcUeXBhU1FfZSD8BY+T8tqNvq83BLxUcEeT7dM1dHZbDcGgdZvRCSDRi2Vik2XR9QC16j43DM19DDXnGDxpDbFIN19dcBSjyyjvKRpYcl67Y8ml4gqFRjVLyJF9NWB/PSCcTcMT8oLD50XvISq/NHobnz9IN86VKggFWx+snyGg1jL44Dj2ZUqLDsuwPp0xuHXAOeMN/Fq6i4Dwo6jCn2BSAdFf9G9olr0xXdKJj1dMhrqnBszxC+1wGPCl3KK4Y2Bh0aTlDODebU+P+67ifyUaDG3Hs+ckcZmah9c2XsJbxT+WIMqy0H9j1Q= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5483.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(8676002)(71200400001)(83380400001)(186003)(26005)(5660300002)(66556008)(6506007)(107886003)(53546011)(2906002)(7696005)(66946007)(38070700005)(55016002)(9686003)(66446008)(64756008)(66476007)(122000001)(110136005)(508600001)(38100700002)(52536014)(86362001)(316002)(4326008)(8936002)(33656002)(76116006)(54906003)(81973001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?kx8Rl1oYL4DPpg70sro2Qv3GJ6QVSbBVj/lZv2546u4Lg+jygXEXNYm1xVsE?= =?us-ascii?Q?zU+AUxyvxZ4krtmWne5KcwUvD1uhLhyoAdcZ8cudb1yjD7YChCF/ly6T9eq4?= =?us-ascii?Q?aS/m0C092DaFV+3vrWukPla8X2+yNJMBTnHCbfVeAkBeO2eGh9GNR6h5KN/w?= =?us-ascii?Q?StbTG1kUvFzzEwJfmSQrnY7/1mlsevlBANOZglLQQ4ecWZtlPLYKm4T2R9TC?= =?us-ascii?Q?c/7ksyzJWWUHc3WO3ZukmUpflXmZ6fFNH2CJ9BaAmTqduMpNdjYp2rEWMX5M?= =?us-ascii?Q?fqKlfULzwEtzd3oIQg21+22LaqFRAuD2qghvLFWURS7utMIC4DNCOWcg+xZj?= =?us-ascii?Q?M+VLjevgC6NTAbUji5htEcnjvpEszTvRBdouR4Lb4EOQs2anaC7Q2qWq+7Aw?= =?us-ascii?Q?15HZM4vmT7hhB9K0y6zuP3e1AqOa70N3vOkoynw2n65Pb5qMAVyBvkDxR+za?= =?us-ascii?Q?vl7Hq6YxwhwaY93Px8giJs+wV0uB+3hJszh1AxxsNskFVh0Kv4hPzK4f2N2k?= =?us-ascii?Q?UdNJvrjicJRcvdtYur5gdlEMdjRt4ZptesuYG6MB/5DIBUbc6aQm3+58IPQ6?= =?us-ascii?Q?huXdtLW2UwKUgjVoQl3LPdC1irrDXx6lp5ZhzvMD1jc0conUqWJkd29M5ybF?= =?us-ascii?Q?0DzTnHnjFVD5PFsdi9DgT3eyOhGTuXgbfwwCS+xAqxyYAy2+EGiYvKA+NaIU?= =?us-ascii?Q?8Z0JWQZoAzTCCL9trNHyvVDex/V7Oyb9GbF/tXbpIt4/emL8S1TQfjQzI72w?= =?us-ascii?Q?LmqKJcBT5lAa1pZrGMuuEq28dxlQZYnvw9GzqS995++3mKBwV9azyXSr1+Wr?= =?us-ascii?Q?8G9ZVmUc+xqITZJCBXh3IlUSTbdOHe/ZRAJiHmVJpCxX7xpjE/dEB0oaU5Tq?= =?us-ascii?Q?DzDDtm5I1B3B/dwq+yTubVV4zWlfUKgoZKAnwbZPv1ccp65ojMFzJ3HMBCqd?= =?us-ascii?Q?G1aVUAnT4h4Y37xO+p1gX9jBvE6Sw//qbaRhWclOI348tpxvBYg7NU2zyfPs?= =?us-ascii?Q?6SSXpCoXriRfxjzzDZ5R23NTjiXR1wUEaWvFbK27+rHstLcMqGkyorhOXLvp?= =?us-ascii?Q?0/nr/RV1BnGiLcon1DWqE2A+mRIcisqeLg0T6FhSFbKbCYoYcG23MSObMc+x?= =?us-ascii?Q?5q1SrIJlcI6uEBVkd4wOZEc4MLATVSDdbeuz5syInOT1SmTweZyRASupSJdp?= =?us-ascii?Q?lPSR7y/Bm35280c7eQoFlCVcIi9nzGh8mflef8a2Hqz8E8bDtIMhhc8iMldW?= =?us-ascii?Q?zSP02GtdpZGZ0aZV4w3bPRRDOT0nuyf+6Vb7HqHjsTI/p/GBHp2CZGTwMI3n?= =?us-ascii?Q?XFM=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5483.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 17d422b2-caa4-4dc8-c0ae-08d98095fe28 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Sep 2021 02:33:15.0160 (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: aCgVlcdhbpw+pVVzxEQ3WDRHcGfbx5CF8pZjxPa34BA+7lPFS4ZBFStsasWfZWIO21OkpQWgnReDLaGgir9oRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1252 Return-Path: dun.tan@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Ray, I have no comments. Thanks, Dun -----Original Message----- From: Ni, Ray =20 Sent: Sunday, September 26, 2021 10:10 AM To: Dong, Guo ; devel@edk2.groups.io Cc: Ma, Maurice ; You, Benjamin ; Tan, Dun Subject: RE: [`edk2-devel][PATCH v2] UefiPayloadPkg: Add ".upld_info" in un= iversal payload Reviewed-by: Ray Ni Dun, any comments? -----Original Message----- From: Dong, Guo Sent: Sunday, September 26, 2021 7:12 AM To: devel@edk2.groups.io Cc: Dong, Guo ; Ni, Ray ; Ma, Maurice= ; You, Benjamin Subject: [`edk2-devel][PATCH v2] UefiPayloadPkg: Add ".upld_info" in univer= sal payload From: Guo Dong V2: Use LittleEndianStructure by review comment. >>From the universal scalable firmware payload requirement V0.75, Payload mus= t have Universal Payload Information Section ".upld_info" So update the build tool to add this section. Cc: Ray Ni Cc: Maurice Ma Cc: Benjamin You Signed-off-by: Guo Dong --- UefiPayloadPkg/UniversalPayloadBuild.py | 42 +++++++++++++++++++++++++++++= ++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/UefiPayloadPkg/UniversalPayloadBuild.py b/UefiPayloadPkg/Unive= rsalPayloadBuild.py index b78c6a7620..e624ec5874 100644 --- a/UefiPayloadPkg/UniversalPayloadBuild.py +++ b/UefiPayloadPkg/UniversalPayloadBuild.py @@ -10,6 +10,31 @@ import subprocess import os import shutil import sys +from ctypes import * + +sys.dont_write_bytecode =3D True + +class UPLD_INFO_HEADER(LittleEndianStructure): + _pack_ =3D 1 + _fields_ =3D [ + ('Identifier', ARRAY(c_char, 4)), + ('HeaderLength', c_uint32), + ('SpecRevision', c_uint16), + ('Reserved', c_uint16), + ('Revision', c_uint32), + ('Attribute', c_uint32), + ('Capability', c_uint32), + ('ProducerId', ARRAY(c_char, 16)), + ('ImageId', ARRAY(c_char, 16)), + ] + + def __init__(self): + self.Identifier =3D b'UPLD' + self.HeaderLength =3D sizeof(UPLD_INFO_HEADER) + self.HeaderRevision =3D 0x0075 + self.Revision =3D 0x0000010105 + self.ImageId =3D b'UEFI' + self.ProducerId =3D b'INTEL' =20 def RunCommand(cmd): print(cmd) @@ -37,6 +62,7 @@ def BuildUniversalPayload(Args, MacroList): EntryOutputDir =3D os.path.join(BuildDir, f"{BuildTarget}_{ElfToolChai= n}", os.path.normpath("X64/UefiPayloadPkg/UefiPayloadEntry/UniversalPayload= Entry/DEBUG/UniversalPayloadEntry.dll")) PayloadReportPath =3D os.path.join(BuildDir, "UefiUniversalPayload.txt= ") ModuleReportPath =3D os.path.join(BuildDir, "UefiUniversalPayloadEntry= .txt") + UpldInfoFile =3D os.path.join(BuildDir, "UniversalPayloadInfo.bin") =20 if "CLANG_BIN" in os.environ: LlvmObjcopyPath =3D os.path.join(os.environ["CLANG_BIN"], "llvm-ob= jcopy") @@ -65,12 +91,21 @@ def BuildUniversalPayload(Args, MacroList): BuildModule +=3D Defines RunCommand(BuildModule) =20 + # + # Buid Universal Payload Information Section ".upld_info" + # + upld_info_hdr =3D UPLD_INFO_HEADER() + upld_info_hdr.ImageId =3D Args.ImageId.encode()[:16] + fp =3D open(UpldInfoFile, 'wb') + fp.write(bytearray(upld_info_hdr)) + fp.close() + # # Copy the DXEFV as a section in elf format Universal Payload entry. # - remove_section =3D '"%s" -I elf64-x86-64 -O elf64-x86-64 --remove-sect= ion .upld.uefi_fv %s'%(LlvmObjcopyPath, EntryOutputDir) - add_section =3D '"%s" -I elf64-x86-64 -O elf64-x86-64 --add-section .u= pld.uefi_fv=3D%s %s'%(LlvmObjcopyPath, FvOutputDir, EntryOutputDir) - set_section =3D '"%s" -I elf64-x86-64 -O elf64-x86-64 --set-section-al= ignment .upld.uefi_fv=3D16 %s'%(LlvmObjcopyPath, EntryOutputDir) + remove_section =3D '"%s" -I elf64-x86-64 -O elf64-x86-64=20 + --remove-section .upld_info --remove-section .upld.uefi_fv=20 + %s'%(LlvmObjcopyPath, EntryOutputDir) + add_section =3D '"%s" -I elf64-x86-64 -O elf64-x86-64 --add-section= .upld_info=3D%s --add-section .upld.uefi_fv=3D%s %s'%(LlvmObjcopyPath, Upl= dInfoFile, FvOutputDir, EntryOutputDir) + set_section =3D '"%s" -I elf64-x86-64 -O elf64-x86-64 --set-section= -alignment .upld.upld_info=3D16 --set-section-alignment .upld.uefi_fv=3D16 = %s'%(LlvmObjcopyPath, EntryOutputDir) RunCommand(remove_section) RunCommand(add_section) RunCommand(set_section) @@ -82,6 +117,7 @@ def main(): parser.add_argument('-t', '--ToolChain') parser.add_argument('-b', '--Target', default=3D'DEBUG') parser.add_argument("-D", "--Macro", action=3D"append", default=3D["UN= IVERSAL_PAYLOAD=3DTRUE"]) + parser.add_argument('-i', '--ImageId', type=3Dstr, help=3D'Specify=20 + payload ID (16 bytes maximal).', default =3D'UEFI') MacroList =3D {} args =3D parser.parse_args() if args.Macro is not None: -- 2.32.0.windows.2