Skip to content
  • Manfred Schlaegl's avatar
    ARM: fixed relocation using proper alignment · b505caa5
    Manfred Schlaegl authored
    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.
    
    From Community: http://patchwork.ozlabs.org/patch/760592/
    
    
    
    Signed-off-by: default avatarPeng Fan <peng.fan@nxp.com>
    b505caa5