From 7e75f20477511c48f47416caed7301e852165a7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Mon, 10 Feb 2014 23:21:14 +0200 Subject: [PATCH] pl011 UART: Move under drivers/uart MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently this is only a minimal stub to get console on qemu-armv7. Change-Id: I3f20b7f944bc7d0e5ace9d22198d4c16a3839d2c Signed-off-by: Kyösti Mälkki Reviewed-on: http://review.coreboot.org/5162 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- src/drivers/uart/Kconfig | 4 ++++ src/drivers/uart/Makefile.inc | 10 +++++++++ .../uart.c => drivers/uart/pl011.c} | 22 +++++-------------- src/mainboard/emulation/qemu-armv7/Kconfig | 8 +++++-- .../emulation/qemu-armv7/Makefile.inc | 4 ---- 5 files changed, 26 insertions(+), 22 deletions(-) rename src/{mainboard/emulation/qemu-armv7/uart.c => drivers/uart/pl011.c} (70%) diff --git a/src/drivers/uart/Kconfig b/src/drivers/uart/Kconfig index c1c30907c3..5c9a9d129c 100644 --- a/src/drivers/uart/Kconfig +++ b/src/drivers/uart/Kconfig @@ -12,3 +12,7 @@ config HAVE_UART_SPECIAL bool default n +config DRIVERS_UART_PL011 + bool + default n + select HAVE_UART_SPECIAL diff --git a/src/drivers/uart/Makefile.inc b/src/drivers/uart/Makefile.inc index c797d4b44d..52a7024318 100644 --- a/src/drivers/uart/Makefile.inc +++ b/src/drivers/uart/Makefile.inc @@ -4,3 +4,13 @@ ramstage-y += util.c bootblock-y += util.c smm-y += util.c endif + +ifeq ($(CONFIG_CONSOLE_SERIAL_UART),y) + +ifeq ($(CONFIG_DRIVERS_UART_PL011),y) +bootblock-$(CONFIG_BOOTBLOCK_CONSOLE) += pl011.c +romstage-$(CONFIG_EARLY_CONSOLE) += pl011.c +ramstage-y += pl011.c +endif + +endif diff --git a/src/mainboard/emulation/qemu-armv7/uart.c b/src/drivers/uart/pl011.c similarity index 70% rename from src/mainboard/emulation/qemu-armv7/uart.c rename to src/drivers/uart/pl011.c index dfe5d0ac12..af085acbea 100644 --- a/src/mainboard/emulation/qemu-armv7/uart.c +++ b/src/drivers/uart/pl011.c @@ -16,37 +16,27 @@ #include #include -#define VEXPRESS_UART0_IO_ADDRESS (0x10009000) - -static void pl011_init_dev(void) { -} - -static void pl011_uart_tx_byte(unsigned char data) { +static void pl011_uart_tx_byte(unsigned char data) +{ static volatile unsigned int *uart0_address = - (unsigned int *)VEXPRESS_UART0_IO_ADDRESS; + (unsigned int *) CONFIG_CONSOLE_SERIAL_UART_ADDRESS; *uart0_address = (unsigned int)data; } -static void pl011_uart_tx_flush(void) { -} - #if !defined(__PRE_RAM__) static const struct console_driver pl011_uart_console __console = { - .init = pl011_init_dev, .tx_byte = pl011_uart_tx_byte, - .tx_flush = pl011_uart_tx_flush, }; uint32_t uartmem_getbaseaddr(void) { - return VEXPRESS_UART0_IO_ADDRESS; + return CONFIG_CONSOLE_SERIAL_UART_ADDRESS; } #else void uart_init(void) { - pl011_init_dev(); } void uart_tx_byte(unsigned char data) @@ -54,7 +44,7 @@ void uart_tx_byte(unsigned char data) pl011_uart_tx_byte(data); } -void uart_tx_flush(void) { - pl011_uart_tx_flush(); +void uart_tx_flush(void) +{ } #endif diff --git a/src/mainboard/emulation/qemu-armv7/Kconfig b/src/mainboard/emulation/qemu-armv7/Kconfig index 9ab9767ed1..edba627984 100644 --- a/src/mainboard/emulation/qemu-armv7/Kconfig +++ b/src/mainboard/emulation/qemu-armv7/Kconfig @@ -25,8 +25,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy def_bool y select ARCH_ARMV7 select CPU_ARMLTD_CORTEX_A9 - select HAVE_UART_MEMORY_MAPPED - select HAVE_UART_SPECIAL + select DRIVERS_UART_PL011 select BOARD_ROMSIZE_KB_4096 config MAINBOARD_DIR @@ -49,6 +48,11 @@ config DRAM_SIZE_MB int default 1024 +config CONSOLE_SERIAL_UART_ADDRESS + hex + depends on CONSOLE_SERIAL_UART + 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 431d9ab865..d15495fbeb 100644 --- a/src/mainboard/emulation/qemu-armv7/Makefile.inc +++ b/src/mainboard/emulation/qemu-armv7/Makefile.inc @@ -21,7 +21,3 @@ ramstage-y += media.c bootblock-y += timer.c romstage-y += timer.c ramstage-y += timer.c - -bootblock-$(CONFIG_BOOTBLOCK_CONSOLE) += uart.c -romstage-$(CONFIG_EARLY_CONSOLE) += uart.c -ramstage-y += uart.c