[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[openrisc] or1ksim UART bug fix



There is a bug in the simulator’s UART implementation that can cause the UART’s LSR register to become corrupted.  This was due to an assumption that ‘char’ is an unsigned type, but that is not true on all platforms.  The attached fix is trivial.

 

(When the char type is signed and a character is read in the range 0x80-0xff, the high bit is sign-extended into the upper bits of an entry in the receive FIFO.  When the character reaches the head of the FIFO, the upper bits of the FIFO entry are OR’ed into the LSR, causing the LSR to be set to 0xFF.)

 

 

16450.c.diffs