[PATCH] spl: spl_legacy: Fix spl_end address for non ARM target

Shiji Yang yangshiji66 at outlook.com
Mon Jul 31 18:10:52 CEST 2023


On Mon, 31 Jul 2023 16:17:39 +0200, Marek Vasut wrote:
>On 7/31/23 13:57, Shiji Yang wrote:
>> Only ARM target defines _image_binary_end symbol as char*, All other
>> targets define it as an ulong type in include/asm-generic/sections.h.
>> 
>> This patch fixes the boot failure on MIPS target. Error log:
>> SPL: Image overlaps SPL
>> 
>> Fixes: 1b8a1be1a1f1 ("spl: spl_legacy: Fix spl_end address")
>> Signed-off-by: Shiji Yang <yangshiji66 at outlook.com>
>> ---
>>   common/spl/spl_legacy.c | 6 +++++-
>>   1 file changed, 5 insertions(+), 1 deletion(-)
>> 
>> diff --git a/common/spl/spl_legacy.c b/common/spl/spl_legacy.c
>> index 095443c63d..0fef890384 100644
>> --- a/common/spl/spl_legacy.c
>> +++ b/common/spl/spl_legacy.c
>> @@ -18,9 +18,13 @@
>>   
>>   static void spl_parse_legacy_validate(uintptr_t start, uintptr_t size)
>>   {
>> +     uintptr_t end = start + size;
>>        uintptr_t spl_start = (uintptr_t)_start;
>> +#ifdef CONFIG_ARM
>>        uintptr_t spl_end = (uintptr_t)_image_binary_end;
>> -     uintptr_t end = start + size;
>> +#else
>> +     uintptr_t spl_end = (uintptr_t)&_image_binary_end;
>
>I _think_ only this extra & should be enough and that should also work 
>on ARM, right ?
>
>[...]

Hi! Thanks for your review. For ARM target, My understanding is that
'&_image_binary_end' is a random value. '&_image_binary_end' is a
pointer which points to the spl image end address. I think it's not
okay for ARM target.

I do not have any relevant ARM devices, so I can't test it.


More information about the U-Boot mailing list