All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] arm: mvebu: a38x: Define supported UART baudrates
@ 2021-08-11  8:08 Pali Rohár
  2021-08-11 11:00 ` Marek Behun
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Pali Rohár @ 2021-08-11  8:08 UTC (permalink / raw)
  To: Stefan Roese; +Cc: u-boot, Marek Behún

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@kernel.org>
---
 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 */
 
 /*
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] arm: mvebu: a38x: Define supported UART baudrates
  2021-08-11  8:08 [PATCH] arm: mvebu: a38x: Define supported UART baudrates Pali Rohár
@ 2021-08-11 11:00 ` Marek Behun
  2021-08-11 14:17 ` Stefan Roese
  2021-09-01  9:07 ` Stefan Roese
  2 siblings, 0 replies; 4+ messages in thread
From: Marek Behun @ 2021-08-11 11:00 UTC (permalink / raw)
  To: Pali Rohár; +Cc: Stefan Roese, u-boot

Reviewed-by: Marek Behún <marek.behun@nic.cz>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] arm: mvebu: a38x: Define supported UART baudrates
  2021-08-11  8:08 [PATCH] arm: mvebu: a38x: Define supported UART baudrates Pali Rohár
  2021-08-11 11:00 ` Marek Behun
@ 2021-08-11 14:17 ` Stefan Roese
  2021-09-01  9:07 ` Stefan Roese
  2 siblings, 0 replies; 4+ messages in thread
From: Stefan Roese @ 2021-08-11 14:17 UTC (permalink / raw)
  To: Pali Rohár; +Cc: u-boot, Marek Behún

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@kernel.org>

Reviewed-by: Stefan Roese <sr@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@denx.de

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] arm: mvebu: a38x: Define supported UART baudrates
  2021-08-11  8:08 [PATCH] arm: mvebu: a38x: Define supported UART baudrates Pali Rohár
  2021-08-11 11:00 ` Marek Behun
  2021-08-11 14:17 ` Stefan Roese
@ 2021-09-01  9:07 ` Stefan Roese
  2 siblings, 0 replies; 4+ messages in thread
From: Stefan Roese @ 2021-09-01  9:07 UTC (permalink / raw)
  To: Pali Rohár; +Cc: u-boot, Marek Behún

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@kernel.org>

Applied to u-boot-marvell/master

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@denx.de

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-09-01  9:07 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-11  8:08 [PATCH] arm: mvebu: a38x: Define supported UART baudrates Pali Rohár
2021-08-11 11:00 ` Marek Behun
2021-08-11 14:17 ` Stefan Roese
2021-09-01  9:07 ` Stefan Roese

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.