[PATCH v2] xilinx: zynqmp: Save multiboot as variable

Michal Simek michal.simek at xilinx.com
Fri Oct 29 13:01:10 CEST 2021



On 10/25/21 10:10, Michal Simek wrote:
> Save multiboot register as u-boot variable. And use it as primary source
> for composing dfu_alt_info for capsule update. If variable is not defined
> 
> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
> ---
> 
> Changes in v2:
> - Handle also error values from mult_boot() - Reported by Oleksandr Suvorov <oleksandr.suvorov at foundries.io>
> 
>   board/xilinx/zynqmp/zynqmp.c | 10 +++++++++-
>   1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
> index 5a1f8153409c..dfb5dab7afa3 100644
> --- a/board/xilinx/zynqmp/zynqmp.c
> +++ b/board/xilinx/zynqmp/zynqmp.c
> @@ -640,7 +640,7 @@ int board_late_init(void)
>   	const char *mode;
>   	char *new_targets;
>   	char *env_targets;
> -	int ret;
> +	int ret, multiboot;
>   
>   #if defined(CONFIG_USB_ETHER) && !defined(CONFIG_USB_GADGET_DOWNLOAD)
>   	usb_ether_init();
> @@ -658,6 +658,10 @@ int board_late_init(void)
>   	if (ret)
>   		return ret;
>   
> +	multiboot = multi_boot();
> +	if (multiboot >= 0)
> +		env_set_hex("multiboot", multiboot);
> +
>   	bootmode = zynqmp_get_bootmode();
>   
>   	puts("Bootmode: ");
> @@ -864,6 +868,10 @@ void set_dfu_alt_info(char *interface, char *devstr)
>   	memset(buf, 0, sizeof(buf));
>   
>   	multiboot = multi_boot();
> +	if (multiboot < 0)
> +		multiboot = 0;
> +
> +	multiboot = env_get_hex("multiboot", multiboot);
>   	debug("Multiboot: %d\n", multiboot);
>   
>   	switch (zynqmp_get_bootmode()) {
> 

Applied,
Michal


More information about the U-Boot mailing list