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]

Re: patch - at91 serial drivers assumed realtime response for DSR routines


On Thu, 23 Oct 2003 11:31:15 +0200
Thomas Koeller <thomas.koeller@baslerweb.com> wrote:

> So here's my version of the AT91 serial driver. It
> utilizes the DMA hardware to achieve reliable operation
> at higher baud rates. I tested it sending and receiving
> at 115200 baud with the program running at a clock speed
> of 40 MHz from slow memory (flash /w 4 wait states), and
> it runs fine. The old driver failed miserably under these
> conditions.
> 

There is no doubt that your driver is better than the old one. But I
noticed that you did not use the double buffer swapping trick, that has
been discussed here several time. 

The DMA capability of the AT91 is only used to continue receiving chars
during the execution of ISR and DSR. It's a good idea, but you still
needs two buffers and another swapping method. The major drawback of
your code is that it does not change the interrupt rate enough. So under
heavy load, I wonder if your driver will be reliable enough. 

Have you ever tried to pass the serial test serial3 ? And with long
packets (see line 121) ?

If someone interrested, i will contribute my idea of the reliable driver
for at91, using two buffer for direct PDC usage. I already tested
networking load (ftp server) over serial lines at 115200 and more,
without any packet loose. 

-- 
GONZALEZ Laurent
Silicomp Research Institute
Tel: 04 76 41 66 98


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