  Western Digital 製チップセットのユーザ向けの情報
  The XFree86 Project, Inc.
  14 July 1995
  The X Japanese Documentation Project
  29 January 1999
  ____________________________________________________________

  目次

  1. サポートしているチップセット
  2. 特に考慮すべき点
  3. WD90C24 の機能
  4. WD90C24 のクロック値
  5. WD90C24 に関する追加の情報

  ______________________________________________________________________

  1.  サポートしているチップセット

  XFree86 は次の Western Digital 製 SVGA チップセットをサポートしていま
  す: PVGA1, WD90C00, WD90C10, WD90C11, WD90C24, WD90C30, WD90C31,
  WD90C33.  WD90C2x の残りで LCD 制御チップセットであるものは、まだサポ
  ートされていません。WD90C24 系のチップセットは現在サポートされており、
  このサポートにはアクセラレーションや調整可能なクロック、(CRT モード
  で)デュアルスキャンのシステム上でも 1MB のビデオRAM を全て使用できるこ
  とも含まれます。新しく加わった WD90C24 のサポートで(作者らが予期してい
  ない)問題に出会った場合、XF86Config ファイルの `Chipset' 行に
  "wd90c30" または "wd90c31" を設定してみてください。WD90C24, WD90C31,
  WD90C33 は、 SVGA サーバにおいてアクセラレーション可能なチップセットと
  してサポートされています。WD90C24, WD90C31, WD90C33 のいずれかが検出さ
  れた場合か、 XF86Config で指定を行った場合、アクセラレーションが効く機
  能は自動的に有効になります。

  2.  特に考慮すべき点

  PVGA1 以降の全ての Western Digital 製チップセットは、メモリリフレッ
  シュクロック値をビデオタイミング用の別のドットクロック値として使う機能
  をサポートしています。したがって、これらのチップセット全てにおいてサー
  バは「通常」以外に 1 つのクロック値を検出します。つまり、 XF86Config
  ファイルに古い `Clocks' 行がある場合、この部分をコメントアウト
  し、`-probeonly' オプションを付けてサーバを再実行してクロック値を全て
  見つけなければならないということです。最後の値以外は今までと同じ値のは
  ずですが、最後の値は新しい値になっているでしょう。

  WD90C00 チップセットの場合は 640x480 256色モードしかサポートしていませ
  ん。メモリが 512k あれば 800x600 以上も使えるはずなのですが、チップ
  セットそのものに機能が無いのです。これはデータシートに記述されています
  (仕様としては1024x768x16, 640x480x256 が書かれています)。作者らもこの
  動作を確認しています。

  WD90C24, WD90C30, WD90C31 の場合、サーバは 17 個のクロックを検出しま
  す。この 3 つのチップセットのうちのいずれかをお持ちであれば、サーバに
  クロック値を再検出させて XF86Config を更新しなければなりません。

  XF86Config には、Western Digital 製チップセット(WD90C24 を除く)だけで
  使用できる `Option' フラグがあります。このオプションは "swap_hibit" で
  す。実験で調べたところ、WD90C1x,  WD90C3x チップセットでは高次のドット
  選択ビットを反転させる必要があり、PVGA1, WD90C00 ではこれを反転させな
  い必要があります。これはドライバにハードコーディングされています。です
  が、実験のサンプル集合が比較的小さいので、この動作を逆にするための
  "swap_hibit" オプションを用意しています。サーバが検出したクロック値の
  最後の値が非常に低い(28MHz 以下)場合、このオプションが必要だと思われま
  す。
  3.  WD90C24 の機能

  これから先の 3 つのセクションの内容は、WD90C24, WD90C24a, WD90C24a2 を
  使っている場合で、かつ XF86Config ファイルで他のチップセットを指定して
  いない場合に限って適用されます。SVGA サーバの pvga1 ドライバは wd90c24
  系のチップを WD90C30 とは別のチップとして識別するので、このチップを
  WD90C3X として扱ったときに起こる問題のほとんどは解決するようです。
  pvga1 ドライバの新しいコードは以下の機能を持っています:

  o  シャドウレジスタを適切な時にロックします。これは LCD 表示モードや
     LCD/CRT 同時表示モードが選択時に、デュアルスキャンスクリーンを使っ
     ている X が終了した後に画面がおかしくなるのを防ぐはずです。このコー
     ドは、シャドウレジスタをいつロックするか等に関して、BIOS の動作にい
     くらか依存しています。

  o  デュアルスキャンのシステムで外部 CRT のみのディスプレイが使われてい
     るとき、サーバ起動時に 1M VRAM 全てを使えます(強制的に使います)。解
     像度 1024x768x8 が使えます。

  o  XF86Config ファイルで 512K 以上の VRAM が必要な仮想スクリーンのサイ
     ズを指定した場合、サーバがデュアルスキャンの LCD で起動したときにド
     ライバは仮想スクリーンのサイズを強制的に 640x480 にします。これによ
     り、1024x の解像度の CRT と  LCD を切替える時に XF86Config を編集す
     る必要はなくなります。仮想スクリーンのサイズが指定されていない場合
     の仮想スクリーンのサイズは、LCD モードで 800x600, CRT 専用モードで
     1024x768になります(したがって、選ぶことができます)。

  o  ビデオメモリが 1M のデュアルスキャンのシステムでは、現在も X を終了
     し、ディスプレイを切替え、 X を再起動して LCD と CRT 専用モードを変
     更しなければならない点に注意してください。この理由は、一度サーバを
     起動すると仮想スクリーンのサイズは変更できないからです。現在のサー
     バとデュアルスキャンディスプレイを使う WD90C24 の組合せでは、この問
     題を回避する方法はありません。デュアルスキャン LCD を使用中の場合
     は、「フレームバッファ」に使うために WD90C24 が必要とするビデオメモ
     リは半分です。

  o  新しいサーバは WD90C24a のアクセラレーション付き機能を使っていま
     す。WD90C24 も必要な機能を「全て」もっているかどうかは、データシー
     トからはわかりません。WD90C24 ではアクセラレーションは効かないと言
     う人もいますが、WD90c24a のデータシートの相違点に関するセクションを
     見ると、3 つのチップ全てでアクセラレーションが効くように読めます。
     アクセラレーションについて書かれている相違点は、ハードウェアが行う
     線の描画の方式です。新しいチップだけが MS Windows が要求する線の描
     画の方式に対応しています。たぶん、これが混乱を招いた原因かもしれま
     せん。というのも、アクセラレーション付きの Windows 用ドライバは
     WD90c24a チップしかサポートしていないからです。WD90C24 で問題が起
     こった場合には、XF86Config ファイルの Device セクションに

           Option "noaccel"

  という行を追加してアクセラレーションを無効にすることができます。

  o  新しいサーバは、他の一部のサーバと同じようにはプログラマブルクロッ
     クをサポートしていませんが、17 個のクロックのうち 8 個は Clocks 行
     を使って(ほとんど)任意の値に設定することができます。新しいサーバに
     は VRAM のクロック値を調整するためのオプションもあります。

  4.  WD90C24 のクロック値

  調整可能なクロック値についてもう少し詳しく説明します:

  VRAM のクロック値(Mclk 値)は、XF86Config の Device セクションに以下の
  オプション行の「いずれか」を追加することで調整できます:

          Option      "slow_dram"     # Set Mclk to 47.429 MHz
          Option      "med_dram"      # Set Mclk to 49.219 MHz
          Option      "fast_dram"     # Set Mclk to 55.035 MHz

  デフォルトでは BIOS が設定した Mclk 値のままになります。多くのシステム
  では、この値は 44.297 です。これらのオプションのどれかは一部のシステム
  でうまく動作しないかもしれません。ディスプレイに「ビットエラー」が現わ
  れたなら、Mlck のスピードを下げるか、これらのオプションの使用をやめて
  ください。Mlck 値はサーバの終了時にもリセットされません。

  データシートによると、最大ピクセルクロック値は Mclk の 1.6 倍なので、
  高速なモニタを使う場合には、高い Mclk レートを試したくなるかもしれませ
  ん。また、データシートによると 44.297MHz の Mclk 値と 65MHz のピクセル
  クロック値が WD90C24A2 の設計による最高の動作速度ということです。ただ
  し、もっと速いクロック値での成功例もいくつか報告されています。チップに
  用意されている全てのクロック値がうまく動作することは期待できません。

  4つのクロック値のうち、2 番目と 4 番目のものが調整可能です。つまり、(1
  から数えて)クロック 5, 6, 7, 8 と 13, 14, 15, 16 です。これらのクロッ
  ク値は、これらのクロック値は Clocks 行で設定します。17番目(最後)のク
  ロック値は必ず Mclk 値に一致させてください。以下に、チップが直接用意し
  ていないクロック値をいくつか定義する Clocks 行の例を示します。プログラ
  マブルで「ない」クロック値は以下に示すように「設定しなければいけませ
  ん」。

     Clocks     25.175 28.322 65     36     # These are *not* programmable

     Clocks     29.979 77.408 62.195 59.957 # these are programmable
     Clocks     31.5   35.501 75.166 50.114 # these are *not* programmable
     Clocks     39.822 72.038 44.744 80.092 # these are programmable
     Clocks     44.297                      # Change this if you change
                                            #   Mclk above.

  クロック値は .447443 MHz ずつ増やしてプログラムすることができます。こ
  の規則に合わないクロック値を指定した場合、サーバは警告を出してから増分
  が規則に最も近くなるように調整します。Clocks 値 1-4 と 9-12 (固定のク
  ロック値)はこの倍数という制約は受けませんが、その代わりに .447443 MHz
  の倍数でない標準のクロック値を与えるために使われます。

  クロックを検出する場合(例えば、Mclk 値を見つける場合)には、検出は CRT
  専用モードで行い、それから Clocks 行を XF86Config ファイルに追加しま
  す。大部分のシステムでは、LCD モードでは Clocks 値が正しく検出されませ
  ん。

  一部のシステムでは、正しいクロック値やモードを使わない限り CRT から
  LCD への切り替えを BIOS が許さないかもしれません。640x480 の LCD ディ
  スプレイでは以下のモード行を試してください。

     ModeLine "640x480"  25.175   640 664 760 800     480 491 493 525 #CRT/LCD

  以下のモード行はいくつかのシステム上で 上記の Clocks 行を使ってテスト
  を行ったもので、ここで例として示します。テスタによっては、固定のドット
  クロック値 65MHz, 75.166MHz でちょっとした問題(雪のようなノイズが乗
  る)に出会っています。以下のモード行を使うとこの問題を避けられると報告
  されています。これらの値を使うとモニタは壊れないものと想定してはいけま
  せん。

   # VESA 800x600@72Hz Non-Interlaced mode
     ModeLine  "800x600.50"  50  800  856  976 1040 600 637 643 666  +hsync +vsync

   # 1024x768  Interlaced mode
     ModeLine  "1024x768i"   45  1024 1048 1208 1264 768 776 784 817 +hsync +vsync Interlace

   # 1024x768@60Hz Non-interlaced Mode
   # One of the dram options may be necessary
     ModeLine  "1024x768.65" 65  1024 1032 1176 1344 768 771 777 806 -hsync -vsync

   # 1024x768@60Hz Non-Interlaced mode (non-standard dot-clock)
   # Seems to work without dram options
     ModeLine  "1024x768.62" 62  1024 1064 1240 1280 768 774 776 808

   # 1024x768@70Hz Non-Interlaced mode (non-standard dot-clock)
   # May need fast_dram option
     ModeLine  "1024x768.72" 72  1024 1056 1192 1280 768 770 776 806 -hsync -vsync

  5.  WD90C24 に関する追加の情報

  通常の免責事項が適用されます。このドライバは読者の皆さん自身の責任でお
  使いください。ですが、XFree86 で WD90C24 系のチップを使う上で追加の情
  報が必要であれば、Darin Ernst さんのホームページ
  <http://www.castle.net/~darin> を御覧ください。Darin さんは「X と
  WD90C24」に関する mini-HOWTO 文書を管理しています。この方は WD90C24 の
  コードの最初のテスタであり、良いアイディアを提供したり励ましたりしてく
  ださいました。Darin さんの連絡先は darin@castle.net または
  dernst@pppl.gov です。筆者は WD90C24 専用のコードしか提供していませ
  ん。筆者(Brad Bosch)の連絡先は brad@Lachman.com です。

  $XFree86: xc/programs/Xserver/hw/xfree86/doc/Japanese/README.WstDig,v 1.1.2.2 1999/11/26 15:23:14 hohndel Exp $

  $XConsortium: WstDig.sgml /main/5 1996/02/21 17:46:29 kaleb $

