bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

serial port not working correctly (you better read it if you want PPP)


From: Marcus Brinkmann
Subject: serial port not working correctly (you better read it if you want PPP)
Date: Wed, 2 Jan 2002 22:58:18 +0100
User-agent: Mutt/1.3.24i

Hi,

we are having a problem with the serial device driver.  Neal and I think we
tracked it down to the interrupt handling.

The setup consists of a machine running GNU/Hurd and a machine running
GNU/Linux or GNU/Hurd, both machines running minicom.

As long as characters come slow, just a few at a time, everything works as
expected.  As soon as we try to sent a file, only the first few characters
are received.  The line is still operational, but the bunch of the file is
lost.

For example, sending a file from GNU/Linux with 300 baud did result in 16
characters coming through.  Sending the same file from GNU/Hurd did result
in many more characters coming through, but eventually the same problem
occurs.

To track it down, we first investigated term and then the device/chario.c
code, all of which apparently worked correctly.  Then we set debug printk's
into the interrut handler i386/i386at/com.c (comintr), and noticed that for
key strokes etc, a character timeout indication (CTIi) occured, and for
large transfer (> 14 characters), a RECi interrupt occurs (REC==record? We
believe there is a hardware buffer that holds 14 characters within the
timeout, and the 15th character triggers the RECi interrupt to flush the
record).  We observed that the subsequent event is, even for data larger
than 28 bytes, not another RECi, but a CTi with up to two of the following
characters.

So, sending "0123456789ABCDEF" will result in
RECi => 0123456789ABCD
CTIi => EF

while sending more data will produce the _same_ result (everything after the
16th character is dropped).  Notably, there are no interrupts.  For example,
sending several hundred bytes will result in the first 14 bytes being
received with a RECi, two bytes being received with a CTIi, and then nothing
more.  No interrupt, no data, nothing.

We set the baud rate to different values, 38400 and 300 baud, or sending
from the Hurd, but it doesn't differ a lot.  Only the amount of records
passed does change with different configurations.  Eventually, it will cut
off the data.

Anybody has an idea how to proceed with this problem?  Has anybody gotten
serial line communication to work reliably?  BTW, we have tested PPP and the
tunnel device without using the serial connection (Neal set it up to send
the packets over ethernet), and it works just fine.  So, after fixing the
com device, we will have PPP working flawlessly. ;)

Thanks,
Neal & Marcus

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann              GNU    http://www.gnu.org    marcus@gnu.org
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de



reply via email to

[Prev in Thread] Current Thread [Next in Thread]