[U-Boot] ARM: fixed relocation using proper alignment

Manfred Schlaegl manfred.schlaegl at ginzinger.com
Wed Jun 14 12:58:31 UTC 2017


On 2017-06-13 00:42, Tom Rini wrote:
> On Wed, May 10, 2017 at 03:41:32PM +0200, Manfred Schlaegl wrote:
>
>> Using u-boot-2017.05 on i.MX6UL we ran into following problem:
>> Initially U-Boot could be started normally.
>> If we added one random command in configuration, the newly generated
>> image hung at startup (last output was DRAM:  256 MiB).
>>
>> We tracked this down to a data abort within relocation (relocated_code).
>>
>> relocated_code in arch/arm/lib/relocate.S copies 8 bytes per loop
>> iteration until the source pointer is equal to __image_copy_end.
>> In a good case __image_copy_end was aligned to 8 bytes, so the loop
>> stopped as suggested, but in an errornous case __image_copy_end was
>> not aligned to 8 bytes, so the loop ran out of bounds and caused a
>> data abort exception.
>>
>> This patches solves the issue by aligning __image_copy_end to 8 byte
>> using the linker script related to arm.
>>
>> I don't know if it's the correct way to solve this, so some review would
>> be very appreciated.
>
> Applied to u-boot/master, thanks!
>

Hi!

Please do not apply this patch!
u-boot/master was not the cause of the problem.
The patch had hidden the symptom of a bug which was located in custom modifications.

For see the other mails in the conversation for details.

Thanks and best regards
Manfred

________________________________

Ginzinger electronic systems GmbH
Gewerbegebiet Pirath 16
4952 Weng im Innkreis
www.ginzinger.com

Firmenbuchnummer: FN 364958d
Firmenbuchgericht: Ried im Innkreis
UID-Nr.: ATU66521089



More information about the U-Boot mailing list