home | help
UNTITLED()			      LOCAL			      UNTITLED()

NAME
     stl, stli -- drivers for Stallion Technologies multiport serial controllers

SYNOPSIS
     device stl
     device stl0 at isa? port <addr> irq <irq>
     device stli0 at isa? port <io-addr> iomem <mem-addr> iosiz <size> flags
	   <type>
     device stli0 at eisa? port <io-addr> iomem <mem-addr> iosiz <size> flags
	   <type>

DESCRIPTION
     This  is a kernel driver for Stallion Technologies multiport serial boards.
     There are two drivers, each supporting a different class  of  boards.   The
     stl  driver  supports  the  EasyIO,  EasyConnection 8/32 and EasyConnection
     8/64-PCI boards, while the stli driver supports all other types,  including
     ONboard, Brumby and EasyConnection 8/64 (ISA and EISA).

CONFIGURATION
     Each  non-PCI  board installed in the system needs a configuration entry in
     the kernel configuration file.  Slightly different options  and  parameters
     are  required for each of the different board types.  Depending on the type
     of board one of the stl or stli drivers will be used.   The  stl  and  stli
     drivers can support up to 8 boards.

     Configuration  of	the  hardware - DIP switches, jumpers, etc - varies from
     board to board.  Consult documentation supplied with the board for hardware
     configuration details.  Alternatively the board documentation is  available
     on Stallion Technologies WWW site at http://www.stallion.com.

     The  EasyIO,  EasyConnection  8/32  and EasyConnection 8/64-PCI families of
     boards use the stl driver.  ISA board configuration  entries  for	the  stl
     driver take the general form of:

     device stlX at isa? port <io-addr> irq <irq>

     X is the unit number assigned to the board.  Any unique value between 0 and
     7 is valid.

     The  I/O  address	used by the board is specified by <io-addr>. Each of the
     EasyIO and EasyConnection 8/32-AT boards can use  an  I/O	address  in  the
     range from 0 to 0x400.

     All  EasyIO  and  EasyConnection 8/32 boards require an interrupt, and this
     interrupt is specified by <irq>. Legal IRQ values for the ISA boards are 3,
     4, 5, 7, 10, 11, 12 and 15.  Interrupts  are  software  programmed  on  all
     boards except the EasyIO-8M.

     The  EasyConnection  8/32-AT board uses a secondary I/O address region, and
     this is fixed at address 0x280 in	the  driver  code.   All  EasyConnection
     8/32-AT boards may share the same secondary address region.

     All  EasyIO and EasyConnection PCI boards are detected automatically by the
     drivers on boot up.  No configuration information is  required  in  advance
     for  these  board types.  During boot up the stl driver will issue messages
     to indicate that a Stallion PCI board was found, and some information about
     it.  If no ISA card is being configured, an entry like

     device stl

     will include the driver for PCI cards only.

     Following are some examples of configuration entries for each  of	the  ISA
     boards  supported	by the stl driver.  Each example also describes some im-
     portant details about each of the board types.

     Each EasyIO board requires 8 bytes of I/O address space and 1 IRQ line.   A
     configuration entry for an EasyIO board would look like:

     device stl0 at isa? port 0x2a8 irq 15

     This  entry  specifies  an  EasyIO board at I/O address 0x2a8 using IRQ 15.
     The I/O and IRQ values can be modified as required.

     Each EasyConnection 8/32-AT board requires 2 sets of I/O  addresses  and  1
     IRQ  line.   The  primary I/O address range is 2 bytes in size, and must be
     unique to each EasyConnection 8/32-AT board in the system.   The  secondary
     I/O  address range is 32 bytes in size, but can be shared by multiple Easy-
     Connection 8/32-AT boards.  This secondary I/O address is set at  0x280  in
     the driver code.  A configuration entry would look like:

     device stl0 at isa? port 0x2a0 irq 10

     This  specifies  an  EasyConnection 8/32-AT with primary I/O address 0x2a0,
     secondary I/O address of 0x280 and IRQ 10.

     The ONboard, Brumby and EasyConnection 8/64 families of boards use the stli
     driver.  The stli driver supports the ISA and EISA members of  these  fami-
     lies.

     ISA  board  configuration entries for the stli driver take the general form
     of:

     device stliX at isa? port <io-addr> iomem	<mem-addr>  iosiz  <size>  flags
     <type>

     X is the unit number assigned to the board.  Any unique value between 0 and
     7 is valid.

     The  I/O  address	used by the board is specified by <io-addr>. Each of the
     different supported board types has restrictions on valid I/O addresses and
     also the amount of I/O space required varies between the boards.

     All boards using the stli driver require a shared memory region to operate.
     Depending on the board type the region  required  varies  in  size  from  4
     kbytes  to  64  kbytes.  The size of the board region is specified by field
     <size> of the configuration entry, and the address of the region is  speci-
     fied by <mem-addr>.

     The flags field specifies the particular board type that this entry applies
     to.   Not	all board types are distinguishable by the driver at runtime, so
     this field is required by the driver.  Valid board types are:

	   BOARD NAME			   TYPE    I/O SIZE

	   Brumby			     2	   0x4000
	   ONboard			     4	   0x10000
	   ONboard/E			     7	   0x10000
	   EasyConnection 8/64-AT	    23	   0x1000
	   EasyConnection 8/64-EISA	    24	   0x10000

     Following are some examples of configuration entries for each of the boards
     supported by the stli driver. Each example also  describes  some  important
     details about each of the board types.

     The  EasyConnection 8/64-AT board requires 4 bytes of I/O address space and
     4 kbytes of memory space.	A configuration entry would look like:

     device stli0 at isa? port 0x2a0 iomem 0xcc000 iosiz 0x1000 flags 23

     The flags field of this entry specifies  that  this  is  an  EasyConnection
     8/64-AT  board.  It is set to I/O address 0x2a0 and memory address 0xcc000.
     The iosiz parameter specifies a memory region size of 4 kbytes.

     The EasyConnection 8/64-EISA board requires a 64  kbyte  region  of  memory
     space.   This region can be anywhere in the 32 bit memory address space.  A
     configuration entry would be like:

     device stli0 at eisa? port 0x2000 iomem 0x80000000 iosiz 0x10000 flags 24

     The flags field is used to specify that this is an EasyConnection 8/64-EISA
     board.  The I/O (port) address resource is derived from the EISA slot  that
     the  board is in.	Each EISA slot is allocated a section of the I/O address
     space by the hardware of the system.  That address being 0xX000 where X  is
     the  slot	number.  The example board is at memory address 0x80000000 which
     is 2 Gbyte.  The iosiz parameter specifies the size of the  memory  region,
     in this case 64 kbytes.

     Each  ONboard  ISA board requires 16 bytes of I/O space and a 64 kbyte sec-
     tion of memory address space.  Valid ONboard I/O addresses are in the range
     0x200 to 0x300.  A configuration entry for an ONboard ISA would look like:

     device stli0 at isa? port 0x240 iomem 0xd0000 iosiz 0x10000 flags 4

     This entry specifies an ONboard ISA by setting flags to 4.  It uses I/O ad-
     dress 0x240 and a memory region of 64 kbytes at memory address 0xd0000.

     Each ONboard/E board requires a 64 kbyte memory region,  and  this  can  be
     anywhere  in  the 32 bit address space (that is from 0 to 4 Gbyte).  A con-
     figuration entry would look like:

     device stli0 at eisa? port 0x3000 iomem 0xc0000000 iosiz 0x10000 flags 7

     The specifies an ONboard/E in slot 3  using  a  shared  memory  address  of
     0xc0000000 (3 Gbyte).

     Each  Brumby board requires 16 bytes of I/O address space and a 4 kbyte re-
     gion of shared memory space.  The valid Brumby I/O  addresses  are  in  the
     range  0x300  to  0x400.  The shared memory region of the Brumby must be in
     the 0xc0000 to 0xdc000 region of the memory address space.  A configuration
     entry for a Brumby would be like:

     device stli0 at isa? port 0x360 iomem 0xc8000 iosiz 0x4000 flags 2

     This specifies a Brumby board at I/O address 0x360 using  a  shared  memory
     region at address 0xc8000.

