[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