  Cirrus チップセットユーザのための情報
  Harm Hanemaayer (H.Hanemaayer@inter.nl.net), Randy Hendry
  (randy@sgi.com), Corin Anderson (corina@bdc.cirrus.com) 著
  岡本 一幸 Kazuyuki Okamoto <ikko-@pacific.rim.or.jp> 訳
  1996 年 10 月 9 日
  ____________________________________________________________

  Table of Contents:

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

  2.      基本構成

  3.      XF86Config オプション

  4.      モード に関する議論

  5.      リニアアドレッシング と 16bpp/32bpp モード

  6.      "cl64xx" ドライバ

  7.      "cirrus" ドライバでの障害対策のまとめ

  8.      テストした機器構成

  9.      ドライバの変更点
  ______________________________________________________________________

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

  Cirrus のチップセット用には、"cirrus"と"cl64xx"と呼ばれる２つの異なる
  SVGA サーバがあります。 "cirrus" ドライバは 256 色の（アクセラレータ付
  き）SVGA サーバと（アクセラレータ無し）白黒サーバで用いられていま
  す。SVGA サーバは 16, 24 と 32 ピクセル当りビット数 をサポートし、この
  構成で天然色 (truecolor) モードをサポートしています。 "cl64xx" ドライ
  バは 256 色 SVGA, 16 色 と 白黒 サーバで用いられています。どちらが安定
  しているとかはここでは議論しませんが、この文書では "cirrus" ドライバに
  ついて主に言及します。次のCirrus Logic のチップセットをサポートしてい
  ます。:

     CL-GD5420
        ISA SVGA チップセット, 1Mバイト; 最大ドットクロックは 45 MHz
        (256 色サーバ)。拡張書き込みモードによるアクセラレータ機能（この
        サーバではスクロールとベタ塗りつぶしに用いている）。このチップ
        セットは 256 色の 1024x768 ノンインターレース はサポートしませ
        ん。

     CL-GD5422
        5420の改良版 (32 ビット内蔵メモリインターフェース)。最大ドットク
        ロックは 80 MHz。

     CL-GD6205/6215/6225/6235
        5420 にほぼ互換性のあるラップトップ用チップセット。ドットクロッ
        クは 25 MHz のみサポートする（外部ディスプレイはそれ以上可能）。
        "noaccel" オプションが必要なので注意の事。

     CL-GD6420/6440
        これらのチップセットは 542x シリーズとは互換性はありませんが、
        "cl64xx" ドライバでサポートします。このチップセットは最近のラッ
        プトップに搭載されており、昔の Cirrus チップセット(5410/AVGA2)と
        同様に内蔵しています。このドライバは他の 64xx チップセットでも稼
        働しています。構成上の識別子は "cl6420" と "cl6440" です。このド
        ライバについては ``cl64xx ドライバ'' の節で詳細に述べます。

     CL-GD5424
        基本的に 5422 の VLB 版ですが、いくつかの点で 5426 に似ていま
        す。

     CL-GD5426
        ISA バスと VLB 両方の 2M バイト以上のメモリを搭載したものをサポ
        ートします。よりよいアクセラレータを求めるなら BitBLT エンジンを
        搭載してください(BitBLTは画像転送とテキスト表示に有効)。ドットク
        ロックの上限は 85 MHz。

     CL-GD5428
        5426 の改良版。

     CL-GD5429
        5428 の改良版で、より高い MCLK を公式にサポートし、メモリマップ
        ド I/O を搭載しています。

     CL-GD5430
        5429 に似ていますが、基は 543x (32 ビットホストインターフェース)
        です。64 ビットメモリモードは持っていません。

     CL-GD5434
        64 ビット内蔵メモリインターフェースを持った `Alpine' の系列の
        チップです。このチップは 2M バイトのメモリを搭載したとき 64 ビッ
        トモードのみサポートします。1M バイトメモリのみののカードでは厳
        しい限界があります。110 MHz 以上のドットクロックをサポートします
        （新しいチップセットは 135 MHz をサポートします）。

     CL-GD5436
        高度に最適化した 5434.

     CL-GD5440
        CL-GD5430 に似ていますのでそのように探知されます。

     CL-GD5446
        ２次元アクセラレータの Alpine 系列の内の一つで、CL-GD5436 に似て
        います。

     CL-GD546X
        ２次元アクセラレータの Laguna VisualMedia 系列です。これら３つの
        チップセットは Rambus RDRAM メモリを使っています。ビデオウィンド
        ウ(現在のサーバでは使用していません) とハードウェアカーソルを内
        蔵しています。白黒モードはテストしていません。CL-GD5464 は
        Laguna 系列の次世代のチップで、サポートしましたがテストしていま
        せん。

     CL-GD7541/7542/7543/7548
        5428/3x と大体互換性のあるラップトップ用のチップセットです。LCD
        がオンの時は最大のドットクロックは 44MHz です。この版ではこれら
        のチップセットはおかしいかもしれません。報告をお待ちしています。

  各々のサポートしている深さ毎に最大のドットクロックを一覧にします。:

                        mono     8 bpp (256c) 16 bpp       24 bpp       32 bpp
        CL-GD62x5       45 MHz   45 MHz
        CL-GD5420       80 MHz   45 MHz (1)
        CL-GD542x/512K  80 MHz   45 MHz
        CL-GD5422/24    80 MHz   80 MHz       40 MHz       27 MHz
        CL-GD5426/28    85 MHz   85 MHz       45 MHz (2)   28 MHz
        CL-GD5429       85 MHz   85 MHz       50 MHz       28 MHz
        CL-GD5430       85 MHz   85 MHz       45 MHz (2)   28 MHz
        CL-GD5434/1Mb   85 MHz   85 MHz       42 MHz       28 MHz
        CL-GD5434/2Mb   85 MHz   110/135 MHz  85 MHz       28 MHz       45/50 MHz (2)
        CL-GD5436/1Mb   85 MHz   110 MHz (3)  60 MHz (3)   40 MHz (3)
        CL-GD5436/2Mb   85 MHz   135 MHz      85 MHz       85 MHz (3)   60 MHz (3)
        CL-GD5446/1Mb   85 MHz   110 MHz (3)  60 MHz (3)   40 MHz (3)
        CL-GD5446/2Mb   85 MHz   135 MHz      85 MHz       85 MHz (3)   60 MHz (3)
        CL-GD546X       170 MHz  170 Mhz      170 MHz      170 MHz      170 MHz
        CL-GD754x       80 MHz   80 MHz       40 MHz (4)   (5)

        (1) 512K メモリです。
        (2) 高い MCLK を設定すると 50 MHz。
        (3) メモリクロックに依存します。
        (4) 多分、いくつかのチップセットには低すぎるでしょう。
        (5) 多分、有効にしてテストを行えばこの深さは実際に動作するでしょう。

  大まかに言って 仮想的/物理的な画面解像度はビデオメモリの量の違いに制約
  されます。

                    mono        8 bpp        16 bpp     24 bpp     32 bpp
        256K        800x600     640x400
        512K        1152x900    800x600     640x400
        1024K       1600x1200   1152x900    800x600     680x510
        2048K       2304x1728   1600x1200   1152x900    960x720    800x600
        4096K       2304x1728   2272x1704   1600x1200   1360x1020  1152x900

  546x チップでは仮想画面の幅は任意です。しかし、画面のピッチ(pitch) を
  次の表の最も近い価に切り上げましょう。従って、画面上の各々の線はビデオ
  メモリをどれくらい消費するかよりも単に表示したい長さになります。ビデオ
  メモリを目一杯使うには、次の表のピクセル数から仮想デスクトップの幅を選
  択してください。:

        8bpp:   640, 1024, 1280, 1664, 2048, 2560, 3328, 4096, 5120, 6656
        16bpp:  320,  512,  640,  832, 1024, 1280, 1664, 2048, 2560, 3328
        24bpp:  640, 1024, 1280, 1664, 2048, 2560, 3328, 4096, 5120, 6656
        32bpp:  160,  256,  320,  416,  512,  640,  832, 1024, 1280, 1664

  他の Cirrus チップセットでは、アクセラレータ機能を使った場合、仮想画面
  の幅は 32 の倍数になります。モニターの水平方向の調整数値は 2048 以下に
  しなければいけません。

  より高い色の深さで XF86_SVGA を動作させるには、次のオプションを X サー
  バに付加して下さい。

  startx -- -bpp 16       5-6-5 RGB ('64K color', XGA)
  startx -- -bpp 16 -weight 555   5-5-5 RGB ('Hicolor') (5462 ではなく)
  startx -- -bpp 24               8-8-8 RGB truecolor
  startx -- -bpp 32               8-8-8 XRGB truecolor (543X/46/6X)

  2.  基本構成

  `XF86Setup' や`xf86config' プログラムを使用して XF86Config ファイルを
  生成することをお勧めしていますが、このプログラムは稼働可能な高解像度の
  8bpp の構成を作成します。使用するモニターに、より適応したモード調整値
  を Monitor 節に記入したくなるでしょう。ドライバのオプションについては
  次の節で詳細に述べますので、ここでは軽く触れるだけにします。

  全てののチップセット用に Clockchip "cirrus" 行を Device 節に書きましょ
  う。こうやっておくとサーバがサポートしている対策済みのドットクロックの
  組み合わせの中から適切なドットクロックを使用可能にします。低解像度のモ
  ニター対応で 12.6 MHz のドットクロックを使いたい場合に必要になります。
  しかし、このオプションを使用すると、変わった現象を引き起こすクロック周
  波数が不安定になるので、絶対に必要な時だけ使用してください。

  グラフィック画面の再描画がうまく動作しない場合は、チップセットが
  BitBLT エンジンを持っている場合に先ず"no_bitblt" オプションを試してく
  ださい。これがうまく動作しないときは "noaccel" オプションを試してみて
  ください。全てのアクセラレータ機能を無効にします。"no_imageblt" オプ
  ションで充分かもしれません。

  16bpp か 32bpp の深さで実行するか、8bpp で性能を向上させるにはリニアア
  ドレッシング機能を使えるようにしなければいけません。ローカルバスの
  543x カードまたは、メモリが 16M バイト以下のシステムでローカルバスの
  542x カードもしくは ISA の 543x カードを搭載しているときに一般に使用可
  能です。 "linear" オプションが必須で、おそらく Membaseでアドレスを指定
  する必要があるでしょう。以降の節で詳細に説明します。

  また、 534x で デバイス節に "mmio" オプションを書いておくと更に良好な
  アクセラレータになります < このオプションは 5429 でも適用可能と思いま
  すが、未だテストしていません >。

  最後に、546X チップを使っている場合は PCI バス上に搭載されています。こ
  のような場合は、メモリマップ I/O や フレームバッファアドレス空間がシス
  テムメモリに飛び出していても問題ありません。PCI 空間は 4GB 近くのアド
  レスを割り付けすることができます。したがって mmio とリニアフレームバッ
  ファはシステム上で衝突することは全然ないので"linear",
  Membaseと"mmio"オプションは無視してください。

  3.  XF86Config オプション

  `Clocks' コマンドは使わないでください。（つまり、探査しないで）クロッ
  クを修正した場合、（各々のチップセットのサポートしている最大クロック以
  外の）カード毎の違いは反映できません。

  以降のオプションは特に Cirrus ドライバでは重要です。各々のオプションは
  XF86Config の `svga' ドライバ節に Screen 項の中に適応する全ての深さを
  指定する必要があります（Device 節に全ての Screen を指定することが可能
  です）。

     "noaccel" オプション
        このオプションはアクセタレータ機能を無効にします。DRAM の速度や
        高いドットクロックやアクセラレータ機能の不具合による問題を解決す
        る支援を効率良く（ローカルバスでは一段と妥当に）行います。

     "fast_dram" "med_dram" "slow_dram" (5424/6/8/9, 543x) オプション
        これらのオプションは内蔵メモリクロック(MCLK) レジスタに他の数値
        を変更するものです。標準値は BIOS に組み込まれている場合は大丈夫
        ですが、強く要求されない限りこのオプションで無茶をしないでくださ
        い。

        "fast_dram" オプションはビデオボードの内蔵メモリクロック(MCLK)
        レジスタにより高い値を設定します (最近のチップは標準で十分より高
        い価を使っています)。

        通常、このレジスタはいじることはないのですが、標準の CL-GD542x
        BIOS の初期化によって高いドットクロックモードでの性能に良くない
        影響を与えるような（チップセットの仕様に制限された）低い方の値に
        設定されます。これは拡張 RAS 調整を使う場合には特に影響を受けま
        す（これはサーバーの探査で指摘されます）。

        DRAM の実際の速度はこのオプションが適切だろうとなかろうとカード
        認識において危険な要素にはなりません。80ns の DRAM を搭載してい
        る CL-GD5426 を基にしたカードが拡張 RAS 調整を使って DOS の ドラ
        イバユーティリティで MCLK を (0x22) のような値に設定した場合は高
        い MCLK で安定して動作している様に見えるでしょう。

        カスタマイズされた BIOS がより高い標準値以外の値に初期化した（主
        に有名どころの）カードがあります。

        "slow_dram" オプションは MCLK を標準の CL-GD542x BIOS の値
        (0x1c) に設定します。高すぎる MCLK の値は垂直方向の画面のちらつ
        く帯、テキストに誤った画素、テキストモードの画素の抜けを X の動
        作後に引き起こします（MCLK の設定が低すぎる場合も同様の現象を起
        こしますので注意しましょう）。

        開始時に、ドライバーは MCLK の値を表示するでしょう（先ず、これを
        確認して下さい）、そしてこの値はモードによって変化します。

        典型的な MCLK の値:

        0x1c (50 MHz)
           これは BIOS の標準値で用いられます。 "slow_dram" オプションで
           強制指定できます。

        0x1f (55 MHz)
           "med_dram" オプションで使用する値です。 542x を使っているカー
           ドでの最高の値はリニアアドレッシングが有効になっていないと扱
           えないようです。

        0x22 (60 MHz)
           殆どの（拡張 RAS） 542x カードでは "fast_dram" オプションを使
           うと有効になります。

        公式な 542x チップの最大周波数は 50 MHz です。 5434 の公式仕様は
        また 50 MHz (0x1c) で、5429 と 5430 のグラフィックモードでは 60
        MHz (0x22) の MCLK をサポートし、ドライバは自動的にこれを組み込
        みます。これが問題を引き起こした場合は "slow_dram" オプションを
        使用してください。

        ドライバは認識した DRAM 帯域幅のクロックの上限を MCLK に取り込み
        ます。

        特に（高いドットクロックで性能や安定度の）問題がなかったら、
        DRAM オプションを使う必要はありません。

     "no_bitblt" オプション
        このオプションを 5426/28/29/3x/46/6x/754x で使用する場合、アクセ
        ラレータ機能を保持する間、（5424 では持っていない）BitBLT エンジ
        ンを無効にします。BitBLT エンジンを使用することに関連して生じる
        機能上の問題に対して有効です。性能はかなり著しく落ちます。

     "no_imageblt" オプション
        このオプションを 5426/28/29/3x/46/6x/754x で使用する場合、システ
        ムメモリからビデオメモリに転送する BitBLT 機能を無効にします。特
        に速い CPU で VLB 5426 と 5434 を使ったいくつかのシステム構成で
        認められている、画面の左上すみの小さい白い線若くはサーバに戻った
        後の歪んだ画像の様な画像書き込みの問題に有効です。このオプション
        を使うと性能が低下しますので注意してください。

     "clgd54xx" チップセット
        搭載されているチップセットを強制探査させます。サポートしている
        チップセットが正確に認識されないとか、サポートしていないチップ
        セットをサポートしているチップセット互換品として認識させたい場合
        に有効です。

     videoram 1024 (又は他の値)
        このオプションはビデオメモリの探査搭載量の強制指定と現行のカード
        にメモリを追加するふりをする場合に指定します。このオプションは
        2M バイトのメモリ構成時にドライバの要求メモリ量と互換性が保てな
        い場合に１MB 以上を見せたくない、とかメモリの探査がうまく動作し
        ないときに有効です。これは Device 節に必ず指定してください。

     "fifo_conservative" オプション (5424/6/8/9/3x/46/6x/754x の場合に指
        定)
        このオプションは CRT FIFO の敷居値を高いドットクロックの控え目な
        値 (>= 65 MHz) に 設定するもので、`筋・稲妻'(`streaks') , `ジッ
        タ・不安定'(`jitter') 若くは画面の水平領域の繰り返し表示 (特に
        BitBLT 操作を行ったとき,例えばスクロール)と形容される問題を性能
        が落としても軽減したい場合に有効です。

     "fifo_aggressive" オプション (5424/6/8/9/3x/46/6x/754x の場合に指
        定)
        このオプションは CRT FIFO の敷居値を高いドットクロックの積極的な
        値に設定するもので、低い方のドットクロック用に使用するものと同じ
        です。このオプションは高いドットクロックでの性能を向上させます。

     "no_2mb_banksel"  オプション (542x の場合に指定)
        このオプションは 2M バイトのメモリを搭載したカードで 1M バイト以
        上のメモリを有効にする `DRAM bank select' ビットを設定しないもの
        です。このオプションは 512Kx8 の DRAM 構成で有効で、1M バイト以
        上を仮想画面に使っている 256Kx4/16 の DRAM 構成の場合は無効で
        す。

     "probe_clocks" オプション
        このオプションはカードのドットクロックを強制探査します。クロック
        が固定で全ての Cirrus のチップセットで同じなら必要ありません。し
        かし現状標準の 14.31818 MHz の周波数をバスに供給するマザーボード
        に依存します。間違って設計された VLB のマザーボードは適正なバス
        周波数のためのこの周波数を正しく供給しません（例えば 33 MHz から
        拡張したもの）。もし間違っていたら、このオプションを付けて`X
        -probeonly を実行してください。クロックが次に示す正しいクロック
        からとても異なっていた場合、 XF86Config の Clocks 行に 偏ってい
        る方のクロックを記入してください。この場合、MCLK も役にたちませ
        ん。

        正しいクロック:

            25.2  28.3  41.1  36.1  31.5  40.0  45.1  49.9
            65.0  72.2  75.0  80.0  85.2

     "cirrus" クロックチップ
        このオプションはプログラマブルクロックを可能にします。Device 節
        に指定する必要があります。このオプションを付けると、クロックモー
        ドが自動で選択されます。Clocks 行は記入しないでください。このオ
        プションは 320x200 のダブルスキャンモードのための 12.5 MHz のク
        ロックを可能にします。いくつかの周波数は不安定になるかもしれない
        （`波打つ' 画面が出るかもしれません）ので注意してください。試し
        て、テストした周波数（標準値のように）だけが安定なのは保証しま
        す。

     "linear" オプション  (542x/6/8/9/3x/46/754x の場合に指定)
        このオプションは SVGA バンク切り替えでは必要のない全フレームバッ
        ファをシステムメモリの範囲を超えた高位のアドレスまで割り付けるリ
        ニアアドレッシングを有効にします。256 色時の性能が向上し 16bpp
        と 32bpp では必須になっています。詳細は ``リニアアドレッシング
        と 16bpp/32bpp      モード''の節を参照してください。

     Membase 0x00e00000 (又は異なるアドレス) (542x/6/8/9/3x/46/754x の場
        合に指定)
        このオプションは物理的なリニアフレームバッファのメモリ基底アドレ
        スを設定します。これは Device 節に指定する必要があります。非 PCI
        のリニアアドレッシングの構成に必要です。

     "favour_bitblt"  オプション (5426 のみ)
        このオプションは BitBLT エンジン を有効にしてフレームバッファの
        色数を増やす機能を一般的に速くするのに用います。このオプションは
        CPU に負荷のかかったシステム（例えば、gcc と他のプログラムが同時
        に実行している場合など）等、一定の条件で性能の向上をはかります。

     "mmio" オプション (5429/3x/46/754x)
        このオプションは少し速くなるメモリマップド I/O を使う 543x/5429
        上の BitBLT エンジンとの接続を有効にします。付随してメモリマップ
        ド I/O を使うアクセラレータ機能も有効になります。この付加機能は
        BitBLT エンジンを使わないとき（例えば、"no_bitblt" を使った場
        合）は効果がありません。

     "sw_cursor" オプション (5429/3x/46/754x)
        このオプションはチップが提供するハードウェアカーソルを無効にしま
        す。カーソルに問題があるときに試してください。特に、5434/6 で 85
        MHz 以上のドットクロックを使うときに有効ですが、これらのチップが
        そのクロックでハードウェアカーソルの全ての機能をサポートしていな
        いことに注意してください。

     "clgd6225_lcd" オプション
        いくつかの 62x5 ラップトップ用チップセットで最も白い色を LCD 画
        面に表示するときの問題に対する対策を提供します。

  4.  モード に関する議論

  256 色アクセラレータドライバはビデオメモリ内の 256 バイト、ハードウェ
  アカーソルは 1K バイト ('6X では 2K バイト) を作業領域に使います。

  特に BitBlt を描画用のビデオメモリ幅が小さい場合に使用したとき、より高
  いドットクロック周波数はグラフィック操作の性能に否定的な効果を及ぼしま
  す（542x/3x/46 チップでは周波数は起動時に表示されます）。 542x/3x/46
  チップでは、標準の MCLK の設定 (0x1c) と 32-ビットメモリインターフェー
  スを使用したとき、65 MHz のドットクロックでの性能は 25 MHz のドットク
  ロック時の性能の半分になる場合があります。メモリ幅が少ないとき、とても
  遅く感じたらドットクロックを最も遅い容認できる値にしてみてください。例
  えば高い再描画速度（ 50MHz のドットクロック）を使って 14" 又は 15" の
  モニターに大きな仮想画面で 800x600 の画面を表示するのはそんなに悪くあ
  りません。

  1024x768 で 最も高いクロック (85 MHz) を 542x の 76 Hz で使用した場
  合、性能向上指向にはなりません。カードは大抵停止します。75 MHz のドッ
  トクロック を 70 Hz で使った場合は満足できるでしょう。85 MHz のドット
  クロックにおいて 76 Hz で 1024x768 をサポートしているモニターを持って
  いる場合は、標準的な 5426/5428 を基にしたカードとは相性が良くないで
  しょう。

  2M のメモリを積んだ 5434 を基にしたカードは高いドットクロックと相性が
  良く、542x シリーズに比べ DRAM 幅は基本的に 2 倍あります。又、543x
  チップの類は使用可能な DRAM 幅が一段と効果的に確保できます。

  5.  リニアアドレッシング と 16bpp/32bpp モード

  現在、SVGA サーバが非アクセラレータの 16-ビットと 32-ビットピクセルを
  サポートするにはリニアアドレッシングが必須です。この制約はうまくいけば
  将来的にはずされるでしょう。"linear" オプション は深さを指定する
  screen 節で指定することでリニアアドレッシングを有効にし、又 MemBase を
  (device 節で) 設定する必要があるでしょう(けれども 5446, 546x と いくつ
  かの 5436 を基にしたビデオカードのような PCI カードでは自動的に選択さ
  れます)。カードによって異なる構成がいくつもあります。

  ISA バス用の 542x/543x と 16M バイトかそれ以上のシステムメモリの場合は
  リニアアドレッシングは不可能です。16bpp は使えません、すいません。14M
  バイト以下のメモリの場合は `MemBase 0x00e00000' を使うことでフレーム
  バッファを 14M バイトに割り付けることが可能です。`e' の後ろにゼロを５
  つ付けてください。残念ながら多くの ISA カードはリニアアドレッシングを
  サポートしていません。

  VESA ローカルバス用の 5424/26/28/29 の場合は、状況はもっと復雑です。リ
  ニアアドレッシングについて２種類の異なるタイプのカードがあります:

  o  ISA バス上のカードのように 16M バイト以下に割り付けるカード。殆どこ
     のようなカードでしょう。同様な制約（例えば 16M バイトより少ないメモ
     リでなければいけない）が適用されます。

  o  A26 のアドレスラインに接続し 64M バイト + 14M バイトもしくは 64M バ
     イトに常に割り付けるカード。この場合、`MemBase 0x04e00000' か又は
     `MemBase 0x04000000' を指定しましょう。A26 を 持っている VLB マザー
     ボードを仮定しています。またはカードが 0x2000000 に割り付けるとか、
     5429 のような最近のカードは通常 0x03e00000 (62M バイト) に割り付け
     ています。

     多分、試行錯誤に頼らないといけないでしょう。16M バイトより少ないメ
     モリならば `誤った' membase を設定するとグラフィック画面は表示でき
     ませんが、多分コントロール＋オルタネート＋バックスペースを同時に押
     すと戻ってこれます。

  16M バイト以上のメモリの場合は、最初のタイプのカード（と間抜けな VLB
  マザーボードの２番目のタイプも）でハングします（多分ハードリブートが自
  発的に起ります）。

  カードのタイプは目で確認して分かります。カードに A26 ピンがあれば、64M
  バイト以上に割り付けるものでしょう。確認を行うには、カードを抜いて下さ
  い。VESA ローカルバスのピン（カードのスロットでない側から見てコネクタ
  ピンの小さい方の細長い小片）で、右側（全てのチップが実装されている面）
  を詳しくみてください。ここに 45 個のピンがあります。内側から 1 から 45
  まで番号を振ります（カードの端の方が45 番です）。内側から数えて、17 番
  目のピンが無く、18 番目から 20 番目まではあると思います。21 番目が A30
  で、22 番目が A28 、23 番目が A26 です。そして、21 番目から 23 番目の
  ピンが無い場合、カードは 64M バイト以上に割り付けることは出来ませ
  ん。21 番目と 22 番目が空いていて（または両方あり）且つ 23 番目がピン
  がある場合、64M バイト以上に多分割り当てます。カード上のピンのそばに小
  さな回路がある場合、かなり見込みがあると思います。

  ローカルバス上の 543x カードはより単純（Cirrus Logic 社の winsows のド
  ライバがこれをつかっています）ですが、問題が無いわけではありません。

  PCI バス上のカードでは、PCI カードを探査したときに自動的にドライバが読
  み込むフレームバッファの基底アドレスを格納している PCI 構成レジスタを
  持っています。`scanpci' プログラムは PCI 構成を読み出し基底アドレスを
  見ます。

  VESA ローカルバス上では、殆どの 543x カードは 64M バイトの標準的な割り
  付けアドレスを持っていて、オプションで 2048M バイト と 32M バイトを
  ジャンパピンで設定します。これはカードに同梱の資料に書かれている
  か、MS- Windows の system.ini ファイルに (linearaddr = <offset in
  megabytes > 等と) 書かれているでしょう。Cirrus Logic が多くの VLB マザ
  ーボードの実装状況を調査し加えたもので、これらと異なるアドレスピンには
  実装しないのです。ドライバは MemBase の指定が無い場合は標準の 64M バイ
  トを仮定します。MemBase の例を少し示します:

            MemBase 0x02000000  32Mb
            MemBase 0x04000000  64Mb
            MemBase 0x80000000  2048Mb

  最後に、546X ビデオカードの場合はラッキーかも。心配するような "困難"
  はないでしょう。'6X は常にリニアアドレッシングとメモリマップド I/O と
  4GB 近いメモリアドレスを使用出来ます。PCI をどうぞ！

  16bpp と 32bpp モードは（スクロール、テキスト、塗りつぶし）に限定した
  アクセラレータ機能がありますがそれでも遅いと感じるでしょう。でも、
  （543x が持っているような）優秀なローカルバスインターフェースが十分助
  けになるでしょう。標準の fbc フレームバッファプログラムは白黒の点描と
  ビットマップではとても遅いでしょう。 32bpp モードは最低 2M バイトのメ
  モリを搭載した一部のビデオカードでのみサポートしています。

  XF86Config の "Screen" 節のなかの、 "Display" 項(subsection) に Modes
  と 仮想画面の大きさを分けて動かしたい深さ毎に定義しなければいけませ
  ん。例（2M バイトのビデオメモリの場合）は:

        Section "screen"
            SubSection "Display"
            Depth 8
            Virtual 1280 1024
            ViewPort 0 0
            Modes "640x480" "800x600" "1024x768"
            Option "linear"
            EndSubSection
            SubSection "Display"
            Depth 16
            Virtual 1024 992
            ViewPort 0 0
            Modes "640x480" "800x600" "1024x768"
            Option "linear"
            EndSubSection
            SubSection "Display"
            Depth 32
            Virtual 832 600
            ViewPort 0 0
            Modes "640x480" "800x600"
            Option "linear"
            EndSubSection
        EndSection

  6.  "cl64xx" ドライバ

  cl64xx ドライバは多くのラップトップ用の cl-gd6440 をサポートします。例
  えば、Sager, ProStar 等 と Texas Instruments TI4000 シリーズに OEM 提
  供されている Nan Tan コンピュータの NP9200,NP3600 等をサポートしていま
  す。
  ドライバは LCD 専用モード、 CRT 専用モードと LCD と外部 CRT ディスプレ
  イを同時に使えるようにするチップの持つ SimulScan モードで動作します。
  LCD と SimulScan モードの解像度は 640x480 が、CRT 専用モードでは
  640x480, 600x800 と 1024x768 の 標準 VESA モードがテスト済みです。
  1024x768 インタレースモードはデバッグしてませんし、テスト用機でも動作
  してません。

  資料になっている駆動電圧に依存するドットクロックの最大稼働上限がありま
  す。特に 5.0V での最大ドットクロックは 65MHz で 3.3V での最大ドットク
  ロックは 40MHz です。ドライバは駆動電圧を確認して適正な値に最大ドット
  クロックを制限します。これが 60Hz の再描画速度時の約 1024x768 の最大解
  像度に変換されます。内蔵発振器(frequency generator) はこれらの上限より
  高い値にプログラムされていて、サーバの起動時に瞬間的にチップの稼働上限
  を超えるようなクロックを探査させます。一旦有効なクロックの組み合わせが
  得られたら、XF86Config の Clocks 行に書いておくことをお勧めします。こ
  れを行うと起動にかかる時間が著しく減少します。クロックは X サーバーに
  -probeonly を付けて実行する事によって得られます（-probeonly について情
  報をもっと知りたい場合は XFree86 のオンラインマニュアルを参照のこ
  と）。

  データブックにはチップがサポートしている 1 メガバイトのビデオメモリの
  構成だけが示されています。この大きさはドライバで直接設定しています。必
  要に応じて、初期値のメモリサイズを XF86Config に書いておくことも出来ま
  す。また、1M バイトのビデオメモリで例えば 1024x1024 のような大きさの仮
  想画面を持つことができ、これは CRT 専用の画面モードで使用可能です。し
  かし、LCD (LCD と SimulScan) を使うときはいつでもチップはビデオメモリ
  の上位の一部をそれ自身の内部の加速処理のために使用します。従って、 LCD
  モードで仮想画面を使用するときの最大のビデオメモリは約 0.75M バイトな
  ので例えば 1024x768 のような解像度になるのです。上記のような仮想解像度
  を設定した場合に小さく切り取られた画面に加速化された領域が表示されま
  す。

  現在、LCD, CRT と SimulScan の各画面モード間の切り替えをサポートしてい
  ませんが、少なくとも NP9200 では OS のブート時（例えば Linux の LILO
  で）BIOS が未だ始動する前にモードの選択が出来るようになってま
  す。XF86Config にModeLine オプションを追加すれば画面モードの選択が X
  サーバの内部から動的に可能になります。最後に、ドライバは現状でチップの
  低消費電力機能とスクリーンセーバーによって画面が消えているときの LCD
  のバックライトの消灯をサポートしていません。将来のバージョンでこれら全
  ての機能が実現することを期待しています。

  CL-GD6420 に関する注意事項:

  ビデオメモリの量が時々正しく探査できない場合があります。２つの解決方法
  がドライバのソースコードにあり、１つは定義してしまうことです。もっと良
  い方法は Device 節の VideoRam 行にビデオメモリの量を指定することです。
  CRT 又は SIMulscan モードでは標準的な 640x480 60Mhz で 25.175 MHz の
  ドットクロックでの標準モード調整を行って下さい。LCD 専用のモードでは同
  様のモード調整を行えますが、16.257 MHz のドットクロックを用いてくださ
  い。標準の 56 Hz 800x600 も CRT でサポートしています。

  "cl64xx" ドライバでの cl6440 に関する問題はRandy Hendry
  <randy@sgi.com> 氏まで先ず最初に連絡してください。

  7.  "cirrus" ドライバでの障害対策のまとめ

  先ず最初に、XF86Config で選択したモードをモニターがサポートしているこ
  と、つまり水平同期の上限が正しいことを確認してください。25.175 MHz の
  クロックで標準的な 640x480x256 （単一の水平同期を 31.5 に指定した場
  合）が構成上ドライバが動作することの確認からはじめるのがお勧めです。
  timing 節にこの解像度用の最高のドットクロックを置いて、mode 行の最初に
  書いたモードが常に初期値のモードとして用いられます。

  いくつかの VESA 標準モードの調整がいくつかのモニターで問題を起こします
  ので注意してください（水平同期信号を増やしてみましょう、つまり真ん中の
  ２つの数値の差を広げる、若くは全ての水平同期の調整数値を 16 又は 32 の
  倍数になるように増やす）。

     ビデオ信号が届いているが、画面が同期出来ない場合。
        モニターが扱えないモードを使っているのです。標準でないモードを
        使っている場合、少し数値を直す必要があるかもしれません。モニター
        が取り扱える標準モードと標準周波数の場合、似たようなモードと周波
        数で異なる数値の組み合わせを見つけてください。

     高いドットクロックでの 水平ジッタ（不安定感）
        特に上にスクロールするような描画操作を行う時にこの問題が見られま
        す。542x/3x/46/6x を使う場合は "fifo_conservative" オプションを
        試してください。これが失敗したときは、"fast_dram" オプションを試
        すか、より低いドットクロックを使ってみてください。これでも満足い
        かない場合は、"noaccel" オプションか、"no_bitblt" オプションが多
        分助けになるでしょう。

     `波打つ'(`Wavy') 画面。
        画面の水平揺れ又は全体のジッタが（描画操作に依存しないで）間断な
        続く現象です。多分、高すぎるドットクロックを使っているせいで、近
        い周波数の MCLK と干渉が起きている可能性があります。もっと低い
        ドットクロックを試して下さい。また、モードの数値調整を行って、２
        番目の水平方向の数字をいくらか増やしてみてください。次は 65MHz
        のドットクロックで 1024x768 （約 60 Hz）のモードが助けになるはず
        です。:

         "1024x768"     65      1024 1116 1228 1328     768  783  789  818

     Clockchip "cirrus" を用いてプログラマブルクロックを使用している場合
     は、これを無効にして標準値のクロックの組み合わせを使ってください。

     起動した後で画面が崩れる、止まる（画面が真っ暗になるかも）。
        "noaccel" オプションを試してみましょう。もし動かなかった場合、い
        くらか性能向上の為に "no_bitblt" を試してみてください。 BIOS の
        設定が大丈夫かどうか確認して、特に 0xa0000-0xaffff をキャッシン
        グしないようにしてください。裏 DRAM の更新(hidden DRAM refresh)
        を無効にしても良いでしょう。

     グラフィック操作の後の画面が崩れる、止まる又はごみが残る。
        アクセラレータ機能の一つ、又は BitBLT 機能を使ったときのプログラ
        ムのバグに関連しているかもしれません。"noaccel" オプション又は
        "no_bitblt" オプションを試してみてください。また、BIOS の設定を
        確認してください。

     サーバが `Blitter timeout' というメッセージを出力する。
        同じ設定がダブっています。

     画面が垂直方向に周り込んで (`wrapped') いる。 (542x/3x/46 の場合)
        DRAM 構成に問題があることを示しています。カードに２メガバイトの
        メモリを搭載している場合は、"no_2mb_banksel" オプションか、１メ
        ガバイトのメモリだけを仮想画面に使う場合、 videoram "1024" を試
        してください。

     端末ウィンドウの文字がにじむ。
        標準でないビデオの実装にて報告されています。 "no_bitblt" オプ
        ションを使って下さい。

     ラップトップ用チップセットで稲妻が走る又は止まる
        ドットクロックが高すぎるため、描画用の帯域幅がとても少なくなって
        （例えば、512K バイトのカードで 40MHz を使う場合）いるか、（
        5422 のような）アクセラレータ機能を使っている場合に起こります。

     時々文字のドットが抜ける、窓枠を動かすとドットのごみが出る。
        多分、高すぎる MCLK の設定が関係しています（バンクモードが大丈夫
        でもリニアアドレッシングが引き起こすでしょう）。
     チップセットが認識できない。
        使おうとしているチップセットに似たものを強制指定することを試しま
        しょう。

     時々、間違った小さい線分（殆どが白い）が現われる
        システムからビデオメモリへの BitBLT 操作に関する問題に関係してい
        ます。いらいらする場合は "no_imageblt" オプションを試してみま
        しょう。

     テキストモードが適切に回復しない
        いくつかの構成で報告されています。XFree86 3.1 の SVGA サーバの探
        査が、Chipset 行で要求した 543x のレジスタの内容を壊したかもしれ
        ません。普通はユーティリティ ( Linux の setfont, runx,
        restorefont) でテキストモードは回復可能でしょう。

     非常に高いドットクロックで散漫なシステム挙動を起す
        カード且つ／又はマザーボードの設計に不良のある場合、ビデオカード
        上の高いドットクロックとシステム内の他の部分（例えば ディスク
        I/O）とのインターフェースがうまくいかない時に発生する可能性があ
        ります。（ごくまれに、 5428 チップが PCI をサポートしない時に）
        いくつかの PCIの 5428 を基にしたカードで観測されます。

  その他の画面描画に関する問題が生じた場合は、 ( "no_bitblt" が助けにな
  らない場合に) "noaccel" オプションを試してみましょう。

  この文書に記述の無いドライバに関する問題、又はアクセラレータ機能につい
  てバグを発見した場合は XFree86 チーム（現在、ドライバの保守は
  H.Hanemaayer@inter.nl.net で行っています）に連絡を下さるか、
  "comp.windows.x.i386unix" というニュースグループに投稿して下さい。

  実際、特にテストしていない構成での (成功や失敗の) 報告を歓迎していま
  す。ベータレポート (BetaReport) 用紙を使って (report@XFree86.org にメ
  ールで) 報告してください。www.xfree86.org からの新刊予定のベータ版にご
  期待ください。

  8.  テストした機器構成

  現行の XFree86 3.2 で紹介したひとつ又はそれ以上の変更のテスト結果を受
  け取った機器構成の一覧を示します。いくつかの機器構成でのテスト結果の量
  はとても少なく、まとめは不完全です。貢献出来る時は、お願いします。最新
  情報は www.xfree86.org にあるこの文書の最新版を調べてください。

     VL バス上の CL-GD5426

     VL バス上の CL-GD5429
        BitBLT 操作を修正しました。 MMIO については作業してません。

     VL バス上の 2M バイトのメモリを搭載した CL-GD5434
        MMIO operation is supported.

     PCI バス上の 1M バイトのメモリを搭載した CL-GD5434
        8bpp, 16pp と 24bpp は動作します。 16bpp は最早 "静的な" 問題は
        ありません。 MMIO 操作はサポートしていません。

     PCI バス上の 2M バイトのメモリを搭載した CL-GD5446
        32bpp は多分動作しません。 8bpp と 16bpp は FIFO に関連した問題
        と "fifo_conservative" が必要なことを除いて動作します。

     PCI バス上の 2M バイトのメモリを搭載した CL-GD5462

     PCI バス上の 4M バイトのメモリを搭載した CL-GD5462

     PCI バス上の 4M バイトのメモリを搭載した CL-GD5464
        8bpp, 16bpp, 24bpp と 32bppで動作します。

     ISA バス上の CL-GD6440

     PCI バス上の CL-GD7543
        この版では見たところ動作しません。800x600 表示で、推奨ドットク
        ロックは TFT では 40 MHz、DSTN では 33.7 MHz で適合する水平同期
        周波数は TFT では 33.7 khz で DSTN では 38.6 khz です。

  最新ではないテストしたいくつかの機器構成があります:

     1M バイトのメモリを搭載した CL-GD5430, CL-GD5436 と CL-GD5446
        これらのチップを 1M バイトのメモリがある CL-GD5434 として 16bpp
        でどう取り扱うかどうかを知るのに素晴しいです。 CL-GD754x 系列に
        も適応出来ます。

     1M バイトのメモリを搭載した CL-GD5436 と CL-GD5446
        特にこの構成での FIFO の設定は不安定です。

     CL-GD754x
        3.1.2G ではこれらのチップでは動作しませんが、いくつかの場合で
        7548 は動作したと報告がありました。

  9.  ドライバの変更点

  XFree86 3.1.2 から次のバグを修正しました:

  o  16bpp で 1M バイトを搭載した CL-GD5434 で起こる再表示の問題を修正し
     ました。

  o  メモリマップド I/O 操作で起こる問題を修正しました。

  o  ビットマップが整列できない問題を修正しました。

  o  5436/46 での CRT FIFO の設定を修正しました。

  o  16/24/32bpp での不透明なウィンドウの移動を高速化しました。

  XFree86 3.2 での新機能:

  o  主なものはラップトップ用チップの CL-GD754x 系列対応の未テストのアク
     セラレータのサポート

  o  5446 チップのサポート

  o  546x チップのアクセラレータのサポート

  o  1M バイトのメモリを搭載した殆どのチップでパックト 24 bpp のサポート

  XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/cirrus.sgml,v 3.17 1996/10/26 09:38:57 dawes Exp

  $XConsortium: cirrus.sgml /main/6 1995/11/12 20:00:36 kaleb $

  ______________________________________________________________________

  このファイルは xc/programs/Xserver/hw/xfree86/doc/sgml/cirrus.sgml,v
  3.17 1996/10/26 09:38:57   を、岡本  一幸 ( Kazuyuki Okamoto
  <ikko-@pacific.rim.or.jp> <mailto:ikko-@pacific.rim.or.jp> ) が
  XFree86 3.2 を日本でインストールする人向けに和訳したものです。ここがお
  かしいとか、ここはこうしたほうがいいといったご意見がありましたら、電子
  メールでお知らせ下さい。原文の著作権は XFree86 プロジェクト社にありま
  す。この和訳の著作権は XFree86 プロジェクト社と岡本 一幸にありますが、
  この和訳の不具合は私に、電子メールで送って下さい。

  XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Japanese/cirrus.sgml,v 3.18 1996/12/02 06:08:05 dawes Exp

  ______________________________________________________________________

  [EOF]

