[coreboot-gerrit] New patch to review for coreboot: 49b8347 serial: Separate the serial hardware init and the serial console init.

Isaac Christensen (isaac.christensen@se-eng.com) gerrit at coreboot.org
Sat Aug 9 01:39:52 CEST 2014


Isaac Christensen (isaac.christensen at se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6547

-gerrit

commit 49b834753cf925789fd2fdfca2a04b09671a527f
Author: Gabe Black <gabeblack at google.com>
Date:   Tue Dec 3 21:25:35 2013 -0800

    serial: Separate the serial hardware init and the serial console init.
    
    You might want to use the serial hardware for something other than a console,
    or you might want to intercede in the serial stream to wrap it in another
    protocol. This is what you'd do to send output to GDB while using it to debug
    the payload.
    
    Change-Id: I2218c0dbb988dacb64e5bdaf5d92138828eff8b6
    Signed-off-by: Gabe Black <gabeblack at google.com>
    Reviewed-on: https://chromium-review.googlesource.com/179559
    Reviewed-by: Ronald Minnich <rminnich at chromium.org>
    Reviewed-by: David Hendricks <dhendrix at chromium.org>
    Commit-Queue: Gabe Black <gabeblack at chromium.org>
    Tested-by: Gabe Black <gabeblack at chromium.org>
    (cherry picked from commit da9ab46d974745125fe7d8b29ce43336c3586cd5)
    Signed-off-by: Isaac Christensen <isaac.christensen at se-eng.com>
---
 payloads/libpayload/drivers/serial.c     | 9 +++++++++
 payloads/libpayload/include/libpayload.h | 1 +
 payloads/libpayload/libc/console.c       | 2 +-
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/payloads/libpayload/drivers/serial.c b/payloads/libpayload/drivers/serial.c
index 92782a0..a4c1b1a 100644
--- a/payloads/libpayload/drivers/serial.c
+++ b/payloads/libpayload/drivers/serial.c
@@ -117,6 +117,15 @@ void serial_init(void)
 #ifdef CONFIG_LP_SERIAL_SET_SPEED
 	serial_hardware_init(CONFIG_LP_SERIAL_BAUD_RATE, 8, 0, 1);
 #endif
+}
+
+void serial_console_init(void)
+{
+	if (!lib_sysinfo.serial)
+		return;
+
+	serial_init();
+
 	console_add_input_driver(&consin);
 	console_add_output_driver(&consout);
 	serial_hardware_is_present = 1;
diff --git a/payloads/libpayload/include/libpayload.h b/payloads/libpayload/include/libpayload.h
index 29b5629..753449d 100644
--- a/payloads/libpayload/include/libpayload.h
+++ b/payloads/libpayload/include/libpayload.h
@@ -163,6 +163,7 @@ int keyboard_set_layout(char *country);
  * @{
  */
 void serial_init(void);
+void serial_console_init(void);
 void serial_putchar(unsigned int c);
 int serial_havechar(void);
 int serial_getchar(void);
diff --git a/payloads/libpayload/libc/console.c b/payloads/libpayload/libc/console.c
index a362481..59d5bcc 100644
--- a/payloads/libpayload/libc/console.c
+++ b/payloads/libpayload/libc/console.c
@@ -53,7 +53,7 @@ void console_init(void)
 	video_console_init();
 #endif
 #ifdef CONFIG_LP_SERIAL_CONSOLE
-	serial_init();
+	serial_console_init();
 #endif
 #ifdef CONFIG_LP_PC_KEYBOARD
 	keyboard_init();



More information about the coreboot-gerrit mailing list