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

[cvs-checkins] or1k/or1ksim/peripheral 16450.c



CVSROOT:	/home/oc/cvs
Module name:	or1k
Changes by:	oc	03/02/27 21:24:50

Modified files:
	or1ksim/peripheral: 16450.c 

Log message:
	There was a bug in the simulator's UART implementation that caused 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.
	
	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.
	
	A simple cast fixes the problem.

--
To unsubscribe from cvs-checkins mailing list please visit http://www.opencores.org/mailinglists.shtml