aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2017-12-04 13:48:28 -0700
committerTom Rini <trini@konsulko.com>2017-12-07 15:17:00 -0500
commitaf1bc0cf46c49c5ddb13b8c75bad31a05a137eba (patch)
tree509cfc24a022569f4783f6680e47f4cfef64b501 /common
parentef11ed8239bf02b347e7fb9fc6d980aec0c7810a (diff)
downloadu-boot-af1bc0cf46c49c5ddb13b8c75bad31a05a137eba.zip
u-boot-af1bc0cf46c49c5ddb13b8c75bad31a05a137eba.tar.gz
u-boot-af1bc0cf46c49c5ddb13b8c75bad31a05a137eba.tar.bz2
log: Plumb logging into the init sequence
Set up logging both before and after relocation. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'common')
-rw-r--r--common/board_f.c5
-rw-r--r--common/board_r.c2
-rw-r--r--common/log.c1
3 files changed, 7 insertions, 1 deletions
diff --git a/common/board_f.c b/common/board_f.c
index 1e8bf63..e46eced 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -751,6 +751,7 @@ static const init_fnc_t init_sequence_f[] = {
trace_early_init,
#endif
initf_malloc,
+ log_init,
initf_bootstage, /* uses its own timer, so does not need DM */
initf_console_record,
#if defined(CONFIG_HAVE_FSP)
@@ -932,8 +933,10 @@ void board_init_f_r(void)
* The pre-relocation drivers may be using memory that has now gone
* away. Mark serial as unavailable - this will fall back to the debug
* UART if available.
+ *
+ * Do the same with log drivers since the memory may not be available.
*/
- gd->flags &= ~GD_FLG_SERIAL_READY;
+ gd->flags &= ~(GD_FLG_SERIAL_READY | GD_FLG_LOG_READY);
#ifdef CONFIG_TIMER
gd->timer = NULL;
#endif
diff --git a/common/board_r.c b/common/board_r.c
index 89729d7..09167c1 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -691,6 +691,7 @@ static init_fnc_t init_sequence_r[] = {
#endif
initr_barrier,
initr_malloc,
+ log_init,
initr_bootstage, /* Needs malloc() but has its own timer */
initr_console_record,
#ifdef CONFIG_SYS_NONCACHED_MEMORY
@@ -884,6 +885,7 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
#if !defined(CONFIG_X86) && !defined(CONFIG_ARM) && !defined(CONFIG_ARM64)
gd = new_gd;
#endif
+ gd->flags &= ~GD_FLG_LOG_READY;
#ifdef CONFIG_NEEDS_MANUAL_RELOC
for (i = 0; i < ARRAY_SIZE(init_sequence_r); i++)
diff --git a/common/log.c b/common/log.c
index 8f36c79..45e46dd 100644
--- a/common/log.c
+++ b/common/log.c
@@ -238,6 +238,7 @@ int log_init(void)
(struct list_head *)&gd->log_head);
drv++;
}
+ gd->flags |= GD_FLG_LOG_READY;
gd->default_log_level = LOGL_INFO;
return 0;