[PATCH u-boot-marvell 03/11] tools: kwbimage: Set BOOT_FROM by default to SPI

Stefan Roese sr at denx.de
Wed Nov 10 09:23:52 CET 2021


On 08.11.21 18:12, Marek Behún wrote:
> From: Pali Rohár <pali at kernel.org>
> 
> kwbimage must have valid blockid member instead of zero value. Thus if
> config file does not contain BOOT_FROM command, use by default the value
> for SPI booting (which is probably the most common).
> 
> Signed-off-by: Pali Rohár <pali at kernel.org>
> Signed-off-by: Marek Behún <marek.behun at nic.cz>

Reviewed-by: Stefan Roese <sr at denx.de>

Thanks,
Stefan

> ---
>   tools/kwbimage.c | 32 +++++++++++++++-----------------
>   1 file changed, 15 insertions(+), 17 deletions(-)
> 
> diff --git a/tools/kwbimage.c b/tools/kwbimage.c
> index d29f2cfcce..38b6e2fed2 100644
> --- a/tools/kwbimage.c
> +++ b/tools/kwbimage.c
> @@ -266,6 +266,18 @@ static bool image_get_spezialized_img(void)
>   	return e->sec_specialized_img;
>   }
>   
> +static int image_get_bootfrom(void)
> +{
> +	struct image_cfg_element *e;
> +
> +	e = image_find_option(IMAGE_CFG_BOOT_FROM);
> +	if (!e)
> +		/* fallback to SPI if no BOOT_FROM is not provided */
> +		return IBR_HDR_SPI_ID;
> +
> +	return e->bootfrom;
> +}
> +
>   /*
>    * Compute a 8-bit checksum of a memory area. This algorithm follows
>    * the requirements of the Marvell SoC BootROM specifications.
> @@ -884,10 +896,8 @@ static void *image_create_v0(size_t *imagesz, struct image_tool_params *params,
>   	main_hdr->version   = 0;
>   	main_hdr->destaddr  = cpu_to_le32(params->addr);
>   	main_hdr->execaddr  = cpu_to_le32(params->ep);
> +	main_hdr->blockid   = image_get_bootfrom();
>   
> -	e = image_find_option(IMAGE_CFG_BOOT_FROM);
> -	if (e)
> -		main_hdr->blockid = e->bootfrom;
>   	e = image_find_option(IMAGE_CFG_NAND_ECC_MODE);
>   	if (e)
>   		main_hdr->nandeccmode = e->nandeccmode;
> @@ -1232,9 +1242,8 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
>   	main_hdr->srcaddr      = cpu_to_le32(headersz);
>   	main_hdr->ext          = hasext;
>   	main_hdr->version      = 1;
> -	e = image_find_option(IMAGE_CFG_BOOT_FROM);
> -	if (e)
> -		main_hdr->blockid = e->bootfrom;
> +	main_hdr->blockid      = image_get_bootfrom();
> +
>   	e = image_find_option(IMAGE_CFG_NAND_BLKSZ);
>   	if (e)
>   		main_hdr->nandblocksize = e->nandblksz / (64 * 1024);
> @@ -1559,17 +1568,6 @@ static int image_get_version(void)
>   	return e->version;
>   }
>   
> -static int image_get_bootfrom(void)
> -{
> -	struct image_cfg_element *e;
> -
> -	e = image_find_option(IMAGE_CFG_BOOT_FROM);
> -	if (!e)
> -		return -1;
> -
> -	return e->bootfrom;
> -}
> -
>   static void kwbimage_set_header(void *ptr, struct stat *sbuf, int ifd,
>   				struct image_tool_params *params)
>   {
> 

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de


More information about the U-Boot mailing list