[coreboot] New patch to review for coreboot: 4672926 armv7: add lb_serial entry to coreboot tables

David Hendricks (dhendrix@chromium.org) gerrit at coreboot.org
Tue Feb 12 04:33:45 CET 2013


David Hendricks (dhendrix at chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2365

-gerrit

commit 4672926c0a765d47c18300ef842a92ce6f4cdd38
Author: David Hendricks <dhendrix at chromium.org>
Date:   Mon Feb 11 19:23:18 2013 -0800

    armv7: add lb_serial entry to coreboot tables
    
    This should at least give the payload enough information to drive
    the UART.
    
    Change-Id: I65009d862e9731b609d09ea215cd0dd774109c11
    Signed-off-by: David Hendricks <dhendrix at chromium.org>
---
 src/arch/armv7/boot/coreboot_table.c | 18 +++++++++++++++++-
 src/include/boot/coreboot_tables.h   |  1 +
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/src/arch/armv7/boot/coreboot_table.c b/src/arch/armv7/boot/coreboot_table.c
index 76fc8fb..5201f1e 100644
--- a/src/arch/armv7/boot/coreboot_table.c
+++ b/src/arch/armv7/boot/coreboot_table.c
@@ -136,13 +136,26 @@ static struct lb_serial *lb_serial(struct lb_header *header)
 	} else {
 		return NULL;
 	}
+#elif CONFIG_HAVE_UART_SPECIAL
+	/* FIXME(dhendrix): this should probably go in a board-specific file */
+	struct lb_record *rec;
+	struct lb_serial *serial;
+	rec = lb_new_record(header);
+	serial = (struct lb_serial *)rec;
+	serial->tag = LB_TAG_SERIAL;
+	serial->size = sizeof(*serial);
+	serial->type = LB_SERIAL_TYPE_MEMORY_MAPPED;
+	serial->baseaddr = CONFIG_CONSOLE_SERIAL_UART_ADDRESS;
+	serial->baud = CONFIG_TTYS0_BAUD;
+	return serial;
 #else
 	return NULL;
 #endif
 }
 
+/* FIXME: maybe just check for CONFIG_CONSOLE_SERIAL? */
 #if CONFIG_CONSOLE_SERIAL8250 || CONFIG_CONSOLE_SERIAL8250MEM || \
-    CONFIG_CONSOLE_LOGBUF || CONFIG_USBDEBUG
+    CONFIG_HAVE_UART_SPECIAL || CONFIG_CONSOLE_LOGBUF || CONFIG_USBDEBUG
 static void add_console(struct lb_header *header, u16 consoletype)
 {
 	struct lb_console *console;
@@ -162,6 +175,9 @@ static void lb_console(struct lb_header *header)
 #if CONFIG_CONSOLE_SERIAL8250MEM
 	add_console(header, LB_TAG_CONSOLE_SERIAL8250MEM);
 #endif
+#if CONFIG_HAVE_UART_SPECIAL
+	add_console(header, LB_TAG_CONSOLE_UART_SPECIAL);
+#endif
 #if CONFIG_CONSOLE_LOGBUF
 	add_console(header, LB_TAG_CONSOLE_LOGBUF);
 #endif
diff --git a/src/include/boot/coreboot_tables.h b/src/include/boot/coreboot_tables.h
index 9cf90d3..04427d2 100644
--- a/src/include/boot/coreboot_tables.h
+++ b/src/include/boot/coreboot_tables.h
@@ -167,6 +167,7 @@ struct lb_console {
 #define LB_TAG_CONSOLE_SROM		4 // OBSOLETE
 #define LB_TAG_CONSOLE_EHCI		5
 #define LB_TAG_CONSOLE_SERIAL8250MEM	6
+#define LB_TAG_CONSOLE_UART_SPECIAL	7
 
 #define LB_TAG_FORWARD		0x0011
 struct lb_forward {



More information about the coreboot mailing list