.\" %Id: si.4,v 1.13 1998/06/08 06:11:59 jkoshy Exp % .\" $FreeBSD$ .\" The following requests are required for all man pages. .\" WORD: callin 着呼(デバイス)[si,sio] .\" WORD: dialin 着呼(デバイス)[si,sio] .\" WORD: callout 発呼(デバイス)[si,sio] .\" .Dd September 16, 1995 .Os FreeBSD .Dt SI 4 i386 .Sh NAME .Nm si .Nd Specialix International SI/XIO および SX インテリジェントシリアルカードのためのドライバ .Sh 書式 .Cd "device si0" .Cd "device si0 at isa? tty irq 12 iomem 0xd0000" .Sh 解説 Specialix の SI/XIO および SX ハードウェアは 8 ポートから 32 ポートの RS-232 シリアルマルチプレクサを構成します。 .Pp 上の 1 行目は EISA と PCI ホストカード用で、2 行目は ISA ホストカード用のものです。 .Pp システムは 2 つの部分を使います: 「ホストアダプタ」は ISA、EISA あるいは PCI スロットに挿入され、 37 ピンケーブル形式の外部バスと、 制御とデータのバッファリングおよび処理を行う能力を提供します。 .Pp このケーブルには「モジュール」が接続されます。 "SI" モジュールは 4 ポートあるいは 8 ポートの バージョンがあります。"XIO" および "SX" モジュールは 8 ポートのバージョンだけがあります。 .Pp ホストアダプタはデータをポーリングし、 モジュールとマシンの間の転送を行ないます。 ホストアダプタは、制御できる 32 個のポートのそれぞれについて 256 バイトの送信用および 256 バイトの受信用 FIFO バッファを提供します。 .Pp XIO モジュールは 8 個のポートそれぞれについて 115,200 ボーで 使用できます。SI バージョンは 57,600 ボーです。 SX モジュールは 8 個のポートそれぞれについて最大 921,600 ボーで 使用できます。 .Pp SX モジュールは SX ホストカードに接続されている場合にのみ サポートされます。SI または XIO はどのホストカードでもサポート されています。 .Pp ホストアダプタは、ISA バスの 0xA0000 から 0xEFFFF までの間にある 伝統的な "穴" にある共有メモリブロックを使用します。 アダプタ自体はそれ以外の範囲にも設定できますが、そのメモリ領域は 明示的に 非キャッシュ状態にしておく必要があります。 ドライバは、このモードでの使用をまだサポートしていません。 .Pp SX の ISA ホストカードは、8 ビットモードと 16 ビットモードを 切り替えるスイッチまたはジャンパを持っています。 このスイッチまたはジャンパは、8 ビットモードにセットされていなければ なりません。 .Pp ISA アダプタは IRQ 11, 12, 15 を利用できます (さらに、SX ホストカードでは IRQ 9 と 10 が利用できます)。 .Pp si デバイスドライバは、実行時にいくつかの設定を .Xr sicontrol 8 ユーティリティで変更することができます。 .Pp si デバイスドライバはクローズオンドレイン (drain-on-close) の タイムアウトを設定するための .Xr comcontrol 8 ユーティリティにも反応します。 .Pp ドライバは 3 個の 操作可能な sysctl 変数を定義しています: machdep.si_debug は、ドライバ全体のデバッグレベルを設定します。 これを利用するには、ドライバが SI_DEBUG フラグ付きでコンパイル されている必要があります。 machdep.si_pollrate は、割り込みが消失したときのために ドライバが 1 秒間に何回ポーリングするかを設定します。 machdep.si_realpoll は、毎回のポーリングの際に、割り込みが 発生したかのように扱うかどうかを設定します。 .Pp si ドライバが制御する /dev のデバイスノードに対する オープンは、 .Xr sio 4 ドライバと同じセマンティクスで動作します。 このドライバは、cua ポートの通常のセマンティクスと "初期状態の termios" および "ロックされた termios" の設定を完全にサポートします。 簡単にまとめると、 O_NONBLOCK がセットされていない限り、tty ポートのオープンは DCD が上がるまでブロックされます。 CLOCAL も効きます。これを設定すると、cua ポートのオープンは 常に成功しますが、ひとたび DCD が上がってからは、DCD の変化も効きます。 .Pp si ドライバは SI/XIO ホストカードを最大 4 枚まで制御できます。 割り込みが足りないため、同時に使用できる SI/XIO ホストカードは 3 枚までです。 .Pp マイナデバイス番号の下位 5 ビットは、モジュールクラスタ上のポート番号 を選択するために使われます。次の 2 ビットは 4 枚のホストアダプタカードの どれを選択するかを決めます。これにより、このドライバ上で 最大 128 個のポートが利用可能になります。 .Pp bit 7 で tty/着呼ポート (bit 7=0) と cua/発呼ポート (bit 7=1) を区別します。 .Pp bit 7 から bit 15 ( .Tn FreeBSD において ) はメジャーデバイス番号の影にあたるため利用できません。 .Pp bit 16 が 1 であれば、そのデバイスノードは "初期状態" デバイスである ことを示します。 この "初期状態" は、最初にオープンされた時にデバイスの .Xr termios 4 の設定を準備するために使われます。 bit 17 が 1 であれば、"ロック状態" デバイスであることを示します。 "ロック状態" は、 .Xr termios 4 の設定の変更を阻止するために使われます。 .Pp 初期 / ロックの設定を操作するためには、 .Xr stty 1 コマンドを使うとよいでしょう。 "ロック" 変数の設定においては、 ロックデバイスのモードを有効にすると、 .Xr termios 4 のモードがロックされます。逆に、ロックデバイスのモードを無効にすると、 .Xr termios 4 のモードがロック解除されます。 .Sh ファイル .Bl -tag -width /dev/si_control -compact .It Pa /dev/si_control .Xr sicontrol 8 が使用する、ドライバを制御するグローバルなファイル。 .It Pa /dev/ttyA* ターミナル / 着呼ポート .It Pa /dev/cuaA* 発呼ポート .It Pa /dev/ttyiA* 初期状態 termios デバイス .It Pa /dev/ttylA* ロック状態 termios デバイス .It Pa /dev/cuaiA* 発呼ポート用の初期状態 termios デバイス .It Pa /dev/cualA* 発呼ポート用のロック状態 termios デバイス .El .Sh 関連項目 .Xr stty 1 , .Xr sio 4 , .Xr termios 4 , .Xr tty 4 , .Xr comcontrol 8 , .Xr sicontrol 8 .Sh 歴史 このドライバは Specialix 由来のドライバコードを おおざっぱにベースとしており、 .An Andy Rutter Aq andy@specialix.co.uk が BSDI で動かすために移植しました。 System V 用のドライバソースが ftp で .Sy ftp.specialix.co.uk . から入手可能です (入手可能でした)。 .Pp Specialix International はこのドライバをサポートしていません。 .Sh 作者 .An Peter Wemm Aq peter@netplex.com.au が Andy Rutter からコードを得て、 .Fx へ移植しマニュアルページとともに提出しました。 .An Bruce Evans Aq bde@zeta.org.au は移植作業の間、多くの助力をしてくれました。 .An Nick Sayer Aq nick@specialix.com は EISA、PCI および SX のポートを書きました。 .Sh バグ 割り込みのチューニング比は、現在のところ 最大の効率を得られるように最適化されていないと思います。 .Pp ポーリングモード (Specialix による標準ドライバの特徴) は 実装されていませんが、machdep.si_realpoll をオンにすることで 似た動作とすることができます。ポーリング周期は machdep.si_pollrate で設定します (1/100 秒の単位です)。 .Pp このドライバは、SX モジュールで 115,200 より大きいボーレートを まだサポートしていません。 .Pp 伝統的な ISA の "穴" の外での動作はまだサポートされていません。 プローブルーチンから穴のテストを削除すれば動くはずですが。 .Pp 複数のホストカードはサポートされていますが、異なるバスタイプの ホストカードの組み合わせについてはテストされていません。- デバイスの番号づけに 問題があることが分かっています。予期しない結果を招くかもしれません。