I am using the UART on the 6678 as a debug interface to a PC, and have found that when it is sending a continuous stream of data, it ignores or loses incoming characters.
My send and receive functions are based on the EVM sample code, but adapted for a multi-thread environment. The UART is set up in FIFO mode, with interrupts disabled. The send routine polls the THRE bit until it indicates that the tx fifo is empty, with a short thread sleep between checks (instead of the busy loop from the sample code), then writes one character and waits again.
If the UART sends multiple strings in a row (dumping an event log), and does a single check of the DR bit between each string, it almost never catches an incoming character - even holding down a repeat key, it almost never catches any. If I put a pause between each string, and check the DR bit continuously for 1ms, then it usually catches it, but that slows down the throughput to an unacceptable degree. If I only put that pause every few lines, then it still misses incoming characters.
I have now added a check of the DR bit inside the send routine, so it checks DR between each outgoing character, and between each check of THRE, and sets a flag if DR was set. Now it always catches DR high for even a single incoming character, but when I get to the end of the outgoing string and try to read it, DR is already clear and the incoming character is lost.