Extend coreboot table entry for serial ports
[coreboot.git] / src / arch / x86 / boot / coreboot_table.c
index 8e7c75eaa12d111d819edec7058c5cfdaf3b9957..78ff97d21b3cea838d15a0304ad55e0d73454d61 100644 (file)
@@ -112,7 +112,19 @@ static struct lb_serial *lb_serial(struct lb_header *header)
        serial = (struct lb_serial *)rec;
        serial->tag = LB_TAG_SERIAL;
        serial->size = sizeof(*serial);
-       serial->ioport = CONFIG_TTYS0_BASE;
+       serial->type = LB_SERIAL_TYPE_IO_MAPPED;
+       serial->baseaddr = CONFIG_TTYS0_BASE;
+       serial->baud = CONFIG_TTYS0_BAUD;
+       return serial;
+#elif CONFIG_CONSOLE_SERIAL8250MEM
+       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 = uartmem_getbaseaddr();
        serial->baud = CONFIG_TTYS0_BAUD;
        return serial;
 #else
@@ -120,6 +132,8 @@ static struct lb_serial *lb_serial(struct lb_header *header)
 #endif
 }
 
+#if CONFIG_CONSOLE_SERIAL8250 || CONFIG_CONSOLE_SERIAL8250MEM || \
+    CONFIG_CONSOLE_LOGBUF || CONFIG_USBDEBUG
 static void add_console(struct lb_header *header, u16 consoletype)
 {
        struct lb_console *console;
@@ -129,12 +143,16 @@ static void add_console(struct lb_header *header, u16 consoletype)
        console->size = sizeof(*console);
        console->type = consoletype;
 }
+#endif
 
 static void lb_console(struct lb_header *header)
 {
 #if CONFIG_CONSOLE_SERIAL8250
        add_console(header, LB_TAG_CONSOLE_SERIAL8250);
 #endif
+#if CONFIG_CONSOLE_SERIAL8250MEM
+       add_console(header, LB_TAG_CONSOLE_SERIAL8250MEM);
+#endif
 #if CONFIG_CONSOLE_LOGBUF
        add_console(header, LB_TAG_CONSOLE_LOGBUF);
 #endif
@@ -145,7 +163,7 @@ static void lb_console(struct lb_header *header)
 
 static void lb_framebuffer(struct lb_header *header)
 {
-#if defined(CONFIG_BOOTSPLASH) && CONFIG_BOOTSPLASH && CONFIG_COREBOOT_KEEP_FRAMEBUFFER
+#if CONFIG_FRAMEBUFFER_KEEP_VESA_MODE
        void fill_lb_framebuffer(struct lb_framebuffer *framebuffer);
 
        struct lb_framebuffer *framebuffer;