[PATCH v2 01/21] spl: fix entry_point equal to load_addr

Giulio Benetti giulio.benetti at benettiengineering.com
Tue Jan 28 17:37:17 CET 2020


Hi Lukasz,

all patch series has already been applied, anyway I answer to your 
suggestions since something was missing and I'm going to create a patch 
for that.

So...

On 1/28/20 9:09 AM, Lukasz Majewski wrote:
> Hi Giulio,
> 
>> At the moment entry_point is set to image_get_load(header) that sets
>> it to "load address" instead of "entry point", assuming entry_point is
>> equal to load_addr, but it's not true. Then load_addr is set to
>> "entry_point - header_size", but this is wrong too since load_addr is
>> not an entry point.
>>
>> So use image_get_ep() for entry_point assignment and image_get_load()
>> for load_addr assignment.
>>
>> Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com>
>> ---
>>   common/spl/spl.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/common/spl/spl.c b/common/spl/spl.c
>> index c1fce62b91..19085ad270 100644
>> --- a/common/spl/spl.c
>> +++ b/common/spl/spl.c
>> @@ -284,9 +284,9 @@ int spl_parse_image_header(struct spl_image_info
>> *spl_image, spl_image->entry_point = image_get_ep(header);
>>   			spl_image->size =
>> image_get_data_size(header); } else {
>> -			spl_image->entry_point =
>> image_get_load(header);
>> +			spl_image->entry_point =
>> image_get_ep(header); /* Load including the header */
>> -			spl_image->load_addr =
>> spl_image->entry_point -
>> +			spl_image->load_addr =
>> image_get_load(header) - header_size;
>>   			spl_image->size =
>> image_get_data_size(header) + header_size;
> 
> I'm concerned, that this change will silently break several boards -
> the problem is with assumption that entry point is equal to load_addr.
> 
> It would be best to pull this change ASAP, so we would have a chance to
> fix this by next release.

It's been committed after Patrice fixed a lot of boards:
https://gitlab.denx.de/u-boot/u-boot/commit/38a6cce65737096b836d43a22f09b7a54c9d020c
and
https://gitlab.denx.de/u-boot/u-boot/commit/74bb4570a952b06fecfafc5b961a5cb5147ec544

Indeed at the first moment it's been committed by Tom Rini and started 
to cause boot failure as you were worried for, then it's been reverted, 
then it's been re-applied after applying Patrice series.

Best regards
-- 
Giulio Benetti
Benetti Engineering sas

> 
> Best regards,
> 
> Lukasz Majewski
> 
> --
> 
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
> 



More information about the U-Boot mailing list