home | help
UNTITLED()			      LOCAL			      UNTITLED()

NAME
     si  --  driver  for Specialix International SI/XIO or SX intelligent serial
     card

SYNOPSIS
     device si
     device si0 at isa? irq 12 iomem 0xd0000

DESCRIPTION
     The Specialix SI/XIO and SX hardware makes up an 8 to 32 port RS-232 serial
     multiplexor.

     The first instance of the device lines above  is  for  EISA  and  PCI  host
     cards, the second is for ISA host cards.

     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 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.

     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.

     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  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 dri-
     ver 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 settings changed at
     run-time with the sicontrol(8) utility.

     The si device driver also responds to the comcontrol(8) utility for config-
     uring drain-on-close timeouts.

     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  in-
     terrupts.

     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 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.

     Bit  7 is used to differentiate a tty/dialin port (bit 7=0) and a cua/call-
     out 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 "initial state" de-
     vice.  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 pre-
     vent the termios(4) settings from being changed.

     To  manipulate  the initial/locked settings, the 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.

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), sicontrol(8)

HISTORY
     This driver is loosely based on driver code originating at Specialix, which
     was  ported to run on BSDI by Andy Rutter <andy@specialix.co.uk>.	The Sys-
     tem 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	during	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_realpoll.	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  mod-
     ules.

     Operation outside the traditional ISA "hole" is not yet supported, although
     it should work if the test is removed from the probe routine.

     Multiple host cards are supported although combinations of hosts on differ-
     ent  bus  types  have  not  been tested - device numbering is known to be a
     problem and may lead to unexpected results.

FreeBSD 4.5		       September 16, 1995			   SI(4)

home | help