|
@@ -351,4 +351,62 @@ void _serial_early_init(void)
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
-#endif
|
|
|
+#elif defined(CONFIG_UART_MEM)
|
|
|
+
|
|
|
+char serial_logbuf[CONFIG_UART_MEM];
|
|
|
+char *serial_logbuf_head = serial_logbuf;
|
|
|
+
|
|
|
+int serial_mem_init(void)
|
|
|
+{
|
|
|
+ serial_logbuf_head = serial_logbuf;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+void serial_mem_setbrg(void)
|
|
|
+{
|
|
|
+}
|
|
|
+
|
|
|
+int serial_mem_tstc(void)
|
|
|
+{
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+int serial_mem_getc(void)
|
|
|
+{
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+void serial_mem_putc(const char c)
|
|
|
+{
|
|
|
+ *serial_logbuf_head = c;
|
|
|
+ if (++serial_logbuf_head == serial_logbuf + CONFIG_UART_MEM)
|
|
|
+ serial_logbuf_head = serial_logbuf;
|
|
|
+}
|
|
|
+
|
|
|
+void serial_mem_puts(const char *s)
|
|
|
+{
|
|
|
+ while (*s)
|
|
|
+ serial_putc(*s++);
|
|
|
+}
|
|
|
+
|
|
|
+struct serial_device bfin_serial_mem_device = {
|
|
|
+ .name = "bfin_uart_mem",
|
|
|
+ .start = serial_mem_init,
|
|
|
+ .setbrg = serial_mem_setbrg,
|
|
|
+ .getc = serial_mem_getc,
|
|
|
+ .tstc = serial_mem_tstc,
|
|
|
+ .putc = serial_mem_putc,
|
|
|
+ .puts = serial_mem_puts,
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+__weak struct serial_device *default_serial_console(void)
|
|
|
+{
|
|
|
+ return &bfin_serial_mem_device;
|
|
|
+}
|
|
|
+
|
|
|
+void bfin_serial_initialize(void)
|
|
|
+{
|
|
|
+ serial_register(&bfin_serial_mem_device);
|
|
|
+}
|
|
|
+#endif /* CONFIG_UART_MEM */
|