From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 5B217780091 for ; Fri, 21 Jul 2023 14:34:54 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=7HGEzBX9nYWLm1FTmeNKk9bh3/ikHkqB90kW+ZhU0Rk=; c=relaxed/simple; d=groups.io; h=X-Received:X-Received:X-IronPort-AV:X-IronPort-AV:X-Received:X-ExtLoop1:X-IronPort-AV:X-IronPort-AV:X-Received:X-Received:X-Received:X-Received:X-Received:ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:X-Received:X-Received:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:X-MS-Has-Attach:X-MS-TNEF-Correlator:x-ms-publictraffictype:x-ms-traffictypediagnostic:x-ms-office365-filtering-correlation-id:x-ms-exchange-senderadcheck:x-ms-exchange-antispam-relay:x-microsoft-antispam-message-info:x-ms-exchange-antispam-messagedata-chunkcount:x-ms-exchange-antispam-messagedata-0:MIME-Version:X-MS-Exchange-CrossTenant-AuthAs:X-MS-Exchange-CrossTenant-AuthSource:X-MS-Exchange-CrossTenant-Network-Message-Id:X-MS-Exchange-CrossTenant-originalarrivaltime:X-MS-Exchange-CrossTenant-fromentityheader:X-MS-Exchange-CrossTenant-id:X-MS-Exchange-CrossTenant-mailboxtype:X-MS-Exchange-CrossTenant-userprincipalname:X-MS-Exchange-Transport-CrossTe nantHeadersStamped:X-OriginatorOrg:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:X-Gm-Message-State:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1689950093; v=1; b=Wqz+ljf75JDLvA1HeAjqrRO1XJu+GWdS7g1QE91H2iStey6W/PlHYVcTsC2TrrRoDA/EfPek 7rXulJlpQ2froC/TAo6GyUCPdM0xeQa9NjHOAPoCVUV39HRIm5B27IRe1LsFdhrOtSITXg0myK1 3CMxEDiqruRS6J3qC7IIB7AE= X-Received: by 127.0.0.2 with SMTP id MKkpYY7687511xezc3DedjOT; Fri, 21 Jul 2023 07:34:53 -0700 X-Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web10.8699.1689950091625876047 for ; Fri, 21 Jul 2023 07:34:52 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10778"; a="365930855" X-IronPort-AV: E=Sophos;i="6.01,220,1684825200"; d="scan'208";a="365930855" X-Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jul 2023 07:34:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10778"; a="790219421" X-IronPort-AV: E=Sophos;i="6.01,220,1684825200"; d="scan'208";a="790219421" X-Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga008.fm.intel.com with ESMTP; 21 Jul 2023 07:34:50 -0700 X-Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 21 Jul 2023 07:34:50 -0700 X-Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 21 Jul 2023 07:34:50 -0700 X-Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Fri, 21 Jul 2023 07:34:50 -0700 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.103) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Fri, 21 Jul 2023 07:34:49 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Mv1tuNsqShd94960xOm+kkOH39s9Y78CpluYSSkJvLXGSjGLDfAx6Z1UAS3qSSnoVuV8LIMWcEULpxBiiVpPSjGwKqGSy3TCRP8tBqjEkbEqf/qqB703Xjr6Oc0tH35i+uNraP8N+2JHAOPkjRqNQA9hZwJg2VKNEHUn2D6ERbRqtxYTnKpWmORNSJhvZws9HDIHKHeSWL2M75wZN48GFZWX/YD+WZcfGdIv2R93Y2SeAC1vS++w/VN9ycskvj+6lsIcI37DstAZSOgWkpce4YuMCOZGeHZF8804Y1ixnJej5ZhfEA3cY5inWGx4ViNc8TlGeO68HDyDZOX1p33ASw== 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=IxqiEQjMT5TJdT73L7xqpoxyIL7jRvh6ecwbfhinN5I=; b=gPbxkmYRh2+/zfRo4s1fN0IJFEvS7/qb2PBwwRuH47i6uFek2rmY7RlS1yPcnlUSE5P6MkHkecsokURsy0o0hSGqgTEGOr6pcLu2pePpUzj6TfSwNUklYA16s5WdXlZF2vgC6vViOgWEaWrNq268qAK6322bylgQvCwVa6bOAyb+hwa+Hl5DLwYbYqlLI2lWKoK89yzgEMeQZk0jlfJt/iN7d2aujoXPk3g018LqJu7PIJDJxMyc8UFWrIfM/B+xHPYGVgqtJWG/JrSMWd6KoKzP9A/RAGGNRAbcvmT1vBFmy+K4kJ7QaFBSl3SjV87F1ixZi4ps5uOUhNuopjl7zA== 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 X-Received: from BN9PR11MB5483.namprd11.prod.outlook.com (2603:10b6:408:104::10) by CY8PR11MB7009.namprd11.prod.outlook.com (2603:10b6:930:57::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.24; Fri, 21 Jul 2023 14:34:47 +0000 X-Received: from BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::380d:dcf6:c4b:d48b]) by BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::380d:dcf6:c4b:d48b%4]) with mapi id 15.20.6609.026; Fri, 21 Jul 2023 14:34:47 +0000 From: "Chiu, Chasel" To: "Kuo, Ted" , "devel@edk2.groups.io" CC: "Desimone, Nathaniel L" , "Zeng, Star" , "S, Ashraf Ali" , "Duggapu, Chinni B" , "Ng, Ray Han Lim" , "Mohapatra, Susovan" Subject: Re: [edk2-devel][PATCH v2] IntelFsp2Pkg: Support child FV in SplitFspBin.py Thread-Topic: [edk2-devel][PATCH v2] IntelFsp2Pkg: Support child FV in SplitFspBin.py Thread-Index: AQHZuvPJ4eDuzZscaEWDSI+chmdR1q/ESwcA Date: Fri, 21 Jul 2023 14:34:47 +0000 Message-ID: References: <72954adb273dbf636be248eaee8a35477eae3c50.1689848378.git.ted.kuo@intel.com> In-Reply-To: <72954adb273dbf636be248eaee8a35477eae3c50.1689848378.git.ted.kuo@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR11MB5483:EE_|CY8PR11MB7009:EE_ x-ms-office365-filtering-correlation-id: 3e18cd71-35fc-4d4b-00c9-08db89f7a21c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: EJ70EX0El5c73rVPZCuCPKUATQlYMO2CLoNte1P/9QsPclCv2O3NaCdnk2azPt+0nNq6ESzCz1CLI5GutavAstW0XE75qw7PfwPlKlSzrsS7rxn4pobvkGBvtvIg+b5T65dYUYKIv1kEMEmWKJlI8O809gfkup9GLamyTlh8f0kWj0mVliZVBOZU7pM+EQ6xcSxwLirlqIXxMuvw4A4NK1w2EMpv9yG/12Yl6RvfRU+9gJG45pQvI3VciUH37KlTOH2vN5HcF/qiYKPCvD6j7S5HmT2giSYO/jcrWSK+56adgTWVi7qsKSjPe0wxiEwN4s5HyIRbkBMXTIhygZu794u/sdETvtcSytDqPlT40J6mVMj3Slz+RAkaHKvLAnFE7TelD2+zAf7+7vQ0r2y1ifzVSkThFh+kie6ZRXcllpQFL74xJQFqT95/KzeiMVb3QtV2onKa3KD0QAnMR0VA2nM/U3xZ/89fI6zBfTfD4XlfqBRUd8l2rHyoRcx3SVfyjN+1C2iHuodlUbshJBUHnYAz2Ra6A0THmR6EHHtCyKWcWjGKIpxmswv46Skik4ht/MOs5obNm4QzgJtuzUz3yyoUcaB0uBwWlOT3EwsPnGI= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?DJEsZ2byqANuvOZjoNAuKCeZ1CpnZMwxzHsrVnau0ya9Sz+AHWP7/MjoLoE+?= =?us-ascii?Q?Zt2zm1nbUIlTkhY2NhkeOV1k/FAx0pA/X3FwXHFBIh8iyd9NnftD3B464Ama?= =?us-ascii?Q?/NQNwiR39+Am8HvMgEf10kfDScbqYccWcooKeEWU0EZ6qvBXSXNNbBlD4jTv?= =?us-ascii?Q?k0oi3tv3zgPlxBC07vj53IC0BMaoypsZAftUIuIKgxl+3XL0hs5MBGrHdpf1?= =?us-ascii?Q?sw69lCPsvDK4NnvPDJvny+duViD74h+l7hzjjDSJ+R9Hr99mSU+coyPvf9aP?= =?us-ascii?Q?057ks79ZzxVWucjTZbDZa59Bi53DWb3l4fwRDHfDUjM24v3iTb1TyVVlF9F0?= =?us-ascii?Q?ZhIiwrRlYAomdGt/IXZSYRRl0YgBYq8/PS2wJOtYXN5b8mrXBQzST8dYi8Hq?= =?us-ascii?Q?8siG+07QKBkYDNNZQvjXG9XmDUw+cEy91q2fzCGnpgCgYZKJ3RYDjenbgAq0?= =?us-ascii?Q?Bda1I8NDXzwB7KurtFUCAPDtnS0uhr3CE30GIFGYfM7RUcTbVMMsZY0RJ8pr?= =?us-ascii?Q?vhftmghbU0v+PsUB+yr3Jfvut30ejRS0TEQwG7SenXgMFOX4vDc21eXWvUfo?= =?us-ascii?Q?rLAXYYxLNdyhMEdiR6adUe0inuG48D4j9BwTwCKpwIXaaxdDSkUPuUMSLpku?= =?us-ascii?Q?+B3vP+FXccYIjWnZEFXhP34lWC7FDiMRuAyGVRc2jqwQFQOQtGjnNMwU/ncW?= =?us-ascii?Q?gIFmWiYuJ9kud99Be9BXcjN9OyUYG0XEE+NHRgCM9qqJ2vhP5+0GhvWoJUxU?= =?us-ascii?Q?WcqFPaJ6N31QzTYmJj1moNtZUVo2VEYeL8MHdbsllhd8PTf8LTgYgFDn38wr?= =?us-ascii?Q?BPm9U4v7cXfkjyK+ikeKRbIsdPOWVIT+OMIQtpJpeqzY04ajdYEQi9adYz0c?= =?us-ascii?Q?xSsl3bYin7vcE5jHkde/nLkhbD+rX1V1fJBcJzK4+Qgj4oPFfHz3nwX5i1d/?= =?us-ascii?Q?fjf6D//jmzIVuJK1zlS0z/vHM7uFKwez20z1YVXN6Qlw66ZWdB41zD3voOCg?= =?us-ascii?Q?wZlPhzzAXei8r3izhqo1AIMhgYV5fSuDXmM+pADT/u/wCM7fqxoostB7Zdpq?= =?us-ascii?Q?Ej+XlD0WxiiPJig+8wOR2gxi6nABr2Jn2y6J2/5SHX5ElSfAV2QiSTuPzRXT?= =?us-ascii?Q?teHP/9vUKO4QWQfuVdxXbz+JVP5G1bqrs8NKgI0K9bpy87BoIK6UioSApn0o?= =?us-ascii?Q?aWXzqZhxRKA8H+hquDwGDVJ+ql+bR4iOLA4lTJEPTV5teRxZl+EI4sJBn7tt?= =?us-ascii?Q?pj5QqZEEPcvFjKRKFWZd4IrPJ9LxR5Vl79hk8yztNx1mGsA0+43fyL/krH4m?= =?us-ascii?Q?ZBMM7uI/oNoeqWgw8NW8kqpTpiZsz3jZAhP55WLhyrvXCDqT0G2BtdTNrBRz?= =?us-ascii?Q?Xyonrvm4vA+lr4xio4gKD6ZR3s51lOcLLOYu2BIFIBmNI6j2S5ZD8zVAup6R?= =?us-ascii?Q?bR2l0LBhw3nRiDrCiKa3ZPHuKjt9fcb6O5uCMVqAp+VkHE6JnXz81N5o4dCL?= =?us-ascii?Q?CbZbNY80EGzrwwT2JrZRrU6XOsYkxIJHzSLRC09ERRQH4ioBS59iUIDUsNdJ?= =?us-ascii?Q?a4/T1BbumLbqRb+C67dRjxQJzxZLmk9bT3RGWCQg?= 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: 3e18cd71-35fc-4d4b-00c9-08db89f7a21c X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jul 2023 14:34:47.2365 (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: 3F/72xJkvDqYv0aDemDCdyuqXoMHI9mwek2QN6DZ0FcU9wOwVBByk7aR+d/nXQ2U1UlDLOWEOF2inksAM7Q5wg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR11MB7009 X-OriginatorOrg: intel.com Precedence: Bulk 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,chasel.chiu@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: UBXbFE9CWPSu8YQ3fmO92NTIx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=Wqz+ljf7; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io Looks good to me. Thanks Ted! Reviewed-by: Chasel Chiu > -----Original Message----- > From: Kuo, Ted > Sent: Thursday, July 20, 2023 3:20 AM > To: devel@edk2.groups.io > Cc: Chiu, Chasel ; Desimone, Nathaniel L > ; Zeng, Star ; S, As= hraf > Ali ; Duggapu, Chinni B ; > Ng, Ray Han Lim ; Mohapatra, Susovan > > Subject: [edk2-devel][PATCH v2] IntelFsp2Pkg: Support child FV in SplitFs= pBin.py >=20 > https://bugzilla.tianocore.org/show_bug.cgi?id=3D4502 > Update SplitFspBin.py to support child FV in FSP binary. Without the patc= h, the > tool won't be able to rebase the images in child FV in FSP binary. >=20 > Cc: Chasel Chiu > Cc: Nate DeSimone > Cc: Star Zeng > Cc: Ashraf Ali S > Cc: Chinni B Duggapu > Cc: Ray Han Lim Ng > Cc: Susovan Mohapatra > Signed-off-by: Ted Kuo > --- > IntelFsp2Pkg/Tools/SplitFspBin.py | 44 ++++++++++++++++++++++++++----- > 1 file changed, 37 insertions(+), 7 deletions(-) >=20 > diff --git a/IntelFsp2Pkg/Tools/SplitFspBin.py b/IntelFsp2Pkg/Tools/Split= FspBin.py > index 419e5ba985..558eaf401a 100644 > --- a/IntelFsp2Pkg/Tools/SplitFspBin.py > +++ b/IntelFsp2Pkg/Tools/SplitFspBin.py > @@ -469,6 +469,7 @@ class FirmwareVolume: > else: self.FvExtHdr =3D None self.FfsList = =3D []+ self.ChildFvList =3D > [] def ParseFv(self): fvsize =3D len(self.FvData)@@ -483,8 += 484,30 @@ class > FirmwareVolume: > offset =3D fvsize else: ffs = =3D FirmwareFile (offset, > self.FvData[offset:offset + int(ffshdr.Size)])- ffs.ParseF= fs()- > self.FfsList.append(ffs)+ # check if there is child fv+ = childfvfound > =3D 0+ if (ffs.FfsHdr.Type =3D=3D > EFI_FV_FILETYPE.FIRMWARE_VOLUME_IMAGE):+ csoffset =3D = offset + > sizeof (EFI_FFS_FILE_HEADER)+ csoffset =3D AlignPtr(cs= offset, 4)+ > # find fv section+ while csoffset < (offset + int(ffs.= FfsHdr.Size)):+ > cshdr =3D EFI_COMMON_SECTION_HEADER.from_buffer (self.FvData, csoffset)+ > if (cshdr.Type =3D=3D EFI_SECTION_TYPE.FIRMWARE_VOLUME_IMAGE):+ > childfvfound =3D 1+ break+ = else:+ # > check next section+ csoffset +=3D int(cshdr.Si= ze)+ > csoffset =3D AlignPtr(csoffset, 4)+ if (childfvfound):+ = childfvoffset > =3D csoffset + sizeof (EFI_COMMON_SECTION_HEADER)+ chi= ldfvhdr =3D > EFI_FIRMWARE_VOLUME_HEADER.from_buffer (self.FvData, childfvoffset)+ > childfv =3D FirmwareVolume (childfvoffset, self.FvData[childfvoffset:chil= dfvoffset + > int(childfvhdr.FvLength)])+ childfv.ParseFv ()+ > self.ChildFvList.append(childfv)+ else:+ = ffs.ParseFfs()+ > self.FfsList.append(ffs) offset +=3D int(ffshdr.Size) = offset =3D > AlignPtr(offset) @@ -789,6 +812,13 @@ def SplitFspBin (fspfile, outdir, > nametemplate): > hfsp.write(fv.FvData) hfsp.close() +def GetImageFrom= Fv (fd, > parentfvoffset, fv, imglist):+ for ffs in fv.FfsList:+ for sec = in ffs.SecList:+ > if sec.SecHdr.Type in [EFI_SECTION_TYPE.TE, EFI_SECTION_TYPE.PE32]: # T= E or > PE32+ offset =3D fd.Offset + parentfvoffset + fv.Offset + = ffs.Offset + > sec.Offset + sizeof(sec.SecHdr)+ imglist.append ((offset, = len(sec.SecData) > - sizeof(sec.SecHdr)))+ def RebaseFspBin (FspBinary, FspComponent, FspBas= e, > OutputDir, OutputFile): fd =3D FirmwareDevice(0, FspBinary) fd.Pa= rseFd ()@@ - > 832,11 +862,11 @@ def RebaseFspBin (FspBinary, FspComponent, FspBase, > OutputDir, OutputFile): > imglist =3D [] for fvidx in fsp.FvIdxList: f= v =3D fd.FvList[fvidx]- for > ffs in fv.FfsList:- for sec in ffs.SecList:- = if sec.SecHdr.Type in > [EFI_SECTION_TYPE.TE, EFI_SECTION_TYPE.PE32]: # TE or PE32- > offset =3D fd.Offset + fv.Offset + ffs.Offset + sec.Offset + sizeof(sec.S= ecHdr)- > imglist.append ((offset, len(sec.SecData) - sizeof(sec.SecHdr)))+ > GetImageFromFv (fd, 0, fv, imglist)+ # get image from child fv= + for > childfv in fv.ChildFvList:+ print ("Get image from child f= v of fv%d, parent > fv offset: 0x%x" % (fvidx, fv.Offset))+ GetImageFromFv (fd= , fv.Offset, > childfv, imglist) fcount =3D 0 pcount =3D 0-- > 2.40.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 (#107124): https://edk2.groups.io/g/devel/message/107124 Mute This Topic: https://groups.io/mt/100252890/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-