summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2012-09-15 08:33:51 (GMT)
committerTom Rini <trini@ti.com>2012-10-15 18:53:57 (GMT)
commitf1f1e9cb7337e9ee6a7d6aeb1f76eb67f4dd126c (patch)
tree15b10fcdd1d513dba500c2ba7d8dc59995ba69f4
parent320de1354f1c8157f7d6dd7753e46cec3a418089 (diff)
downloadu-boot-fsl-qoriq-f1f1e9cb7337e9ee6a7d6aeb1f76eb67f4dd126c.tar.xz
serial: Use puts() and hang() instead of panic() in SPL
If case the get_current() call fails before relocation, the U-Boot must try to print an error message, fail and either reset or halt. Such error is critical enough to halt the system, as it means the system is in very bad state. This is now also used in SPL, since CONFIG_SERIAL_MULTI is enabled unconditionally. To avoid compiling whole vsprintf.c into SPL, use puts() to print error message and hang() to stop the system in case of SPL build. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com>
-rw-r--r--common/serial.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/common/serial.c b/common/serial.c
index fc38e6c..acb74af 100644
--- a/common/serial.c
+++ b/common/serial.c
@@ -222,8 +222,14 @@ static struct serial_device *get_current(void)
dev = default_serial_console();
/* We must have a console device */
- if (!dev)
- panic("Cannot find console");
+ if (!dev) {
+#ifdef CONFIG_SPL_BUILD
+ puts("Cannot find console\n");
+ hang();
+#else
+ panic("Cannot find console\n");
+#endif
+ }
} else
dev = serial_current;
return dev;