From: Yann Gautier Date: Wed, 4 Sep 2019 09:55:10 +0000 (+0200) Subject: stm32mp1: manage CONSOLE_FLAG_TRANSLATE_CRLF and cleanup driver X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=ebf851ed34eda0a4fcd87a155a13b02f3db8573c;p=project%2Fbcm63xx%2Fatf.git stm32mp1: manage CONSOLE_FLAG_TRANSLATE_CRLF and cleanup driver The STM32 console driver was pre-pending '\r' before '\n'. It is now managed by the framework with the flag: CONSOLE_FLAG_TRANSLATE_CRLF. Remove the code in driver, and add the flag for STM32MP1. Change-Id: I5d0d5d5c4abee0b7dc11c2f8707b1b5cf10149ab Signed-off-by: Yann Gautier --- diff --git a/drivers/st/uart/aarch32/stm32_console.S b/drivers/st/uart/aarch32/stm32_console.S index 39e449b2..ca3c1f61 100644 --- a/drivers/st/uart/aarch32/stm32_console.S +++ b/drivers/st/uart/aarch32/stm32_console.S @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -138,34 +138,18 @@ func console_stm32_core_putc /* Check the input parameter */ cmp r1, #0 beq putc_error - /* Prepend '\r' to '\n' */ - cmp r0, #0xA - bne 2f -1: - /* Check Transmit Data Register Empty */ -txe_loop_1: - ldr r2, [r1, #USART_ISR] - tst r2, #USART_ISR_TXE - beq txe_loop_1 - mov r2, #0xD - str r2, [r1, #USART_TDR] - /* Check transmit complete flag */ -tc_loop_1: - ldr r2, [r1, #USART_ISR] - tst r2, #USART_ISR_TC - beq tc_loop_1 -2: + /* Check Transmit Data Register Empty */ -txe_loop_2: +txe_loop: ldr r2, [r1, #USART_ISR] tst r2, #USART_ISR_TXE - beq txe_loop_2 + beq txe_loop str r0, [r1, #USART_TDR] /* Check transmit complete flag */ -tc_loop_2: +tc_loop: ldr r2, [r1, #USART_ISR] tst r2, #USART_ISR_TC - beq tc_loop_2 + beq tc_loop bx lr putc_error: mov r0, #-1 diff --git a/plat/st/stm32mp1/bl2_plat_setup.c b/plat/st/stm32mp1/bl2_plat_setup.c index 75ae372a..c6aefe32 100644 --- a/plat/st/stm32mp1/bl2_plat_setup.c +++ b/plat/st/stm32mp1/bl2_plat_setup.c @@ -272,6 +272,9 @@ void bl2_el3_plat_arch_setup(void) panic(); } + console_set_scope(&console.console, CONSOLE_FLAG_BOOT | + CONSOLE_FLAG_CRASH | CONSOLE_FLAG_TRANSLATE_CRLF); + stm32mp_print_cpuinfo(); board_model = dt_get_board_model(); diff --git a/plat/st/stm32mp1/sp_min/sp_min_setup.c b/plat/st/stm32mp1/sp_min/sp_min_setup.c index 417115b6..e10dfbfc 100644 --- a/plat/st/stm32mp1/sp_min/sp_min_setup.c +++ b/plat/st/stm32mp1/sp_min/sp_min_setup.c @@ -129,16 +129,20 @@ void sp_min_early_platform_setup2(u_register_t arg0, u_register_t arg1, result = dt_get_stdout_uart_info(&dt_uart_info); if ((result > 0) && (dt_uart_info.status != 0U)) { + unsigned int console_flags; + if (console_stm32_register(dt_uart_info.base, 0, STM32MP_UART_BAUDRATE, &console) == 0) { panic(); } + console_flags = CONSOLE_FLAG_BOOT | CONSOLE_FLAG_CRASH | + CONSOLE_FLAG_TRANSLATE_CRLF; #ifdef DEBUG - console_set_scope(&console.console, - CONSOLE_FLAG_BOOT | CONSOLE_FLAG_RUNTIME); + console_flags |= CONSOLE_FLAG_RUNTIME; #endif + console_set_scope(&console.console, console_flags); } }