• Nicolas Pitre's avatar
    ARM: zImage: make sure not to relocate on top of the relocation code · adcc2591
    Nicolas Pitre authored
    If the zImage load address is slightly below the relocation address,
    there is a risk for the copied data to overwrite the copy loop or
    cache flush code that the relocation process requires.  Always
    bump the relocation address by the size of that code to avoid this
    issue.
    
    Noticed by Tony Lindgren <tony@atomide.com>.
    
    While at it, let's start the copy from the restart symbol which makes
    the above code size computation possible by the assembler directly
    (same sections), given that we don't need to preserve the code before
    that point anyway. And therefore we don't need to carry the _start
    pointer in r5 anymore.
    Signed-off-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
    Tested-by: default avatarTony Lindgren <tony@atomide.com>
    adcc2591
head.S 26.3 KB