[RFC PATCH 02/10] stm32mp: dfu: Move the ram partitions to the end of the dfu_alt_info variable

Etienne Carriere etienne.carriere at linaro.org
Wed Dec 8 14:13:50 CET 2021


On Thu, 25 Nov 2021 at 08:03, Sughosh Ganu <sughosh.ganu at linaro.org> wrote:
>
> With the FWU multi bank update feature enabled, the dfu alt no that is
> used to identify the partition to be updated is derived at runtime and
> should match the partition number on the storage media. Achieve this
> by moving the ram partitions to the end of the dfu_alt_info variable.
>
> Signed-off-by: Sughosh Ganu <sughosh.ganu at linaro.org>
> ---
>  board/st/common/stm32mp_dfu.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/board/st/common/stm32mp_dfu.c b/board/st/common/stm32mp_dfu.c
> index 00d1fb8f59..394a2704ee 100644
> --- a/board/st/common/stm32mp_dfu.c
> +++ b/board/st/common/stm32mp_dfu.c
> @@ -102,6 +102,7 @@ static void board_get_alt_info_mtd(struct mtd_info *mtd, char *buf)
>
>  void set_dfu_alt_info(char *interface, char *devstr)
>  {
> +       int len;
>         struct udevice *dev;
>         struct mtd_info *mtd;
>
> @@ -112,9 +113,6 @@ void set_dfu_alt_info(char *interface, char *devstr)
>
>         memset(buf, 0, sizeof(buf));
>
> -       snprintf(buf, DFU_ALT_BUF_LEN,
> -                "ram 0=%s", CONFIG_DFU_ALT_RAM0);
> -
>         if (CONFIG_IS_ENABLED(MMC)) {
>                 if (!uclass_get_device(UCLASS_MMC, 0, &dev))
>                         board_get_alt_info_mmc(dev, buf);
> @@ -151,6 +149,13 @@ void set_dfu_alt_info(char *interface, char *devstr)
>                         strncat(buf, "&virt 1=PMIC", DFU_ALT_BUF_LEN);
>         }
>
> +       len = strlen(buf);
> +       if (buf[0] != '\0')
> +               len += snprintf(buf + len, DFU_ALT_BUF_LEN - len, "&");
> +
> +       snprintf(buf + len, DFU_ALT_BUF_LEN,
> +                "ram 0=%s", CONFIG_DFU_ALT_RAM0);

s/DFU_ALT_BUF_LEN/DFU_ALT_BUF_LEN - len/

Should check snprintf() return value.

> +
>         env_set("dfu_alt_info", buf);
>         puts("DFU alt info setting: done\n");
>  }
> --
> 2.17.1
>


More information about the U-Boot mailing list