board_f: Relocate fdt even if GD_FLG_SKIP_RELOC is set
authorKunihiko Hayashi <hayashi.kunihiko@socionext.com>
Tue, 20 Jun 2023 10:50:48 +0000 (19:50 +0900)
committerTom Rini <trini@konsulko.com>
Fri, 14 Jul 2023 19:21:08 +0000 (15:21 -0400)
commit874bf6e0e25389a9d43b5844855342595d58648e
tree4a0675b08ef9ce1335bb9e8468646ba9c245bf2b
parentef402577c2e3af6c3b967b2e4499b3796a37fde5
board_f: Relocate fdt even if GD_FLG_SKIP_RELOC is set

In case of OF_SEPARATE (!OF_EMBED), the devicetree blob is placed
after _end, and fdt_find_separate() always returns _end. There is
a .bss section after _end and the section is cleared before relocation.

When GD_FLG_SKIP_RELOC is set, relocation is skipped, so the blob is
still in .bss section, but will be cleared. As a result, the devicetree
become invalid.

To avoid this issue, should relocate it regardless of GD_FLG_SKIP_RELOC
in reloc_fdt().

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
common/board_f.c