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 FMP 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 to application.
[cid:image001.jpg@01D1FE1F.828C9E70]


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.

Regards,
Ankit Singh

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to