WD(4)

名称
wd - 一般的な WD100x/IDE ディスクコントローラ用ドライバ

書式
controller wdc0 at isa? port "IO_WD1" bio irq 14 disk wd0 at wdc0 drive 0 disk wd1 at wdc0 drive 1

CMD640b IDE コントローラ用: options "CMD640"

解説
このドライバで、Western Digital WD100x シリーズをエミュレートする コントローラに接続されたディスクにアクセスできるようになります。 これには、WD1003 ST412 コントローラ、WD1007 ESDI コントローラ、 そしてほとんどのマザーボードにある一般的な IDE コントローラを含みます。

WD100x シリーズとの互換性については、通常、コントローラの資料に説明があります。

flags パラメータを使って、ドライバにヒントや指令を伝えることができます。

16 ビット整数のフラグがドライブ毎にあり、 それぞれに 4 (訳注: 実際には 6) 個のビットフィールドがあります:

0x8000
    ドライブの 32 ビット転送機能が使えれば使います。

0x4000
    ドライブがスリープモードから脱しているところであるようならば、 混乱しているとみなして再初期化します。

0x2000
    最近の PCI チップセットにあるバスマスタ DMA 機能があるか調べて利用します。

0x1000
    デフォルトの CHS アドレッシングではなく、LBA アドレッシングを使います。

0x0f00
    ヘッドの数を ((flags & 0xf00)>>8) と見なして、 それに合うようにシリンダ数を計算し直します。

0x00ff
    ドライブのマルチセクタ転送モードが使えれば使います。 最大で (flags & 0x00ff) セクタの転送を試みます。

このフラグは drive 行に 16 ビット整数で指定するか、 あるいは controller 行に 32 ビット整数で指定します。 この場合、上位 16 ビットが番号の大きなドライブに適用されます。

“CMD640” オプションによって、CMD640b IDE コントローラの欠陥に対処するようになります。 このオプションが指定されていて、 かつ PCI サブシステムがこのチップを検出した場合には、 プライマリとセカンダリのコントローラは同時には使われません。

関連ファイル
/dev/wd*
    ディスクのブロックデバイスノード
/dev/rwd*
    ディスクのキャラクタデバイスノード
/sys/i386/conf/GENERIC
    wd によるシステムのためのジェネリックカーネルの設定ファイルのサンプル
/sys/i386/isa/wd.c
    ドライバのソース

関連項目
bad144(8)

注釈
このコントローラとディスクの組合わせは、 自動的にバッドブロックを処理をするための機構を備えていません。 バッドブロックを調べるには bad144(8) を実行する必要があります。