[U-Boot] [RFC 2/2] env: Add prefix to error messages when loading env

Sam Protsenko
2018-07-17T22:09:12Z

This is just a draft to discuss ideas related to "Make U-Boot log great
again" thread.

With this patch we will see something like:

Loading Environment from FAT...
--> MMC: no card present
--> ** Bad device mmc 0 **
--> Failed (-5)
Loading Environment from MMC...
--> OK

instead of:

Loading Environment from FAT... MMC: no card present
** Bad device mmc 0 **
Failed (-5)
Loading Environment from MMC... OK

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
---
common/console.c | 8 ++++++++
env/env.c | 4 +++-
include/asm-generic/global_data.h | 1 +
3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/common/console.c b/common/console.c
index 2ba33dc574..1bbafa33a1 100644
--- a/common/console.c
+++ b/common/console.c
@@ -533,6 +533,14 @@ void putc(const char c)

void puts(const char *s)
{
+ if (gd->pr_prefix) {
+ const char *prefix = gd->pr_prefix;
+
+ gd->pr_prefix = NULL;
+ puts(prefix);
+ gd->pr_prefix = prefix;
+ }
+
#ifdef CONFIG_DEBUG_UART
if (!gd || !(gd->flags & GD_FLG_SERIAL_READY)) {
while (*s) {
diff --git a/env/env.c b/env/env.c
index 5c0842ac07..56a105ea55 100644
--- a/env/env.c
+++ b/env/env.c
@@ -194,12 +194,14 @@ int env_load(void)
if (!env_has_inited(drv->location))
continue;

- printf("Loading Environment from %s... ", drv->name);
+ printf("Loading Environment from %s...\n", drv->name);
+ gd->pr_prefix = " --> ";
ret = drv->load();
if (ret)
printf("Failed (%d)\n", ret);
else
printf("OK\n");
+ gd->pr_prefix = NULL;

if (!ret)
return 0;
diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h
index 0fd4900392..32b80db96b 100644
--- a/include/asm-generic/global_data.h
+++ b/include/asm-generic/global_data.h
@@ -44,6 +44,7 @@ typedef struct global_data {
unsigned long board_type;
#endif
unsigned long have_console; /* serial_init() was called */
+ const char *pr_prefix; /* print prefix before message */
#if CONFIG_IS_ENABLED(PRE_CONSOLE_BUFFER)
unsigned long precon_buf_idx; /* Pre-Console buffer index */
#endif
--
2.18.0