If I use the UART16550 IP in interrupt mode, the handler does not register transactions where the size is not a multiple of the FIFO threshold value.
For example, in a setup where the FIFO threshold is set to 8 and the buffer size is set to 15 bytes, all transactions < buffer size will result in a TimeOut handler being called, except for multiples of the FIFO threshold.
This results in lost data.
How can this be addressed?
To fix this issue, copy the attached file into the driver src folder in the EDK install directory:
Be aware of the following when using this fix:
the TimeOut callback will be called when there is data received that is equal to the threshold (even if there is further data coming)
A receive callback will then be received when all data requested has come through.
|Name||File Size||File Type|