[PATCH] xilinx: zynqmp: Fix SPL_FS_LOAD_PAYLOAD_NAME usage

Michal Simek michal.simek at amd.com
Mon Dec 5 08:53:48 CET 2022



On 12/2/22 14:06, Michal Simek wrote:
> SPL_FS_LOAD_PAYLOAD_NAME depends on SPL to be enabled.
> If SPL is not enabled code still expects SPL_FS_LOAD_PAYLOAD_NAME to be
> present. That's why setup proper dependency in the code.
> And by doing so also change the logic around dfu_alt_info string
> composition to be simpler.
> 
> Signed-off-by: Michal Simek <michal.simek at amd.com>
> ---
> 
>   board/xilinx/zynqmp/zynqmp.c | 45 +++++++++++++++++++-----------------
>   1 file changed, 24 insertions(+), 21 deletions(-)
> 
> diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
> index 5fe0873fe221..579708d2e0cf 100644
> --- a/board/xilinx/zynqmp/zynqmp.c
> +++ b/board/xilinx/zynqmp/zynqmp.c
> @@ -611,8 +611,7 @@ enum env_location env_get_location(enum env_operation op, int prio)
>   
>   void set_dfu_alt_info(char *interface, char *devstr)
>   {
> -	int multiboot;
> -	int bootseq = 0;
> +	int multiboot, bootseq = 0, len = 0;
>   
>   	ALLOC_CACHE_ALIGN_BUFFER(char, buf, DFU_ALT_BUF_LEN);
>   
> @@ -634,29 +633,33 @@ void set_dfu_alt_info(char *interface, char *devstr)
>   	case SD1_LSHFT_MODE:
>   	case SD_MODE1:
>   		bootseq = mmc_get_env_dev();
> -		if (!multiboot)
> -			snprintf(buf, DFU_ALT_BUF_LEN,
> -				 "mmc %d=boot.bin fat %d 1;"
> -				 "%s fat %d 1",
> -				 bootseq, bootseq,
> -				 CONFIG_SPL_FS_LOAD_PAYLOAD_NAME, bootseq);
> -		else
> -			snprintf(buf, DFU_ALT_BUF_LEN,
> -				 "mmc %d=boot%04d.bin fat %d 1;"
> -				 "%s fat %d 1",
> -				 bootseq, multiboot, bootseq,
> -				 CONFIG_SPL_FS_LOAD_PAYLOAD_NAME, bootseq);
> +
> +		len += snprintf(buf + len, DFU_ALT_BUF_LEN, "mmc %d=boot",
> +			       bootseq);
> +
> +		if (multiboot)
> +			len += snprintf(buf + len, DFU_ALT_BUF_LEN,
> +				       "%04d", multiboot);
> +
> +		len += snprintf(buf + len, DFU_ALT_BUF_LEN, ".bin fat %d 1",
> +			       bootseq);
> +#if defined(CONFIG_SPL_FS_LOAD_PAYLOAD_NAME)
> +		len += snprintf(buf + len, DFU_ALT_BUF_LEN, ";%s fat %d 1",
> +			       CONFIG_SPL_FS_LOAD_PAYLOAD_NAME, bootseq);
> +#endif
>   		break;
> -#if defined(CONFIG_SYS_SPI_U_BOOT_OFFS)
>   	case QSPI_MODE_24BIT:
>   	case QSPI_MODE_32BIT:
> -		snprintf(buf, DFU_ALT_BUF_LEN,
> -			 "sf 0:0=boot.bin raw %x 0x1500000;"
> -			 "%s raw 0x%x 0x500000",
> -			 multiboot * SZ_32K, CONFIG_SPL_FS_LOAD_PAYLOAD_NAME,
> -			 CONFIG_SYS_SPI_U_BOOT_OFFS);
> -		break;
> +		len += snprintf(buf + len, DFU_ALT_BUF_LEN,
> +			       "sf 0:0=boot.bin raw %x 0x1500000",
> +			       multiboot * SZ_32K);
> +#if defined(CONFIG_SPL_FS_LOAD_PAYLOAD_NAME) && defined(CONFIG_SYS_SPI_U_BOOT_OFFS)
> +		len += snprintf(buf + len, DFU_ALT_BUF_LEN,
> +			       ";%s raw 0x%x 0x500000",
> +			       CONFIG_SPL_FS_LOAD_PAYLOAD_NAME,
> +			       CONFIG_SYS_SPI_U_BOOT_OFFS);
>   #endif
> +		break;
>   	default:
>   		return;
>   	}


Applied.
M


More information about the U-Boot mailing list