190 lines
6.9 KiB
Groff
190 lines
6.9 KiB
Groff
.\" Copyright (c) 1990, 1991 The Regents of the University of California.
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" This code is derived from software contributed to Berkeley by
|
|
.\" the Systems Programming Group of the University of Utah Computer
|
|
.\" Science Department.
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by the University of
|
|
.\" California, Berkeley and its contributors.
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" from: @(#)dca.4 5.2 (Berkeley) 3/27/91
|
|
.\" from: com.4,v 1.1 1993/08/06 11:19:07 cgd Exp
|
|
.\" $Id: sio.4,v 1.7 1994/02/19 13:19:33 ache Exp $
|
|
.\"
|
|
.Dd February 9, 1994
|
|
.Dt SIO 4 i386
|
|
.Os FreeBSD
|
|
.Sh NAME
|
|
.Nm sio
|
|
.Nd
|
|
fast interrupt driven asynchronous serial communications interface
|
|
.Sh SYNOPSIS
|
|
For standard ports:
|
|
.Cd "device sio0 at isa? port" \&"IO_COM1\&" tty irq 4 vector siointr
|
|
.Cd "device sio1 at isa? port" \&"IO_COM2\&" tty irq 3 vector siointr
|
|
.Cd "device sio2 at isa? port" \&"IO_COM3\&" tty irq 5 vector siointr
|
|
.Cd "device sio3 at isa? port" \&"IO_COM4\&" tty irq 9 vector siointr
|
|
.sp
|
|
For multiport cards:
|
|
.Cd "options" \&"COM_MULTIPORT\&"
|
|
.Cd "device sio4 at isa? port 0x2a0 tty irq 12 flags 0x401 vector siointr"
|
|
.Cd "device sio5 at isa? port 0x2a8 tty flags 0x401 vector siointr"
|
|
.Cd "device sio6 at isa? port 0x2b0 tty flags 0x401 vector siointr"
|
|
.Cd "device sio7 at isa? port 0x2b8 tty flags 0x401 vector siointr"
|
|
.sp
|
|
For bidirectional use of ports:
|
|
.Cd "options" \&"COM_BIDIR\&"
|
|
.sp
|
|
For control FIFO trigger:
|
|
.Cd "options" \&"FIFO_TRIGGER=FIFO_TRIGGER_14\&"
|
|
.sp
|
|
Use 0x02 bit in flags field to disable FIFO on specified port.
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm sio
|
|
driver provides support for NS8250-, NS16450-, NS16550 and NS16550A-based
|
|
.Tn EIA
|
|
.Tn RS-232C
|
|
.Pf ( Tn CCITT
|
|
.Tn V.24 )
|
|
communications interfaces. The NS8250 and NS16450 have single character
|
|
buffers, the NS16550A has a 16 character FIFO buffer.
|
|
.Pp
|
|
Input and output for each line may set to one of following baud rates;
|
|
50, 75, 110, 134.5, 150, 300, 600, 1200, 1800, 2400, 4800, 9600,
|
|
19200, 38400, 57600, or 115200. Your hardware may limit your baud
|
|
rate choices.
|
|
.Pp
|
|
For multiport cards the
|
|
.Nm flags
|
|
keyword in the kernel configuration file determines which port of
|
|
your multiport card is the master device, and whether the
|
|
port is part of a multiport card. The master device is the port which
|
|
has register through which all interrupts of the card are funneled.
|
|
All ports of a multiport card report pending interrupts using this
|
|
single register.
|
|
.sp
|
|
The master device is indicated
|
|
.Nm bitwise
|
|
, so all sio entries in the kernel config file that are part of a
|
|
multiport card must include the correct
|
|
.Nm flags
|
|
specification. The bitwise assignment allows multiple multiport cards to
|
|
be configured in one system. It does
|
|
.Nm not
|
|
imply that the hardware can share the same physical interrupt line!
|
|
.Pp
|
|
In the synopsis the
|
|
.Nm flags 0x401
|
|
means that the 4th port (sio4) is the master
|
|
device (so the MSB of the flags), and that the ports are part of a
|
|
multiport card (the LSB of the flags, actually only the LS
|
|
.Nm bit
|
|
).
|
|
F.e. if you have only two standard ports in addition to multiport
|
|
card, this
|
|
.Nm flags
|
|
will be
|
|
.Nm 0x201 .
|
|
.Pp
|
|
Which port is the master device depends on the card type. Consult
|
|
the hardware documentation of your card.
|
|
.Pp
|
|
Serial ports controlled by the
|
|
.Nm sio
|
|
driver can be used for both dialin and dialout. Use
|
|
.Xr comcontrol 8
|
|
to enable/disable bidirectional use of the
|
|
.Nm sio
|
|
ports. The minor number of the dialout
|
|
port is 128 higher than that of the corresponding dialin port. Use
|
|
.Xr stty 1
|
|
to enable or disable modem control as required by your setup.
|
|
.Sh FILES
|
|
.Bl -tag -width /dev/tty0? -compact
|
|
.It Pa /dev/tty0?
|
|
for hardwired terminals
|
|
.El
|
|
or
|
|
.Bl -tag -width /dev/tty0? -compact
|
|
.It Pa /dev/ttyd?
|
|
for dialin ports (and dialout when bidirectional usage disabled)
|
|
.It Pa /dev/cua0?
|
|
for dialout ports when bidirectional usage enabled
|
|
.El
|
|
.Pp
|
|
The devices numbers are made from the set [0-9a-z] so that more than
|
|
10 ports can be supported.
|
|
/dev/tty0? and /dev/ttyd? are mutually exclusive, if you have
|
|
/dev/tty0? corresponding /dev/ttyd? must be removed and vice versa.
|
|
.Sh DIAGNOSTICS
|
|
.Bl -diag
|
|
.It sio%d: silo overflow.
|
|
The single-character input
|
|
.Dq silo
|
|
has overflowed and incoming data has been lost.
|
|
.\".It com%d: weird interrupt: %x.
|
|
.\"The device has generated an unexpected interrupt
|
|
.\"with the code listed.
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr tty 4 ,
|
|
.Xr comcontrol 8 ,
|
|
.Xr stty 1 .
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
driver is derived from the
|
|
.Nm HP9000/300
|
|
.Nm dca
|
|
driver and is
|
|
.Ud
|
|
.Sh BUGS
|
|
Data loss is not near as likely on busy systems as they are with the
|
|
.Xr com 4
|
|
driver but they still can occur at very high baud rates on slow systems. The
|
|
use of NS16550A's helps lot to handle high baud rates.
|
|
.Pp
|
|
Stay away from NS16550 (so without the trailing A). These are early
|
|
implementations of the chip with non-functional FIFO hardware.
|
|
.Pp
|
|
The constants which define the locations
|
|
of the various serial ports are holdovers from
|
|
.Nm DOS .
|
|
As shown, hex addresses can be and for clarity probably should be used instead.
|
|
.Pp
|
|
As usual, you get what you pay for; cheap NS16550 clones generally don't work.
|
|
.Pp
|
|
The multiport example is based on an AST/4 card, your
|
|
mileage may vary however. Note that on the AST/4 the card's dipswitches should
|
|
.Nm not
|
|
be set to use interrupt sharing. AST/4-like interrupt sharing is only used when
|
|
.Nm multiple
|
|
AST/4 cards are installed in the same system. The sio driver does not
|
|
support more than 1 AST/4 on one IRQ.
|