Ronald G. Minnich (rminnich@gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2466
-gerrit
commit 69b4d774f7546a969986ee011d57d5e294cff41c Author: Ronald G. Minnich rminnich@gmail.com Date: Wed Feb 20 14:13:01 2013 -0800
ARMV7: create a correct LB_SERIAL table entry
If CONFIG_CONSOLE_SERIAL is set, and we can call the standard function and get a non-zero uart address, then we create an lb table entry.
The code was mostly right, just needed a tweak.
Change-Id: I5b36c7b4e580a23319b7ba92cc8ad61592b1757a Signed-off-by: Ronald G. Minnich rminnich@gmail.com --- src/arch/armv7/boot/coreboot_table.c | 13 +------------ src/mainboard/emulation/qemu-armv7/uart.c | 4 ++++ 2 files changed, 5 insertions(+), 12 deletions(-)
diff --git a/src/arch/armv7/boot/coreboot_table.c b/src/arch/armv7/boot/coreboot_table.c index 044f3d5..2810a5e 100644 --- a/src/arch/armv7/boot/coreboot_table.c +++ b/src/arch/armv7/boot/coreboot_table.c @@ -110,18 +110,7 @@ static struct lb_memory *lb_memory(struct lb_header *header)
static struct lb_serial *lb_serial(struct lb_header *header) { -#if CONFIG_CONSOLE_SERIAL8250 - 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_IO_MAPPED; - serial->baseaddr = CONFIG_TTYS0_BASE; - serial->baud = CONFIG_TTYS0_BAUD; - return serial; -#elif CONFIG_CONSOLE_SERIAL8250MEM +#if CONFIG_CONSOLE_SERIAL if (uartmem_getbaseaddr()) { struct lb_record *rec; struct lb_serial *serial; diff --git a/src/mainboard/emulation/qemu-armv7/uart.c b/src/mainboard/emulation/qemu-armv7/uart.c index 2988777..dfe5d0a 100644 --- a/src/mainboard/emulation/qemu-armv7/uart.c +++ b/src/mainboard/emulation/qemu-armv7/uart.c @@ -39,6 +39,10 @@ static const struct console_driver pl011_uart_console __console = { .tx_flush = pl011_uart_tx_flush, };
+uint32_t uartmem_getbaseaddr(void) +{ + return VEXPRESS_UART0_IO_ADDRESS; +} #else void uart_init(void) {