spl: Remove #ifdefs with BOOTSTAGE

This feature has some helpers in its header file so that its functions
resolve to nothing when the feature is disabled. Add a few more and use
these to simplify the code.

With this there are no more #ifdefs in board_init_r()

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2023-09-26 08:14:32 -06:00 committed by Tom Rini
parent 2003a83cc8
commit 17ba50106e
3 changed files with 39 additions and 12 deletions

View file

@ -502,6 +502,20 @@ int bootstage_unstash(const void *base, int size)
return 0; return 0;
} }
int _bootstage_stash_default(void)
{
return bootstage_stash(map_sysmem(CONFIG_BOOTSTAGE_STASH_ADDR, 0),
CONFIG_BOOTSTAGE_STASH_SIZE);
}
int _bootstage_unstash_default(void)
{
const void *stash = map_sysmem(CONFIG_BOOTSTAGE_STASH_ADDR,
CONFIG_BOOTSTAGE_STASH_SIZE);
return bootstage_unstash(stash, CONFIG_BOOTSTAGE_STASH_SIZE);
}
int bootstage_get_size(void) int bootstage_get_size(void)
{ {
struct bootstage_data *data = gd->bootstage; struct bootstage_data *data = gd->bootstage;

View file

@ -538,17 +538,11 @@ static int spl_common_init(bool setup_malloc)
ret); ret);
return ret; return ret;
} }
#ifdef CONFIG_BOOTSTAGE_STASH
if (!u_boot_first_phase()) { if (!u_boot_first_phase()) {
const void *stash = map_sysmem(CONFIG_BOOTSTAGE_STASH_ADDR, ret = bootstage_unstash_default();
CONFIG_BOOTSTAGE_STASH_SIZE);
ret = bootstage_unstash(stash, CONFIG_BOOTSTAGE_STASH_SIZE);
if (ret) if (ret)
debug("%s: Failed to unstash bootstage: ret=%d\n", log_debug("Failed to unstash bootstage: ret=%d\n", ret);
__func__, ret);
} }
#endif /* CONFIG_BOOTSTAGE_STASH */
bootstage_mark_name(get_bootstage_id(true), bootstage_mark_name(get_bootstage_id(true),
spl_phase_name(spl_phase())); spl_phase_name(spl_phase()));
#if CONFIG_IS_ENABLED(LOG) #if CONFIG_IS_ENABLED(LOG)
@ -866,12 +860,9 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
gd_malloc_ptr(), gd_malloc_ptr() / 1024); gd_malloc_ptr(), gd_malloc_ptr() / 1024);
bootstage_mark_name(get_bootstage_id(false), "end phase"); bootstage_mark_name(get_bootstage_id(false), "end phase");
#ifdef CONFIG_BOOTSTAGE_STASH ret = bootstage_stash_default();
ret = bootstage_stash((void *)CONFIG_BOOTSTAGE_STASH_ADDR,
CONFIG_BOOTSTAGE_STASH_SIZE);
if (ret) if (ret)
debug("Failed to stash bootstage: err=%d\n", ret); debug("Failed to stash bootstage: err=%d\n", ret);
#endif
if (IS_ENABLED(CONFIG_SPL_VIDEO_REMOVE)) { if (IS_ENABLED(CONFIG_SPL_VIDEO_REMOVE)) {
struct udevice *dev; struct udevice *dev;

View file

@ -244,6 +244,8 @@ void show_boot_progress(int val);
#ifdef ENABLE_BOOTSTAGE #ifdef ENABLE_BOOTSTAGE
#include <mapmem.h>
/* This is the full bootstage implementation */ /* This is the full bootstage implementation */
/** /**
@ -452,6 +454,26 @@ static inline int bootstage_init(bool first)
#endif /* ENABLE_BOOTSTAGE */ #endif /* ENABLE_BOOTSTAGE */
/* helpers for SPL */
int _bootstage_stash_default(void);
int _bootstage_unstash_default(void);
static inline int bootstage_stash_default(void)
{
if (CONFIG_IS_ENABLED(BOOTSTAGE) && IS_ENABLED(CONFIG_BOOTSTAGE_STASH))
return _bootstage_stash_default();
return 0;
}
static inline int bootstage_unstash_default(void)
{
if (CONFIG_IS_ENABLED(BOOTSTAGE) && IS_ENABLED(CONFIG_BOOTSTAGE_STASH))
return _bootstage_unstash_default();
return 0;
}
/* Helper macro for adding a bootstage to a line of code */ /* Helper macro for adding a bootstage to a line of code */
#define BOOTSTAGE_MARKER() \ #define BOOTSTAGE_MARKER() \
bootstage_mark_code(__FILE__, __func__, __LINE__) bootstage_mark_code(__FILE__, __func__, __LINE__)