public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* Capsules and versions
@ 2018-11-01 14:22 Tomas Pilar (tpilar)
  2018-11-01 16:43 ` Sean Brogan
  0 siblings, 1 reply; 3+ messages in thread
From: Tomas Pilar (tpilar) @ 2018-11-01 14:22 UTC (permalink / raw)
  To: edk2-devel@lists.01.org

Hi,

I am trying to implement FMP in our IHV UEFI driver so that we can update firmware and the driver using capsules. I get the ESRT populated by the platform EsrtFmpDxe, that's all great.

However, it seems that EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER does not contain any version information about the firmware blob (neither Version nor ImageId). How is the OS tool that stages capsules supposed to know whether the capsule contains firmware that has been in fact already applied?

Cheers,
Tom


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Capsules and versions
  2018-11-01 14:22 Capsules and versions Tomas Pilar (tpilar)
@ 2018-11-01 16:43 ` Sean Brogan
  2018-11-02 10:47   ` Tomas Pilar (tpilar)
  0 siblings, 1 reply; 3+ messages in thread
From: Sean Brogan @ 2018-11-01 16:43 UTC (permalink / raw)
  To: Tomas Pilar (tpilar), edk2-devel@lists.01.org

Tom,

Short answer:  It is tool dependent. 

On Windows where the ESRT and FMP have been used for years there is another file that contains that information (Capsules are just driver packages so there is an INF and CAT file along with the BIN).  
Once the firmware gets to processing the actual payload (after stripping all the standard headers/structures) our firmware implementation makes use of a EDK2 defined header that contains this information as well as lowest supported version.   See here.  https://github.com/tianocore/edk2/blob/master/FmpDevicePkg/Include/Library/FmpPayloadHeaderLib.h  

Hope that helps. 

Thanks
Sean



-----Original Message-----
From: edk2-devel <edk2-devel-bounces@lists.01.org> On Behalf Of Tomas Pilar (tpilar)
Sent: Thursday, November 1, 2018 7:22 AM
To: edk2-devel@lists.01.org
Subject: [edk2] Capsules and versions

Hi,

I am trying to implement FMP in our IHV UEFI driver so that we can update firmware and the driver using capsules. I get the ESRT populated by the platform EsrtFmpDxe, that's all great.

However, it seems that EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER does not contain any version information about the firmware blob (neither Version nor ImageId). How is the OS tool that stages capsules supposed to know whether the capsule contains firmware that has been in fact already applied?

Cheers,
Tom
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.01.org%2Fmailman%2Flistinfo%2Fedk2-devel&amp;data=02%7C01%7Csean.brogan%40microsoft.com%7Cdbe4babaafe84ee0a01c08d6400699cd%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636766794429049806&amp;sdata=CaAhG3UhI2%2BqSA6ml7USrFpGjuENBMNS4HK5xKuUGec%3D&amp;reserved=0


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Capsules and versions
  2018-11-01 16:43 ` Sean Brogan
@ 2018-11-02 10:47   ` Tomas Pilar (tpilar)
  0 siblings, 0 replies; 3+ messages in thread
From: Tomas Pilar (tpilar) @ 2018-11-02 10:47 UTC (permalink / raw)
  To: Sean Brogan, edk2-devel@lists.01.org

Hi Sean,

This solves my problem, thank you very much!

Cheers,
Tom

On 01/11/2018 16:43, Sean Brogan wrote:
> Tom,
>
> Short answer:  It is tool dependent. 
>
> On Windows where the ESRT and FMP have been used for years there is another file that contains that information (Capsules are just driver packages so there is an INF and CAT file along with the BIN).  
> Once the firmware gets to processing the actual payload (after stripping all the standard headers/structures) our firmware implementation makes use of a EDK2 defined header that contains this information as well as lowest supported version.   See here.  https://github.com/tianocore/edk2/blob/master/FmpDevicePkg/Include/Library/FmpPayloadHeaderLib.h  
>
> Hope that helps. 
>
> Thanks
> Sean
>
>
>
> -----Original Message-----
> From: edk2-devel <edk2-devel-bounces@lists.01.org> On Behalf Of Tomas Pilar (tpilar)
> Sent: Thursday, November 1, 2018 7:22 AM
> To: edk2-devel@lists.01.org
> Subject: [edk2] Capsules and versions
>
> Hi,
>
> I am trying to implement FMP in our IHV UEFI driver so that we can update firmware and the driver using capsules. I get the ESRT populated by the platform EsrtFmpDxe, that's all great.
>
> However, it seems that EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER does not contain any version information about the firmware blob (neither Version nor ImageId). How is the OS tool that stages capsules supposed to know whether the capsule contains firmware that has been in fact already applied?
>
> Cheers,
> Tom
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.01.org%2Fmailman%2Flistinfo%2Fedk2-devel&amp;data=02%7C01%7Csean.brogan%40microsoft.com%7Cdbe4babaafe84ee0a01c08d6400699cd%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636766794429049806&amp;sdata=CaAhG3UhI2%2BqSA6ml7USrFpGjuENBMNS4HK5xKuUGec%3D&amp;reserved=0



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-11-02 10:47 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-01 14:22 Capsules and versions Tomas Pilar (tpilar)
2018-11-01 16:43 ` Sean Brogan
2018-11-02 10:47   ` Tomas Pilar (tpilar)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox