[PATCH u-boot-mvebu 17/31] tools: kwbimage: Use -a parameter (load address) for v1 images
Stefan Roese
sr at denx.de
Thu Jul 15 10:41:55 CEST 2021
On 08.07.21 19:30, Marek Behún wrote:
> From: Pali Rohár <pali at kernel.org>
>
> The data part of v1 kwbimage currently contains U-Boot binary prepended
> by 64 bytes long Legacy U-Boot image header. This means that the load
> address is currently substracted by 64 bytes to ensure that U-Boot's
> entry point is at specified execution address.
>
> As mkimage has already separate arguments for load (-a) and execution
> (-e) address, there is no need to derive fixed load address from
> execution address.
>
> Therefore remove this load address hack from the kwbimage tool and
> support generating v1 kwbimage with arbitrary addresses for load and
> execution.
>
> Finally, calculate correct load address by caller for mkimage tool in
> Makefile. File u-boot-spl.kwb is always a v1 kwbimage and it is the only
> v1 kwbimage which U-Boot's build system generates.
>
> Remove also useless overwriting of destaddr for /binary.0 to the value
> which is already set on previous lines.
>
> Signed-off-by: Pali Rohár <pali at kernel.org>
> Reviewed-by: Marek Behún <marek.behun at nic.cz>
Reviewed-by: Stefan Roese <sr at denx.de>
Thanks,
Stefan
> ---
> Makefile | 2 +-
> tools/kwbimage.c | 10 +---------
> 2 files changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 0d3192ceba..85bd8fc12d 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1398,7 +1398,7 @@ MKIMAGEFLAGS_u-boot.kwb = -n $(KWD_CONFIG_FILE) \
> -T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE)
>
> MKIMAGEFLAGS_u-boot-spl.kwb = -n $(KWD_CONFIG_FILE) \
> - -T kwbimage -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) \
> + -T kwbimage -a $(shell printf "0x%x" $$(($(CONFIG_SYS_TEXT_BASE)-64))) -e $(CONFIG_SYS_TEXT_BASE) \
> $(if $(KEYDIR),-k $(KEYDIR))
>
> MKIMAGEFLAGS_u-boot.pbl = -n $(srctree)/$(CONFIG_SYS_FSL_PBL_RCW:"%"=%) \
> diff --git a/tools/kwbimage.c b/tools/kwbimage.c
> index d8a14cb093..acd57267f4 100644
> --- a/tools/kwbimage.c
> +++ b/tools/kwbimage.c
> @@ -1252,8 +1252,7 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
> cpu_to_le32(payloadsz - headersz);
> main_hdr->headersz_lsb = cpu_to_le16(headersz & 0xFFFF);
> main_hdr->headersz_msb = (headersz & 0xFFFF0000) >> 16;
> - main_hdr->destaddr = cpu_to_le32(params->addr)
> - - sizeof(image_header_t);
> + main_hdr->destaddr = cpu_to_le32(params->addr);
> main_hdr->execaddr = cpu_to_le32(params->ep);
> main_hdr->srcaddr = cpu_to_le32(headersz);
> main_hdr->ext = hasext;
> @@ -1273,13 +1272,6 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
> e = image_find_option(IMAGE_CFG_DEBUG);
> if (e)
> main_hdr->flags = e->debug ? 0x1 : 0;
> - e = image_find_option(IMAGE_CFG_BINARY);
> - if (e) {
> - char *s = strrchr(e->binary.file, '/');
> -
> - if (s && strcmp(s, "/binary.0") == 0)
> - main_hdr->destaddr = cpu_to_le32(params->addr);
> - }
>
> /*
> * For SATA srcaddr is specified in number of sectors starting from
>
Viele Grüße,
Stefan
--
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