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: Ho, Tong
Subject: Re: [PATCH] hw/char/pl011: Add support for loopback
Date: Wed, 21 Feb 2024 06:56:04 +0000

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.

Regards,
Tong Ho



reply via email to

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