On Sat, Jun 02, 2018 at 11:36:01PM +0200, Marek Vasut wrote:

> The ARM64 has 2 MiB alignment requirement for the kernel. When using
> fitImage, this requirement may by violated, the kernel will thus be
> executed from unaligned address and fail to boot. Do what booti does
> and run booti_setup() for kernel_noload images on arm64 to obtain a
> suitable aligned address to which the image shall be relocated.
> 
> Signed-off-by: Marek Vasut <[email protected]>
> Cc: Bin Chen <[email protected]>
> Cc: Masahiro Yamada <[email protected]>
> Cc: Tom Rini <[email protected]>
> ---
>  common/bootm.c | 18 ++++++++++++++++--
>  1 file changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/common/bootm.c b/common/bootm.c
> index a0ffc1cd67..5b0e755ded 100644
> --- a/common/bootm.c
> +++ b/common/bootm.c
> @@ -198,8 +198,22 @@ static int bootm_find_os(cmd_tbl_t *cmdtp, int flag, int 
> argc,
>       }
>  
>       if (images.os.type == IH_TYPE_KERNEL_NOLOAD) {
> -             images.os.load = images.os.image_start;
> -             images.ep += images.os.load;
> +             ulong image_addr;
> +             ulong image_size;
> +
> +             if (images.os.arch == IH_ARCH_ARM64) {
> +                     ret = booti_setup(images.os.image_start, &image_addr,
> +                                       &image_size, 1);
> +                     if (ret != 0)
> +                             return 1;
> +
> +                     images.os.type = IH_TYPE_KERNEL;
> +                     images.os.load = image_addr;
> +                     images.ep = image_addr;
> +             } else {
> +                     images.os.load = images.os.image_start;
> +                     images.ep += images.os.image_start;
> +             }

We need to (and using if (IS_ENABLED(...)) would be good for
readability) make sure this change doesn't cause size growth on all
targets, only when CONFIG_CMD_BOOTI is setup, as it also won't link
otherwise.  Thanks!

-- 
Tom

Attachment: signature.asc
Description: PGP signature

_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to