qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] hw/char/pl011: Add support for loopback


From: Peter Maydell
Subject: Re: [PATCH] hw/char/pl011: Add support for loopback
Date: Wed, 21 Feb 2024 16:05:09 +0000

On Wed, 21 Feb 2024 at 06:56, Ho, Tong <tong.ho@amd.com> wrote:
>
> On Thu, Feb 8, 2024 at 3:36 AM, Peter Maydell <peter.maydell@linaro.org> 
> wrote:
>
> > This implementation will send the transmitted characters
> > to the QEMU chardev and also loop them back into the UART
> > when loopback is enabled. Similarly if we receive a character
> > from the real input we will put it into the FIFO still, so
> > the FIFO will get both looped-back and real input together.
>
> > I think we only have one other UART where loopback is implemented,
> > and that is hw/char/serial.c. In that device we make loopback not
> > send transmitted characters out when in loopback mode, because
> > the 16550 datasheet explicitly says that's how its loopback
> > mode works. The PL011 datasheet is unfortunately silent on
> > this question. Do you have a real hardware PL011 that you
> > can check to see whether when it is in loopback mode
> > transmitted data is also sent to the output port as well
> > as looped back? Similarly for input: we should check whether
> > the UART continues to accept real input or if the real input
> > is completely disconnected while in loopback mode.
>
> Hi Peter,
>
> Here is what I found using hardware I have access to.
>
> When loopback is enabled:
>
> 1. Receive is disconnected from the real input and
>     only accepts transmit from loopback.
>
> 2. Transmitted characters is sent to both physical
>     output and loopback to receive.
>
> #2 is also collaborated by commit message for
>    https://github.com/torvalds/linux/commit/734745ca
>
> However, the same message also suggested that
> #2 may not be the case in other implementations of pl011.
>
> I will work on v2 to address you other comments
> as well, with a property for customizing whether
> transmit will send to both in loopback mode.

Thanks for checking against the hardware behaviour.
I think that unless you have a need for both behaviours
in loopback mode, I would be happy to just implement the
same thing as the hardware you tested, and not worry about
adding the property.

-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]