EN JA
CY(4)
CY(4) FreeBSD Kernel Interfaces Manual CY(4)

名称

cyCyclades Cyclom-Y シリアルドライバ

書式

1 のつ ISA カードのために:
device cy

/boot/device.hints 中で:
hint.cy.0.at="isa"
hint.cy.0.irq="10"
hint.cy.0.maddr="0xd4000"
hint.cy.0.msize="0x2000"

2 のつ ISA カードのために:

device cy

/boot/device.hints 中で:
hint.cy.0.at="isa"
hint.cy.0.irq="10"
hint.cy.0.maddr="0xd4000"
hint.cy.0.msize="0x2000"
hint.cy.1.at="isa"
hint.cy.1.irq="11"
hint.cy.1.maddr="0xd6000"
hint.cy.1.msize="0x2000"

PCI カードのために:

device cy
options CY_PCI_FASTINTR

PCI カードのために /boot/device.hints 中での行は必要ありません。

マイナ番号:

0bMMMMMMMMMMMMMMMMxxxxxxxxOLIMMMMM 
                          callOut 
                           Lock 
                            Initial 
  MMMMMMMMMMMMMMMM           MMMMMMinor

解説

cy ドライバは Cyclades Cyclom-Y ボードで Cirrus Logic CD1400 ベースの EIA RS-232C (CCITT V.24) 通信インタフェース (ポート) のサポートを行ないます。各 CD1400 は 4 つのポートを提供します。様々の多数の CD1400 を備えた Cyclom-Y ボードは利用可能です。このドライバは 1 つのボードあたり最大 8 つの CD1400 (32 ポート) をサポートします。

各回線の入出力は独自に次の速度に設定できます: 50, 75, 110, 134.5, 150, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200 bps。残りの最大 150000 の速度は、termios インタフェースによってサポートされていますが、sgttyb 互換インタフェースではサポートされていません。 CD1400 は 115200 bps を超える速度を効率的に扱うほど速くはありません。 1 つの回線で 115200 bps 強で送信できますが、 4 つの回線が双方向で動作するとき、各回線での限界はおよそ 90000 bps です。

cy ドライバによって制御されたシリアルポートは `着呼' と `発呼' の両方で使用できます。各ポートには、着呼デバイスと発呼デバイスがあります。発呼デバイスのマイナ番号は対応する着呼ポートのものより 128 大きくなっています。着呼デバイスは多目的です。着呼デバイスをオープンするプロセスは、通常、キャリヤか、または発呼デバイスが不活発になるのを待ちます。発呼デバイスは、着呼デバイスでキャリヤを待つプロセスからポートを流用するために使用されます。それをオープンするプロセスは、キャリヤを待たずに、発呼セッションと衝突しないように、着呼デバイスでキャリヤを待つ任意のプロセスをより深いスリープ状態にします。発呼デバイスは一般的なポートで働き、待たないでポートをオープンすることが必要であるはずである取り扱いプログラムで誤用されますが、そうすることはあまりにも愚かです。

cy ドライバはそれぞれの着呼と発呼 "データ"デバイスのために初期状態とロック状態の制御デバイスもサポートします。初期状態デバイスのマイナ番号は対応するデータデバイスのものより 32 大きくなっています。ロック状態デバイスのマイナ番号は対応するデータデバイスのものより 64 大きくなっています。データデバイスの termios 設定は最初のオープンで対応する初期状態デバイスのものからコピーされ、前のオープンからは継承されません。利用者の設定に適した初期の termios 状態をプログラムするために初期状態デバイスで通常の方法で stty(1) を使用します。

ロック termios 状態は termios 状態の変更を無効にするためにフラグとして振る舞います。例えば、CRTSCTS のようなフラグ変数をロックするために、ロック状態デバイスで stty crtscts を使用します。速度と特殊文字はロック状態デバイスに対応する値を 0 でない値に設定することによって、ロックできます。

正しく結線された外部のデバイスと通信する正しいプログラムはほとんど任意の初期状態であっても、ほとんどロックしなくても動作しますが、他の設定は何らかのデフォルトの初期状態の変更と状態のロックから利益を得ることができます。特に、(POSIX) 標準でないフラグのための初期状態は、取り付けられたデバイスに合うように設定されるべきであり、バグがありそうなプログラムをそれらの変更から防ぐためにロックされる必要があるかもしれません。例えば、CRTSCTS は常に RTS/CTS がハンドシェイクをサポートするデバイスではロックをオンにするべきであり、それを全くサポートしないデバイスではロックをオフにするべきです。 CLOCAL はキャリヤをサポートしないデバイスではロックをオンにするべきです。 HUPCL は、利用者が何らかの理由でハングアップしたくないなら、ロックされるかもしれません。一般的に、何かが間違った状態でロックされるなら、非常に悪いことが起こります。そして、2 つ以上の設定をサポートするデバイスではロックするべきではありません。着呼ポートでの CLOCAL フラグはある種のセキュリティホールを避けるためのログインではロックをオフにするべきですが、着呼ポートが何か他の用途のために使用されるなら、これは、getty によって行われる必要があります。

カーネル設定オプション

CY_PCI_FASTINTR オプションは、PCI Cyclades ボードのための次善最適の割り込み処理を避けるのに使用されるべきです。 PCI BIOS はこのオプションを働かせるために任意の他のアクティブデバイスで共有されない cy 割り込みを設定しなければなりません。それが働いていないところである場合には現在は有害であるので、このオプションはデフォルトではありません。

関連ファイル

/dev/ttyc??
着呼ポート用
/dev/ttyic??
/dev/ttylc??
対応する着呼の初期状態とロック状態デバイス

/dev/cuac??
発呼ポート用
/dev/cuaic??
/dev/cualc??
対応する発呼の初期状態とロック状態デバイス

/etc/rc.serial
初期状態とロック状態デバイスの設定例

これらのデバイス名の最初の疑問符はカード番号 (0 と 65535 の間の 10 進数) の省略です。 2 つめの疑問符はポート番号 (範囲 [0-9a-v] の文字) の省略です。

診断

cy%d: silo overflow.
割り込みハンドラの問題です。
cy%d: interrupt-level buffer overflow.
ドライバの後半の問題です。
cy%d: tty-level buffer overflow.
アプリケーションにおける問題です。特定のモジュールが処理できるより速く入力が着信し、いくつかのものは失われました。

歴史

cy ドライバは、 sio ドライバと NetBSD cy ドライバから派生して、現在開発中です。

バグ

シリアルコンソールは実装されていません。
May 24, 2004 FreeBSD