i82365 - Intel i82365sl PCMCIA
コントローラのドライバ
insmod i82365.o [
pc_debug=n] [
i365_base=n]
[
ignore=n] [
extra_sockets=n]
[
do_scan=n] [
irq_list=i,j,...]
[
cs_irq=n] [
poll_interval=n]
[
cycle_time=n] [
do_pci_probe=n]
[
cb_write_post= n] [
pci_csc=n]
[
pci_int=n] [
pci_irq_list=i,j,...]
[
has_dma= n] [
has_led=n]
[
has_ring=n] [
freq_bypass=n]
[
setup_time=n] [
cmd_time=n]
[
recov_time=n] [
wakeup=n]
[
fast_pci=n] [
async_clock=n]
[
cable_mode=n] [
irq_mode=n]
[
p2cclk=n]
これは Intel i82365sl PCMCIA
ホストコントローラと、
その多くの派生コントローラの低レベルドライバである。
このドライバは CardBus
ブリッジに対する Intel
の "Yenta"
レジスタ規格も実装している。
i82365sl
のクローンとしては、
Cirrus Logic, IBM, O2Micro, Omega Micro, Ricoh, SMC, Texas Instruments,
Toshiba, Vadem, VLSI
らによるコントローラが出まわっている。
現在のほとんどすべての
PCMCIA
コントローラと、全ての
CardBus ブリッジは、 i82365sl
とレジスタ互換である。このドライバはカードサービスから用いられ、
ホストコントローラを設定したり、カードの状態変更イベントを監視したりする。
ISA の i82365
互換コントローラは、通常
I/O アドレス 0x3e0-0x3e1
を利用し、 4
つのソケットすべてをサポートする。
コントローラの 2
番のペアは 0x3e2-0x3e3
を利用する。
この位置をプローブするかどうかは
extra_sockets
パラメータによって制御できる。
これは ISA
ブリッジにのみ影響する。
PCI
ブリッジのプローブは
複数のコントローラを自動的に取り扱う。
このドライバは最大で
8
つのソケットまでをサポートする。
CardBus
割り込みの受け渡し¶
CardBus
ブリッジは、基本的に
PCI と ISA
の両方の割り込みシグナルを
サポートしており、割り込みイベントをホストシステムに受け渡す手法も
複数存在する。ブート時にブリッジを正しく設定し、
割り込みハードウェアの実装にマッチさせる作業の一部は、
システム BIOS
の役割である。
このモジュールではいくつかのパラメータを用意しており、
デフォルトの割り込み設定を上書きすることが可能になっている。
pci_int と
pci_csc
を用いると、
カードの割り込みやカードの状態変更に
PCI
割り込みを使うかどうかを制御できる。
irq_mode
を使えば、ブリッジがサポートしていれば、
割り込みの受け渡し方法を変更できる。
i82365
モジュールがロードされると、フリーな
ISA
割り込みをスキャンし、
PCMCIA
イベントに利用できる割り込みを決定する。
割り込みスキャンの結果はシステムのログに報告される。
スキャンが成功すると、割り込みのリストが
"scanned" と報告され、
利用できる割り込みがない場合には、
"default"
のリストが報告される。
ブリッジによってはソフトウェア割り込みのテストをサポートしておらず、
常に "default"
のリストを返すものもある
(Cirrus の non-CardBus ブリッジや Toshiba
のある種のブリッジなど)。
他の場合は、
irq_mode
が不正であることを示しているのかもしれない。
パラメータ¶
- pc_debug=n
- PCMCIA
のデバッグレベルを選択する。
このパラメータは、モジュールがデバッグを有効にしてコンパイルした場合にのみ
利用できる。 0
以外の値を指定するとデバッグモードが有効になる。
- i365_base=n
- i82365sl
チップのベース I/O
ポートを指定する。
デフォルトは 0x3e0
である。 ISA-to-PCMCIA
ブリッジにのみ適用される。
- ignore=n
- 指定した一つのソケットをドライバに無視させる。
ソケットは 0
から番号付けされる。
ソケットはドライバ起動前の状態に保たれるので、
このオプションはカードサービスと共存できない
ポイントイネーブラを持つカードに用いるとよいだろう。
- extra_sockets=n
- ドライバのプローブを
8 つの ISA
ソケットに対して行わせるか、
4
つのソケットに対して行ったところで終了させるかを示すフラグ。
デフォルトは 0 (4
つのソケットで終了)。
2 つの独立な ISA-to-PCMCIA
コントローラを有するシステム
(例えばひとつは内蔵で、
もうひとつはドッキングステーションにある場合など)
では、
仮にソケットの合計が
4 だったとしても、
このフラグをセットしておかなければならないかもしれない。
このフラグをセットすると、
poll_interval
が自動的に有効になる。
- do_scan=n
- 空いている全ての
ISA
割り込みをテストして、
PCMCIA
コントローラからトリガできるか調べるかどうかを指定するフラグ。
デフォルトは 1 (真)。
- irq_list=i,j,...
- 他の条件が許す場合に、
このドライバが割り当て可能な割り込み番号をセットで指定する。
デフォルトのリストは
3, 4, 5, 7, 9, 10, 11, 12, 14, 15 である。
- cs_irq=n
- カードの状態変化のモニターに用いる割り込みラインを設定する。
デフォルトは 0
で、未使用の「正当な」番号のうち、
もっとも高位の番号を使う。
正当な番号は 15, 14, 12, 11, 10, 9, 7,
5, 4, 3 である。
- poll_interval=n
- カード状態のポーリング遅延を
1/100
秒単位で設定する。
このパラメータをセットすると、カード状態の割り込みは無効になる。
100
程度の値が良いだろう。ポーリングは
カードの挿抜イベントの検知にのみ関係する。
- cycle_time=n
- ホストバスのサイクル長をナノ秒単位で設定する。
デフォルトは 210 ns
で、クロック 4.77MHz
に対応する。
CardBus
コントローラのオプション¶
- do_pci_probe=n
- PCI バスに対して
PCI-to-PCMCIA ブリッジや PCI-to-CardBus
ブリッジの
プローブを行うかどうかを決めるフラグ。デフォルトは
1 (真)。
- cb_write_post=n
- (性能向上のための)
遅延書き込みを有効にするかどうかのフラグ。
デフォルトは 1 (真)
(ただし TI 1130
ブリッジの特定のものを除く)。
- pci_csc=n
- CardBus
コントローラに対して、
カードの状態変更割り込みが
PCI
割り込みを生じさせるかどうかを指定するフラグ。
デフォルトは 1 (真)。
- pci_int=n
- CardBus
コントローラに対して、
IO
カードへの関数割り込みが
PCI
割り込みを生じさせるかどうかを指定するフラグ。
デフォルトは 1 (真)
(ただし PCI
割り込みを必要とするシステムを除く)。
- pci_irq_list=i,j,...
- Linux カーネルは、
CardBus ソケットに対する
PCI
割り込みの割り当てを自動的に検知できないことがある。
他の方法でこの情報が決定できない場合、
ここで与えることもできる。
N 番目のソケットは、
リストの N
番目の割り込み番号を取得する。
Cirrus
のコントローラに特有のオプション¶
i82365
ドライバは、ロードされるとまず、
どの割り込みを PCMCIA
デバイスに安全に割り当てできるかを決定しようとする。
Cirrus
のコントローラは他にも追加機能を持っていて、
これらによって特定の割り込み線が利用できないことがある。
また Cirrus
のチップには、
割り込みを使えるかどうかの検知に必要な機能がない。
has_dma,
has_ring,
has_led
オプションは、
これらの機能が実装されているかどうかの指定に用いられる。
- has_dma=n
- has_led=n
- コントローラがディスクステータス
LED
に接続されているかどうかを示すフラグ。
デフォルトではセットされている。
- has_ring=n
- コントローラの「ビープ通知
(ring
indicate)」シグナルが実装されているか
同化を示すフラグ。デフォルトではセットされている。
- freq_bypass=n
- コントローラを
"frequency bypass"
モードに設定するかどうかを示すフラグ。
これは高速なシステムクロックのシステムに対して
通常の 7/4
クロック分周を無効にし、
PCMCIA
バスへのアクセスを減速する。
- setup_time=n
- バスのセットアップ時間を内部クロックサイクルの単位で設定する。
デフォルトは 1。
- cmd_time=n
- バスのコマンド時間を内部クロックサイクルの単位で設定する。
デフォルトは 6。
- recov_time=n
- バスの復帰時間を内部クロックサイクルの単位で設定する。
デフォルトは 0。
- wakeup=n
- プローブ機能によって、サスペンド状態のコントローラチップを
目覚めさせるかどうかを示すフラグ。デフォルトは
0。
- fast_pci=n
- PCI
バススピードが 25 MHz
を越えるかどうかを示す、
PD6729 PCI
コントローラのためのフラグ。
- irq_mode=n
- 割り込み配送モードを指定する、
PD6729 PCI
コントローラのためのフラグ。
デフォルトは ISA
バスの割り込みを用いる。
1 を指定すると PCI
割り込みを用いる。
PCI
カードリーダによっては、
正しく動作させるためにこの指定が必要になることもある。
Ricoh の CardBus
コントローラに特有のオプション¶
- irq_mode=n
- 割り込みの配送方法を選ぶ。
0 を指定すると PCI
割込みだけに配送される。
1 を指定すると ISA
割り込みに配送され、
2
を指定すると外部シリアルの割り込みコントローラ経由で配送される。
デフォルトでは、既に有効になっている配送方法を用いる。
- setup_time=n
- バスのセットアップ時間を内部クロックサイクルの単位で設定する。
デフォルトは 3。
- cmd_time=n
- バスのコマンド時間を内部クロックサイクルの単位で設定する。
デフォルトは 6。
- hold_time=n
- バスの停止 (hold)
時間を内部クロックサイクルの単位で設定する。
デフォルトは 1。
Vadem の ISA
コントローラに特有のオプション¶
- async_clock=n
- PCMCIA
バスのサイクルを、ホストバスのサイクルと
非同期的にするかどうかを指定する。
いくつかの操作に wait
状態を追加することになる。
- cable_mode=n
- VG469
に対してこのフラグを指定すると、
ケーブル経由で接続されたソケットの駆動に用いるソケットシグナルを調整する。
TI の CardBus
コントローラに特有のオプション¶
通常はシステムの BIOS
がこれらのオプションを適切に設定するので、
これらのオプションをデフォルトにすると、
これらの機能はドライバが検知した状態の設定のままで用いられる。
- has_ring=n
- コントローラが「ビープ通知
(ring
indicate)」の接続を持っているかを示すフラグ。
デフォルトでは現在の設定をコントローラから読み込む。
- irq_mode=n
- 割り込みの配送方法を指定する。
0 を指定すると PCI
割り込みだけを用いる。
1 を指定すると ISA
割り込みを用いて配送する。
2 を指定すると
外部シリアルの割り込みコントローラを用いて
ISA
割り込みに配送する。
3 を指定すると PCI と ISA
割り込みの両方を用いてシリアルに配送する。
デフォルトは、現在有効になっている配送方法があれば、それを用いる。
どれも有効になっていない場合は
ISA 経由で配送する。
- p2cclk=n
- P2CCLK ピンを入力 (0)
または 出力(1)
として設定するかどうかを示すフラグ。
このシグナルはソケットの電力コントローラと通信するときに用いる。
間違った指定をすると、ブリッジはカードに電力を供給できなくなる。
デフォルトでは BIOS
の設定を用いる。
David Hinds - dahinds@users.sourceforge.net
関連項目¶
cardmgr(8),
pcmcia(5)