[U-Boot] [PATCH V2 2/2] bootm: Handle kernel_noload on arm64

Marek Vasut marek.vasut at gmail.com
Mon Jun 4 18:08:31 UTC 2018


On 06/04/2018 08:02 PM, Tom Rini wrote:
> 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!

Aha

-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list