
Hi Tom,
On 9 November 2018 at 10:43, Tom Rini trini@konsulko.com wrote:
On Tue, Oct 02, 2018 at 05:22:34AM -0600, Simon Glass wrote:
The bloblist is normally set up in SPL ready for use by U-Boot. Add a simple implementation of this to the common SPL code.
Signed-off-by: Simon Glass sjg@chromium.org
Changes in v2: None
common/spl/spl.c | 18 ++++++++++++++++-- include/spl.h | 27 +++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 2 deletions(-)
diff --git a/common/spl/spl.c b/common/spl/spl.c index b917624e61d..2ca900ae9ed 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -7,6 +7,7 @@ */
#include <common.h> +#include <bloblist.h> #include <binman_sym.h> #include <dm.h> #include <spl.h> @@ -345,6 +346,14 @@ static int spl_common_init(bool setup_malloc) return ret; } #endif
if (CONFIG_IS_ENABLED(BLOBLIST)) {
ret = bloblist_init();
if (ret) {
debug("%s: Failed to set up bloblist: ret=%d\n",
__func__, ret);
return ret;
}
} if (CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)) { ret = fdtdec_setup(); if (ret) {
@@ -483,6 +492,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2) BOOT_DEVICE_NONE, }; struct spl_image_info spl_image;
int ret; debug(">>spl:board_init_r()\n");
@@ -529,6 +539,12 @@ void board_init_r(gd_t *dummy1, ulong dummy2) }
spl_perform_fixups(&spl_image);
if (CONFIG_IS_ENABLED(BLOBLIST)) {
ret = bloblist_finish();
if (ret)
printf("Warning: Failed to finish bloblist (ret=%d)\n",
ret);
}
#ifdef CONFIG_CPU_V7M spl_image.entry_point |= 0x1; @@ -558,8 +574,6 @@ void board_init_r(gd_t *dummy1, ulong dummy2) gd->malloc_ptr / 1024); #endif #ifdef CONFIG_BOOTSTAGE_STASH
int ret;
bootstage_mark_name(BOOTSTAGE_ID_END_SPL, "end_spl"); ret = bootstage_stash((void *)CONFIG_BOOTSTAGE_STASH_ADDR, CONFIG_BOOTSTAGE_STASH_SIZE);
I think we'll need a __maybe_unused on ret above for !BOOTSTAGE_STASH && !BLOBLIST.
The code for BLOBLIST uses if() rather than #if so it seems OK:
if (CONFIG_IS_ENABLED(BLOBLIST)) {
Regards, Simon