From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (using TLSv1 with cipher CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id BAFC81A1E21 for ; Mon, 29 Aug 2016 00:58:38 -0700 (PDT) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP; 29 Aug 2016 00:58:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,595,1464678000"; d="scan'208";a="2194861" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga005.jf.intel.com with ESMTP; 29 Aug 2016 00:58:38 -0700 Received: from fmsmsx101.amr.corp.intel.com (10.18.124.199) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 29 Aug 2016 00:58:37 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx101.amr.corp.intel.com (10.18.124.199) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 29 Aug 2016 00:58:37 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.116]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.107]) with mapi id 14.03.0301.000; Mon, 29 Aug 2016 15:58:35 +0800 From: "Yao, Jiewen" To: "Ankit_Singh3@Dell.com" , "edk2-devel@lists.01.org" Thread-Topic: [EDK2] DxeCapsuleLib returns Status Issue Thread-Index: AdH98GtsCy4QvCtoQNmxQMae1pGCQwAANJIAAPYzTiAAADRncA== Date: Mon, 29 Aug 2016 07:58:35 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C50385EE189@SHSMSX104.ccr.corp.intel.com> References: In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: DxeCapsuleLib returns Status Issue X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Aug 2016 07:58:38 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi That is good problem statement. Do you think we can use Capsule Status Variable to record such information? It is defined in UEFI spec - "7.5.6 UEFI variable reporting on the Success = or any Errors encountered in processing of capsules after restart" The application can use this standard way to check status. Thank you Yao Jiewen > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Ankit_Singh3@Dell.com > Sent: Monday, August 29, 2016 3:51 PM > To: edk2-devel@lists.01.org > Subject: [edk2] [EDK2] DxeCapsuleLib returns Status Issue >=20 > Dell - Internal Use - Confidential > Hi EDK2 Developers, >=20 > We are incorporating DxeCapsuleLib for FMP Capsule Update into our UEFI > product, but we are hitting few issues as described below. >=20 > In case of Capsule Update "SetImage" is randomly done for all the FMP > Handles in case Image Type Id GUID and Image Index matches (this is > expected as there might be multiple similar hardware), but looks like the > returns of each FMP update is not handled. > For example if there are 5 FMP handles (can be for different-different > devices) and assume that any particular device handle is at 3rd index, > therefore the update goes through successfully on the 3rd attempt but sin= ce > HandleCount value is 5 it tries further with 4th and 5th Handle. This 4th= & 5th > Handle attempt can fail for any of the calls within the FMP Handle "for l= oop" > (HandleProtocol/GetImageInfo) and hence the final status is returned as > FAILURE to application layer. >=20 > Below is the code-snippet from DxeCapsuleLib.c , in case of HandleProtoco= l > & GetImageInfo failure, "for" loop for Handle count is continued and the > previous Status value is over-written with this new return (return from > HandleProtocol & GetImageInfo) and finally returned to application. > [cid:image001.jpg@01D201F8.38564220] >=20 >=20 > Proposed Solution:- > Can ProcessFmpCapsuleImage() have an extra OUT parameter which gives > the list of all successful FMP Handles along with the updated GUID values= , so > that any application can make the judgment of Update SUCCESS/FAILURE > based on FMP Handle and proceed accordingly at application layer. >=20 > Regards, > Ankit Singh >=20 > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel