Initial import from FreeBSD RELENG_4:
[dragonfly.git] / share / man / man4 / man4.i386 / cx.4
1 .\"
2 .\" $FreeBSD: src/share/man/man4/man4.i386/cx.4,v 1.7.2.6 2001/08/17 13:08:45 ru Exp $
3 .\"
4 .Dd December 12, 1994
5 .Dt CX 4 i386
6 .Os
7 .Sh NAME
8 .Nm cx
9 .Nd asynchronous/synchronous Cronyx-Sigma adapter driver
10 .Sh SYNOPSIS
11 .Cd "device cx0 at isa? port 0x240 irq 15 drq 7"
12 .Cd "device cx1 at isa? port 0x260 irq 12 drq 6"
13 .Cd pseudo-device sppp
14 .Pp
15 The base i/o port address should be set by jumpers on the board.
16 The DMA i/o channel and interrupt request numbers are configured
17 by software at adapter initialization.  Legal values are:
18 .Pp
19 .Bl -tag -compact -width Port
20 .It Port
21 0x240, 0x260, 0x280, 0x300, 0x320, 0x380
22 .It IRQ
23 3, 5, 7, 10, 11, 12, 15
24 .It DMA
25 5, 6, 7
26 .El
27 .Sh DESCRIPTION
28 The Cronyx-Sigma driver supports the adapters of models 100,
29 400, 500, 401, 404, 410, 440, 703, 801, 810, 840. Different models have
30 different set of channels:
31 .Pp
32 .Bl -tag -compact -width Cronyx-Sigma-999
33 .It Model
34 Channels
35 .It Cronyx-Sigma-100
36 0
37 .It Cronyx-Sigma-400
38 4, 5, 6, 7
39 .It Cronyx-Sigma-500
40 0, 4, 5, 6, 7
41 .It Cronyx-Sigma-401
42 0, 1, 2, 3
43 .It Cronyx-Sigma-404
44 0, 1, 2, 3
45 .It Cronyx-Sigma-410
46 0, 1, 2, 3
47 .It Cronyx-Sigma-440
48 0, 1, 2, 3
49 .It Cronyx-Sigma-703
50 0, 1, 2, 4, 5, 6, 7
51 .It Cronyx-Sigma-801
52 0, 1, 2, 3, 4, 5, 6, 7
53 .It Cronyx-Sigma-810
54 0, 1, 2, 3, 4, 5, 6, 7
55 .It Cronyx-Sigma-840
56 0, 1, 2, 3, 4, 5, 6, 7
57 .El
58 .Pp
59 A pair of two adapters can be united together by the special
60 short inter-board cable.  Two united adapters use the same
61 IRQ and DMA channels and from the point of driver works
62 as the single 16-channel multiplexer.  One of the united
63 boards is ``master'' and the other is ``slave''.
64 .Pp
65 The channels of the slave united board are numbered by the driver
66 beginning with 8, for example, the united adapter of the model 100/500
67 has channels 0, 8, 12, 13, 14, 15.
68 .Pp
69 The channels which have the RS-232 interface can be used
70 both in synchronous and asynchronous modes (software selectable
71 by cxconfig utility) and hence are called ``universal'' channels.
72 .Pp
73 The special device files,
74 .Pa /dev/* ,
75 for the adapter Cronyx-Sigma
76 are created by th
77 .Xr MAKEDEV 8
78 An example:
79 .Bd -literal
80 cd /dev
81 sh MAKEDEV cronyx ttyx0 ttyx1 ttyy0
82 .Ed
83 .Sh "Asynchronous driver"
84 The asynchronous channel device files have the names:
85 .Pa /dev/ttyx#
86 - for adapter cx0,
87 .Pa /dev/ttyy#
88 - for adapter cx1,
89 .Pa /dev/ttyz#
90 - for cx2.
91 Here # is the channel number in hexadecimal form, 0-9-a-f.
92 .Pp
93 The driver fulfills the following standard ioctl requests (see
94 .Xr ioctl 2 ) :
95 .Pp
96 .Bl -tag -width TIOCXXXXX -compact
97 .It Dv TIOCSBRK
98 Start sending BREAK.
99 .It Dv TIOCCBRK
100 Stop sending BREAK.
101 .It Dv TIOCSDTR
102 Set DTR signal (DTR := 1).  The DTR signal is always set
103 on the first
104 .Xr open 2
105 and could be changed by
106 .Dv TIOCCDTR ,
107 .Dv TIOCSDTR ,
108 .Dv TIOCMSET ,
109 .Dv TIOCMBIS ,
110 .Dv TIOCMBIC
111 ioctl calls.
112 .It TIOCCDTR
113 Clear DTR signal (DTR := 0).
114 .It TIOCMSET
115 Set the given values of DTR and RTS signals (<DTR:RTS> := data).
116 The signals DTR and RTS are controlled by
117 .Dv TIOCM_DTR
118 and
119 .Dv TIOCM_RTS
120 bits of the data argument of the ioctl system call.
121 .It TIOCMBIS
122 Set DTR and RTS signals (<DTR:RTS> |= data).
123 The signals DTR and RTS are controlled by
124 .Dv TIOCM_DTR
125 and
126 .Dv TIOCM_RTS
127 bits of the data argument of the ioctl system call.
128 .It TIOCMBIC
129 Clear DTR and RTS signals (<DTR:RTS> &= ~data).
130 The signals DTR and RTS are controlled by
131 .Dv TIOCM_DTR
132 and
133 .Dv TIOCM_RTS
134 bits of the data argument of the ioctl system call.
135 .It TIOCMGET
136 Determine the state of the modem signals of the line.
137 After the call the data argument contains the following bits:
138 .Pp
139 .Bl -tag -width TIOCM_XXX -compact
140 .It TIOCM_LE
141 always set (Line Enabled)
142 .It TIOCM_DSR
143 Data Set Ready signal received
144 .It TIOCM_CTS
145 Clear To Send signal received
146 .It TIOCM_CD
147 Data Carrier Detect signal received
148 .It TIOCM_DTR
149 Data Terminal Ready signal transmitted
150 .It TIOCM_RTS
151 Request To Send signal transmitted
152 .El
153 .El
154 .Sh "Synchronous driver"
155 The synchronous channels and universal channels, turned to the synchronous
156 mode by the
157 .Xr cxconfig 8
158 utility, are accessible as network
159 interfaces named ``cx#'' where # is the channel number, 0..47.
160 All standard network interface parameters could be set by
161 .Xr ifconfig 8
162 utility.
163 The
164 .Xr cxconfig 8
165 command is used to change some extended channel
166 options, and also for setting the high-level software protocol
167 (e.g. PpP or Cisco HDLC).
168 .Pp
169 The universal channels could be used both in asynchronous and synchronous modes.
170 By default the asynchronous mode is set.
171 The mode could be changed by
172 .Xr cxconfig 8
173 utility.
174 The mode is blocked while the channel is busy (an asynchronous channel
175 in open state or the network interface is up).
176 .Sh "Synchronous Point-to-Point protocol"
177 The Cronyx-Sigma driver uses the built-in implementation of the synchronous
178 Point-to-Point protocol (sppp).  It includes the support for such
179 protocols as PpP/HDLC and Cisco/HDLC, and also the automatic
180 connection loss test (via keepalive packets).
181 The sppp protocol set is implemented as an independent module
182 and could be used by other drivers of synchronous serial channels.
183 The version of the driver for BSD/386 (BSDI) operating system
184 also supports the usage of the general set of synchronous
185 protocols, implemented inside the OS.
186 The external protocol set could be selected by ``cxconfig ext'' command
187 (see
188 .Xr cxconfig 8 ) .
189 .Sh "Channel Options Management"
190 The
191 .Xr cxconfig 8
192 utility is used for setting the channels options.
193 The channel options are generally set at the start of the operating
194 system (for example, from the file
195 .Pa /etc/rc ) .
196 Note, that not all options have a sense for every particular
197 case, and an attempt to set some of them can hang up the channel or
198 the whole adapter.
199 .Pp
200 The actual channel options control functions are implemented via
201 the ioctl-s on the special device file /dev/cronyx.
202 There are the following ioctl-s available:
203 .Pp
204 .Bl -tag -width CXIOCXXXXXXX -compact
205 .It CXIOCGETMODE
206 Get the channel option values.
207 .It CXIOCSETMODE
208 Set the channel option values.
209 .El
210 .Pp
211 The data argument of the ioctl call has an address of the options structure:
212 .Bd -literal
213 typedef struct {
214     unsigned char board;   /* adapter number, 0..2 */
215     unsigned char channel; /* channel number, 0..15 */
216     unsigned char type;    /* channel type (read only) */
217     unsigned char iftype;  /* chan0 interface */
218     unsigned long rxbaud;  /* receiver speed */
219     unsigned long txbaud;  /* transmitter speed */
220     cx_chan_mode_t mode;   /* channel mode */
221     cx_chan_opt_t opt;     /* common channel options */
222     cx_opt_async_t aopt;   /* async mode options */
223     cx_opt_hdlc_t hopt;    /* hdlc mode options */
224     cx_opt_bisync_t bopt;  /* bisync mode options */
225     cx_opt_x21_t xopt;     /* x.21 mode options */
226     cx_soft_opt_t sopt;    /* software options and state flags */
227 } cx_options_t;            /* user settable options */
228 .Ed
229 .Pp
230 .Bl -tag -width rxbaudxxx
231 .It Fa board
232 The adapter number, 0..2.
233 .It Fa channel
234 The channel number, 0..15.
235 .It Fa type
236 The type of the channel (read-only argument).
237 .It Fa iftype
238 The interface type of the zero (and also the eight) channel: 0 - RS-232,
239 1 - RS-449/V.35.
240 .It Fa rxbaud
241 The receiver data baud rate.
242 .It Fa txbaud
243 The transmitter data baud rate.
244 .It Fa mode
245 The channel mode: asynchronous/HDLC/Bisync/X.21.
246 .It Fa opt
247 The general channel options.
248 .It Fa aopt
249 The asynchronous mode options.
250 .It Fa hopt
251 The HDLC mode options.
252 .It Fa bopt
253 The Bisync mode options.
254 .It Fa xopt
255 The X.21 mode options.
256 .It Fa sopt
257 The software protocol options.
258 .El
259 .Sh FILES
260 .Bl -tag -width /dev/cxXXXX -compact
261 .It Pa /dev/cx??
262 Asynchronous channels.
263 .It Pa /dev/cronyx
264 The special device file for the channel options management.
265 .El
266 .Pp
267 The sources for the driver reside in:
268 .Pp
269 .Bl -tag -width /dev/cxXXXX -compact
270 .It Pa /sys/i386/isa/cronyx.c
271 .It Pa /sys/i386/isa/cx.c
272 .It Pa /sys/i386/isa/if_cx.c
273 .It Pa /sys/i386/isa/cronyx.h
274 .It Pa /sys/i386/isa/cxreg.h
275 .It Pa /sys/net/if_spppsubr.c
276 .It Pa /sys/net/if_sppp.h
277 .El
278 .Sh SEE ALSO
279 .Xr cxconfig 8 ,
280 .Xr ifconfig 8