SCC UART stalling/hanging - progress
Jeff Angielski
jangiels at speakeasy.net
Thu Oct 21 13:50:58 EST 2004
It appears that the SCC UART is stalling when I perform loopback testing
at 230kbps because the bottom half is sometimes not being executed when
the transmit interrupt is received by the ISR. Because of this, no more
data is being put into the TX buffers and the SCC is sitting there dumb
and happy with nothing to do.
Using the BDI2000 I have been able to confirm that at the point when the
SCC stalls, the SCC registers, parameter ram, BDs, and buffers all look
good. There are no pending events, the flags in the BDs are consistent
with an idle condition, and the tx buffers match the rx buffers which
match the data received by the user space application.
Specifically, problem that I see is that when transmit_chars() is called
from rs_8xx_interrupt(), the TX_WAKEUP flag is not set. This means that
rs_sched_event() is never called and everything stalls. The bad thing
is that the TX_WAKEUP is only modified in a handful of places and it is
not obvious as to how a race condition could occur.
Does anybody have any ideas or suggestions on what to look at next?
TIA,
Jeff Angielski
More information about the Linuxppc-dev
mailing list