diff options
author | Simon Glass <sjg@chromium.org> | 2021-01-13 20:29:43 -0700 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-01-27 17:03:16 -0500 |
commit | 9fe064646d2c9f3914cd5ceae51c34020aa77599 (patch) | |
tree | 971f208a76257181d735a00c200ff04a7c2591b1 /common/bloblist.c | |
parent | 09d9ba9097ceb374f2802506c9e755fd8d5dd861 (diff) | |
download | u-boot-9fe064646d2c9f3914cd5ceae51c34020aa77599.tar.gz |
bloblist: Support relocating to a larger space
Typically in TPL/SPL the bloblist is quite small. But U-Boot proper may
want to add a lot more to it, such as ACPI tables.
Add a way to expand the bloblist by relocating it in U-Boot proper, along
with the other relocation activities.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/bloblist.c')
-rw-r--r-- | common/bloblist.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/common/bloblist.c b/common/bloblist.c index 33b5862380..e32f551e27 100644 --- a/common/bloblist.c +++ b/common/bloblist.c @@ -317,6 +317,15 @@ void bloblist_show_list(void) } } +void bloblist_reloc(void *to, uint to_size, void *from, uint from_size) +{ + struct bloblist_hdr *hdr; + + memcpy(to, from, from_size); + hdr = to; + hdr->size = to_size; +} + int bloblist_init(void) { bool expected; @@ -327,6 +336,8 @@ int bloblist_init(void) * that runs */ expected = !u_boot_first_phase(); + if (spl_prev_phase() == PHASE_TPL && !IS_ENABLED(CONFIG_TPL_BLOBLIST)) + expected = false; if (expected) ret = bloblist_check(CONFIG_BLOBLIST_ADDR, CONFIG_BLOBLIST_SIZE); |