[PATCH] arm: mvebu: a38x: Define supported UART baudrates
Stefan Roese
sr at denx.de
Wed Aug 11 16:17:53 CEST 2021
On 11.08.21 10:08, Pali Rohár wrote:
> Define all standard baudrates plus 3 non-standard high speed:
> 3125000 4000000 5150000
>
> 3125000 matches divisor 5 with 250 MHz TCLK and divisor 4 with 200 MHz TCLK.
> 4000000 is the rounded value for divisor 4 with 250 MHz TCLK (3906250) and
> divisor 3 with 200 MHz TCLK (4166666).
>
> 5150000 is the rounded value (5208333) for divisor 3 with 250 MHz TCLK.
> Testing showed that rounded value is more stable then exactly calculated.
> And it is the highest possible baudrate which is stable on A38x platform.
>
> Any other baudrate values above 2500000 are unstable, which is reason why
> e.g. standard value 3000000 is not defined, and it is needed to use
> non-standard value 3125000.
>
> Tested all defined UART baudrates on Turris Omnia (A38x with 250 MHz TCLK).
>
> Signed-off-by: Pali Rohár <pali at kernel.org>
Reviewed-by: Stefan Roese <sr at denx.de>
Thanks,
Stefan
> ---
> include/configs/mv-common.h | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/include/configs/mv-common.h b/include/configs/mv-common.h
> index d61c90a43156..53d7acbb1034 100644
> --- a/include/configs/mv-common.h
> +++ b/include/configs/mv-common.h
> @@ -39,6 +39,15 @@
> #define CONFIG_SYS_NS16550_COM1 MV_UART_CONSOLE_BASE
> #endif
>
> +#if defined(CONFIG_ARMADA_38X) && !defined(CONFIG_SYS_BAUDRATE_TABLE)
> +#define CONFIG_SYS_BAUDRATE_TABLE { 300, 600, 1200, 1800, 2400, 4800, \
> + 9600, 19200, 38400, 57600, 115200, \
> + 230400, 460800, 500000, 576000, \
> + 921600, 1000000, 1152000, 1500000, \
> + 2000000, 2500000, 3125000, 4000000, \
> + 5150000 }
> +#endif
> +
> /* auto boot */
>
> /*
>
Viele Grüße,
Stefan
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
More information about the U-Boot
mailing list