x86: Do relocation before clearing BSS
authorSimon Glass <sjg@chromium.org>
Mon, 16 Jan 2017 14:03:52 +0000 (07:03 -0700)
committerBin Meng <bmeng.cn@gmail.com>
Mon, 6 Feb 2017 03:38:46 +0000 (11:38 +0800)
commit6bda55a38ce4d9c5fcab5a5011e06469662954b3
tree21ff947c3d1eeb0e71d6bf4ffaebeeb5d581cabc
parentfb92308b983d54f6275ae0ced0e6930dfcc5bdec
x86: Do relocation before clearing BSS

The BSS region may overlap with relocations. If we clear BSS we will
overwrite the start of the relocation area. This doesn't matter when running
from SPI flash, since it is read-only. But when relocating 64-bit U-Boot
from one place in RAM to another, relocation will fail because some of its
relocations have been zeroed.

To fix this, put the ELF fixup call before the BSS clearing call.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
common/board_f.c