From c768b96e1e71e092223ddad97f947f9d38aa6139 Mon Sep 17 00:00:00 2001 From: Patrick Delaunay <patrick.delaunay@st.com> Date: Wed, 14 Oct 2020 15:31:25 +0200 Subject: [PATCH] plat/st: stm32mp1: introduce setup_uart_console Add a new function setup_uart_console for UART console initialization using device tree information to simplify sp_min_early_platform_setup(). Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Change-Id: I455b43b105a804590297572a977bc242a526df17 Reviewed-on: https://gerrit.st.com/c/mpu/oe/st/tf-a/+/180871 Reviewed-by: CITOOLS <smet-aci-reviews@lists.codex.cro.st.com> Reviewed-by: Yann GAUTIER <yann.gautier@st.com> Tested-by: Yann GAUTIER <yann.gautier@st.com> --- plat/st/stm32mp1/sp_min/sp_min_setup.c | 48 +++++++++++++++----------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/plat/st/stm32mp1/sp_min/sp_min_setup.c b/plat/st/stm32mp1/sp_min/sp_min_setup.c index b639fcb35..401721c5a 100644 --- a/plat/st/stm32mp1/sp_min/sp_min_setup.c +++ b/plat/st/stm32mp1/sp_min/sp_min_setup.c @@ -108,14 +108,39 @@ static void stm32mp1_etzpc_early_setup(void) etzpc_configure_tzma(STM32MP1_ETZPC_TZMA_SYSRAM, TZMA1_SECURE_RANGE); } +/******************************************************************************* + * Setup UART console using device tree information. + ******************************************************************************/ +static void setup_uart_console(void) +{ + struct dt_node_info dt_uart_info; + unsigned int console_flags; + int result; + + result = dt_get_stdout_uart_info(&dt_uart_info); + if ((result <= 0) || (dt_uart_info.status == DT_DISABLED)) { + return; + } + + if (console_stm32_register(dt_uart_info.base, 0, + STM32MP_UART_BAUDRATE, &console) == 0U) { + panic(); + } + + console_flags = CONSOLE_FLAG_BOOT | CONSOLE_FLAG_CRASH | + CONSOLE_FLAG_TRANSLATE_CRLF; +#ifdef DEBUG + console_flags |= CONSOLE_FLAG_RUNTIME; +#endif + console_set_scope(&console, console_flags); +} + /******************************************************************************* * Perform any BL32 specific platform actions. ******************************************************************************/ void sp_min_early_platform_setup2(u_register_t arg0, u_register_t arg1, u_register_t arg2, u_register_t arg3) { - struct dt_node_info dt_uart_info; - int result; bl_params_t *params_from_bl2 = (bl_params_t *)arg0; /* Imprecise aborts can be masked in NonSecure */ @@ -158,24 +183,7 @@ void sp_min_early_platform_setup2(u_register_t arg0, u_register_t arg1, panic(); } - 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_flags |= CONSOLE_FLAG_RUNTIME; -#endif - console_set_scope(&console, console_flags); - } + setup_uart_console(); stm32mp1_etzpc_early_setup(); } -- GitLab