This is the mail archive of the ecos-patches@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fix for AT91/EB40a dropping chars


The AT91 driver is dropping chars(even @ 38400) when both serial ports
are in use.

With the attached changes, I see relieable operation @ 38400 using EB40a
when both serial ports are in use. It runs for a while at @ 115200. If
there are some more optimisations to be had(perhaps other ISRs are
adding to the latency? Interrupt priorities? silly bug in my changes?),
perhaps 115200 could be made to work as well.

My test app uses a loopback cable and sends/receives data on both
EB40a serial ports at the same time. If there is any interest I can
clean up the test app. It currently uses C++ and the POSIX API, where I
would strip away the C++ stuff. The POSIX API bit is "not necessary" for
testing the serial port, but probably does no harm either.

Obviously the serial drivers for the AT91 are highly complex and timing
sensitive beasts. Changes should not be made lightly. I would not expect
to see this patch committed until someone can independantly confirm that
the problem exists, that the fix works and the code has been reviewed by
someone who understands the AT91 drivers in detail.

-- 
Øyvind Harboe
http://www.zylin.com

Attachment: fifofix.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]