This is the mail archive of the
mailing list for the eCos project.
[Bug 1001475] New: Generic 16x5x driver do not clear overrun errorat boot
- From: bugzilla-daemon at bugs dot ecos dot sourceware dot org
- To: ecos-bugs at ecos dot sourceware dot org
- Date: Tue, 7 Feb 2012 10:16:54 +0000
- Subject: [Bug 1001475] New: Generic 16x5x driver do not clear overrun errorat boot
- Auto-submitted: auto-generated
Please do not reply to this email. Use the web interface provided at:
Summary: Generic 16x5x driver do not clear overrun error at
Class: Advice Request
Created an attachment (id=1552)
always read a byte when clearing FIFO
(Original problem and fix proposal were made incorrectly in bug #1001392.)
When the driver runs its config_port() routine the first time, it clears the
FIFOs. However it does not clear the Overrun Error situation.
The side effect is, if an overrun condition exists prior to running
config_port(), the driver will loop forever in the DSR: the DSR code, when
considering RxTO, reads RHR only if there is at least a byte reported in the
But config_port() cleared the FIFO, so no byte is available there, so there is
no read from RHR, the overrun error condition continues, DSR loops forever at
boot time and the system is stuck.
Typical use case:
- a data logger always producing information is connected on a serial port.
- the system is being debugged with OpenOCD, and 'soft_reset_halt' is used:
there is no hardware reset done, so the serial controller always runs, even if
config_port() wasn't fired yet.
The patch is more than minimal, it can't break anything and it handles this
weird error case.
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.