[PATCH v8 05/13] stm32mp1: dk2: Add image information for capsule updates

Yann Gautier yann.gautier at foss.st.com
Thu Aug 18 18:36:01 CEST 2022


On 8/18/22 14:06, Sughosh Ganu wrote:
> hi Yann,
> 
> On Thu, 18 Aug 2022 at 13:35, Yann Gautier <yann.gautier at foss.st.com> wrote:
>>
>> On 8/17/22 14:43, Sughosh Ganu wrote:
>>> Enabling capsule update functionality on the platform requires
>>> populating information on the images that are to be updated using the
>>> functionality. Do so for the DK2 board.
>>>
>>> Signed-off-by: Sughosh Ganu <sughosh.ganu at linaro.org>
>>> Reviewed-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
>>> Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
>>> ---
>>> Changes since V7: None
>>>
>>>    board/st/stm32mp1/stm32mp1.c       | 23 +++++++++++++++++++++++
>>>    include/configs/stm32mp15_common.h |  4 ++++
>>>    2 files changed, 27 insertions(+)
>>>
>>> diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c
>>> index 9496890d16..0fda8f150d 100644
>>> --- a/board/st/stm32mp1/stm32mp1.c
>>> +++ b/board/st/stm32mp1/stm32mp1.c
>>> @@ -11,6 +11,7 @@
>>>    #include <clk.h>
>>>    #include <config.h>
>>>    #include <dm.h>
>>> +#include <efi_loader.h>
>>>    #include <env.h>
>>>    #include <env_internal.h>
>>>    #include <fdt_simplefb.h>
>>> @@ -87,6 +88,16 @@
>>>    #define USB_START_LOW_THRESHOLD_UV  1230000
>>>    #define USB_START_HIGH_THRESHOLD_UV 2150000
>>>
>>> +#if CONFIG_IS_ENABLED(EFI_HAVE_CAPSULE_SUPPORT)
>>> +struct efi_fw_image fw_images[1];
>>> +
>>> +struct efi_capsule_update_info update_info = {
>>> +     .images = fw_images,
>>> +};
>>> +
>>> +u8 num_image_type_guids = ARRAY_SIZE(fw_images);
>>> +#endif /* EFI_HAVE_CAPSULE_SUPPORT */
>>> +
>>>    int board_early_init_f(void)
>>>    {
>>>        /* nothing to do, only used in SPL */
>>> @@ -670,6 +681,18 @@ int board_init(void)
>>>
>>>        setup_led(LEDST_ON);
>>>
>>> +#if CONFIG_IS_ENABLED(EFI_HAVE_CAPSULE_SUPPORT)
>>> +     if (board_is_stm32mp15x_dk2()) {
>>> +             efi_guid_t image_type_guid = STM32MP15_DK2_FIP_IMAGE_GUID;
>>> +             guidcpy(&fw_images[0].image_type_id, &image_type_guid);
>>> +             fw_images[0].fw_name = u"STM32MP15-DK2-FIP";
>>> +             /*
>>> +              * For FWU multi bank update, the image
>>> +              * index will be computed at runtime
>>> +              */
>>> +             fw_images[0].image_index = 0;
>>> +     }
>>> +#endif
>>>        return 0;
>>>    }
>>>
>>> diff --git a/include/configs/stm32mp15_common.h b/include/configs/stm32mp15_common.h
>>> index c5412ffeb3..6ab10d8ce5 100644
>>> --- a/include/configs/stm32mp15_common.h
>>> +++ b/include/configs/stm32mp15_common.h
>>> @@ -34,6 +34,10 @@
>>>    #define CONFIG_SERVERIP                 192.168.1.1
>>>    #endif
>>>
>>
>> Hi Sugosh,
>>
>> Sorry for the late review.
>>
>>> +#define STM32MP15_DK2_FIP_IMAGE_GUID \
>> Although this is now only supported on this STM32MP15_DK2 board, I don't
>> think this macro should be tight to the board name, as it may be used
>> for other STM32MP boards. I'd just use STM32MP_FIP_IMAGE_GUID.
>> This should be the same for the fw_images[0].fw_name.
> 
> The idea of this GUID is to identify or associate an image with a
> platform. Will the FIP image be common across multiple STM32MP
> platforms? If we use a common GUID that might be shared across
> multiple ST boards, it would be possible to flash an image generated
> for the ev1 board on the dk2 board. However, you would know better
> about ST platforms. So I can change this as per your suggestion.
> Thanks.
> 
> -sughosh
> 

Hi Sughosh,

This GUID is generic in TF-A for all STM32MP platforms.
Having a per board GUID in U-Boot might then be an issue.
And we'll end up with lots of GUIDs for each new board that will support 
FWU.
But maybe I miss something here.


Yann

>>
>>
>> Best regards,
>> Yann
>>
>>> +     EFI_GUID(0x19d5df83, 0x11b0, 0x457b, 0xbe, 0x2c, \
>>> +              0x75, 0x59, 0xc1, 0x31, 0x42, 0xa5)
>>> +
>>>    /*****************************************************************************/
>>>    #ifdef CONFIG_DISTRO_DEFAULTS
>>>    /*****************************************************************************/
>>



More information about the U-Boot mailing list