1997-03-13 04:21:44 +00:00
|
|
|
.\" Copyright (c) 1996 Greg Ungerer (gerg@stallion.oz.au).
|
|
|
|
.\" All rights reserved.
|
|
|
|
.\"
|
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
.\" are met:
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
|
|
.\" must display the following acknowledgement:
|
|
|
|
.\" This product includes software developed by Greg Ungerer.
|
|
|
|
.\" 4. Neither the name of the author nor the names of any co-contributors
|
|
|
|
.\" may be used to endorse or promote products derived from this software
|
|
|
|
.\" without specific prior written permission.
|
|
|
|
.\"
|
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
.\" SUCH DAMAGE.
|
|
|
|
.\"
|
|
|
|
.Dd December 2, 1996
|
|
|
|
.Os FreeBSD
|
|
|
|
.Dt STL 4 i386
|
|
|
|
.Sh NAME
|
|
|
|
.Nm stl ,
|
|
|
|
.Nm stli
|
|
|
|
.Nd "drivers for Stallion Technologies multiport serial controllers"
|
|
|
|
.Sh SYNOPSIS
|
|
|
|
.Cd "stl0 at isa? port <addr> tty irq <irq> vector stlintr"
|
|
|
|
.Cd "stli0 at isa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type> "
|
|
|
|
.Cd "stli0 at eisa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type> "
|
|
|
|
.Sh DESCRIPTION
|
|
|
|
.Pp
|
|
|
|
This is a kernel driver for Stallion Technologies multiport serial boards.
|
|
|
|
There are two drivers, each supporting a different class of boards.
|
|
|
|
The
|
|
|
|
.Nm stl
|
|
|
|
driver supports the EasyIO and EasyConnection 8/32
|
|
|
|
boards, while the
|
|
|
|
.Nm stli
|
|
|
|
driver supports all other types, including
|
|
|
|
ONboard, Brumby and EasyConnection 8/64.
|
|
|
|
.Sh CONFIGURATION
|
|
|
|
.Pp
|
|
|
|
Each 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
|
|
|
|
.Nm stl
|
|
|
|
or
|
|
|
|
.Nm stli
|
|
|
|
drivers will be used. The
|
|
|
|
.Nm stl
|
|
|
|
and
|
|
|
|
.Nm stli
|
|
|
|
drivers can support up to 8 boards.
|
|
|
|
.Pp
|
|
|
|
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.
|
|
|
|
.Pp
|
|
|
|
The EasyIO and EasyConnection 8/32 families of boards use the
|
|
|
|
.Nm stl
|
|
|
|
driver.
|
|
|
|
ISA board configuration entries for the
|
|
|
|
.Nm stl
|
|
|
|
driver take the general form of:
|
|
|
|
.Pp
|
|
|
|
.Cd "stlX at isa? port <io-addr> tty irq <irq> vector stlintr"
|
|
|
|
.Pp
|
|
|
|
.Nm X
|
|
|
|
is the unit number assigned to the board.
|
|
|
|
Any unique value between 0 and 7 is valid.
|
|
|
|
.Pp
|
|
|
|
The I/O address used by the board is specified by
|
|
|
|
.Nm <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.
|
|
|
|
.Pp
|
|
|
|
All EasyIO and EasyConnection 8/32 boards require an interrupt,
|
|
|
|
and this interrupt is specified by
|
|
|
|
.Nm <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.
|
|
|
|
.Pp
|
|
|
|
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.
|
|
|
|
.Pp
|
|
|
|
EasyConnection 8/32 PCI boards are detected automatically by the
|
|
|
|
system on boot up.
|
|
|
|
No configuration information is required in advance for these
|
|
|
|
board types.
|
|
|
|
During boot up the
|
|
|
|
.Nm stl
|
|
|
|
driver will issue messages to indicate that a EasyConnection 8/32
|
|
|
|
PCI board was found, and some information about it.
|
|
|
|
.Pp
|
|
|
|
Following are some examples of configuration entries for each of the ISA
|
|
|
|
boards supported by the
|
|
|
|
.Nm stl
|
|
|
|
driver.
|
|
|
|
Each example also describes some important details about each of the
|
|
|
|
board types.
|
|
|
|
.Pp
|
|
|
|
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:
|
|
|
|
.Pp
|
|
|
|
.Cd "stl0 at isa? port 0x2a8 tty irq 15 vector stlintr"
|
|
|
|
.Pp
|
|
|
|
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.
|
|
|
|
.Pp
|
|
|
|
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:
|
|
|
|
.Pp
|
|
|
|
.Cd "stl0 at isa? port 0x2a0 irq 10 tty vector stlintr"
|
|
|
|
.Pp
|
|
|
|
This specifies an EasyConnection 8/32-AT with primary I/O address 0x2a0,
|
|
|
|
secondary I/O address of 0x280 and IRQ 10.
|
|
|
|
.Pp
|
|
|
|
The ONboard, Brumby and EasyConnection 8/64 families of boards use the
|
|
|
|
.Nm stli
|
|
|
|
driver. The
|
|
|
|
.Nm stli
|
|
|
|
driver supports the ISA and EISA members of these families.
|
|
|
|
.Pp
|
|
|
|
ISA board configuration entries for the
|
|
|
|
.Nm stli
|
|
|
|
driver take the general form of:
|
|
|
|
.Pp
|
|
|
|
.Cd "stliX at isa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type>"
|
|
|
|
.Pp
|
|
|
|
.Nm X
|
|
|
|
is the unit number assigned to the board.
|
|
|
|
Any unique value between 0 and 7 is valid.
|
|
|
|
.Pp
|
|
|
|
The I/O address used by the board is specified by
|
|
|
|
.Nm <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.
|
|
|
|
.Pp
|
|
|
|
All boards using the
|
|
|
|
.Nm 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
|
|
|
|
.Nm <size>
|
|
|
|
of the configuration entry, and the address of the region is specified by
|
|
|
|
.Nm <mem-addr>.
|
|
|
|
.Pp
|
|
|
|
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:
|
|
|
|
.Bd -literal -offset indent
|
|
|
|
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
|
|
|
|
.Ed
|
|
|
|
.Pp
|
|
|
|
Following are some examples of configuration entries for each of the
|
|
|
|
boards supported by the
|
|
|
|
.Nm stli
|
|
|
|
driver. Each example also describes some important details about
|
|
|
|
each of the board types.
|
|
|
|
.Pp
|
|
|
|
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:
|
|
|
|
.Pp
|
|
|
|
.Cd "stli0 at isa? port 0x2a0 tty iomem 0xcc000 iosiz 0x1000 flags 23"
|
|
|
|
.Pp
|
|
|
|
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
|
|
|
|
.Nm iosiz
|
|
|
|
parameter specifies a memory region size
|
|
|
|
of 4 kbytes.
|
|
|
|
.Pp
|
|
|
|
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:
|
|
|
|
.Pp
|
|
|
|
.Cd "stli0 at eisa? port 0x2000 tty iomem 0x80000000 iosiz 0x10000 flags 24"
|
|
|
|
.Pp
|
|
|
|
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
|
|
|
|
.Nm iosiz
|
|
|
|
parameter specifies the size of the memory region,
|
|
|
|
in this case 64 kbytes.
|
|
|
|
.Pp
|
|
|
|
Each ONboard ISA board requires 16 bytes of I/O space and a 64 kbyte
|
|
|
|
section 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:
|
|
|
|
.Pp
|
|
|
|
.Cd "stli0 at isa? port 0x240 tty iomem 0xd0000 iosiz 0x10000 flags 4"
|
|
|
|
.Pp
|
|
|
|
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.
|
|
|
|
.Pp
|
|
|
|
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 configuration entry would look like:
|
|
|
|
.Pp
|
|
|
|
.Cd "stli0 at eisa? port 0x3000 tty iomem 0xc0000000 iosiz 0x10000 flags 7"
|
|
|
|
.Pp
|
|
|
|
The specifies an ONboard/E in slot 3 using a shared memory address
|
|
|
|
of 0xc0000000 (3 Gbyte).
|
|
|
|
.Pp
|
|
|
|
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 configuration entry for a Brumby would be like:
|
|
|
|
.Pp
|
|
|
|
.Cd "stli0 at isa? port 0x360 tty iomem 0xc8000 iosiz 0x4000 flags 2"
|
|
|
|
.Pp
|
|
|
|
This specifies a Brumby board at I/O address 0x360 using a shared memory
|
|
|
|
region at address 0xc8000.
|
|
|
|
.Sh NOTES
|
|
|
|
When building the device nodes for the ports be sure to use the correct
|
|
|
|
driver name,
|
|
|
|
.Nm stl
|
|
|
|
or
|
|
|
|
.Nm stli.
|
|
|
|
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.
|
|
|
|
Use the MAKEDEV(8) script to create the devices.
|
|
|
|
Use the ttyE and cue tag for the
|
|
|
|
.Nm stl
|
|
|
|
driver, and
|
|
|
|
the ttyEi and cuei tags for the
|
|
|
|
.Nm stli
|
|
|
|
driver.
|
|
|
|
.Pp
|
|
|
|
The intelligent board types (ONboard, Brumby and EasyConnection 8/64)
|
|
|
|
require a firmware download before the ports will be operational.
|
|
|
|
This is achieved by using the
|
|
|
|
.Nm stlload
|
|
|
|
command.
|
|
|
|
See its manual page for details on usage.
|
|
|
|
.Sh FILES
|
|
|
|
.Bl -tag -width "/dev/staliomem?" -compact
|
|
|
|
.It Pa /dev/ttyE?
|
|
|
|
standard callin devices
|
|
|
|
.It Pa /dev/ttyiE?
|
|
|
|
initial-state callin devices
|
|
|
|
.It Pa /dev/ttylE?
|
|
|
|
lock-state callin devices
|
|
|
|
.It Pa /dev/cue?
|
|
|
|
standard callout devices
|
|
|
|
.It Pa /dev/cuie?
|
|
|
|
initial-state callout devices
|
|
|
|
.It Pa /dev/cule?
|
|
|
|
lock-state callout devices
|
|
|
|
.It Pa /dev/staliomem?
|
|
|
|
board control device
|
|
|
|
.El
|
|
|
|
.sp
|
|
|
|
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 ttyE and cue tag for the
|
|
|
|
.Nm stl
|
|
|
|
driver, and
|
|
|
|
the ttyEi and cuei tags for the
|
|
|
|
.Nm stli
|
|
|
|
driver.
|
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr stty 1 ,
|
1997-09-29 19:11:55 +00:00
|
|
|
.Xr termios 4 ,
|
|
|
|
.Xr tty 4 ,
|
1997-03-13 04:21:44 +00:00
|
|
|
.Xr comcontrol 8 ,
|
1997-09-29 19:11:55 +00:00
|
|
|
.Xr MAKEDEV 8 ,
|
1997-03-13 04:21:44 +00:00
|
|
|
.Xr stlload 8 ,
|
1997-09-29 19:11:55 +00:00
|
|
|
.Xr stlstats 8
|
1997-03-13 04:21:44 +00:00
|
|
|
.Sh HISTORY
|
|
|
|
This driver was originally developed by Greg Ungerer (gerg@stallion.com).
|