547d4262b2
- Change lines referring to kernel configuration file: device foo0 at isa port xxx irq yyy... to device foo Describe resource "hints" in /boot/device.hints. - Try to describe resource allocation and probe/attach behavior in the newbus framework.
289 lines
7.8 KiB
Groff
289 lines
7.8 KiB
Groff
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd December 12, 1994
|
|
.Dt CX 4 i386
|
|
.Os
|
|
.Sh NAME
|
|
.Nm cx
|
|
.Nd asynchronous/synchronous Cronyx-Sigma adapter driver
|
|
.Sh SYNOPSIS
|
|
.Cd "device cx 1"
|
|
.Cd device sppp
|
|
.Pp
|
|
In
|
|
.Pa /boot/device.hints :
|
|
.Cd hint.cx.0.at="isa"
|
|
.Cd hint.cx.0.port="0x240"
|
|
.Cd hint.cx.0.irq="15"
|
|
.Cd hint.cx.0.drq="7"
|
|
.Pp
|
|
The base i/o port address specified in
|
|
.Pa /boot/device.hints
|
|
must match the port address set by jumpers on the board.
|
|
The DMA i/o channel and interrupt request numbers are configured
|
|
by software at adapter initialization. Legal values are:
|
|
.Pp
|
|
.Bl -tag -compact -width Port
|
|
.It Port
|
|
0x240, 0x260, 0x280, 0x300, 0x320, 0x380
|
|
.It IRQ
|
|
3, 5, 7, 10, 11, 12, 15
|
|
.It DMA
|
|
5, 6, 7
|
|
.El
|
|
.Sh DESCRIPTION
|
|
The Cronyx-Sigma driver supports the adapters of models 100,
|
|
400, 500, 401, 404, 410, 440, 703, 801, 810, 840. Different models have
|
|
different set of channels:
|
|
.Pp
|
|
.Bl -tag -compact -width Cronyx-Sigma-999
|
|
.It Model
|
|
Channels
|
|
.It Cronyx-Sigma-100
|
|
0
|
|
.It Cronyx-Sigma-400
|
|
4, 5, 6, 7
|
|
.It Cronyx-Sigma-500
|
|
0, 4, 5, 6, 7
|
|
.It Cronyx-Sigma-401
|
|
0, 1, 2, 3
|
|
.It Cronyx-Sigma-404
|
|
0, 1, 2, 3
|
|
.It Cronyx-Sigma-410
|
|
0, 1, 2, 3
|
|
.It Cronyx-Sigma-440
|
|
0, 1, 2, 3
|
|
.It Cronyx-Sigma-703
|
|
0, 1, 2, 4, 5, 6, 7
|
|
.It Cronyx-Sigma-801
|
|
0, 1, 2, 3, 4, 5, 6, 7
|
|
.It Cronyx-Sigma-810
|
|
0, 1, 2, 3, 4, 5, 6, 7
|
|
.It Cronyx-Sigma-840
|
|
0, 1, 2, 3, 4, 5, 6, 7
|
|
.El
|
|
.Pp
|
|
A pair of two adapters can be united together by the special
|
|
short inter-board cable. Two united adapters use the same
|
|
IRQ and DMA channels and from the point of driver works
|
|
as the single 16-channel multiplexer. One of the united
|
|
boards is ``master'' and the other is ``slave''.
|
|
.Pp
|
|
The channels of the slave united board are numbered by the driver
|
|
beginning with 8, for example, the united adapter of the model 100/500
|
|
has channels 0, 8, 12, 13, 14, 15.
|
|
.Pp
|
|
The channels which have the RS-232 interface can be used
|
|
both in synchronous and asynchronous modes (software selectable
|
|
by cxconfig utility) and hence are called ``universal'' channels.
|
|
.Pp
|
|
The special device files,
|
|
.Pa /dev/* ,
|
|
for the adapter Cronyx-Sigma
|
|
are created by th
|
|
.Xr MAKEDEV 8
|
|
An example:
|
|
.Bd -literal
|
|
cd /dev
|
|
sh MAKEDEV cronyx ttyx0 ttyx1 ttyy0
|
|
.Ed
|
|
.Sh "Asynchronous driver"
|
|
The asynchronous channel device files have the names:
|
|
.Pa /dev/ttyx#
|
|
- for adapter cx0,
|
|
.Pa /dev/ttyy#
|
|
- for adapter cx1,
|
|
.Pa /dev/ttyz#
|
|
- for cx2.
|
|
Here # is the channel number in hexadecimal form, 0-9-a-f.
|
|
.Pp
|
|
The driver fulfills the following standard ioctl requests (see
|
|
.Xr ioctl 2 ) :
|
|
.Pp
|
|
.Bl -tag -width TIOCXXXXX -compact
|
|
.It Dv TIOCSBRK
|
|
Start sending BREAK.
|
|
.It Dv TIOCCBRK
|
|
Stop sending BREAK.
|
|
.It Dv TIOCSDTR
|
|
Set DTR signal (DTR := 1). The DTR signal is always set
|
|
on the first
|
|
.Xr open 2
|
|
and could be changed by
|
|
.Dv TIOCCDTR ,
|
|
.Dv TIOCSDTR ,
|
|
.Dv TIOCMSET ,
|
|
.Dv TIOCMBIS ,
|
|
.Dv TIOCMBIC
|
|
ioctl calls.
|
|
.It TIOCCDTR
|
|
Clear DTR signal (DTR := 0).
|
|
.It TIOCMSET
|
|
Set the given values of DTR and RTS signals (<DTR:RTS> := data).
|
|
The signals DTR and RTS are controlled by
|
|
.Dv TIOCM_DTR
|
|
and
|
|
.Dv TIOCM_RTS
|
|
bits of the data argument of the ioctl system call.
|
|
.It TIOCMBIS
|
|
Set DTR and RTS signals (<DTR:RTS> |= data).
|
|
The signals DTR and RTS are controlled by
|
|
.Dv TIOCM_DTR
|
|
and
|
|
.Dv TIOCM_RTS
|
|
bits of the data argument of the ioctl system call.
|
|
.It TIOCMBIC
|
|
Clear DTR and RTS signals (<DTR:RTS> &= ~data).
|
|
The signals DTR and RTS are controlled by
|
|
.Dv TIOCM_DTR
|
|
and
|
|
.Dv TIOCM_RTS
|
|
bits of the data argument of the ioctl system call.
|
|
.It TIOCMGET
|
|
Determine the state of the modem signals of the line.
|
|
After the call the data argument contains the following bits:
|
|
.Pp
|
|
.Bl -tag -width TIOCM_XXX -compact
|
|
.It TIOCM_LE
|
|
always set (Line Enabled)
|
|
.It TIOCM_DSR
|
|
Data Set Ready signal received
|
|
.It TIOCM_CTS
|
|
Clear To Send signal received
|
|
.It TIOCM_CD
|
|
Data Carrier Detect signal received
|
|
.It TIOCM_DTR
|
|
Data Terminal Ready signal transmitted
|
|
.It TIOCM_RTS
|
|
Request To Send signal transmitted
|
|
.El
|
|
.El
|
|
.Sh "Synchronous driver"
|
|
The synchronous channels and universal channels, turned to the synchronous
|
|
mode by the
|
|
.Xr cxconfig 8
|
|
utility, are accessible as network
|
|
interfaces named ``cx#'' where # is the channel number, 0..47.
|
|
All standard network interface parameters could be set by
|
|
.Xr ifconfig 8
|
|
utility.
|
|
The
|
|
.Xr cxconfig 8
|
|
command is used to change some extended channel
|
|
options, and also for setting the high-level software protocol
|
|
(e.g. PpP or Cisco HDLC).
|
|
.Pp
|
|
The universal channels could be used both in asynchronous and synchronous modes.
|
|
By default the asynchronous mode is set.
|
|
The mode could be changed by
|
|
.Xr cxconfig 8
|
|
utility.
|
|
The mode is blocked while the channel is busy (an asynchronous channel
|
|
in open state or the network interface is up).
|
|
.Sh "Synchronous Point-to-Point protocol"
|
|
The Cronyx-Sigma driver uses the built-in implementation of the synchronous
|
|
Point-to-Point protocol (sppp). It includes the support for such
|
|
protocols as PpP/HDLC and Cisco/HDLC, and also the automatic
|
|
connection loss test (via keepalive packets).
|
|
The sppp protocol set is implemented as an independent module
|
|
and could be used by other drivers of synchronous serial channels.
|
|
The version of the driver for BSD/386 (BSDI) operating system
|
|
also supports the usage of the general set of synchronous
|
|
protocols, implemented inside the OS.
|
|
The external protocol set could be selected by ``cxconfig ext'' command
|
|
(see
|
|
.Xr cxconfig 8 ) .
|
|
.Sh "Channel Options Management"
|
|
The
|
|
.Xr cxconfig 8
|
|
utility is used for setting the channels options.
|
|
The channel options are generally set at the start of the operating
|
|
system (for example, from the file
|
|
.Pa /etc/rc ) .
|
|
Note, that not all options have a sense for every particular
|
|
case, and an attempt to set some of them can hang up the channel or
|
|
the whole adapter.
|
|
.Pp
|
|
The actual channel options control functions are implemented via
|
|
the ioctl-s on the special device file /dev/cronyx.
|
|
There are the following ioctl-s available:
|
|
.Pp
|
|
.Bl -tag -width CXIOCXXXXXXX -compact
|
|
.It CXIOCGETMODE
|
|
Get the channel option values.
|
|
.It CXIOCSETMODE
|
|
Set the channel option values.
|
|
.El
|
|
.Pp
|
|
The data argument of the ioctl call has an address of the options structure:
|
|
.Bd -literal
|
|
typedef struct {
|
|
unsigned char board; /* adapter number, 0..2 */
|
|
unsigned char channel; /* channel number, 0..15 */
|
|
unsigned char type; /* channel type (read only) */
|
|
unsigned char iftype; /* chan0 interface */
|
|
unsigned long rxbaud; /* receiver speed */
|
|
unsigned long txbaud; /* transmitter speed */
|
|
cx_chan_mode_t mode; /* channel mode */
|
|
cx_chan_opt_t opt; /* common channel options */
|
|
cx_opt_async_t aopt; /* async mode options */
|
|
cx_opt_hdlc_t hopt; /* hdlc mode options */
|
|
cx_opt_bisync_t bopt; /* bisync mode options */
|
|
cx_opt_x21_t xopt; /* x.21 mode options */
|
|
cx_soft_opt_t sopt; /* software options and state flags */
|
|
} cx_options_t; /* user settable options */
|
|
.Ed
|
|
.Pp
|
|
.Bl -tag -width rxbaudxxx
|
|
.It Fa board
|
|
The adapter number, 0..2.
|
|
.It Fa channel
|
|
The channel number, 0..15.
|
|
.It Fa type
|
|
The type of the channel (read-only argument).
|
|
.It Fa iftype
|
|
The interface type of the zero (and also the eight) channel: 0 - RS-232,
|
|
1 - RS-449/V.35.
|
|
.It Fa rxbaud
|
|
The receiver data baud rate.
|
|
.It Fa txbaud
|
|
The transmitter data baud rate.
|
|
.It Fa mode
|
|
The channel mode: asynchronous/HDLC/Bisync/X.21.
|
|
.It Fa opt
|
|
The general channel options.
|
|
.It Fa aopt
|
|
The asynchronous mode options.
|
|
.It Fa hopt
|
|
The HDLC mode options.
|
|
.It Fa bopt
|
|
The Bisync mode options.
|
|
.It Fa xopt
|
|
The X.21 mode options.
|
|
.It Fa sopt
|
|
The software protocol options.
|
|
.El
|
|
.Sh FILES
|
|
.Bl -tag -width /dev/cxXXXX -compact
|
|
.It Pa /dev/cx??
|
|
Asynchronous channels.
|
|
.It Pa /dev/cronyx
|
|
The special device file for the channel options management.
|
|
.El
|
|
.Pp
|
|
The sources for the driver reside in:
|
|
.Pp
|
|
.Bl -tag -width /dev/cxXXXX -compact
|
|
.It Pa /sys/i386/isa/cronyx.c
|
|
.It Pa /sys/i386/isa/cx.c
|
|
.It Pa /sys/i386/isa/if_cx.c
|
|
.It Pa /sys/i386/isa/cronyx.h
|
|
.It Pa /sys/i386/isa/cxreg.h
|
|
.It Pa /sys/net/if_spppsubr.c
|
|
.It Pa /sys/net/if_sppp.h
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr cxconfig 8 ,
|
|
.Xr ifconfig 8
|