Yeah, that's the problem, the fifo doesn't work as expected so when more than one character is still in the DART device the order is reversed as it implements a stack rather than a FIFO. So as long as the Rainbow reads out the characters "fast enough" the board driver should work but if the characters are arriving too fast, eg little time between the characters, big confusion may happen.

My change fixes that and it should potentially also fix a lot of other board drivers that relies on polled serial routines or that has lots of higher level interrupts delaying the readout. Also try higher bit rates as it may increase the space between the characters, depending on your typing speed.

You can cherry pick my PR and see if it helps, I think it will.

Because I can