Serial overrun on 16550A @ 38.4K DX4/100 1.2.13: driver problem ?

Serial overrun on 16550A @ 38.4K DX4/100 1.2.13: driver problem ?

Post by Alain FAUCONN » Fri, 15 Dec 1995 04:00:00



I've been bothered for a long time by "frame with bad fcs" and  "frame
tossed,  reason  = 4" messages on my TI Travelmate 4000M when there is
high incoming traffic on the 38.4 kb/s PPP link (causing poor  overall
transfer  rates  because  of  retries).  After triple-checking PPP and
modem configuration, I have put a RS-232 testing box  between  the  PC
and  the  modem,  and  saw  that the RTS and CTS lines never seemed to
show any transition. The tty modes do include 'crtscts', and  so  does
the PPP config file. The modem is configured for hardware flow control
and the cable is OK.

I have recompiled  drivers/char/serial.c  with  SERIAL_DEBUG_FLOW  and
SERIAL_DEBUG_THROTTLE  on  and  saw  no  sign  of those routines being
called   during  an  incoming  ftp  transfer,  although  the  messages
mentioned  above  did  appear. Could it be the tty upper layers or the
PPP code not calling them on input buffer overflow ? Probably  not.  I
tried  doing  transfers  with  kermit  instead  of PPP. Same symptoms:
retried packets, bad CRCs and "cua0: input  overrun"  messages.  *But*
when  I  abort  the  transfer by ^C, I *do* see CTS going low (and the
kernel debug messages due to the  settings  mentioned  above)  because
the    buffer    fills   up.   This   mechanism   does   work,   then.

My  conclusion  is:  the driver doesn't pick up characters fast enough
from the UART and the chip gives input overrun  status.  Strange.  The
chip on this machine supposedly is the best one (16550A) and according
to  the  driver  sources,  the  only one which has an useable internal
character FIFO. On an otherwise idle 486 DX4/100, I would  expect  the
driver to handle an incoming data flow at 38.4 kb/s. I'm baffled.

Note:  all those tests have been done locally between a Sparcstation 2
and the 486 laptop, no  modems  involved,  with  a  cable  having  the
correct (I hope) wires crossed.


(desktop)  machine  which  have   been   solved   by   replacing   the
16550A-based async controller by a 16550(not-A)-based one !  Could  it
be  a  problem  in  the  way drivers/char/serial.c handles that former
chip ? I have checked the 1.2.13 drivers against the 1.3.20  ones  and
saw  no big changes. I don't have the data book for that chip at hand,
but I imagine that there could be a setting to  have  the  chip  bring
CTS  low by itself when its internal receive FIFO is about to overrun.
Am I completely lost here ?

Any comments, ideas quite welcome. I'm in no way a kernel guru  but  I
have a reasonable background in O/S design and BIOS-level programming.

Thanks for your time reading this,
_Alain_
--
Alain FAUCONNET    Ingenieur systeme - System Manager     AP-HP/SIM
Public Health                91 bld de l'Hopital 75013 PARIS FRANCE

Tel: (+33) 1-40-77-96-19                   Fax: (+33) 1-45-86-80-68
    I've RTFMed. It says: "Refer to your system administrator"
            But... I *am* the system administrator :-]

 
 
 

Serial overrun on 16550A @ 38.4K DX4/100 1.2.13: driver problem ?

Post by Aurel Balmos » Fri, 15 Dec 1995 04:00:00


: I've been bothered for a long time by "frame with bad fcs" and  "frame
: tossed,  reason  = 4" messages on my TI Travelmate 4000M when there is
: high incoming traffic on the 38.4 kb/s PPP link (causing poor  overall
: transfer  rates  because  of  retries).  After triple-checking PPP and
: modem configuration, I have put a RS-232 testing box  between  the  PC
: and  the  modem,  and  saw  that the RTS and CTS lines never seemed to
: show any transition. The tty modes do include 'crtscts', and  so  does
: the PPP config file. The modem is configured for hardware flow control
: and the cable is OK.

Hi,

I think that this problem has nothing to do with the serial driver. Want
about your harddisks or other interrupt driven hardware? If you are using
multi-sector io with block interrupts linux can not catch every character
from the serial line even with 16 bytes fifo.

I am using 1.2.13 with 2 IDE harddisk both with 16 sector multi-io but I had
to disable the irq blocking using the hdparm -u command.
--

----------------------------------------------------------------


 
 
 

Serial overrun on 16550A @ 38.4K DX4/100 1.2.13: driver problem ?

Post by Bob Lorenzin » Sat, 16 Dec 1995 04:00:00


I also suffered from overrun problems and if I recall correctly I
had to use setserial to enable the buffer in the 16550a.

Bob

_______________________________________________________________________________
The Microsoft Network is prohibited from redistributing this work in any form,
in whole or in part, without a license.  Such a license is available to
Microsoft for $500/msg.  Redistribution without permission constitutes an
agreement to the above terms.  If a violation is noted, notify

_______________________________________________________________________________

 
 
 

1. strange problems 1.2.13 --> 2.0.0 --> 1.2.13

Hi,

I have some strange problems with the new kernel source tree...

after the installation of the new sysvinit-2.62 the linux-2.0.0 kernel
complains sh:/bin/bash cannot execute...
with 1.99.7 this works fine
and at least I'm totally unable to recompile the 1.2.13 source tree due
some strange asm errors in main occurring in asm/io.h referenced by
bugs.h  (also within the asm tree). Of course I checked the appropriate
links to for the linux source tree /usr/include/linux
                                                asm

Please help....
 Michael

-------------------------------------------------------------------------------
        Michael Rietz                   |       Office: 13

        Werner Heisenberg Institut      |       phone:+49-(0)89-32354-242,
        Foehringer Ring 6               |                             415,411
        D-80805 Muenchen                |       fax:    +49 (0)89 3226704
                                        |
                            is there anybody OUT there...
-------------------------------------------------------------------------------

2. USB Cd-RW under Mandrake 7

3. Upgd 1.2.13 -> 1.3.100

4. Xmas or Christmas

5. TekRam Caching PCI EIDE DC-690CD (Linux 1.2.13 or 1.3.100)

6. Redhat 5.0: Wheres Java Compiler?

7. NexGen P-100 Pci and Linux 1.2.13

8. DLT Tape Library access under FreeBSD 4.3-Release

9. Upgrading Kernel from 1.2.13 to 1.3.100

10. SMC etherpower 10/100 & Linux 1.2.13

11. Summary: SPARC Solaris Serial > 38.4K baud

12. DIP and serial line speeds > 38.4K

13. serial port rates > 38.4k on solaris