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

Tom Rini trini at konsulko.com
Mon Jun 12 22:42:41 UTC 2017


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!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170612/af724c73/attachment.sig>


More information about the U-Boot mailing list