[U-Boot] [PATCH V2 2/2] bootm: Handle kernel_noload on arm64
Tom Rini
trini at konsulko.com
Mon Jun 4 18:02:43 UTC 2018
On Mon, Jun 04, 2018 at 07:59:46PM +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 <marek.vasut+renesas at gmail.com>
> Cc: Bin Chen <bin.chen at linaro.org>
> Cc: Masahiro Yamada <yamada.masahiro at socionext.com>
> Cc: Tom Rini <trini at konsulko.com>
> ---
> V2: Protect the ARM64 booti bit with if IS_ENABLED(CMD_BOOTI)
> ---
> common/bootm.c | 21 +++++++++++++++++++--
> 1 file changed, 19 insertions(+), 2 deletions(-)
>
> diff --git a/common/bootm.c b/common/bootm.c
> index e789f6818a..e056d7b31f 100644
> --- a/common/bootm.c
> +++ b/common/bootm.c
> @@ -202,8 +202,25 @@ 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;
> +#if CONFIG_IS_ENABLED(CMD_BOOTI)
> + 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
> +#endif
> + {
> + images.os.load = images.os.image_start;
> + images.ep += images.os.image_start;
> + }
Sorry, we don't need #if tests here, we can make use of
CONFIG_IS_ENABLED(..) in the code itself so that we do get coverage but
not bloat (and also avoid style things). Thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180604/2fe67cf0/attachment.sig>
More information about the U-Boot
mailing list