スポンサーリンク

STL(4) FreeBSD/i386 カーネルインタフェースマニュアル STL(4)

名称

stl, stli − Stallion Technologies 社製のマルチポートシリアルコントローラ 用のドライバ

書式

stl0 at isa? port <addr> tty irq <irq>

stli0 at isa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type>

stli0 at eisa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type>

解説

これは、Stallion Technologies 社製のマルチポートシリアルコントローラ用の カーネルドライバです。ドライバは 2 種類あり、それぞれ異なる種類のボードに 対応しています。 stl ドライバは EasyIO ボードと EasyConnection 8/32 ボー ドに対応しており、 stli ドライバは他の全ての種類のボードに対応していま す。これには ONboard, Brumby, EasyConnection 8/64 が含まれます。

設定

システムにインストールされているそれぞれのボードについて、カーネルの設定 ファイルにエントリが必要です。ボードの種類が異なると、それぞれに対して必 要なオプションやパラメータも少しずつ異なります。ボードの種類によって、 stl ドライバか stli ドライバのいずれかが使われます。 stl ドライバと stli ドライバは 8 枚までのボードに対応できます。

ハードウェアの設定 (ディップスイッチ、ジャンパ等) はボードごとに異なりま す。ハードウェアの細かい設定については、ボードに付属している文書をご覧く ださい。あるいは、Stallion Technologies 社の WWW サイト (http://www.stallion.com) からもボードに関する文書を入手できます。

EasyIO 系と EasyConnection 8/32 系のボードでは stl ドライバを使います。 stl ドライバ用の ISA ボード設定エントリは、一般的に以下の形式です:

stlX at isa? port <io-addr> tty irq <irq>

X はボードに割り当てられているユニット番号です。 0 から 7 までの任意のユ ニークな番号が有効です。

ボードが使用する I/O アドレスは <io-addr> で指定します。 EasyIO ボードと EasyConnection 8/32-AT ボードはそれぞれ 0 から 0x400 の範囲の I/O アドレ スを使用できます。

全ての EasyIO ボードと EasyConnection 8/32 ボードは割り込みを必要とし、こ の割り込みは <irq> で指定します。 ISA ボードで有効な IRQ 値は 3, 4, 5, 7, 10, 11, 12, 15 です。 EasyIO-8M を除く全てのボードでは、割り込みはソフト ウェア的にプログラムされています。

EasyConnection 8/32-AT ボードはセカンダリの I/O アドレス領域も使います。 このアドレス値は、ドライバのコード内で 0x280 に決め打ちされています。全て の EasyConnection 8/32-AT ボードは同じセカンダリ I/O アドレス領域を共有で きます。

EasyConnection 8/32 PCI ボードは、起動時にシステムが自動的に検出します。 これらのボードに対しては、設定情報を予め与えておく必要はありません。起動 中には、 stl ドライバは EasyConnection 8/32 PCI ボードを検出したことと、 このカードに関するいくつかの情報を示すメッセージを出力します。

以下では、 stl ドライバがサポートしている ISA ボードのそれぞれに対する設 定エントリの例をいくつか示します。それぞれの設定例においては、各種類の ボードに関する重要な詳細情報もいくつか述べます。

それぞれの EasyIO ボードは 8 バイトの I/O アドレス空間と 1 つの IRQ 線を 必要とします。 EasyIO ボード用の設定エントリは以下のようになるでしょう:

stl0 at isa? port 0x2a8 tty irq 15

このエントリは、I/O アドレスが 0x2a8 にあり、IRQ 15 を使っている EasyIO ボードを指定します。 I/O アドレスと IRQ 値は必要に応じて変更できます。

それぞれの EasyConnection 8/32-AT ボードは 2 組の I/O アドレスと 1 つの IRQ 線を必要とします。プライマリの I/O アドレス領域は、大きさが 2 バイト で、かつシステム上にあるそれぞれの EasyConnection 8/32-AT ボードについて ユニークでなければなりません。セカンダリの I/O アドレス領域は、大きさは 32 バイトですが、複数の EasyConnection 8/32-AT ボードで共有できます。この セカンダリの I/O アドレスは、ドライバのコード中で 0x280 に設定されていま す。設定エントリは以下のようになります:

stl0 at isa? port 0x2a0 irq 10 tty

この設定は、プライマリの I/O アドレスが 0x2a0, セカンダリの I/O アドレス が 0x280, IRQ が 10 である EasyConnection 8/32-AT を指定します。

ONboard, Brumby, EasyConnection 8/64 系のボードでは stli ドライバを使いま す。 stli ドライバはこれらの系列のカードの ISA 版と EISA 版に対応していま す。

stli ドライバ用の ISA ボード設定エントリは、一般的に以下の形式となります:

stliX at isa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type>

X はボードに割り当てられたユニット番号です。 0 から 7 までの任意のユニー クな番号が有効です。

ボードが使う I/O アドレスは <io-addr> で指定します。サポートされている ボードであっても、有効な I/O アドレスの制限はボードの種類ごとにそれぞれ異 なり、必要とされる I/O 空間の大きさも異なります。

stli を用いる全てのボードは、操作できる共有メモリ領域を必要とします。ボー ドの種類によって、必要な領域の大きさは 4k バイトから 64k バイトまで変わり ます。ボードの領域の大きさは設定エントリの <size> フィールドで指定し、こ の領域のアドレスは <mem-addr> フィールドで指定します。

flags フィールドは、このエントリが適用される特定のボードを指定します。ド ライバは必ずしも全ての種類のボードを実行時に識別するわけではないので、ド ライバはこのフィールドを必要とします。有効なボードの種類を以下に示します:

ボード名

種類

I/O サイズ

Brumby

2

0x4000
ONboard

4

0x10000
ONboard/E

7

0x10000
EasyConnection 8/64-AT

23

0x1000
EasyConnection 8/64-EISA

24

0x10000

stli ドライバがサポートしているそれぞれのボードについて、設定例を以下にい くつか示します。それぞれの設定例では、各種類のボードに関する重要な詳細情 報もいくつか述べます。

EasyConnection 8/64-AT ボードは、4 バイトの I/O アドレス空間と 4k バイト のメモリ空間を必要とします。設定エントリは以下のようになります:

stli0 at isa? port 0x2a0 tty iomem 0xcc000 iosiz 0x1000 flags 23

このエントリの flags フィールドでは、これが EasyConnection 8/64-AT ボード であることを指定しています。 I/O アドレスは 0x2a0 に設定され、メモリアド レスは 0xcc000 に設定されます。 iosiz パラメータは、メモリ領域のサイズと して 4k バイトを指定しています。

EasyConnection 8/64-EISA ボードは、メモリ空間に 64k バイトの領域を必要と します。この領域は 32 ビットメモリアドレス空間のどこに置いても構いませ ん。設定エントリは以下のようになります:

stli0 at eisa? port 0x2000 tty iomem 0x80000000 iosiz 0x10000 flags 24

flags フィールドは、これが EasyConnection 8/64-EISA ボードであることを示 すために用います。 I/O (ポート) アドレス資源は、ボードが挿さっている EISA スロットから得ます。各 EISA スロットには、システムのハードウェアから I/O アドレス空間の一部が割り当てられます。このアドレスは 0xX0000 となります(X はスロット番号)。例で取り上げているボードはメモリアドレス 0x80000000 にあ ります。これは 2G バイトを表します。 iosiz パラメータはメモリ領域の大きさ を指定します。この例では 64k バイトです。

それぞれの ONboard ISA ボードは 16 バイトの I/O 空間と、メモリアドレス空 間上の64k バイトの領域を必要とします。 ONboard の有効な I/O アドレスは 0x200 から 0x300 の範囲内です。 ONboard ISA の設定エントリは以下のように なります:

stli0 at isa? port 0x240 tty iomem 0xd0000 iosiz 0x10000 flags 4

このエントリでは、flags を 4 に設定することによって ONboard ISA を指定し ています。このエントリでは I/O アドレス 0x240 と、メモリアドレス 0xd0000 の 64k バイトの領域を使っています。

各 ONboard/E ボードは 64k バイトのメモリ領域を必要とし、これは 32 ビット アドレス空間 (0 から 4G バイトまで) 上のどこでも構いません。設定エントリ は以下のようになります:

stli0 at eisa? port 0x3000 tty iomem 0xc0000000 iosiz 0x10000 flags 7

この例は、0xc0000000 (3G バイト) を共有メモリアドレスに使い、スロット 3 にある ONboard/E を指定しています。

Brumby ボードは 1 枚につき 16 バイトの I/O アドレス空間と共有メモリ空間の 4k バイトの領域を必要とします。 Brumby の有効な I/O アドレスの範囲は 0x300 から 0x400 までです。 Brumby の共有メモリ領域は、メモリアドレス空間 の 0xc0000 から 0xdc000 の領域でなければなりません。 Brumby の設定エント リは以下のようになるでしょう:

stli0 at isa? port 0x360 tty iomem 0xc8000 iosiz 0x4000 flags 2

このエントリは、I/O アドレス 0x360 にあり、アドレス 0xc8000 にある共有メ モリ領域を使っている Brumby ボードを指定しています。

ポートに対するデバイスノードを作成する際には、正しいデバイス名である stl または stli を必ず使ってください。それぞれのドライバには別のメジャー番号 が割り当てられています。したがって、たとえポートのデバイス名がそれぞれの ドライバについて同じであっても、デバイスノードのメジャー番号は異なりま す。デバイスを作成するには MAKEDEV(8) スクリプトを使ってください。 stl ド ライバに対しては ttyE と cue タグを使い、 stli ドライバに対しては ttyEi と cuei タグを使ってください。

インテリジェントなタイプのボード(ONboard, Brumby, EasyConnection 8/64) は、ファームウェアをダウンロードしなければポートが操作可能になりません。 これは stlload コマンドを使って行うことができます。詳しい使い方については マニュアルページを参照してください。

関連ファイル

       /dev/ttyE?

標準の着呼デバイス
/dev/ttyiE?
初期状態の着呼デバイス
/dev/ttylE?
ロック状態の着呼デバイス
/dev/cue?
標準の発呼デバイス
/dev/cuie?
初期状態の発呼デバイス
/dev/cule?
ロック状態の発呼デバイス
/dev/staliomem?
ボード制御デバイス

ポート番号はボード 0 のポート 0 の 0 から始まる点に注意してください。それ ぞれのボードには 64 個のポートスロットが割り当てられています。したがっ て、2 番目のボードのポート番号は 64 から 127 までです。デバイスを作成する には MAKEDEV(8) スクリプトを使ってください。 stl ドライバに対しては ttyE と cue タグを使い、 stli ドライバに対しては ttyEi と cuei タグを使ってく ださい。

関連項目

stty(1), termios(4), tty(4), comcontrol(8), MAKEDEV(8), stlload(8), stlstats(8)

歴史

このドライバを最初に開発したのは Greg Ungerer ⟨gerg@stallion.com⟩ です。

FreeBSD December 2, 1996 FreeBSD

スポンサーリンク