bootstage: Correct relocation algorithm
authorSimon Glass <sjg@chromium.org>
Mon, 21 Oct 2019 23:26:50 +0000 (17:26 -0600)
committerSimon Glass <sjg@chromium.org>
Sun, 27 Oct 2019 16:56:51 +0000 (10:56 -0600)
commitac9cd4805c8b11f529b508921c2275b889265313
tree9e5e40ea153b77ad4c2977d5694c88d0ee76b851
parent65b2d96f4c5e3f9084bc04cf5a5d7fc7a2285a72
bootstage: Correct relocation algorithm

At present bootstage relocation assumes that it is possible to point back
to memory available before relocation, so it does not relocate the
strings. However this is not the case on some platforms, such as x86 which
uses the cache as RAM and loses access to this when the cache is enabled.

Move the relocation step to before U-Boot relocates, expand the allocated
region to include space for the strings and relocate the strings at the
same time as the bootstage records.

This ensures that bootstage data can remain accessible from TPL through
SPL to U-Boot before/after relocation.

Signed-off-by: Simon Glass <sjg@chromium.org>
common/board_f.c
common/board_r.c
common/bootstage.c