|
@@ -450,6 +450,12 @@ static void pre_console_putc(const char c)
|
|
unmap_sysmem(buffer);
|
|
unmap_sysmem(buffer);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static void pre_console_puts(const char *s)
|
|
|
|
+{
|
|
|
|
+ while (*s)
|
|
|
|
+ pre_console_putc(*s++);
|
|
|
|
+}
|
|
|
|
+
|
|
static void print_pre_console_buffer(int flushpoint)
|
|
static void print_pre_console_buffer(int flushpoint)
|
|
{
|
|
{
|
|
unsigned long in = 0, out = 0;
|
|
unsigned long in = 0, out = 0;
|
|
@@ -477,6 +483,7 @@ static void print_pre_console_buffer(int flushpoint)
|
|
}
|
|
}
|
|
#else
|
|
#else
|
|
static inline void pre_console_putc(const char c) {}
|
|
static inline void pre_console_putc(const char c) {}
|
|
|
|
+static inline void pre_console_puts(const char *s) {}
|
|
static inline void print_pre_console_buffer(int flushpoint) {}
|
|
static inline void print_pre_console_buffer(int flushpoint) {}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
@@ -518,8 +525,41 @@ void putc(const char c)
|
|
|
|
|
|
void puts(const char *s)
|
|
void puts(const char *s)
|
|
{
|
|
{
|
|
- while (*s)
|
|
|
|
- putc(*s++);
|
|
|
|
|
|
+#ifdef CONFIG_DEBUG_UART
|
|
|
|
+ if (!gd || !(gd->flags & GD_FLG_SERIAL_READY)) {
|
|
|
|
+ while (*s) {
|
|
|
|
+ int ch = *s++;
|
|
|
|
+
|
|
|
|
+ printch(ch);
|
|
|
|
+ }
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+#endif
|
|
|
|
+#ifdef CONFIG_CONSOLE_RECORD
|
|
|
|
+ if (gd && (gd->flags & GD_FLG_RECORD) && gd->console_out.start)
|
|
|
|
+ membuff_put(&gd->console_out, s, strlen(s));
|
|
|
|
+#endif
|
|
|
|
+#ifdef CONFIG_SILENT_CONSOLE
|
|
|
|
+ if (gd->flags & GD_FLG_SILENT)
|
|
|
|
+ return;
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+#ifdef CONFIG_DISABLE_CONSOLE
|
|
|
|
+ if (gd->flags & GD_FLG_DISABLE_CONSOLE)
|
|
|
|
+ return;
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+ if (!gd->have_console)
|
|
|
|
+ return pre_console_puts(s);
|
|
|
|
+
|
|
|
|
+ if (gd->flags & GD_FLG_DEVINIT) {
|
|
|
|
+ /* Send to the standard output */
|
|
|
|
+ fputs(stdout, s);
|
|
|
|
+ } else {
|
|
|
|
+ /* Send directly to the handler */
|
|
|
|
+ pre_console_puts(s);
|
|
|
|
+ serial_puts(s);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_CONSOLE_RECORD
|
|
#ifdef CONFIG_CONSOLE_RECORD
|