Merge changes from topic "st-uart-baudrate" into integration
* changes: refactor(st): configure UART baudrate docs(stm32mp1): document some compilation flags feat(st-uart): manage oversampling by 8 fix(st-uart): correctly fill BRR register
This commit is contained in:
commit
8dec6481c3
|
@ -115,6 +115,24 @@ Available storage medias are:
|
||||||
- ``STM32MP_SPI_NAND``
|
- ``STM32MP_SPI_NAND``
|
||||||
- ``STM32MP_SPI_NOR``
|
- ``STM32MP_SPI_NOR``
|
||||||
|
|
||||||
|
Serial boot devices:
|
||||||
|
|
||||||
|
- ``STM32MP_UART_PROGRAMMER``
|
||||||
|
- ``STM32MP_USB_PROGRAMMER``
|
||||||
|
|
||||||
|
|
||||||
|
Other configuration flags:
|
||||||
|
|
||||||
|
- | ``DTB_FILE_NAME``: to precise board device-tree blob to be used.
|
||||||
|
| Default: stm32mp157c-ev1.dtb
|
||||||
|
- | ``STM32MP_EARLY_CONSOLE``: to enable early traces before clock driver is setup.
|
||||||
|
| Default: 0 (disabled)
|
||||||
|
- | ``STM32MP_UART_BAUDRATE``: to select UART baud rate.
|
||||||
|
| Default: 115200
|
||||||
|
- | ``STM32_TF_VERSION``: to manage BL2 monotonic counter.
|
||||||
|
| Default: 0
|
||||||
|
|
||||||
|
|
||||||
Boot with FIP
|
Boot with FIP
|
||||||
~~~~~~~~~~~~~
|
~~~~~~~~~~~~~
|
||||||
You need to build BL2, BL32 (SP_min or OP-TEE) and BL33 (U-Boot) before building FIP binary.
|
You need to build BL2, BL32 (SP_min or OP-TEE) and BL33 (U-Boot) before building FIP binary.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018-2021, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2018-2022, ARM Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -67,9 +67,24 @@ func console_stm32_core_init
|
||||||
bic r3, r3, #USART_CR2_STOP
|
bic r3, r3, #USART_CR2_STOP
|
||||||
str r3, [r0, #USART_CR2]
|
str r3, [r0, #USART_CR2]
|
||||||
/* Divisor = (Uart clock + (baudrate / 2)) / baudrate */
|
/* Divisor = (Uart clock + (baudrate / 2)) / baudrate */
|
||||||
lsl r3, r2, #1
|
lsr r3, r2, #1
|
||||||
add r3, r1, r3
|
add r3, r1, r3
|
||||||
udiv r3, r3, r2
|
udiv r3, r3, r2
|
||||||
|
cmp r3, #16
|
||||||
|
bhi 2f
|
||||||
|
/* Oversampling 8 */
|
||||||
|
/* Divisor = (2 * Uart clock + (baudrate / 2)) / baudrate */
|
||||||
|
lsr r3, r2, #1
|
||||||
|
add r3, r3, r1, lsl #1
|
||||||
|
udiv r3, r3, r2
|
||||||
|
and r1, r3, #USART_BRR_DIV_FRACTION
|
||||||
|
lsr r1, r1, #1
|
||||||
|
bic r3, r3, #USART_BRR_DIV_FRACTION
|
||||||
|
orr r3, r3, r1
|
||||||
|
ldr r1, [r0, #USART_CR1]
|
||||||
|
orr r1, r1, #USART_CR1_OVER8
|
||||||
|
str r1, [r0, #USART_CR1]
|
||||||
|
2:
|
||||||
str r3, [r0, #USART_BRR]
|
str r3, [r0, #USART_BRR]
|
||||||
/* Enable UART */
|
/* Enable UART */
|
||||||
ldr r3, [r0, #USART_CR1]
|
ldr r3, [r0, #USART_CR1]
|
||||||
|
|
|
@ -210,7 +210,7 @@ static void set_console(uintptr_t base, uint32_t clk_rate)
|
||||||
unsigned int console_flags;
|
unsigned int console_flags;
|
||||||
|
|
||||||
if (console_stm32_register(base, clk_rate,
|
if (console_stm32_register(base, clk_rate,
|
||||||
STM32MP_UART_BAUDRATE, &console) == 0) {
|
(uint32_t)STM32MP_UART_BAUDRATE, &console) == 0) {
|
||||||
panic();
|
panic();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ BL2_AT_EL3 := 1
|
||||||
USE_COHERENT_MEM := 0
|
USE_COHERENT_MEM := 0
|
||||||
|
|
||||||
STM32MP_EARLY_CONSOLE ?= 0
|
STM32MP_EARLY_CONSOLE ?= 0
|
||||||
|
STM32MP_UART_BAUDRATE ?= 115200
|
||||||
|
|
||||||
# Allow TF-A to concatenate BL2 & BL32 binaries in a single file,
|
# Allow TF-A to concatenate BL2 & BL32 binaries in a single file,
|
||||||
# share DTB file between BL2 and BL32
|
# share DTB file between BL2 and BL32
|
||||||
|
@ -172,6 +173,7 @@ $(eval $(call assert_numerics,\
|
||||||
PLAT_PARTITION_MAX_ENTRIES \
|
PLAT_PARTITION_MAX_ENTRIES \
|
||||||
STM32_TF_A_COPIES \
|
STM32_TF_A_COPIES \
|
||||||
STM32_TF_VERSION \
|
STM32_TF_VERSION \
|
||||||
|
STM32MP_UART_BAUDRATE \
|
||||||
)))
|
)))
|
||||||
|
|
||||||
$(eval $(call add_defines,\
|
$(eval $(call add_defines,\
|
||||||
|
@ -189,6 +191,7 @@ $(eval $(call add_defines,\
|
||||||
STM32MP_SDMMC \
|
STM32MP_SDMMC \
|
||||||
STM32MP_SPI_NAND \
|
STM32MP_SPI_NAND \
|
||||||
STM32MP_SPI_NOR \
|
STM32MP_SPI_NOR \
|
||||||
|
STM32MP_UART_BAUDRATE \
|
||||||
STM32MP_UART_PROGRAMMER \
|
STM32MP_UART_PROGRAMMER \
|
||||||
STM32MP_USB_PROGRAMMER \
|
STM32MP_USB_PROGRAMMER \
|
||||||
STM32MP_USE_STM32IMAGE \
|
STM32MP_USE_STM32IMAGE \
|
||||||
|
|
|
@ -202,7 +202,6 @@ enum ddr_type {
|
||||||
#define USART6_BASE U(0x44003000)
|
#define USART6_BASE U(0x44003000)
|
||||||
#define UART7_BASE U(0x40018000)
|
#define UART7_BASE U(0x40018000)
|
||||||
#define UART8_BASE U(0x40019000)
|
#define UART8_BASE U(0x40019000)
|
||||||
#define STM32MP_UART_BAUDRATE U(115200)
|
|
||||||
|
|
||||||
/* For UART crash console */
|
/* For UART crash console */
|
||||||
#define STM32MP_DEBUG_USART_BASE UART4_BASE
|
#define STM32MP_DEBUG_USART_BASE UART4_BASE
|
||||||
|
|
Loading…
Reference in New Issue