この節では MFM/RLL、ST-506、XT および IDE ディスクドライバ に関わる起動時引数を説明します。IDE と 汎用 ST-506 HD ドライバ はどちらも "hd=" オプションを受け付けます。
IDE ドライバはいくつかの引数を受け付けます。これらは
新しいコントローラやいかれたコントローラに対応するための
もので、ディスクのジオメトリを指定します。以下が可能な
起動時引数のまとめです。完全な説明に関しては、
linux/Documentation
ディレクトリにある
ide.txt
を参照するよう強く
勧めます。以下の
まとめはこのファイルから抽出しました。
"hdx=" は "hdc" の様に "x" が "a"から "h" である場合に受け付けられます。 "idex=" は"ide1" の様に "x" が "0" から "3" である場合に受け付けられます。 "hdx=noprobe" : ドライブは存在するかもしれないが、検出しない。 "hdx=none" : ドライブは存在しない。CMOS を無視し、検出もしない。 "hdx=nowerr" : このドライブの WRERR_STAT ビットを無視する。 "hdx=cdrom" : ドライブはCDROM ドライブである。 "hdx=cyl,head,sect" : ディスクドライブ指定するジオメトリを持っている。 "hdx=autotune" : ドライバはこのドライブでそれが可能であれば、 一番早い PIO モードを使用するよう インターフェース速度を調整する。 すべてのチップセットで対応しているわけではなく、 古い IDE ドライブでも問題が起きることがある。 "idex=noprobe" : このインターフェースを使用しないようにする。 "idex=base" : インターフェースを指定されたアドレスで検出する。 ここで、"base" は普通 0x1f0 か 0x170 で、 "ctl" は"base"+0x206 であると仮定される。 "idex=base,ctl" : base と ctl の両者を指定する。 "idex=base,ctl,irq" : base, ctl および 割り込み番号を指定する。 "idex=autotune" : ドライバはこのドライブでそれが可能であれば、 一番早い PIO モードを使用するよう インターフェース速度を調整する。 すべてのチップセットで対応しているわけではなく、 古い IDE ドライブでも問題が起きることがある。 "idex=noautotune" : ドライバはインターフェース速度を調整しない。 これはほとんどのチップセットの無指定時の動作です。 ただし、cm640 は例外です。 "idex=serialize" : idex と idex(x≠1)で動作が重ならないようにする。
以下は、ide0 にのみ適用されます。また、無指定時の base、ctl ポートを変更してはいけません。
"ide0=dtc2278" : DTC2278 インターフェースに対応し、検出する。 "ide0=ht6560b" : HT6560B インターフェースに対応し、検出する。 "ide0=cmd640_vlb" : CMD640 チップを使用した VLB カードには*必須* (自動検出するので PCI には不要) "ide0=qd6580" : qb6580 インターフェースに対応し、検出する。 "ide0=ali14xx" : ali14xx チップセット (ALI M1439/M1445) に対応し、検出する 。 "ide0=umc8672" : umc8672 チップセットに対応し、検出する。
これら以外は "BAD OPTION" メッセージを表示して排除します。
標準ディスクドライバは IDE ドライバ同様にディスクジオメトリ 引数を受け付けます。しかし、これは 3 つの値 (C/H/S) に限られる ことに注意して下さい。これ以上であったりこれ以下であるあると、 黙って無視します。また、"hd=" のみが受け付けられ、 "hda=" や "hdb=" は無視されます。形式は以下の通りです。
hd=cyls,heads,sects
ディスクが2機ある場合、上の形式を2機めのジオメトリ で繰り返します。
125kB/s などという、わっはっはな速度しか出ないような古い 8ビット カードを未だ使っている不運な人には、以下は朗報です。 検出コードは、BIOS が導入 されているか調べ、導入されていなければカードを検出しません。 また、BIOS のシグナチャー文字列が検出されない場合も、 カードを検出しません。これらの場合、起動時引数を 以下の形式で与える必要があります。
xd=type,irq,iobase,dma_chan
type
の値は、カードの製造者を与えます。値は次の一つです。
0=generic; 1=DTC; 2,3,4=Western Digital,
5,6,7=Seagate; 8=OMTI。一つの製造者に複数の型が与えられている
のは、BIOS のパターンを検出するためです。型が与えられなければ、
この検出は行われません。
xd_setup()
関数は値の検証を行わず、正しく4つの値が
与えられたものと仮定します。決してこの予測を裏切るような
真似をしないでください。WD1002 コントローラで BIOS を
禁止、あるいは取り外している場合の例を挙げます。引数は
XT の標準的な値です。
xd=2,5,0x320,3