75e70dcdb0
Submitted by: Josh Gilliam <josh@quick.net> PR: 6880
175 lines
6.4 KiB
Groff
175 lines
6.4 KiB
Groff
.\" $Id: si.4,v 1.12 1998/03/23 20:24:31 peter Exp $
|
|
.\" The following requests are required for all man pages.
|
|
.Dd September 16, 1995
|
|
.Os FreeBSD
|
|
.Dt SI 4 i386
|
|
.Sh NAME
|
|
.Nm si
|
|
.Nd Driver for Specialix International SI/XIO or SX intelligent serial card.
|
|
.Sh SYNOPSIS
|
|
.Cd "device si0"
|
|
.Cd "device si0 at isa? tty irq 12 iomem 0xd0000"
|
|
.Sh DESCRIPTION
|
|
The Specialix SI/XIO and SX hardware makes up an 8 to 32 port RS-232 serial
|
|
multiplexor.
|
|
.Pp
|
|
The first instance of the device lines above is for EISA and PCI host cards,
|
|
the second is for ISA host cards.
|
|
.Pp
|
|
The system uses two components: A "Host adapter", which is plugged into
|
|
an ISA, EISA or PCI slot and provides intelligence and buffering/processing
|
|
capabilities, as well as an external bus in the form of a 37 pin cable.
|
|
.Pp
|
|
On this cable, "modules" are connected. The "SI" module comes in a 4 and 8
|
|
port version. The "XIO" and "SX" modules come only in
|
|
8 port versions.
|
|
.Pp
|
|
The host adapter polls and transfers data between the modules and the rest
|
|
of the machine. The Host adapter provides a 256 byte transmit and 256 byte
|
|
receive FIFO for each of the 32 ports that it can maintain.
|
|
.Pp
|
|
The XIO modules can operate each of their 8 ports at 115,200 baud.
|
|
The SI version can run at 57,600 baud. The SX modules can operate each of their
|
|
8 ports at up to 921,600 baud.
|
|
.Pp
|
|
SX modules are only supported when connected to an SX host card. SI or
|
|
XIO modules are supported on any host card.
|
|
.Pp
|
|
The host adapter uses a shared memory block in the traditional ISA bus
|
|
"hole" between 0xA0000 and 0xEFFFF. The adapter can be configured outside
|
|
range, but requires the memory range to be explicitly non-cached. The
|
|
driver does not yet support this mode of operation.
|
|
.Pp
|
|
SX ISA Host cards have an 8/16 bit mode switch or jumper on them. This switch
|
|
or jumper MUST be set for 8 bit mode.
|
|
.Pp
|
|
The ISA adapters can use Irq's 11, 12 or 15 (and 9 and 10 in the case of
|
|
SX host cards).
|
|
.Pp
|
|
The si device driver may have some of it's configuration settings changed
|
|
at run-time with the
|
|
.Xr sicontrol 8
|
|
utility.
|
|
.Pp
|
|
The si device driver also responds to the
|
|
.Xr comcontrol 8
|
|
utility for configuring drain-on-close timeouts.
|
|
.Pp
|
|
The driver also defines 3 sysctl variables that can be manipulated:
|
|
machdep.si_debug sets the debug level for the whole driver. It depends
|
|
on the driver being compiled with SI_DEBUG. machdep.si_pollrate
|
|
sets how often per second the driver polls for lost interrupts.
|
|
machdep.si_realpoll sets whether or not the card will treat the
|
|
poll intervals as if they were interrupts.
|
|
.Pp
|
|
An open on a /dev device node controlled by the si driver obeys the same
|
|
semantics as the
|
|
.Xr sio 4
|
|
driver. It fully supports the usual semantics of the cua ports, and the
|
|
"initial termios" and "locked termios" settings. In summary, an open on a
|
|
tty port will block until DCD is raised, unless O_NONBLOCK is specified.
|
|
CLOCAL is honored. An open on a cua port will always succeed, but DCD
|
|
transitions will be honored after DCD rises for the first time.
|
|
.Pp
|
|
Up to four SI/XIO host cards may be controlled by the si driver.
|
|
Due to the lack of available interrupts, only 3 ISA SI/XIO host cards can be
|
|
used at once.
|
|
.Pp
|
|
The lowest 5 bits of the minor device number are used to select the port
|
|
number on the module cluster. The next 2 bits select which of 4 host adapter
|
|
cards. This allows a maximum of 128 ports on this driver.
|
|
.Pp
|
|
Bit 7 is used to differentiate a tty/dialin port (bit 7=0) and a
|
|
cua/callout port (bit 7=1).
|
|
.Pp
|
|
Bit 8 through 15 (on
|
|
.Tn FreeBSD )
|
|
are unavailable as they are a shadow of the
|
|
major device number.
|
|
.Pp
|
|
If bit 16 is a 1, the device node is referring to the "initial state" device.
|
|
This "initial state" is used to prime the
|
|
.Xr termios 4
|
|
settings of the device when it is initially opened.
|
|
If bit 17 is a 1, the device node is referring to the "locked state" device.
|
|
The "locked state" is used to prevent the
|
|
.Xr termios 4
|
|
settings from being changed.
|
|
.Pp
|
|
To manipulate the initial/locked settings, the
|
|
.Xr stty 1
|
|
command is useful. When setting the "locked" variables, enabling the mode
|
|
on the lock device will lock the termios mode, while disabling the mode will
|
|
unlock it.
|
|
.\" The following requests should be uncommented and used where appropriate.
|
|
.\" This next request is for sections 2 and 3 function return values only.
|
|
.\" .Sh RETURN VALUES
|
|
.\" This next request is for sections 1, 6, 7 & 8 only
|
|
.\" .Sh ENVIRONMENT
|
|
.Sh FILES
|
|
.Bl -tag -width /dev/si_control -compact
|
|
.It Pa /dev/si_control
|
|
global driver control file for
|
|
.Xr sicontrol 8
|
|
.It Pa /dev/ttyA*
|
|
terminal/dialin ports
|
|
.It Pa /dev/cuaA*
|
|
dialout ports
|
|
.It Pa /dev/ttyiA*
|
|
initial termios state devices
|
|
.It Pa /dev/ttylA*
|
|
locked termios state devices
|
|
.It Pa /dev/cuaiA*
|
|
initial termios state devices for dialout ports
|
|
.It Pa /dev/cualA*
|
|
locked termios state devices for dialout ports
|
|
.El
|
|
.\" .Sh EXAMPLES
|
|
.\" This next request is for sections 1, 6, 7 & 8 only
|
|
.\" (command return values (to shell) and fprintf/stderr type diagnostics)
|
|
.\" .Sh DIAGNOSTICS
|
|
.\" The next request is for sections 2 and 3 error and signal handling only.
|
|
.\" .Sh ERRORS
|
|
.Sh SEE ALSO
|
|
.Xr stty 1 ,
|
|
.Xr sio 4 ,
|
|
.Xr termios 4 ,
|
|
.Xr tty 4 ,
|
|
.Xr comcontrol 8 ,
|
|
.Xr sicontrol 8
|
|
.\" .Sh STANDARDS
|
|
.Sh HISTORY
|
|
This driver is loosely based on driver code originating at Specialix, which
|
|
was ported to run on BSDI by
|
|
.An Andy Rutter Aq andy@specialix.co.uk .
|
|
The System V driver source is/was available by ftp from
|
|
.Sy ftp.specialix.co.uk .
|
|
.Pp
|
|
This driver is not supported by Specialix International.
|
|
.Sh AUTHORS
|
|
.An Peter Wemm Aq peter@netplex.com.au
|
|
obtained the code from Andy Rutter and ported it to
|
|
.Bx Free
|
|
and threw the man page together.
|
|
.An Bruce Evans Aq bde@zeta.org.au
|
|
provided a large amount of assistance during porting.
|
|
.An Nick Sayer Aq nick@specialix.com
|
|
wrote the EISA, PCI and SX portions.
|
|
.Sh BUGS
|
|
The interrupt tuning rate is not believed to be optimal at this time for
|
|
maximum efficiency.
|
|
.Pp
|
|
Polled mode (a feature of standard Specialix drivers) is not implemented,
|
|
but it can be approximated by turning on machdep.si_realpoll. The poll
|
|
frequency is set by machdep.si_pollrate (in units of 1/100th of a second).
|
|
.Pp
|
|
The driver does not yet support baud rates higher than 115,200 on SX
|
|
modules.
|
|
.Pp
|
|
Operation outside the traditional ISA "hole" is not yet supported, although it
|
|
should work if the test is removed from the probe routine.
|
|
.Pp
|
|
Multiple host cards are supported although combinations of hosts on
|
|
different bus types have not been tested - device numbering is known to
|
|
be a problem and may lead to unexpected results.
|