summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLee Leahy <leroy.p.leahy@intel.com>2016-08-09 08:59:30 -0700
committerLee Leahy <leroy.p.leahy@intel.com>2016-08-10 22:30:19 +0200
commit219c3328f1774a667e0c08818fb3266f1114064d (patch)
treed9b98475ef1b26ccfeedad0ab2bbbd498920f004
parenta8b86b3a9f39e1215558eb5b78daa9be9c1c33d5 (diff)
downloadcoreboot-219c3328f1774a667e0c08818fb3266f1114064d.tar.xz
console: Add write line routine
Add write line routine which is called indirectly by FSP. TEST=Build and run on Galileo Gen2. Change-Id: Idefb6e9ebe5a2b614055dabddc1882bfa3bba673 Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com> Reviewed-on: https://review.coreboot.org/16127 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
-rw-r--r--src/console/console.c13
-rw-r--r--src/include/console/streams.h9
2 files changed, 22 insertions, 0 deletions
diff --git a/src/console/console.c b/src/console/console.c
index c4365f3e6d..7b0dfc2fb1 100644
--- a/src/console/console.c
+++ b/src/console/console.c
@@ -62,6 +62,19 @@ void console_tx_flush(void)
__usb_tx_flush();
}
+void console_write_line(uint8_t *buffer, size_t number_of_bytes)
+{
+ /* Finish displaying all of the console data if requested */
+ if (number_of_bytes == 0) {
+ console_tx_flush();
+ return;
+ }
+
+ /* Output the console data */
+ while (number_of_bytes--)
+ console_tx_byte(*buffer++);
+}
+
#if CONFIG_GDB_STUB && (ENV_ROMSTAGE || ENV_RAMSTAGE)
void gdb_hw_init(void)
diff --git a/src/include/console/streams.h b/src/include/console/streams.h
index 35f7999f80..6e944a64b3 100644
--- a/src/include/console/streams.h
+++ b/src/include/console/streams.h
@@ -14,10 +14,19 @@
#ifndef _CONSOLE_STREAMS_H_
#define _CONSOLE_STREAMS_H_
+#include <stddef.h>
+#include <stdint.h>
+
void console_hw_init(void);
void console_tx_byte(unsigned char byte);
void console_tx_flush(void);
+/*
+ * Write number_of_bytes data bytes from buffer to the serial device.
+ * If number_of_bytes is zero, wait until all serial data is output.
+ */
+void console_write_line(uint8_t *buffer, size_t number_of_bytes);
+
/* For remote GDB debugging. */
void gdb_hw_init(void);
void gdb_tx_byte(unsigned char byte);