On 21 March 2017 at 16:47, Jiahuan Zhang <jiahuanzhan...@gmail.com> wrote: > The actual situation is, pl011_can_receive is returning false, the fifo is > full, pl011_read does't start. > At this moment, only pl011_can_recieve is keeping returning 0.
OK, so the incoming data has filled up the FIFO, and the UART is now sitting waiting for the guest to read the data... >> * whether pl011_can_receive is returning true even with >> 16 bytes in the fifo (hard to see how, given the code) >> * whether the fifo actually has fewer bytes in it because >> the guest is reading them > > > No, because the guest application does't get any data. ...so if the guest isn't getting any data that suggests it's the guest code's bug (ie it is not actually reading out of the FIFO). thanks -- PMM