[PATCH v2 20/21] stm32: Use bootm_run() and bootz_run()
Patrick DELAUNAY
patrick.delaunay at foss.st.com
Fri Dec 15 12:57:58 CET 2023
Hi,
On 12/14/23 17:50, Simon Glass wrote:
> Use the new bootm/z_run() functions to avoid having to create an
> argument list for the stm32prog code.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> (no changes since v1)
>
> .../cmd_stm32prog/cmd_stm32prog.c | 20 ++++++++++---------
> 1 file changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c b/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c
> index 8670535844d3..3ed393b7199f 100644
> --- a/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c
> +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c
> @@ -4,6 +4,7 @@
> */
>
> #include <common.h>
> +#include <bootm.h>
> #include <command.h>
> #include <dfu.h>
> #include <image.h>
> @@ -125,12 +126,10 @@ static int do_stm32prog(struct cmd_tbl *cmdtp, int flag, int argc,
> char dtb_addr[20];
> char initrd_addr[40];
> char *fdt_arg, *initrd_arg;
> - char *bootm_argv[5] = {
> - "bootm", boot_addr_start,
> - };
> const void *uimage = (void *)data->uimage;
> const void *dtb = (void *)data->dtb;
> const void *initrd = (void *)data->initrd;
> + struct bootm_info bmi;
>
> fdt_arg = dtb_addr;
> if (!dtb)
> @@ -141,7 +140,7 @@ static int do_stm32prog(struct cmd_tbl *cmdtp, int flag, int argc,
> snprintf(boot_addr_start, sizeof(boot_addr_start) - 1,
> "0x%p", uimage);
>
> - initrd_arg = "-";
> + initrd_arg = NULL;
> if (initrd) {
> snprintf(initrd_addr, sizeof(initrd_addr) - 1,
> "0x%p:0x%zx", initrd, data->initrd_size);
> @@ -149,15 +148,18 @@ static int do_stm32prog(struct cmd_tbl *cmdtp, int flag, int argc,
> }
>
> printf("Booting kernel at %s %s %s...\n\n\n", boot_addr_start,
> - initrd_arg, fdt_arg);
> - bootm_argv[2] = initrd_arg;
> - bootm_argv[3] = fdt_arg;
> + initrd_arg ?: "-", fdt_arg);
> +
> + bootm_init(&bmi);
> + bmi.addr_fit = boot_addr_start;
> + bmi.conf_ramdisk = initrd_arg;
> + bmi.conf_fdt = fdt_arg;
>
> /* Try bootm for legacy and FIT format image */
> if (genimg_get_format(uimage) != IMAGE_FORMAT_INVALID)
> - do_bootm(cmdtp, 0, 4, bootm_argv);
> + bootm_run(&bmi);
> else if (IS_ENABLED(CONFIG_CMD_BOOTZ))
> - do_bootz(cmdtp, 0, 4, bootm_argv);
> + bootz_run(&bmi);
> }
> if (data->script)
> cmd_source_script(data->script, NULL, NULL);
Reviewed-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
Thanks
Patrick
More information about the U-Boot
mailing list