NOTES
     When  building  the  device  nodes for the ports be sure to use the correct
     driver name, stl or stli.	Each driver has a separate  major  number  allo-
     cated,  so  even though the port device names are the same for each driver,
     the major number of the device  node  is  different.   Use  the  MAKEDEV(8)
     script to create the devices.  Use the ttyE and cue tag for the stl driver,
     and the ttyEi and cuei tags for the stli driver.

     The  intelligent  board types (ONboard, Brumby and EasyConnection 8/64 (ISA
     and EISA)) require a firmware download before  the  ports	will  be  opera-
     tional.   This  is  achieved  by using the stlload command.  See its manual
     page for details on usage.

FILES
     /dev/ttyE?       stl standard callin devices
     /dev/ttyiE?      stl initial-state callin devices
     /dev/ttylE?      stl lock-state callin devices
     /dev/cuaE?       stl standard callout devices
     /dev/cuaiE?      stl initial-state callout devices
     /dev/cualE?      stl lock-state callout devices
     /dev/ttyF?       stli standard callin devices
     /dev/ttyiF?      stli initial-state callin devices
     /dev/ttylF?      stli lock-state callin devices
     /dev/cuaF?       stli standard callout devices
     /dev/cuaiF?      stli initial-state callout devices
     /dev/cualF?      stli lock-state callout devices
     /dev/staliomem?  board control device

     Note that the port numbers start at 0 for port 0 of board	0.   Each  board
     has 64 port slots allocated for it.  So the second boards ports start at 64
     and  go through 127.  Use the MAKEDEV(8) script to create the devices.  Use
     the ttyEx and cuaEx tag for the stl driver, and the ttyFx	and  cuaFx  tags
     for  the  stli driver, where x is the board number.  By default, MAKEDEV(8)
     only creates 8 devices per board (to keep the directory  size  reasonable).
     To  create the remaining devices for EasyConnection 8/32 and EasyConnection
     8/64 cards, see the comments in the MAKEDEV script.

BUGS
     The /dev/staliomem? device name is shared between both  the  stl  and  stli
     drivers.	This may cause confusion if both drivers are present in the sys-
     tem at the same time.

     Device names use integer suffixes, rather than the 0-9  a-z  sequence  that
     other drivers use.

     There  will be many unused ttyE device names in a system with more than one
     card.

SEE ALSO
     tty(4), termios(4), stty(1), comcontrol(8), stlload(8),  stlstats(8),  stl-
     stty(8), MAKEDEV(8)

HISTORY
     This driver was originally developed by Greg Ungerer (gerg@stallion.com).

FreeBSD 4.5			 January 8, 1998			  STL(4)

home | help