[PATCH v2 1/1] bsps/shared: Allow setting baud rate for zynq uart

Jan.Sommer at dlr.de Jan.Sommer at dlr.de
Thu Mar 4 08:11:48 UTC 2021


Could someone please have a look a this patch and approve it?
Should I then still add a new section to the docs regarding the console behavior for the zynq?
With this patch applied it would be that the baud rate of the fsbl is overwritten by default to 115200, but can be changed using the termios API (compared to the currently unchangeable baud rate).
I am not sure if that information is that useful or if people will figure that out in 2 min anyways.

Best regards,

    Jan

> -----Original Message-----
> From: Sommer, Jan
> Sent: Monday, February 22, 2021 5:23 PM
> To: devel at rtems.org
> Cc: Sommer, Jan <Jan.Sommer at dlr.de>
> Subject: [PATCH v2 1/1] bsps/shared: Allow setting baud rate for zynq uart
> 
> ---
>  bsps/shared/dev/serial/zynq-uart.c | 14 +++++++++++---
>  1 file changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/bsps/shared/dev/serial/zynq-uart.c
> b/bsps/shared/dev/serial/zynq-uart.c
> index 8f17d3ca65..dd5a6e1cb8 100644
> --- a/bsps/shared/dev/serial/zynq-uart.c
> +++ b/bsps/shared/dev/serial/zynq-uart.c
> @@ -144,14 +144,22 @@ static bool zynq_uart_set_attributes(  {
>    zynq_uart_context *ctx = (zynq_uart_context *) context;
>    volatile zynq_uart *regs = ctx->regs;
> +  int32_t baud;
>    uint32_t brgr = 0;
>    uint32_t bauddiv = 0;
>    uint32_t mode = 0;
>    int rc;
> 
> -  rc = zynq_cal_baud_rate(115200, &brgr, &bauddiv, regs->mode);
> -  if (rc != 0)
> -    return rc;
> +  /*
> +   * Determine the baud rate
> +   */
> +  baud = rtems_termios_baud_to_number(term->c_ospeed);
> +
> +  if (baud > 0) {
> +    rc = zynq_cal_baud_rate(baud, &brgr, &bauddiv, regs->mode);
> +    if (rc != 0)
> +      return rc;
> +  }
> 
>    /*
>     * Configure the mode register
> --
> 2.17.1



More information about the devel mailing list