[PATCH v2 18/21] stm32: Use local vars in stm32prog for initrd and fdt

Patrick DELAUNAY patrick.delaunay at foss.st.com
Fri Dec 15 12:55:25 CET 2023


Hi,

On 12/14/23 17:50, Simon Glass wrote:
> Rather than assigning to the bootm_argv[] array multiple times, use
> local variables for the two things that can change and assign them at
> the end.
>
> This makes it easier to drop the array eventually.
>
> Tidu up an overly short line while we are here.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> (no changes since v1)
>
>   .../cmd_stm32prog/cmd_stm32prog.c             | 23 +++++++++++--------
>   1 file changed, 14 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 2411bcf06d8f..8670535844d3 100644
> --- a/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c
> +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c
> @@ -124,30 +124,35 @@ static int do_stm32prog(struct cmd_tbl *cmdtp, int flag, int argc,
>   		char boot_addr_start[20];
>   		char dtb_addr[20];
>   		char initrd_addr[40];
> +		char *fdt_arg, *initrd_arg;
>   		char *bootm_argv[5] = {
> -			"bootm", boot_addr_start, "-", dtb_addr, NULL
> +			"bootm", boot_addr_start,
>   		};
>   		const void *uimage = (void *)data->uimage;
>   		const void *dtb = (void *)data->dtb;
>   		const void *initrd = (void *)data->initrd;
>   
> +		fdt_arg = dtb_addr;
>   		if (!dtb)
> -			bootm_argv[3] = env_get("fdtcontroladdr");
> +			fdt_arg = env_get("fdtcontroladdr");
>   		else
> -			snprintf(dtb_addr, sizeof(dtb_addr) - 1,
> -				 "0x%p", dtb);
> +			snprintf(dtb_addr, sizeof(dtb_addr) - 1, "0x%p", dtb);
>   
>   		snprintf(boot_addr_start, sizeof(boot_addr_start) - 1,
>   			 "0x%p", uimage);
>   
> +		initrd_arg = "-";
>   		if (initrd) {
> -			snprintf(initrd_addr, sizeof(initrd_addr) - 1, "0x%p:0x%zx",
> -				 initrd, data->initrd_size);
> -			bootm_argv[2] = initrd_addr;
> +			snprintf(initrd_addr, sizeof(initrd_addr) - 1,
> +				 "0x%p:0x%zx", initrd, data->initrd_size);
> +			initrd_arg = initrd_addr;
>   		}
>   
> -		printf("Booting kernel at %s %s %s...\n\n\n",
> -		       boot_addr_start, bootm_argv[2], bootm_argv[3]);
> +		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;
> +
>   		/* Try bootm for legacy and FIT format image */
>   		if (genimg_get_format(uimage) != IMAGE_FORMAT_INVALID)
>   			do_bootm(cmdtp, 0, 4, bootm_argv);



Reviewed-by: Patrick Delaunay <patrick.delaunay at foss.st.com>

Thanks
Patrick



More information about the U-Boot mailing list