]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - usr.sbin/stallion/bootcode/stli.4
Sort cross refereces in section SEE ALSO.
[FreeBSD/FreeBSD.git] / usr.sbin / stallion / bootcode / stli.4
1 .\" Copyright (c) 1996 Greg Ungerer (gerg@stallion.oz.au).
2 .\" All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. All advertising materials mentioning features or use of this software
13 .\"    must display the following acknowledgement:
14 .\"     This product includes software developed by Greg Ungerer.
15 .\" 4. Neither the name of the author nor the names of any co-contributors
16 .\"    may be used to endorse or promote products derived from this software
17 .\"    without specific prior written permission.
18 .\"
19 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
20 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
23 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 .\" SUCH DAMAGE.
30 .\"
31 .Dd December 2, 1996
32 .Os FreeBSD
33 .Dt STL 4 i386
34 .Sh NAME
35 .Nm stl ,
36 .Nm stli
37 .Nd "drivers for Stallion Technologies multiport serial controllers"
38 .Sh SYNOPSIS
39 .Cd "stl0 at isa? port <addr> tty irq <irq> vector stlintr"
40 .Cd "stli0 at isa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type> "
41 .Cd "stli0 at eisa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type> "
42 .Sh DESCRIPTION
43 .Pp
44 This is a kernel driver for Stallion Technologies multiport serial boards.
45 There are two drivers, each supporting a different class of boards.
46 The
47 .Nm stl
48 driver supports the EasyIO and EasyConnection 8/32
49 boards, while the
50 .Nm stli
51 driver supports all other types, including
52 ONboard, Brumby and EasyConnection 8/64.
53 .Sh CONFIGURATION
54 .Pp
55 Each board installed in the system needs a configuration entry in the
56 kernel configuration file.
57 Slightly different options and parameters are required for each of the
58 different board types.
59 Depending on the type of board one of the
60 .Nm stl
61 or
62 .Nm stli
63 drivers will be used.  The
64 .Nm stl
65 and
66 .Nm stli
67 drivers can support up to 8 boards.
68 .Pp
69 Configuration of the hardware - DIP switches, jumpers, etc - varies
70 from board to board.
71 Consult documentation supplied with the board for hardware
72 configuration details.
73 Alternatively the board documentation is available on Stallion
74 Technologies WWW site at http://www.stallion.com.
75 .Pp
76 The EasyIO and EasyConnection 8/32 families of boards use the
77 .Nm stl
78 driver.
79 ISA board configuration entries for the
80 .Nm stl
81 driver take the general form of:
82 .Pp
83 .Cd "stlX at isa? port <io-addr> tty irq <irq> vector stlintr"
84 .Pp
85 .Nm X
86 is the unit number assigned to the board.
87 Any unique value between 0 and 7 is valid.
88 .Pp
89 The I/O address used by the board is specified by
90 .Nm <io-addr>.
91 Each of the EasyIO and EasyConnection 8/32-AT boards can use
92 an I/O address in the range from 0 to 0x400.
93 .Pp
94 All EasyIO and EasyConnection 8/32 boards require an interrupt,
95 and this interrupt is specified by
96 .Nm <irq>.
97 Legal IRQ values for the ISA boards are 3, 4, 5, 7, 10, 11, 12 and 15.
98 Interrupts are software programmed on all boards except the EasyIO-8M.
99 .Pp
100 The EasyConnection 8/32-AT board uses a secondary I/O address region,
101 and this is fixed at address 0x280 in the driver code.
102 All EasyConnection 8/32-AT boards may share the same secondary address
103 region.
104 .Pp
105 EasyConnection 8/32 PCI boards are detected automatically by the
106 system on boot up.
107 No configuration information is required in advance for these
108 board types.
109 During boot up the
110 .Nm stl
111 driver will issue messages to indicate that a EasyConnection 8/32
112 PCI board was found, and some information about it.
113 .Pp
114 Following are some examples of configuration entries for each of the ISA
115 boards supported by the
116 .Nm stl
117 driver.
118 Each example also describes some important details about each of the
119 board types.
120 .Pp
121 Each EasyIO board requires 8 bytes of I/O address space and 1 IRQ line.
122 A configuration entry for an EasyIO board would look like:
123 .Pp
124 .Cd "stl0 at isa? port 0x2a8 tty irq 15 vector stlintr"
125 .Pp
126 This entry specifies an EasyIO board at I/O address 0x2a8 using IRQ 15.
127 The I/O and IRQ values can be modified as required.
128 .Pp
129 Each EasyConnection 8/32-AT board requires 2 sets of I/O addresses
130 and 1 IRQ line.
131 The primary I/O address range is 2 bytes in size, and must be unique
132 to each EasyConnection 8/32-AT board in the system.
133 The secondary I/O address range is 32 bytes in size, but can be shared
134 by multiple EasyConnection 8/32-AT boards.
135 This secondary I/O address is set at 0x280 in the driver code.
136 A configuration entry would look like:
137 .Pp
138 .Cd "stl0 at isa? port 0x2a0 irq 10 tty vector stlintr"
139 .Pp
140 This specifies an EasyConnection 8/32-AT with primary I/O address 0x2a0,
141 secondary I/O address of 0x280 and IRQ 10.
142 .Pp
143 The ONboard, Brumby and EasyConnection 8/64 families of boards use the
144 .Nm stli
145 driver.  The
146 .Nm stli
147 driver supports the ISA and EISA members of these families.
148 .Pp
149 ISA board configuration entries for the
150 .Nm stli
151 driver take the general form of:
152 .Pp
153 .Cd "stliX at isa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type>"
154 .Pp
155 .Nm X
156 is the unit number assigned to the board.
157 Any unique value between 0 and 7 is valid.
158 .Pp
159 The I/O address used by the board is specified by
160 .Nm <io-addr>.
161 Each of the different supported board types has restrictions on valid
162 I/O addresses and also the amount of I/O space required varies between
163 the boards.
164 .Pp
165 All boards using the
166 .Nm stli
167 driver require a shared memory region to operate.
168 Depending on the board type the region required varies in size
169 from 4 kbytes to 64 kbytes.  The size of the board region is specified
170 by field
171 .Nm <size>
172 of the configuration entry, and the address of the region is specified by
173 .Nm <mem-addr>.
174 .Pp
175 The flags field specifies the particular board type that this entry
176 applies to.
177 Not all board types are distinguishable by the driver at runtime,
178 so this field is required by the driver.
179 Valid board types are:
180 .Bd -literal -offset indent
181 BOARD NAME                      TYPE    I/O SIZE
182
183 Brumby                            2     0x4000
184 ONboard                           4     0x10000
185 ONboard/E                         7     0x10000
186 EasyConnection 8/64-AT           23     0x1000
187 EasyConnection 8/64-EISA         24     0x10000
188 .Ed
189 .Pp
190 Following are some examples of configuration entries for each of the 
191 boards supported by the
192 .Nm stli
193 driver. Each example also describes some important details about
194 each of the board types.
195 .Pp
196 The EasyConnection 8/64-AT board requires 4 bytes of I/O address space and
197 4 kbytes of memory space.
198 A configuration entry would look like:
199 .Pp
200 .Cd "stli0 at isa? port 0x2a0 tty iomem 0xcc000 iosiz 0x1000 flags 23"
201 .Pp
202 The flags field of this entry specifies that this is an
203 EasyConnection 8/64-AT board.
204 It is set to I/O address 0x2a0 and memory address 0xcc000.
205 The
206 .Nm iosiz
207 parameter specifies a memory region size
208 of 4 kbytes.
209 .Pp
210 The EasyConnection 8/64-EISA board requires a 64 kbyte region of
211 memory space.
212 This region can be anywhere in the 32 bit memory address space.
213 A configuration entry would be like:
214 .Pp
215 .Cd "stli0 at eisa? port 0x2000 tty iomem 0x80000000 iosiz 0x10000 flags 24"
216 .Pp
217 The flags field is used to specify that this is an EasyConnection 8/64-EISA
218 board.
219 The I/O (port) address resource is derived from the EISA slot that
220 the board is in.
221 Each EISA slot is allocated a section of the I/O address space by the
222 hardware of the system.
223 That address being 0xX000 where X is the slot number.
224 The example board is at memory address 0x80000000 which is 2 Gbyte.
225 The
226 .Nm iosiz
227 parameter specifies the size of the memory region,
228 in this case 64 kbytes.
229 .Pp
230 Each ONboard ISA board requires 16 bytes of I/O space and a 64 kbyte
231 section of memory address space.
232 Valid ONboard I/O addresses are in the range 0x200 to 0x300.
233 A configuration entry for an ONboard ISA would look like:
234 .Pp
235 .Cd "stli0 at isa? port 0x240 tty iomem 0xd0000 iosiz 0x10000 flags 4"
236 .Pp
237 This entry specifies an ONboard ISA by setting flags to 4.
238 It uses I/O address 0x240 and a memory region of 64 kbytes at memory
239 address 0xd0000.
240 .Pp
241 Each ONboard/E board requires a 64 kbyte memory region, and this
242 can be anywhere in the 32 bit address space (that is from 0 to 4 Gbyte).
243 A configuration entry would look like:
244 .Pp
245 .Cd "stli0 at eisa? port 0x3000 tty iomem 0xc0000000 iosiz 0x10000 flags 7"
246 .Pp
247 The specifies an ONboard/E in slot 3 using a shared memory address
248 of 0xc0000000 (3 Gbyte).
249 .Pp
250 Each Brumby board requires 16 bytes of I/O address space and a 4 kbyte
251 region of shared memory space.
252 The valid Brumby I/O addresses are in the range 0x300 to 0x400.
253 The shared memory region of the Brumby must be in the 0xc0000 to
254 0xdc000 region of the memory address space.
255 A configuration entry for a Brumby would be like:
256 .Pp
257 .Cd "stli0 at isa? port 0x360 tty iomem 0xc8000 iosiz 0x4000 flags 2"
258 .Pp
259 This specifies a Brumby board at I/O address 0x360 using a shared memory
260 region at address 0xc8000.
261 .Sh NOTES
262 When building the device nodes for the ports be sure to use the correct
263 driver name,
264 .Nm stl
265 or
266 .Nm stli.
267 Each driver has a separate major number allocated,
268 so even though the port device names are the same for each driver,
269 the major number of the device node is different.
270 Use the MAKEDEV(8) script to create the devices.
271 Use the ttyE and cue tag for the
272 .Nm stl
273 driver, and
274 the ttyEi and cuei tags for the
275 .Nm stli
276 driver.
277 .Pp
278 The intelligent board types (ONboard, Brumby and EasyConnection 8/64)
279 require a firmware download before the ports will be operational.
280 This is achieved by using the
281 .Nm stlload
282 command.
283 See its manual page for details on usage.
284 .Sh FILES
285 .Bl -tag -width "/dev/staliomem?" -compact
286 .It Pa /dev/ttyE?
287 standard callin devices
288 .It Pa /dev/ttyiE?
289 initial-state callin devices
290 .It Pa /dev/ttylE?
291 lock-state callin devices
292 .It Pa /dev/cue?
293 standard callout devices
294 .It Pa /dev/cuie?
295 initial-state callout devices
296 .It Pa /dev/cule?
297 lock-state callout devices
298 .It Pa /dev/staliomem?
299 board control device
300 .El
301 .sp
302 Note that the port numbers start at 0 for port 0 of board 0.
303 Each board has 64 port slots allocated for it.
304 So the second boards ports start at 64 and go through 127.
305 Use the MAKEDEV(8) script to create the devices.
306 Use the ttyE and cue tag for the
307 .Nm stl
308 driver, and
309 the ttyEi and cuei tags for the
310 .Nm stli
311 driver.
312 .Sh SEE ALSO
313 .Xr stty 1 ,
314 .Xr termios 4 ,
315 .Xr tty 4 ,
316 .Xr comcontrol 8 ,
317 .Xr MAKEDEV 8 ,
318 .Xr stlload 8 ,
319 .Xr stlstats 8
320 .Sh HISTORY
321 This driver was originally developed by Greg Ungerer (gerg@stallion.com).