21e2510ac8
(Currently, update to RELENG_4 is not scheduled) Obtained from: jpman Project <manjp@jp.FreeBSD.org>
289 lines
7.9 KiB
Groff
289 lines
7.9 KiB
Groff
.\"
|
|
.\" %Id: cx.4,v 1.4 1997/06/23 04:02:37 steve Exp %
|
|
.\" jpman %Id: cx.4,v 1.3 2000/08/10 13:49:49 horikawa Stab %
|
|
.\"
|
|
.Dd December 12, 1994
|
|
.Dt CX 4 i386
|
|
.Os FreeBSD
|
|
.Sh 名称
|
|
.Nm cx ,
|
|
.Nm if_cx
|
|
.Nd 同期/非同期 Cronyx-Sigma アダプタドライバ
|
|
.Sh 設定
|
|
.Cd "device cx0 at isa? port 0x240 irq 15 drq 7"
|
|
.Cd "device cx1 at isa? port 0x260 irq 12 drq 6"
|
|
.Cd pseudo-device sppp
|
|
.Pp
|
|
i/o ベースアドレスは、ボード上のジャンパで設定されます。
|
|
DMA チャネルと割り込みリクエスト番号は、
|
|
アダプタ初期化時にソフトウェアで設定されます。
|
|
通常の値は以下の通りです。
|
|
.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
|
|
.Sh 解説
|
|
Cronyx-Sigma ドライバはモデル 100,
|
|
400, 500, 401, 404, 410, 440, 703, 801, 810, 840 をサポートします。
|
|
モデルが異なると、チャネルのセットが異なります。
|
|
.Pp
|
|
.Bl -tag -compact -width Cronyx-Sigma-999
|
|
.It モデル
|
|
チャネル
|
|
.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
|
|
ふたつのアダプタは、ボード間接続用の短い専用ケーブルで接続することができます。
|
|
ふたつの接続されたアダプタは、同じ IRQ と DMA チャネルを使用し、
|
|
ドライバから見ればひとつの 16 チャネルマルチプレクサとして動作します。
|
|
接続されたボードの片方が ``マスタ'' に、もう一方が ``スレーブ'' になります。
|
|
.Pp
|
|
スレーブになったボードのチャネルは、
|
|
ドライバによって 8 から始まる番号が割り当てられます。
|
|
たとえばモデル 100 と モデル 500 を接続すると、
|
|
0, 8, 12, 13, 14, 15 番のチャネル番号が割り当てられます。
|
|
.Pp
|
|
RS-232C インタフェースをもつチャネルは、
|
|
同期モードと非同期モードのどちらでも動作することが可能
|
|
(cxconfig ユーティリティによってソフトウェア的に選択します) であり、
|
|
そのため ``ユニバーサルチャネル'' と呼ばれます。
|
|
.Pp
|
|
Cronyx-Sigma アダプタ用のデバイス型特殊ファイル
|
|
.Pa /dev/*
|
|
は、
|
|
.Xr MAKEDEV 8
|
|
によっ作られます。
|
|
たとえば、以下のように作ります:
|
|
.Bd -literal
|
|
cd /dev
|
|
sh MAKEDEV cronyx ttyx0 ttyx1 ttyy0
|
|
.El
|
|
.Sh 非同期ドライバ
|
|
.Pp
|
|
非同期チャネルのデバイスファイルには次のような名前が付けられます:
|
|
.Pa /dev/ttyx#
|
|
- はアダプタ cx0 に、
|
|
.Pa /dev/ttyy#
|
|
- はアダプタ cx1 に、
|
|
.Pa /dev/ttyz#
|
|
- はアダプタ cx2 に付けられます。
|
|
ここで # は 0-9-a-f の、16 進数でのチャネル番号です。
|
|
.Pp
|
|
ドライバは以下の標準 ioctl を受け付けます (
|
|
.Xr ioctl
|
|
を参照):
|
|
.Pp
|
|
.Bl -tag -width TIOCXXXXX -compact
|
|
.It Dv TIOCSBRK
|
|
BREAK を送信開始します。
|
|
.It Dv TIOCCBRK
|
|
BREAK の送信を停止します。
|
|
.It Dv TIOCSDTR
|
|
DTR 信号をセットします (DTR := 1)。
|
|
DTR 信号は最初の open(2) で必ずセットされ、
|
|
.Dv TIOCCDTR ,
|
|
.Dv TIOCSDTR ,
|
|
.Dv TIOCMSET ,
|
|
.Dv TIOCMBIS ,
|
|
.Dv TIOCMBIC
|
|
の ioctl により変更可能です。
|
|
.It TIOCCDTR
|
|
DTR 信号をクリアします (DTR := 0)。
|
|
.It TIOCMSET
|
|
DTR 信号と RTS 信号に、指定した値をセットします (<DTR:RTS> := data)。
|
|
DTR 信号と RTS 信号は、
|
|
ioctl システムコールの引数中の
|
|
.Dv TIOCM_DTR
|
|
と
|
|
.Dv TIOCM_RTS
|
|
のビットにより制御可能です。
|
|
.It TIOCMBIS
|
|
DTR 信号と RTS 信号をセットします (<DTR:RTS> |= data)。
|
|
DTR 信号と RTS 信号は、
|
|
ioctl システムコールの引数中の
|
|
.Dv TIOCM_DTR
|
|
と
|
|
.Dv TIOCM_RTS
|
|
のビットにより制御可能です。
|
|
.It TIOCMBIC
|
|
DTR 信号と RTS 信号をクリアします (<DTR:RTS> &= ~data)。
|
|
DTR 信号と RTS 信号は、
|
|
ioctl システムコールの引数中の
|
|
.Dv TIOCM_DTR
|
|
と
|
|
.Dv TIOCM_RTS
|
|
のビットにより制御可能です。
|
|
.It TIOCMGET
|
|
ライン上のモデム信号の状態を判定します。
|
|
呼び出しのあと、引数のデータは下記のビットを保持しています:
|
|
.Pp
|
|
.Bl -tag -width TIOCM_XXX -compact
|
|
.It TIOCM_LE
|
|
常にセット (ラインイネーブル状態)
|
|
.It TIOCM_DSR
|
|
データセットレディ信号 (DSR) 受信済
|
|
.It TIOCM_CTS
|
|
送信可能信号 (CTS) 受信済
|
|
.It TIOCM_CD
|
|
データキャリア検出信号 (CD) 受信済
|
|
.It TIOCM_DTR
|
|
データ端末レディ (DTR) 信号送信済
|
|
.It TIOCM_RTS
|
|
送信要求 (RTS) 送信済
|
|
.El
|
|
.El
|
|
.Sh 同期ドライバ
|
|
.Pp
|
|
同期チャネルとユニバーサルチャネルは、
|
|
.Xr cxconfig 8
|
|
ユーティリティによって同期モードに設定すると、
|
|
ネットワークインタフェース ``cx#''
|
|
(# は 0 から 47 までのチャネル番号) としてアクセス可能です。
|
|
すべての標準的なネットワークインタフェースパラメータは、
|
|
.Xr ifconfig 8
|
|
によって設定可能です。
|
|
また
|
|
.Xr cxconfig 8
|
|
コマンドは、拡張されたチャネルオプションの変更や、
|
|
上位レベルのソフトウェアプロトコル
|
|
(PpP や Cisco HDLC など) の設定に使用されます。
|
|
.Pp
|
|
ユニバーサルチャネルは同期モードでも非同期モードでも使用することができます。
|
|
デフォルトでは非同期モードに設定されており、モードは
|
|
.Xr cxconfig 8
|
|
ユーティリティによって変更可能です。
|
|
チャネルがビジー状態 (非同期チャネルがオープン状態の場合や、
|
|
ネットワークインタフェースが動作中 (up) の場合)
|
|
の間、モードはブロックされます。
|
|
.Sh 同期ポイントツーポイントプロトコル
|
|
.Pp
|
|
Cronyx-Sigma ドライバは、組み込みの同期ポイントツーポイントプロトコル
|
|
(sppp) を使用します。
|
|
本プロトコルには、PpP/HDLC や Cisco/HDLC、keepalive パケットによる
|
|
自動的なコネクションロス検出もサポートしています。
|
|
sppp プロトコルセットは独立したモジュールとして実装され、
|
|
他の同期シリアルチャネルのドライバによって使用することも可能です。
|
|
BSD/386 (BSDI) 用の
|
|
ドライバでは、OS 側で実装されている一般的な同期プロトコルのセットも使用
|
|
可能です。外部プロトコルセットは、``cxconfig ext'' コマンド
|
|
(
|
|
.Xr cxconfig 8
|
|
を参照) によって選択可能です。
|
|
.Sh チャネルオプションの管理
|
|
.Pp
|
|
.Xr cxconfig 8
|
|
ユーティリティは、チャネルオプションを設定するのに使用されます。
|
|
チャネルオプションは、通常、オペレーティングシステムが起動する際に (たとえば
|
|
.Pa /etc/rc
|
|
ファイルなどで) 設定されます。
|
|
すべての場合において、
|
|
すべてのオプションが意味を持つとは限らないことに注意してください。
|
|
また、
|
|
オプションの設定によっては、
|
|
チャネルもしくはアダプタ全体のハングアップの原因になります。
|
|
.Pp
|
|
実際のチャネルオプションの制御機能は、
|
|
デバイス型特殊ファイル /dev/cronyx に対する
|
|
いくつかの ioctl を経由する形で実装されており、以下の ioctl が使用できます。
|
|
.Pp
|
|
.Bl -tag -width CXIOCXXXXXXX -compact
|
|
.It CXIOCGETMODE
|
|
チャネルオプションの値を取得します。
|
|
.It CXIOCSETMODE
|
|
チャネルオプションの値を設定します。
|
|
.El
|
|
.Pp
|
|
ioctl コールのデータ引数は以下のオプション構造体のアドレスを持ちます:
|
|
.Bd -literal
|
|
typedef struct {
|
|
unsigned char board; /* アダプタ番号であり、0..2 */
|
|
unsigned char channel; /* チャネル番号であり、0..15 */
|
|
unsigned char type; /* チャネルタイプ (読み込み専用) */
|
|
unsigned char iftype; /* chan0 インタフェース */
|
|
unsigned long rxbaud; /* 受信速度 */
|
|
unsigned long txbaud; /* 転送速度 */
|
|
cx_chan_mode_t mode; /* チャネルモード */
|
|
cx_chan_opt_t opt; /* 共通のチャネルオプション */
|
|
cx_opt_async_t aopt; /* 非同期モードオプション */
|
|
cx_opt_hdlc_t hopt; /* hdlc モードオプション */
|
|
cx_opt_bisync_t bopt; /* bisync モードオプション */
|
|
cx_opt_x21_t xopt; /* x.21 モードオプション */
|
|
cx_soft_opt_t sopt; /* ソフトウェアオプションと状態フラグ */
|
|
} cx_options_t; /* ユーザが設定可能なオプション */
|
|
.Ed
|
|
.Pp
|
|
.Bl -tag -width rxbaudxxx
|
|
.It Fa board
|
|
0..2 の、アダプタ番号
|
|
.It Fa channel
|
|
0..15 の、チャネル番号
|
|
.It Fa type
|
|
チャネルのタイプ (読み取り専用の引数)
|
|
.It Fa iftype
|
|
0 番 (と 8 番) チャネルのインタフェースタイプ。 0 - RS-232, 1 - RS-449/V.35。
|
|
.It Fa rxbaud
|
|
受信ボーレート
|
|
.It Fa txbaud
|
|
送信ボーレート
|
|
.It Fa mode
|
|
チャネルモード: 非同期/HDLC/Bisync/X.21
|
|
.It Fa opt
|
|
共通のチャネルオプション
|
|
.It Fa aopt
|
|
非同期モードオプション
|
|
.It Fa hopt
|
|
HDLC モードオプション
|
|
.It Fa bopt
|
|
Bisync モードオプション
|
|
.It Fa xopt
|
|
X.21 モードオプション
|
|
.It Fa sopt
|
|
ソフトウェアプロトコルオプション
|
|
.El
|
|
.Sh 関連ファイル
|
|
.Bl -tag -width /dev/cxXXXX -compact
|
|
.It Pa /dev/cx??
|
|
非同期チャネル
|
|
.It Pa /dev/cronyx
|
|
チャネルオプション管理用のデバイス型特殊ファイル
|
|
.El
|
|
.Pp
|
|
ドライバを含んでいるソースファイルは以下の通りです:
|
|
.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 関連項目
|
|
.Xr cxconfig 8 ,
|
|
.Xr ifconfig 8
|