Xilinx Zynq console rx not working

Gedare Bloom gedare at rtems.org
Wed Aug 18 18:17:20 UTC 2021


On Mon, Aug 16, 2021 at 4:59 PM Chris Johns <chrisj at rtems.org> wrote:
>
> On 16/8/21 11:03 pm, Kinsey Moore wrote:
> > On 8/16/2021 04:45, Chris Johns wrote:
> >> On 16/8/21 6:38 pm, Chris Johns wrote:
> >>> I have taken a closer look at the driver. I am receiving RX interrupts and the
> >>> characters are being queued however the receive FIFO trigger interrupt is only
> >>> raised when the FIFO reaches the set threshold of half the FIFO size. I suspect
> >>> there is an assumption the RX timeout will fire but it is not.
> >>>
> >> Doing this is questionable ....
> >>
> >> https://git.rtems.org/rtems/tree/bsps/shared/dev/serial/zynq-uart.c#n222
> >>
> >> You cannot send a character when touching the attributes. Where is this hardware
> >> bug documented by Xilinx?
> > The attributes are done being touched and the TX/RX enable flags are set again
> > before sending the character. I was seeing the same behavior on Zynq QEMU even
> > with this code removed.
> >
> > I couldn't find the hardware bug documented anywhere, but out of the 3 ZynqMP
> > boards I have one requires this consistently.
>
> I suggest we use chip maker errata when documenting hardware bugs as it could
> turn out to be a bug in a our code.
>
+1

> This smells to me like a set up problem.

Or even a hardware-specific defect in a shipped board. We've all seen
those before.

>
> >>
> >> My application does this ...
> >>
> >>      if (tcgetattr(fileno(stdout), &term) < 0)
> >>          error_message();
> >>      cfsetispeed (&term, B115200);
> >>      cfsetospeed (&term, B115200);
> >>      if (tcsetattr (fileno(stdout), TCSADRAIN, &term) < 0)
> >>          error_message();
> >>      if (tcgetattr(fileno(stdin), &term) < 0)
> >>          error_message();
> >>      cfsetispeed (&term, B115200);
> >>      cfsetospeed (&term, B115200);
> >>      if (tcsetattr (fileno(stdin), TCSADRAIN, &term) < 0)
> >>          error_message();
> >>
> >> and this kills the receive interrupts.
> >
> > Does removing the null character kick restore functionality for you in this case?
>
> No it did not.
>
> Chris
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel


More information about the devel mailing list