[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