[U-Boot] [PATCH v2 27/63] x86: Do relocation before clearing BSS
Simon Glass
sjg at chromium.org
Sat Nov 19 21:25:16 CET 2016
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 at chromium.org>
---
Changes in v2: None
common/board_f.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/common/board_f.c b/common/board_f.c
index f19f998..c79ee4e 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -1040,8 +1040,8 @@ static init_fnc_t init_sequence_f[] = {
setup_reloc,
#if defined(CONFIG_X86) || defined(CONFIG_ARC)
copy_uboot_to_ram,
- clear_bss,
do_elf_reloc_fixups,
+ clear_bss,
#endif
#if defined(CONFIG_XTENSA)
clear_bss,
--
2.8.0.rc3.226.g39d4020
More information about the U-Boot
mailing list