Hi,

On 25/11/2019 18:35, Jeff Kubascik wrote:
The tx/rx fifo flags were not set when the vpl011 is initialized. This
is a problem for certain guests that are operating in polled mode, as a
guest will generally check the rx fifo empty flag to determine if there
is data before doing a read. The result is a continuous spam of the
message "vpl011: Unexpected IN ring buffer empty" before the first valid
character is received. This initializes the flag status register to the
default specified in the PL011 technical reference manual.

Note that the vpl011 is not meant to emulate a full PL011. Instead it
emulates the SBSA UART which is a subset of the PL011. They have some differences and I would be cautious to try to drive it as a PL011.


Signed-off-by: Jeff Kubascik <[email protected]>
---
  xen/arch/arm/vpl011.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
index 7bc5eeb207..31b7d56d7d 100644
--- a/xen/arch/arm/vpl011.c
+++ b/xen/arch/arm/vpl011.c
@@ -626,6 +626,8 @@ int domain_vpl011_init(struct domain *d, struct 
vpl011_init_info *info)
      if ( vpl011->backend.dom.ring_buf )
          return -EINVAL;
+ vpl011->uartfr = TXFE | RXFE;

I know that it does not make much difference, but I would prefer if uartfr is initialized once we know nothing else can fail.

With or without this suggestion:

Acked-by: Julien Gral <[email protected]>

Cheers,

--
Julien Grall

_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to