commit: http://blackfin.uclinux.org/git/?p=u-boot;a=commitdiff;h=9400caed9b2ad9226c70d7863e0a0720e2261c56 branch: http://blackfin.uclinux.org/git/?p=u-boot;a=shortlog;h=refs/heads/trunk
Remove blackfin specific implementation of the generic serial API when early print macro is defined. Signed-off-by: Sonic Zhang <sonic.zh...@analog.com> --- arch/blackfin/cpu/serial.c | 92 +++++++++++++----------------------- arch/blackfin/cpu/serial.h | 14 ++++-- include/configs/bfin_adi_common.h | 3 - 3 files changed, 42 insertions(+), 67 deletions(-) diff --git a/arch/blackfin/cpu/serial.c b/arch/blackfin/cpu/serial.c index ecd981b..4e07509 100644 --- a/arch/blackfin/cpu/serial.c +++ b/arch/blackfin/cpu/serial.c @@ -197,12 +197,15 @@ static void uart_loop(uint32_t uart_base, int state) static inline void __serial_set_baud(uint32_t uart_base, uint32_t baud) { +#ifdef CONFIG_DEBUG_EARLY_SERIAL + serial_early_set_baud(uart_base, baud); +#else uint16_t divisor = (get_uart_clk() + (baud * 8)) / (baud * 16) - ANOMALY_05000230; /* Program the divisor to get the baud rate we want */ serial_set_divisor(uart_base, divisor); +#endif } -#ifdef CONFIG_SYS_BFIN_UART static void uart_puts(uint32_t uart_base, const char *s) { @@ -312,103 +315,74 @@ void bfin_serial_initialize(void) #endif } -#else - /* Symbol for our assembly to call. */ -void serial_set_baud(uint32_t baud) +void _serial_early_set_baud(uint32_t baud) { serial_early_set_baud(UART_BASE, baud); } -/* Symbol for common u-boot code to call. - * Setup the baudrate (brg: baudrate generator). - */ -void serial_setbrg(void) -{ - serial_set_baud(gd->baudrate); -} - /* Symbol for our assembly to call. */ -void serial_initialize(void) +void _serial_early_init(void) { serial_early_init(UART_BASE); } -/* Symbol for common u-boot code to call. */ -int serial_init(void) -{ - serial_initialize(); - serial_setbrg(); - uart_lsr_clear(UART_BASE); - return 0; -} - -int serial_tstc(void) -{ - return uart_tstc(UART_BASE); -} - -int serial_getc(void) -{ - return uart_getc(UART_BASE); -} - -void serial_putc(const char c) -{ - uart_putc(UART_BASE, c); -} - -void serial_puts(const char *s) -{ - while (*s) - serial_putc(*s++); -} - -LOOP( -void serial_loop(int state) -{ - uart_loop(UART_BASE, state); -} -) - -#endif - #elif defined(CONFIG_UART_MEM) char serial_logbuf[CONFIG_UART_MEM]; char *serial_logbuf_head = serial_logbuf; -int serial_init(void) +int serial_mem_init(void) { serial_logbuf_head = serial_logbuf; return 0; } -void serial_setbrg(void) +void serial_mem_setbrg(void) { } -int serial_tstc(void) +int serial_mem_tstc(void) { return 0; } -int serial_getc(void) +int serial_mem_getc(void) { return 0; } -void serial_putc(const char c) +void serial_mem_putc(const char c) { *serial_logbuf_head = c; if (++serial_logbuf_head == serial_logbuf + CONFIG_UART_MEM) serial_logbuf_head = serial_logbuf; } -void serial_puts(const char *s) +void serial_mem_puts(const char *s) { while (*s) serial_putc(*s++); } -#endif +struct serial_device bfin_serial_mem_device = { + .name = "bfin_uart_mem", + .start = serial_mem_init, + .setbrg = serial_mem_setbrg, + .getc = serial_mem_getc, + .tstc = serial_mem_tstc, + .putc = serial_mem_putc, + .puts = serial_mem_puts, +}; + + +__weak struct serial_device *default_serial_console(void) +{ + return &bfin_serial_mem_device; +} + +void bfin_serial_initialize(void) +{ + serial_register(&bfin_serial_mem_device); +} +#endif /* CONFIG_UART_MEM */ diff --git a/arch/blackfin/cpu/serial.h b/arch/blackfin/cpu/serial.h index d67fd81..a21393f 100644 --- a/arch/blackfin/cpu/serial.h +++ b/arch/blackfin/cpu/serial.h @@ -78,16 +78,20 @@ static inline void serial_early_puts(const char *s) #else .macro serial_early_init -#if defined(CONFIG_DEBUG_EARLY_SERIAL) && defined(BFIN_BOOT_BYPASS) - call _serial_initialize; +#if defined(CONFIG_DEBUG_EARLY_SERIAL) && \ + CONFIG_BFIN_BOOT_MODE == BFIN_BOOT_BYPASS && \ + !defined(CONFIG_UART_MEM) + call __serial_early_init; #endif .endm .macro serial_early_set_baud -#if defined(CONFIG_DEBUG_EARLY_SERIAL) && defined(BFIN_BOOT_BYPASS) +#if defined(CONFIG_DEBUG_EARLY_SERIAL) && \ + CONFIG_BFIN_BOOT_MODE == BFIN_BOOT_BYPASS && \ + !defined(CONFIG_UART_MEM) R0.L = LO(CONFIG_BAUDRATE); R0.H = HI(CONFIG_BAUDRATE); - call _serial_set_baud; + call __serial_early_set_baud; #endif .endm @@ -116,7 +120,7 @@ static inline void serial_early_puts(const char *s) .ascii __FILE__; \ .ascii ": "; \ .ascii str; \ - .asciz "\n"; \ + .ascii "\n"; \ .previous; \ R0.L = 7b; \ R0.H = 7b; \ diff --git a/include/configs/bfin_adi_common.h b/include/configs/bfin_adi_common.h index d3ae3a7..c986ba3 100644 --- a/include/configs/bfin_adi_common.h +++ b/include/configs/bfin_adi_common.h @@ -111,9 +111,6 @@ #ifndef CONFIG_BAUDRATE # define CONFIG_BAUDRATE 57600 #endif -#ifndef CONFIG_DEBUG_EARLY_SERIAL -# define CONFIG_SYS_BFIN_UART -#endif /* * Debug Settings
_______________________________________________ U-Boot-commits mailing list U-Boot-commits@blackfin.uclinux.org https://blackfin.uclinux.org/mailman/listinfo/u-boot-commits