feat(stm32mp1): update console management for SP_min

Use stm32mp_uart_console_setup() in SP_min setup.
Adapt the function stm32mp_uart_console_setup() for BL32 (no reset, add
CONSOLE_FLAG_RUNTIME under DEBUG.

Change-Id: Ib2d35c8d285dafb680aa218872ad679cbf43d0ed
Signed-off-by: Yann Gautier <yann.gautier@st.com>
This commit is contained in:
Yann Gautier 2021-10-18 15:50:05 +02:00
parent 86240942fa
commit aafff04354
2 changed files with 10 additions and 23 deletions

View File

@ -134,6 +134,7 @@ int stm32mp_unmap_ddr(void)
STM32MP_DDR_MAX_SIZE);
}
#if defined(IMAGE_BL2)
static void reset_uart(uint32_t reset)
{
int ret;
@ -152,6 +153,7 @@ static void reset_uart(uint32_t reset)
mdelay(1);
}
#endif
int stm32mp_uart_console_setup(void)
{
@ -169,13 +171,17 @@ int stm32mp_uart_console_setup(void)
return -ENODEV;
}
#if defined(IMAGE_BL2)
if (dt_set_stdout_pinctrl() != 0) {
return -ENODEV;
}
#endif
stm32mp_clk_enable((unsigned long)dt_uart_info.clock);
#if defined(IMAGE_BL2)
reset_uart((uint32_t)dt_uart_info.reset);
#endif
clk_rate = stm32mp_clk_get_rate((unsigned long)dt_uart_info.clock);
@ -186,6 +192,9 @@ int stm32mp_uart_console_setup(void)
console_flags = CONSOLE_FLAG_BOOT | CONSOLE_FLAG_CRASH |
CONSOLE_FLAG_TRANSLATE_CRLF;
#if !defined(IMAGE_BL2) && defined(DEBUG)
console_flags |= CONSOLE_FLAG_RUNTIME;
#endif
console_set_scope(&console, console_flags);
return 0;

View File

@ -18,7 +18,6 @@
#include <drivers/generic_delay_timer.h>
#include <drivers/st/bsec.h>
#include <drivers/st/etzpc.h>
#include <drivers/st/stm32_console.h>
#include <drivers/st/stm32_gpio.h>
#include <drivers/st/stm32_iwdg.h>
#include <drivers/st/stm32mp1_clk.h>
@ -36,8 +35,6 @@
******************************************************************************/
static entry_point_info_t bl33_image_ep_info;
static console_t console;
/*******************************************************************************
* Interrupt handler for FIQ (secure IRQ)
******************************************************************************/
@ -115,8 +112,6 @@ static void stm32mp1_etzpc_early_setup(void)
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;
#if STM32MP_USE_STM32IMAGE
uintptr_t dt_addr = STM32MP_DTB_BASE;
@ -174,24 +169,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);
}
(void)stm32mp_uart_console_setup();
stm32mp1_etzpc_early_setup();
}