si(4)
NAME
- si - driver for Specialix International SI/XIO or SX intel
- ligent serial
card
SYNOPSIS
device si
For ISA host cards put the following lines in
/boot/device.hints:
hint.si.0.at="isa"
hint.si.0.maddr="0xd0000"
hint.si.0.irq="12"
DESCRIPTION
- The Specialix SI/XIO and SX hardware makes up an 8 to 32
- port RS-232
serial multiplexor.
- 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.
- 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.
- The host adapter polls and transfers data between the mod
- ules 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.
- 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 oper
- ate each of
their 8 ports at up to 921,600 baud.
- SX modules are only supported when connected to an SX host
- card. SI or
XIO modules are supported on any host card.
- The host adapter uses a shared memory block in the tradi
- tional ISA bus
"hole" between 0xA0000 and 0xEFFFF. The adapter can be con
- figured outside range, but requires the memory range to be explicitly
- non-cached.
The driver does not yet support this mode of operation.
- 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.
- The ISA adapters can use Irq's 11, 12 or 15 (and 9 and 10 in
- the case of
SX host cards).
- The si device driver may have some of its configuration set
- tings changed
at run-time with the sicontrol(8) utility.
- The si device driver also responds to the comcontrol(8)
- utility for configuring drain-on-close timeouts.
- The driver also defines 3 sysctl variables that can be ma
- nipulated:
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.
- An open on a /dev device node controlled by the si driver
- obeys the same
semantics as the 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.
- 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.
- The lowest 5 bits of the minor device number are used to se
- lect 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.
- Bit 7 is used to differentiate a tty/dialin port (bit 7=0)
- and a
cua/callout port (bit 7=1).
- Bit 8 through 15 (on FreeBSD) are unavailable as they are a
- shadow of the
major device number.
- If bit 16 is a 1, the device node is referring to the "ini
- tial state"
device. This "initial state" is used to prime the
- 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 termios(4) settings from being changed.
- To manipulate the initial/locked settings, the stty(1) com
- mand 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.
FILES
- /dev/si_control global driver control file for sicontrol(8)
/dev/ttyA* terminal/dialin ports
/dev/cuaA* dialout ports
/dev/ttyiA* initial termios state devices
/dev/ttylA* locked termios state devices
/dev/cuaiA* initial termios state devices for dialout
- ports
/dev/cualA* locked termios state devices for dialout
- ports
SEE ALSO
- stty(1), sio(4), termios(4), tty(4), comcontrol(8), sicon
- trol(8)
HISTORY
- This driver is loosely based on driver code originating at
- Specialix,
which was ported to run on BSDI by Andy Rutter <andy@spe
- cialix.co.uk>.
The System V driver source is/was available by ftp from
ftp.specialix.co.uk.
- This driver is not supported by Specialix International.
AUTHORS
- Peter Wemm <peter@netplex.com.au> obtained the code from
- Andy Rutter and
ported it to FreeBSD and threw the man page together. Bruce
- Evans
<bde@zeta.org.au> provided a large amount of assistance dur
- ing porting.
Nick Sayer <nick@specialix.com> wrote the EISA, PCI and SX
- portions.
BUGS
- The interrupt tuning rate is not believed to be optimal at
- this time for
maximum efficiency.
- Polled mode (a feature of standard Specialix drivers) is not
- implemented,
but it can be approximated by turning on machdep.si_re
- alpoll. The poll
frequency is set by machdep.si_pollrate (in units of 1/100th
- of a second).
- The driver does not yet support baud rates higher than
- 115,200 on SX modules.
- Operation outside the traditional ISA "hole" is not yet sup
- ported,
although it should work if the test is removed from the
- probe routine.
- 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.
- BSD September 16, 1995