summaryrefslogtreecommitdiff
path: root/src/mainboard
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2014-03-14 22:28:29 +0200
committerKyösti Mälkki <kyosti.malkki@gmail.com>2014-04-30 06:59:05 +0200
commit70342a7f51a0069446966c42db4dbc44f6db16ee (patch)
treec701e9fe78ca219fae3664fc7b4d54ab187f7f4f /src/mainboard
parenta8d089d3acc0c2254b3dbeb04c1e622ab01e6d98 (diff)
uart: Support multiple ports
The port for console remains to be a compile time constant. The Kconfig option is changed to select an UART port with index to avoid putting map of UART base addresses in Kconfigs. With this change it is possible to have other than debug console on different UART port. Change-Id: Ie1845a946f8d3b2604ef5404edb31b2e811f3ccd Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/5342 Tested-by: build bot (Jenkins) Reviewed-by: David Hendricks <dhendrix@chromium.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Diffstat (limited to 'src/mainboard')
-rw-r--r--src/mainboard/emulation/qemu-armv7/Kconfig5
-rw-r--r--src/mainboard/emulation/qemu-armv7/Makefile.inc4
-rw-r--r--src/mainboard/emulation/qemu-armv7/mmio.c21
-rw-r--r--src/mainboard/ti/beaglebone/Kconfig51
-rw-r--r--src/mainboard/ti/beaglebone/bootblock.c12
5 files changed, 34 insertions, 59 deletions
diff --git a/src/mainboard/emulation/qemu-armv7/Kconfig b/src/mainboard/emulation/qemu-armv7/Kconfig
index 040ed9cb4b..6d04216144 100644
--- a/src/mainboard/emulation/qemu-armv7/Kconfig
+++ b/src/mainboard/emulation/qemu-armv7/Kconfig
@@ -48,11 +48,6 @@ config DRAM_SIZE_MB
int
default 1024
-config CONSOLE_SERIAL_UART_ADDRESS
- hex
- depends on CONSOLE_SERIAL
- default 0x10009000
-
# Memory map for qemu vexpress-a9:
#
# 0x0000_0000: jump instruction (by qemu)
diff --git a/src/mainboard/emulation/qemu-armv7/Makefile.inc b/src/mainboard/emulation/qemu-armv7/Makefile.inc
index d15495fbeb..e088da69a5 100644
--- a/src/mainboard/emulation/qemu-armv7/Makefile.inc
+++ b/src/mainboard/emulation/qemu-armv7/Makefile.inc
@@ -21,3 +21,7 @@ ramstage-y += media.c
bootblock-y += timer.c
romstage-y += timer.c
ramstage-y += timer.c
+
+bootblock-y += mmio.c
+romstage-y += mmio.c
+ramstage-y += mmio.c
diff --git a/src/mainboard/emulation/qemu-armv7/mmio.c b/src/mainboard/emulation/qemu-armv7/mmio.c
new file mode 100644
index 0000000000..02473e46e5
--- /dev/null
+++ b/src/mainboard/emulation/qemu-armv7/mmio.c
@@ -0,0 +1,21 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * 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.
+ */
+
+#include <console/uart.h>
+
+#define VEXPRESS_UART0_IO_ADDRESS (0x10009000)
+
+unsigned int uart_platform_base(int idx)
+{
+ return VEXPRESS_UART0_IO_ADDRESS;
+}
diff --git a/src/mainboard/ti/beaglebone/Kconfig b/src/mainboard/ti/beaglebone/Kconfig
index c842a5d59a..a24fcde075 100644
--- a/src/mainboard/ti/beaglebone/Kconfig
+++ b/src/mainboard/ti/beaglebone/Kconfig
@@ -61,54 +61,9 @@ config CBFS_HEADER_ROM_OFFSET
hex
default 0x10
-choice CONSOLE_SERIAL_UART_CHOICES
- prompt "Serial Console UART"
- default CONSOLE_SERIAL_UART0
- depends on CONSOLE_SERIAL
-
-config CONSOLE_SERIAL_UART0
- bool "UART0"
- help
- Serial console on UART0
-
-config CONSOLE_SERIAL_UART1
- bool "UART1"
- help
- Serial console on UART1
-
-config CONSOLE_SERIAL_UART2
- bool "UART2"
- help
- Serial console on UART2
-
-config CONSOLE_SERIAL_UART3
- bool "UART3"
- help
- Serial console on UART3
-
-config CONSOLE_SERIAL_UART4
- bool "UART4"
- help
- Serial console on UART4
-
-config CONSOLE_SERIAL_UART5
- bool "UART5"
- help
- Serial console on UART5
-
-endchoice
-
-config CONSOLE_SERIAL_UART_ADDRESS
- hex
- depends on CONSOLE_SERIAL
- default 0x44e09000 if CONSOLE_SERIAL_UART0
- default 0x48022000 if CONSOLE_SERIAL_UART1
- default 0x48024000 if CONSOLE_SERIAL_UART2
- default 0x481a6000 if CONSOLE_SERIAL_UART3
- default 0x481a8000 if CONSOLE_SERIAL_UART4
- default 0x481aa000 if CONSOLE_SERIAL_UART5
- help
- Map the UART names to the respective MMIO address.
+config UART_FOR_CONSOLE
+ int
+ default 0
#################################################################
# stuff from smdk5250.h #
diff --git a/src/mainboard/ti/beaglebone/bootblock.c b/src/mainboard/ti/beaglebone/bootblock.c
index 9e0a62e719..6cc7a8c25d 100644
--- a/src/mainboard/ti/beaglebone/bootblock.c
+++ b/src/mainboard/ti/beaglebone/bootblock.c
@@ -42,22 +42,22 @@ void bootblock_mainboard_init(void)
setbits_le32((uint32_t *)(0x4804c000 + 0x13c), 0x5 << 21);
/* Set up the UART we're going to use */
- if (CONFIG_CONSOLE_SERIAL_UART0) {
+ if (CONFIG_UART_FOR_CONSOLE == 0) {
am335x_pinmux_uart0();
uart_clock_ctrl = (void *)(uintptr_t)(0x44e00400 + 0xb4);
- } else if (CONFIG_CONSOLE_SERIAL_UART1) {
+ } else if (CONFIG_UART_FOR_CONSOLE == 1) {
am335x_pinmux_uart1();
uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x6c);
- } else if (CONFIG_CONSOLE_SERIAL_UART2) {
+ } else if (CONFIG_UART_FOR_CONSOLE == 2) {
am335x_pinmux_uart2();
uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x70);
- } else if (CONFIG_CONSOLE_SERIAL_UART3) {
+ } else if (CONFIG_UART_FOR_CONSOLE == 3) {
am335x_pinmux_uart3();
uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x74);
- } else if (CONFIG_CONSOLE_SERIAL_UART4) {
+ } else if (CONFIG_UART_FOR_CONSOLE == 4) {
am335x_pinmux_uart4();
uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x78);
- } else if (CONFIG_CONSOLE_SERIAL_UART5) {
+ } else if (CONFIG_UART_FOR_CONSOLE == 5) {
am335x_pinmux_uart5();
uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x38);
}