[U-Boot] [PATCH 3/3] rockchip: Use the debug UART on rk3036
Thomas Chou
thomas at wytron.com.tw
Mon Dec 14 13:53:59 CET 2015
Hi Simon,
On 2015年12月14日 12:37, Simon Glass wrote:
> Rather than using a new debug UART implementation, use the standard one
> provided by U-Boot.
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> arch/arm/mach-rockchip/Makefile | 1 -
> arch/arm/mach-rockchip/rk3036-board-spl.c | 9 ++++-
> arch/arm/mach-rockchip/rk_early_print.c | 63 -------------------------------
> configs/evb-rk3036_defconfig | 6 +++
> include/configs/rk3036_common.h | 2 +
> 5 files changed, 16 insertions(+), 65 deletions(-)
> delete mode 100644 arch/arm/mach-rockchip/rk_early_print.c
>
> diff --git a/arch/arm/mach-rockchip/Makefile b/arch/arm/mach-rockchip/Makefile
> index b703c3c..1cc4a96 100644
> --- a/arch/arm/mach-rockchip/Makefile
> +++ b/arch/arm/mach-rockchip/Makefile
> @@ -11,7 +11,6 @@ else
> obj-$(CONFIG_ROCKCHIP_RK3288) += board.o
> endif
> obj-y += rk_timer.o
> -obj-y += rk_early_print.o
> obj-$(CONFIG_$(SPL_)ROCKCHIP_COMMON) += common.o
> obj-$(CONFIG_ROCKCHIP_RK3288) += rk3288/
> obj-$(CONFIG_ROCKCHIP_RK3036) += rk3036/
> diff --git a/arch/arm/mach-rockchip/rk3036-board-spl.c b/arch/arm/mach-rockchip/rk3036-board-spl.c
> index 3a1491c..8015481 100644
> --- a/arch/arm/mach-rockchip/rk3036-board-spl.c
> +++ b/arch/arm/mach-rockchip/rk3036-board-spl.c
> @@ -5,6 +5,7 @@
> */
>
> #include <common.h>
> +#include <debug_uart.h>
> #include <asm/io.h>
> #include <asm/arch/grf_rk3036.h>
> #include <asm/arch/hardware.h>
> @@ -34,7 +35,7 @@ void board_init_f(ulong dummy)
> GPIO1C2_MASK << GPIO1C2_SHIFT,
> GPIO1C3_UART2_SOUT << GPIO1C3_SHIFT |
> GPIO1C2_UART2_SIN << GPIO1C2_SHIFT);
> - rk_uart_init((void *)DEBUG_UART_BASE);
> + debug_uart_init();
> #endif
> rockchip_timer_init();
> sdram_init();
> @@ -53,3 +54,9 @@ void board_init_r(gd_t *id, ulong dest_addr)
> while (1)
> ;
> }
> +
> +void hang(void)
> +{
> + while (1)
> + ;
> +}
> diff --git a/arch/arm/mach-rockchip/rk_early_print.c b/arch/arm/mach-rockchip/rk_early_print.c
> deleted file mode 100644
> index a1c14b0..0000000
> --- a/arch/arm/mach-rockchip/rk_early_print.c
> +++ /dev/null
> @@ -1,63 +0,0 @@
> -/*
> - * (C) Copyright 2015 Rockchip Electronics Co., Ltd
> - *
> - * SPDX-License-Identifier: GPL-2.0+
> - */
> -
> -#include <asm/io.h>
> -#include <asm/arch/uart.h>
> -#include <common.h>
> -
> -static struct rk_uart *uart_ptr;
> -
> -static void uart_wrtie_byte(char byte)
> -{
> - writel(byte, &uart_ptr->rbr);
> - while (!(readl(&uart_ptr->lsr) & 0x40))
> - ;
> -}
> -
> -void print(char *s)
> -{
> - while (*s) {
> - if (*s == '\n')
> - uart_wrtie_byte('\r');
> - uart_wrtie_byte(*s);
> - s++;
> - }
> -}
> -
> -void print_hex(unsigned int n)
> -{
> - int i;
> - int temp;
> -
> - uart_wrtie_byte('0');
> - uart_wrtie_byte('x');
> -
> - for (i = 8; i > 0; i--) {
> - temp = (n >> (i - 1) * 4) & 0x0f;
> - if (temp < 10)
> - uart_wrtie_byte((char)(temp + '0'));
> - else
> - uart_wrtie_byte((char)(temp - 10 + 'a'));
> - }
> - uart_wrtie_byte('\n');
> - uart_wrtie_byte('\r');
> -}
> -
> -/*
> - * TODO: since rk3036 only 4K sram to use in SPL, for saving space,
> - * we implement uart driver this way, we should convert this to use
> - * ns16550 driver in future, which support DEBUG_UART in the standard way
> - */
> -void rk_uart_init(void *base)
> -{
> - uart_ptr = (struct rk_uart *)base;
> - writel(0x83, &uart_ptr->lcr);
> - writel(0x0d, &uart_ptr->rbr);
> - writel(0x03, &uart_ptr->lcr);
> -
> - /* fifo enable, sfe is shadow register of FCR[0] */
> - writel(0x01, &uart_ptr->sfe);
> -}
> diff --git a/configs/evb-rk3036_defconfig b/configs/evb-rk3036_defconfig
> index 2e915ff..c196bd6 100644
> --- a/configs/evb-rk3036_defconfig
> +++ b/configs/evb-rk3036_defconfig
> @@ -24,3 +24,9 @@ CONFIG_DM_MMC=y
> CONFIG_USE_PRIVATE_LIBGCC=y
> CONFIG_CMD_DHRYSTONE=y
> CONFIG_ERRNO_STR=y
> +CONFIG_DEBUG_UART=y
> +CONFIG_DEBUG_UART_NS16550=y
> +CONFIG_DEBUG_UART_BASE=0x20068000
> +CONFIG_DEBUG_UART_CLOCK=24000000
> +CONFIG_DEBUG_UART_SHIFT=2
> +# CONFIG_SPL_SERIAL_PRESENT is not set
> diff --git a/include/configs/rk3036_common.h b/include/configs/rk3036_common.h
> index f753e68..d22ea74 100644
> --- a/include/configs/rk3036_common.h
> +++ b/include/configs/rk3036_common.h
> @@ -24,6 +24,8 @@
> #define CONFIG_SYS_TIMER_BASE 0x200440a0 /* TIMER5 */
> #define CONFIG_SYS_TIMER_COUNTER (CONFIG_SYS_TIMER_BASE + 8)
>
> +#define CONFIG_SPL_SERIAL_SUPPORT
> +
> #define CONFIG_SYS_NS16550
> #define CONFIG_SYS_NS16550_MEM32
>
>
Reviewed-by: Thomas Chou <thomas at wytron.com.tw>
More information about the U-Boot
mailing list