From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web09.11588.1582117295810736040 for ; Wed, 19 Feb 2020 05:01:35 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: liming.gao@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Feb 2020 05:01:35 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,459,1574150400"; d="scan'208";a="436224615" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga006.fm.intel.com with ESMTP; 19 Feb 2020 05:01:35 -0800 Received: from shsmsx602.ccr.corp.intel.com (10.109.6.142) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 19 Feb 2020 05:01:35 -0800 Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by SHSMSX602.ccr.corp.intel.com (10.109.6.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 19 Feb 2020 21:01:33 +0800 Received: from shsmsx606.ccr.corp.intel.com ([10.109.6.216]) by SHSMSX606.ccr.corp.intel.com ([10.109.6.216]) with mapi id 15.01.1713.004; Wed, 19 Feb 2020 21:01:33 +0800 From: "Liming Gao" To: "Feng, YunhuaX" , "devel@edk2.groups.io" CC: "Feng, Bob C" , "Zhang, Hongbin1" Subject: Re: [edk2-staging/FceFmmt][PATCH] BaseTools/FCE: Fix multiple FVs with SEC module issue Thread-Topic: [edk2-staging/FceFmmt][PATCH] BaseTools/FCE: Fix multiple FVs with SEC module issue Thread-Index: AdXjFldz70Jm9uH1TiuqhkicdVOergEDlRLQ Date: Wed, 19 Feb 2020 13:01:33 +0000 Message-ID: References: <5d0678bd8a4a47e0842523c28412ce8c@intel.com> In-Reply-To: <5d0678bd8a4a47e0842523c28412ce8c@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action x-originating-ip: [10.239.127.36] MIME-Version: 1.0 Return-Path: liming.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Liming Gao > -----Original Message----- > From: Feng, YunhuaX > Sent: Friday, February 14, 2020 5:15 PM > To: devel@edk2.groups.io > Cc: Gao, Liming ; Feng, Bob C ; Zhang, Hongbin1 > Subject: [edk2-staging/FceFmmt][PATCH] BaseTools/FCE: Fix multiple FVs wi= th SEC module issue >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2527 >=20 > One BIOS image may have more than FVs with SEC module. > FCE tool should find the latest FV with SEC module as BFV image. >=20 > Cc: Bob Feng > Cc: Liming Gao > Signed-off-by: Yunhua Feng > --- > BaseTools/Source/C/BfmLib/BinFileManager.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) >=20 > diff --git a/BaseTools/Source/C/BfmLib/BinFileManager.c b/BaseTools/Sourc= e/C/BfmLib/BinFileManager.c > index 9b4e0929f5..69521044b8 100644 > --- a/BaseTools/Source/C/BfmLib/BinFileManager.c > +++ b/BaseTools/Source/C/BfmLib/BinFileManager.c > @@ -251,10 +251,11 @@ BfmImageAdd ( > BOOLEAN FfsLevelFoundFlag; > CHAR8 *OutputFileName; > CHAR8 *FvId; > BOOLEAN FirstInFlag; > BOOLEAN FvGuidExisted; > + FV_INFORMATION *FvInFdTmp; >=20 > NewFvLength =3D 0; > FvEncapLevel =3D 0; > NewAddedFfsLevel =3D 0; >=20 > @@ -269,10 +270,11 @@ BfmImageAdd ( > TemDir =3D NULL; > LocalEncapDataTemp =3D NULL; > OutputFileName =3D NULL; > FvId =3D NULL; > FvGuidExisted =3D FALSE; > + FvInFdTmp =3D NULL; >=20 > // > // Get the size of ffs file to be inserted. > // > NewFfsLength =3D GetFileSize(NewFile); > @@ -306,10 +308,19 @@ BfmImageAdd ( > // > FvInFd =3D FdData->Fv; > do { > if ((FvGuidExisted && mFvGuidIsSet && FvInFd->IsInputFvFlag) || ((!F= vGuidExisted || (!mFvGuidIsSet)) && FvInFd->IsBfvFlag)) { >=20 > + if (FvInFd->IsBfvFlag) { > + FvInFdTmp =3D FdData->Fv; > + while (FvInFdTmp !=3D NULL) { > + if (FvInFdTmp->IsBfvFlag) { > + FvInFd =3D FvInFdTmp; > + } > + FvInFdTmp =3D FvInFdTmp->FvNext; > + } > + } > Status =3D LibLocateBfv (FdData, &FvId, &FvInFd); >=20 > if (EFI_ERROR (Status)) { > printf("Error while locate BFV from FD.\n"); > LibBfmFreeFd(FdData); > -- > 2.12.2.windows.2