From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 6DBAE1A1E12 for ; Tue, 30 Aug 2016 17:54:56 -0700 (PDT) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga104.jf.intel.com with ESMTP; 30 Aug 2016 17:54:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.30,259,1470726000"; d="scan'208,217";a="1043686993" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga002.jf.intel.com with ESMTP; 30 Aug 2016 17:54:55 -0700 Received: from fmsmsx125.amr.corp.intel.com (10.18.125.40) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.248.2; Tue, 30 Aug 2016 17:54:55 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by FMSMSX125.amr.corp.intel.com (10.18.125.40) with Microsoft SMTP Server (TLS) id 14.3.248.2; Tue, 30 Aug 2016 17:54:55 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.109]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.102]) with mapi id 14.03.0248.002; Wed, 31 Aug 2016 08:54:53 +0800 From: "Yao, Jiewen" To: "Ankit_Singh3@Dell.com" , "edk2-devel@lists.01.org" CC: "Yao, Jiewen" Thread-Topic: [EDK2] DxeCapsuleLib returns Status Issue Thread-Index: AdH98GtsCy4QvCtoQNmxQMae1pGCQwAANJIAAPYzTiAAADRncAAQyXogAETw8jA= Date: Wed, 31 Aug 2016 00:54:52 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C50385F5F75@shsmsx102.ccr.corp.intel.com> References: <74D8A39837DF1E4DA445A8C0B3885C50385EE189@SHSMSX104.ccr.corp.intel.com> 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 X-Content-Filtered-By: Mailman/MimeDel 2.1.21 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: Wed, 31 Aug 2016 00:54:56 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Ankit Singh This seems a missing feature in current EDKII. Thanks to catch that. Would you please file a bugzillar tracker, so that it can recorded? The Bugzilla is introduced @ http://www.tianocore.org/news/2016/07/22/Bugzi= lla.html The URL for Bugzilla is @ https://tianocore.acgmultimedia.com/ Thank you Yao Jiewen From: Ankit_Singh3@Dell.com [mailto:Ankit_Singh3@Dell.com] Sent: Tuesday, August 30, 2016 12:05 AM To: Yao, Jiewen Subject: RE: [EDK2] DxeCapsuleLib returns Status Issue Dell - Internal Use - Confidential Hi Jiewen, Thanks for pointing me to Capsule Status Variable (UEFI spec - Section 7.5= .6), looks like it exactly what I was expecting. But I looked into latest E= DK2 code and could not find it being populated and stored/saved anywhere. Regards, Ankit Singh -----Original Message----- From: Yao, Jiewen [mailto:jiewen.yao@intel.com] Sent: Monday, August 29, 2016 1:29 PM To: Singh3, Ankit ; edk2-devel@lists.01.org Subject: RE: [EDK2] DxeCapsuleLib returns Status Issue 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 > > Dell - Internal Use - Confidential > Hi EDK2 Developers, > > We are incorporating DxeCapsuleLib for FMP Capsule Update into our > UEFI product, but we are hitting few issues as described below. > > 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 > since 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 FM= P Handle "for loop" > (HandleProtocol/GetImageInfo) and hence the final status is returned > as FAILURE to application layer. > > Below is the code-snippet from DxeCapsuleLib.c , in case of > HandleProtocol & 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 t= o application. > [cid:image001.jpg@01D201F8.38564220] > > > 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 applicatio= n layer. > > Regards, > Ankit Singh > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel