Kyösti Mälkki (kyosti.malkki@gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5230
-gerrit
commit ded94c0b2a03b00bbdd77a021c3ce0dac0f4bf65 Author: Kyösti Mälkki kyosti.malkki@gmail.com Date: Sat Feb 15 13:58:01 2014 +0200
console: Add drivers/uart
Also move UART related Kconfig options from top-level file.
Change-Id: I4e407977cff6f6506f991600c98d6d264676d3f8 Signed-off-by: Kyösti Mälkki kyosti.malkki@gmail.com --- src/Kconfig | 14 -------- src/console/util.c | 2 +- src/cpu/allwinner/a10/uart_console.c | 2 +- src/cpu/samsung/exynos5250/uart.c | 2 +- src/cpu/samsung/exynos5420/uart.c | 2 +- src/cpu/ti/am335x/uart.c | 2 +- src/drivers/Kconfig | 1 + src/drivers/Makefile.inc | 1 + src/drivers/uart/Kconfig | 14 ++++++++ src/include/console/console.h | 2 +- src/include/console/uart.h | 9 ++++++ src/include/uart.h | 44 -------------------------- src/include/uart8250.h | 3 -- src/mainboard/cubietech/cubieboard/bootblock.c | 2 +- src/mainboard/emulation/qemu-armv7/uart.c | 2 +- src/mainboard/ti/beaglebone/bootblock.c | 2 +- 16 files changed, 34 insertions(+), 70 deletions(-)
diff --git a/src/Kconfig b/src/Kconfig index 94fea2d..bb25afd 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -292,20 +292,6 @@ config MMCONF_SUPPORT
source src/console/Kconfig
-# This should default to N and be set by SuperI/O drivers that have an UART -config HAVE_UART_IO_MAPPED - bool - default y if ARCH_X86 - default n if ARCH_ARMV7 - -config HAVE_UART_MEMORY_MAPPED - bool - default n - -config HAVE_UART_SPECIAL - bool - default n - config HAVE_ACPI_RESUME bool default n diff --git a/src/console/util.c b/src/console/util.c index 405657d..741a0d4 100644 --- a/src/console/util.c +++ b/src/console/util.c @@ -16,7 +16,7 @@ */
#include <console/console.h> -#include <uart8250.h> +#include <console/uart.h> #if CONFIG_USE_OPTION_TABLE #include <option.h> #include "option_table.h" diff --git a/src/cpu/allwinner/a10/uart_console.c b/src/cpu/allwinner/a10/uart_console.c index 58930dd..94ab7f7 100644 --- a/src/cpu/allwinner/a10/uart_console.c +++ b/src/cpu/allwinner/a10/uart_console.c @@ -8,7 +8,7 @@
#include <config.h> #include <types.h> -#include <uart.h> +#include <console/uart.h> #include <arch/io.h>
#include <console/console.h> diff --git a/src/cpu/samsung/exynos5250/uart.c b/src/cpu/samsung/exynos5250/uart.c index dbf7202..80e9f4e 100644 --- a/src/cpu/samsung/exynos5250/uart.c +++ b/src/cpu/samsung/exynos5250/uart.c @@ -18,7 +18,7 @@ */
#include <console/console.h> /* for __console definition */ -#include <uart.h> +#include <console/uart.h> #include <arch/io.h> #include "uart.h" #include "clk.h" diff --git a/src/cpu/samsung/exynos5420/uart.c b/src/cpu/samsung/exynos5420/uart.c index c5c8a8c..ac01488 100644 --- a/src/cpu/samsung/exynos5420/uart.c +++ b/src/cpu/samsung/exynos5420/uart.c @@ -18,7 +18,7 @@ */
#include <console/console.h> /* for __console definition */ -#include <uart.h> +#include <console/uart.h> #include <arch/io.h> #include "uart.h" #include "clk.h" diff --git a/src/cpu/ti/am335x/uart.c b/src/cpu/ti/am335x/uart.c index bd2ff44..448b1c2 100644 --- a/src/cpu/ti/am335x/uart.c +++ b/src/cpu/ti/am335x/uart.c @@ -18,7 +18,7 @@
#include <config.h> #include <types.h> -#include <uart.h> +#include <console/uart.h> #include <arch/io.h>
#include <console/console.h> /* for __console definition */ diff --git a/src/drivers/Kconfig b/src/drivers/Kconfig index 8da7b05..01bed21 100644 --- a/src/drivers/Kconfig +++ b/src/drivers/Kconfig @@ -37,4 +37,5 @@ source src/drivers/sil/Kconfig source src/drivers/spi/Kconfig source src/drivers/ti/Kconfig source src/drivers/trident/Kconfig +source src/drivers/uart/Kconfig source src/drivers/xpowers/Kconfig diff --git a/src/drivers/Makefile.inc b/src/drivers/Makefile.inc index eb86a4c..197a900 100644 --- a/src/drivers/Makefile.inc +++ b/src/drivers/Makefile.inc @@ -30,6 +30,7 @@ subdirs-y += parade subdirs-y += realtek subdirs-y += sil subdirs-y += trident +subdirs-y += uart subdirs-y += usb subdirs-y += ics subdirs-y += spi diff --git a/src/drivers/uart/Kconfig b/src/drivers/uart/Kconfig new file mode 100644 index 0000000..c1c3090 --- /dev/null +++ b/src/drivers/uart/Kconfig @@ -0,0 +1,14 @@ +# This should default to N and be set by SuperI/O drivers that have an UART +config HAVE_UART_IO_MAPPED + bool + depends on !ARCH_ARMV7 + default y if ARCH_X86 + +config HAVE_UART_MEMORY_MAPPED + bool + default n + +config HAVE_UART_SPECIAL + bool + default n + diff --git a/src/include/console/console.h b/src/include/console/console.h index 451a46a..4df8cb6 100644 --- a/src/include/console/console.h +++ b/src/include/console/console.h @@ -25,7 +25,7 @@ #include <console/post_codes.h>
#if CONFIG_CONSOLE_SERIAL -#include <uart.h> +#include <console/uart.h> #endif #if CONFIG_USBDEBUG && !defined(__ROMCC__) #include <console/usb.h> diff --git a/src/include/console/uart.h b/src/include/console/uart.h index c4079b3..6cd3beb 100644 --- a/src/include/console/uart.h +++ b/src/include/console/uart.h @@ -20,7 +20,16 @@ #ifndef CONSOLE_UART_H #define CONSOLE_UART_H
+void uart_init(void); +void uart_tx_byte(unsigned char data); +void uart_tx_flush(void); +unsigned char uart_rx_byte(void); + + unsigned uart_divisor(unsigned basefreq); unsigned uart_platform_divisor(void);
+ +uint32_t uartmem_getbaseaddr(void); + #endif /* CONSOLE_UART_H */ diff --git a/src/include/uart.h b/src/include/uart.h deleted file mode 100644 index 9601bfa..0000000 --- a/src/include/uart.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2012 The ChromiumOS Authors. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/* madness. Uarts are a mess. If you include this file, it - * includes ALL uart implementations which may be needed. - * No need to include them separately, and include this file FIRST. - * At least one (but at most one) of the files needs to define - * uart_init(). - */ -#ifndef UART_H -#define UART_H - -#if CONFIG_CONSOLE_SERIAL8250 || CONFIG_CONSOLE_SERIAL8250MEM -#include <uart8250.h> -#endif - -#if CONFIG_CONSOLE_SERIAL_UART -unsigned char uart_rx_byte(void); -void uart_tx_byte(unsigned char data); -void uart_tx_flush(void); -void uart_init(void); -#endif - -#if CONFIG_HAVE_UART_MEMORY_MAPPED -uint32_t uartmem_getbaseaddr(void); -#endif - -#endif /* UART_H */ diff --git a/src/include/uart8250.h b/src/include/uart8250.h index 996a854..598cdfa 100644 --- a/src/include/uart8250.h +++ b/src/include/uart8250.h @@ -120,7 +120,6 @@ void uart8250_tx_flush(unsigned base_port); * have three different sets of uart code, so it's an improvement. */ void uart8250_init(unsigned base_port, unsigned divisor); -void uart_init(void); #endif #if CONFIG_CONSOLE_SERIAL8250MEM void uartmem_init(void); @@ -136,8 +135,6 @@ u32 uart_mem_init(void); #if defined(__PRE_RAM__) && CONFIG_DRIVERS_OXFORD_OXPCIE /* and special init for OXPCIe based cards */ extern int oxford_oxpcie_present; - -void oxford_init(void); #endif #endif
diff --git a/src/mainboard/cubietech/cubieboard/bootblock.c b/src/mainboard/cubietech/cubieboard/bootblock.c index 2e5929c..e22c1d8 100644 --- a/src/mainboard/cubietech/cubieboard/bootblock.c +++ b/src/mainboard/cubietech/cubieboard/bootblock.c @@ -7,7 +7,7 @@ */
#include <arch/io.h> -#include <uart.h> +#include <console/uart.h> #include <console/console.h> #include <delay.h> #include <cpu/allwinner/a10/gpio.h> diff --git a/src/mainboard/emulation/qemu-armv7/uart.c b/src/mainboard/emulation/qemu-armv7/uart.c index dfe5d0a..0be1cf9 100644 --- a/src/mainboard/emulation/qemu-armv7/uart.c +++ b/src/mainboard/emulation/qemu-armv7/uart.c @@ -14,7 +14,7 @@ */
#include <console/console.h> -#include <uart.h> +#include <console/uart.h>
#define VEXPRESS_UART0_IO_ADDRESS (0x10009000)
diff --git a/src/mainboard/ti/beaglebone/bootblock.c b/src/mainboard/ti/beaglebone/bootblock.c index dd46040..9e0a62e 100644 --- a/src/mainboard/ti/beaglebone/bootblock.c +++ b/src/mainboard/ti/beaglebone/bootblock.c @@ -19,7 +19,7 @@
#include <arch/io.h> #include <types.h> -#include <uart.h> +#include <console/uart.h> #include <console/console.h> #include <cpu/ti/am335x/pinmux.h>