Capsule Updates


Tim Lewis
 

Yes

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of ruvimpiholyuk via groups.io
Sent: Thursday, August 25, 2022 1:36 PM
To: Tim Lewis <tim.lewis@...>; discuss@edk2.groups.io
Subject: Re: [edk2-discuss] Capsule Updates

Hi Tim,

Thank you that makes sense.
Am I correct in assuming that in the driver is where the code to deliver our payload lives?

Thank you for your time,
Ruvim


ruvimpiholyuk@...
 

Hi Tim,

Thank you that makes sense.
Am I correct in assuming that in the driver is where the code to deliver our payload lives?

Thank you for your time,
Ruvim


Tim Lewis
 

Hi Ruvin --

It is not intuitively obvious and the information is not gathered in one place in the specification. The UEFI FMP style capsule can contain up to two executables. I think you should look at section 23.3.2, where there is a nice picture showing the overall format, including the driver(s) and the data.

Hope this helps,
Tim

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of ruvimpiholyuk via groups.io
Sent: Thursday, August 25, 2022 1:02 PM
To: Laurie Jarlstrom <laurie.jarlstrom@...>; discuss@edk2.groups.io
Subject: Re: [edk2-discuss] Capsule Updates

Hi Laurie,

Thank you for taking the time to respond to my questions.

I am hoping to avoid using the UEFI Shell for a more user-friendly experience. Is there a way for us to be able to send a user our capsule in the OS and from there to invoke an update in the UEFI space?

Best regards,
Ruvim


ruvimpiholyuk@...
 

Hi Laurie,

Thank you for taking the time to respond to my questions.

I am hoping to avoid using the UEFI Shell for a more user-friendly experience. Is there a way for us to be able to send a user our capsule in the OS and from there to invoke an update in the UEFI space?

Best regards,
Ruvim


Laurie Jarlstrom
 

Hi Ruvim,
Let me see if I can help with more information:
1.) Do capsules contain the firmware payload and the .efi executable to manage the update?
[LJ]-- The capsule does contain a payload but the application to process the capsule, CapsuleApp.efi, is built separately to be executed in the UEFI Shell.
[LJ]--See example of the UEFI Application https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Application/CapsuleApp

2.) If I've created an application to process the update, how do I produce a capsule that can invoke an update?
[LJ]--See python scripts : https://github.com/tianocore/edk2/tree/master/BaseTools/Source/Python/Capsule
[LJ]--See example of platform Script calling scripts : https://github.com/tianocore/edk2-platforms/tree/master/Platform/Intel/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule
[LJ]-- for help on the parameters for the script try
$> python BaseTools\Source\Python\Capsule\GenerateCapsule.py -h
The script also calls gcab (Linux) or makecap (Windows)


3.) Are there any examples of someone producing a generic capsule?
[LJ]--The Minnowboard MAX will generate Capsule files if : CAPSULE_ENABLE = TRUE in the PlatformPkgConfig.dsc
[LJ]--See MinnowBoard Max Readme: https://github.com/tianocore/edk2-platforms/tree/master/Platform/Intel/Vlv2TbltDevicePkg
[LJ]-- See the Minnowboard Max Feature directory to see the libraries it is using to create the Capsules using the Firmware Management Protocol.
[LJ]-- The Build for MinnowBoard Max will post process with the script: GenCapsuleAll.py in : https://github.com/tianocore/edk2-platforms/tree/master/Platform/Intel/Vlv2TbltDevicePkg/Feature/Capsule/GenerateCapsule
[LJ]-- there are also capsules generated as part of the script that are not

[LJ]-- More documentation on Capsule Update: https://github.com/tianocore/tianocore.github.io/wiki/Capsule-Based-Firmware-Update-and-Firmware-Recovery & https://github.com/tianocore/tianocore.github.io/wiki/Capsule-Based-System-Firmware-Update


Thanks,
Laurie

Laurie.jarlstrom@...,

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of Oram, Isaac W
Sent: Thursday, August 25, 2022 9:16 AM
To: discuss@edk2.groups.io; ruvimpiholyuk@...
Subject: Re: [edk2-discuss] Capsule Updates

I am not capsule expert, but there are some docs to help:
https://github.com/tianocore-docs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Capsule_Update_and_Recovery_in_EDK_II.pdf
https://uefi.org/sites/default/files/resources/UEFI%20Fall%202018%20Intel%20UEFI%20Capsules.pdf
https://static.linaro.org/connect/yvr18/presentations/yvr18-508.pdf
There is also FMP, Firmware Management Protocol that is about infrastructure for device firmware updates that may be helpful.

Regards,
Isaac

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of ruvimpiholyuk@...
Sent: Thursday, August 25, 2022 8:57 AM
To: discuss@edk2.groups.io
Subject: [edk2-discuss] Capsule Updates

Hello all,

My team is attempting to develop a way for our device firmware to update in the UEFI space. It seems to us that capsules are the standard procedure. I'm finding a lot of information about capsules, but it seems very broad.

1.) Do capsules contain the firmware payload and the .efi executable to manage the update?

2.) If I've created an application to process the update, how do I produce a capsule that can invoke an update?

3.) Are there any examples of someone producing a generic capsule?

Thank you for your time.


ruvimpiholyuk@...
 

Thank you for your quick response Oram.

I've read those docs and I think I understand the general process, but I cannot seem to find the answers to my questions.

Best,
Ruvim


Isaac Oram
 

I am not capsule expert, but there are some docs to help:
https://github.com/tianocore-docs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Capsule_Update_and_Recovery_in_EDK_II.pdf
https://uefi.org/sites/default/files/resources/UEFI%20Fall%202018%20Intel%20UEFI%20Capsules.pdf
https://static.linaro.org/connect/yvr18/presentations/yvr18-508.pdf
There is also FMP, Firmware Management Protocol that is about infrastructure for device firmware updates that may be helpful.

Regards,
Isaac

-----Original Message-----
From: discuss@edk2.groups.io <discuss@edk2.groups.io> On Behalf Of ruvimpiholyuk@...
Sent: Thursday, August 25, 2022 8:57 AM
To: discuss@edk2.groups.io
Subject: [edk2-discuss] Capsule Updates

Hello all,

My team is attempting to develop a way for our device firmware to update in the UEFI space. It seems to us that capsules are the standard procedure. I'm finding a lot of information about capsules, but it seems very broad.

1.) Do capsules contain the firmware payload and the .efi executable to manage the update?

2.) If I've created an application to process the update, how do I produce a capsule that can invoke an update?

3.) Are there any examples of someone producing a generic capsule?

Thank you for your time.


ruvimpiholyuk@...
 

Hello all,

My team is attempting to develop a way for our device firmware to update in the UEFI space. It seems to us that capsules are the standard procedure. I'm finding a lot of information about capsules, but it seems very broad.

1.) Do capsules contain the firmware payload and the .efi executable to manage the update?

2.) If I've created an application to process the update, how do I produce a capsule that can invoke an update?

3.) Are there any examples of someone producing a generic capsule?

Thank you for your time.