STL(4) BSD/i386 Kernel Interfaces Manual STL(4)NAME
stl, stli — drivers for Stallion Technologies multiport serial con‐
trollers
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>
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).
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 hard‐
ware 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 infor‐
mation 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
important 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
EasyConnection 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 members of these families.
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 oper‐
ate. 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
specified 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
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.
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
address 0x240 and a memory region of 64 kbytes at memory address 0xd0000.
Each Brumby board requires 16 bytes of I/O address space and a 4 kbyte
region 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 configura‐
tion 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
Each driver has a separate major number allocated, so even though the
port device names are the same for each driver, the major number of the
device node is different.
The intelligent board types (ONboard, Brumby and EasyConnection 8/64
(ISA)) require a firmware download before the ports will be operational.
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.
SEE ALSOstty(1), termios(4), tty(4), comcontrol(8), stlload(8), stlstats(8),
stlstty(8)HISTORY
This driver was originally developed by Greg Ungerer (gerg@stallion.com).
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
system 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.
BSD August 6, 2009 BSD