Cirrus チップセットユーザのための情報 Harm Hanemaayer (hhanemaa@cs.ruu.nl), Randy Hendry (randy@sgi.com)著 岡本 一幸 Kazuyuki Okamoto 訳 1995 年 6 月 26 日 1.サポートしているチップセット Cirrus のチップセット用には、``cirrus''と``cl64xx''と呼ばれる2つの異 なる SVGA サーバーがあります。 ``cirrus'' ドライバは 256 色の(アクセ ラレータ付き)SVGA サーバーと(アクセラレータ無し)白黒サーバーで用い られています。SVGA サーバーは 16 と 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'の 系列のチップです。Orchid Kelvin 64 に搭載しています。このチップ は 2M バイトのメモリを搭載したとき 64 ビットモードのみサポートし ます。1M バイトメモリのみののカードでは厳しい限界があります。110 MHz 以上のドットクロックをサポートします(最近のチップセットは 135 MHz をサポートしています)。 CL-GD5436 高度に最適化した5434。基本的に 5434 として扱えますが、テストして ません。 各々のサポートしている深さ毎に最大のドットクロックを一覧にします。: mono 8 bpp (256c) 16 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____ CL-GD5426/28 85 MHz 85 MHz____ 45 MHz (2) CL-GD5429 85 MHz 85 MHz____ 50 MHz____ CL-GD5430 85 MHz 85 MHz____ 45 MHz (2) CL-GD5434/1Mb 85 MHz 85 MHz____ 45 MHz (2) CL-GD5434/2Mb 85 MHz 110/135 MHz 85 MHz____ 45/50 MHz (2) CL-GD5436/1Mb 85 MHz 110 MHz (3) 60 MHz (3) CL-GD5436/2Mb 85 MHz 135 MHz 85 MHz 60 MHz (3) (1) 512K メモリです。 (2) 高い MCLK を設定すると 50 MHz。 (3) メモリクロックに依存する。 大まかに言って 仮想的/物理的な画面解像度はビデオメモリの量の違いに制約 されます。 mono 8bpp 16 bpp 32 bpp 256K_ 800x600__ 640x400__ _________ ________ 512K_ 1152x900_ 800x600__ 640x400__ ________ 1024K 1600x1200 1152x900_ 800x600__ ________ 2048K 2304x1728 1600x1200 1152x900_ 800x600_ 4096K 2304x1728 2272x1704 1600x1200 1152x900 アクセラレータ機能を使った場合、仮想画面の幅は 32 の倍数になります。モ ニターの水平方向の調整数値は 2048 以下にしなければいけません。 16 か 32 bpp で XF86_SVGA を動作させるには、以下のオプションを X サー バーに付加して下さい。 startx -- -bpp 16 5-6-5 RGB ('64K color', XGA) startx -- -bpp 16 -weight 555 5-5-5 RGB ('Hicolor') startx -- -bpp 32 8-8-8 XRGB truecolor (5434) 2.基本構成 `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 でも適用可能と思いま すが、未だテストしていません >。 3. XF86Config オプション `Clocks' コマンドは使わないでください。(つまり、探査しないで)クロッ クを修正した場合、(各々のチップセットのサポートしている最大クロック以 外の)カード毎の違いは反映できません。 以下のオプションは特に Cirrus ドライバでは重要です。各々のオプションは XF86Config の `svga' ドライバ節に Screen 項の中に適応する全ての深さを 指定する必要があります(Device 節に全ての Screen を指定することが可能 です)。 ``noaccel'' オプション このオプションはアクセタレータ機能を無効にします。DRAM の速度や 高いドットクロックやアクセラレータ機能の不具合による問題を解決す る支援を効率良く(VLB では一段と妥当に)行います。 ``fast_dram'' ``med_dram'' ``slow_dram'' (5424/6/8/9, 543x) オプ ション "fast_dram" オプションはビデオボードの内蔵メモリクロック (MCLK) レジスタにより高い値を設定します。通常、このレジスタはいじること はないのですが、標準の CL-GD542x BIOSの初期化によって高いドット クロックモードでの性能に良くない影響を与えるような(チップセット の仕様に制限された)低い方の値に設定されます。これは拡張 RAS 調 整を使う場合には特に影響を受けます(これはサーバーの探査で指摘さ れます)。 DRAM の実際の速度はこのオプションが適切だろうとなかろうとカード 認識において危険な要素にはなりません。80ns の DRAM を搭載してい るあるカードが拡張 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 に取り込み ます。 特に(高いドットクロックで性能や安定度の)問題がなかったら、 "fast_dram"オプションを使う必要はありません。 ``no_bitblt'' オプション このオプションを 5426/28/29/3x で使用する場合、アクセラレータ機 能を保持する間、(5424 では持っていない)BitBLT エンジンを無効に します。BitBLT エンジンを使用することに関連して生じる機能上の問 題に対して有効です。性能はかなり著しく落ちます。 ``no_imageblt'' オプション このオプションを 5426/28/29/3x で使用する場合、システムメモリか らビデオメモリに転送する BitBLT 機能を無効にします。特に速い CPU で VLB 5426 と 5434 を使ったいくつかのシステム構成で認められてい る、画面の左上すみの小さい白い線若くはサーバーに戻った後の歪んだ 画像の様な画像書き込みの問題に有効です。このオプションを使うと性 能が低下しますので注意してください。 ``clgd54xx'' チップセット 搭載されているチップセットを強制探査させます。サポートしている チップセットが正確に認識されないとか、サポートしていないチップ セットをサポートしているチップセット互換品として認識させたい場合 に有効です。 videoram 1024 (又は他の値) このオプションはビデオメモリの探査搭載量の強制指定と現行のカード にメモリを追加するふりをする場合に指定します。このオプションは 2M バイトのメモリ構成時にドライバの要求メモリ量と互換性が保てな い場合に1MB 以上を見せたくない、とかメモリの探査がうまく動作し ないときに有効です。これは Device 節に必ず指定してください。 ``fifo_conservative'' オプション (5424/6/8/9/30 の場合に指定) このオプションは CRT FIFO の敷居値を高いドットクロックの控え目な 値 (>= 65 MHz) に 設定するもので、`筋・稲妻'(`streaks') , `ジッ タ・不安定'(`jitter') 若くは画面の水平領域の繰り返し表示 (特に BitBLT 操作を行ったとき,例えばスクロール)と形容される問題を性能 が落としても軽減したい場合に有効です。 ``fifo_aggressive'' オプション (5424/6/8/9/30 の場合に指定) このオプションは 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'' オプション このオプションは SVGA バンク切り替えでは必要のない全フレームバッ ファをシステムメモリの範囲を超えた高位のアドレスまで割り付けるリ ニアアドレッシングを有効にします。256 色時の性能が向上し 16bpp と 32bpp では必須になっています。詳細は ``リニアアドレッシング と 16bpp/32bpp モード''の節を参照してください。 Membase 0x00e00000 (又は異なるアドレス) このオプションは物理的なリニアフレームバッファのメモリ基底アドレ スを設定します。これは Device 節に指定する必要があります。殆どの リニアアドレッシングの構成に必要です。 ``favour_bitblt'' オプション (5426 のみ) このオプションは BitBLT エンジン を有効にしてフレームバッファの 色数を増やす機能を一般的に速くするのに用います。このオプションは CPU に負荷のかかったシステム(例えば、gcc と他のプログラムが同時 に実行している場合など)等、一定の条件で性能の向上をはかります。 ``mmio'' オプション (543x) このオプションは少し速くなるメモリマップド I/O を使う 543x/5429 上の BitBLT エンジンとの接続を有効にします。付随してメモリマップ ド I/O を使うアクセラレータ機能も有効になります。この付加機能は BitBLTエンジンを使わないとき(例えば、"no_bitblt" を使った場合) は効果がありません。 ``sw_cursor'' オプション (542x/3x) このオプションはチップが提供するハードウェアカーソルを有効にしま す。カーソルに問題があるときに試してください。特に、5434/6 で 85 MHz 以上のドットクロックを使うときに有効ですが、チップがそのク ロックでハードウェアカーソルの全ての機能をサポートしていないこと に注意してください。 ``clgd6225_lcd'' オプション いくつかの 62x5 ラップトップ用チップセットで最高に白い色を LCD 画面に表示するときの問題に対する対策を提供します。 4.モード に関する議論 256 色アクセラレータドライバはビデオメモリ内の 256 バイト、ハードウェ アカーソルは 1K バイトを作業領域に使います。結果的に 1M バイトのカード では 1024x1024 の仮想解像度は使用出来ません。 特に BitBlt を描画用の DRAM 幅が小さい場合に使用したとき、より高いドッ トクロック周波数はグラフィック操作の性能に否定的な効果を及ぼします(そ の量は起動時に表示されます)。標準の MCLK の設定 (0x1c) と 32-ビットメ モリインターフェースを使用したとき、65 MHz のドットクロックでの性能は 25 MHz のドットクロック時の性能の半分になる場合があります。DRAM 幅が少 ないとき、とても遅く感じたらドットクロックを最も遅い容認できる値にして みてください。例えば高い再描画速度( 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節で) 設定する必要があるでしょう。カードによって異なる構成がい くつもあります。 ISA バス用の 542x/543x と 16M バイトかそれ以上のシステムメモリの場合は リニアアドレッシングは不可能です。16bpp は使えません、すいませ ん。14Mバイト以下のメモリの場合は `MemBase 0x00e00000' を使うことでフ レームバッファを 14M バイトに割り付けることが可能です。`e' の後ろにゼ ロを5つ付けてください。残念ながら多くの ISA カードはリニアアドレッシ ングをサポートしていません。 VESA ローカルバス用の 5424/26/28/29 の場合は、状況はもっと復雑です。リ ニアアドレッシングについて2種類の異なるタイプのカードがあります: o ISA バス上のカードのように 16M バイト以下に割り付けるカード。殆どこ のようなカードでしょう。同様な制約(例えば 16M バイトより少ないメモ リでなければいけない)が適用されます。 o A26 のアドレスラインに接続し 64M バイト + 14M バイトもしくは 64M バ イトに常に割り付けるカード。この場合、`MemBase 0x04e00000' か又は `MemBase 0x04000000' を指定しましょう。A26 を 持っている VLBマザー ボードを仮定しています。またはカードが 0x2000000 に割り付けるとか、 5429 のような最近のカードは通常 0x03e00000 (62M バイト) に割り付け ています。 多分、試行錯誤に頼らないといけないでしょう。16M バイトより少ないメ モリならば `誤った' membase を設定するとグラフィック画面は表示でき ませんが、多分コントロール+オルタネート+バックスペースを同時に押 すと戻ってこれます。 16M バイト以上のメモリの場合は、最初のタイプのカード(と間抜けな VLB マザーボードの2番目のタイプも)でハングします(多分ハードリブートが自 発的に起ります)。 カードのタイプは目で確認して分かります。カードに 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 構成レジスタを 持っています。あるシステムでテストしたところ、レジスタは 0xa0000000 に 割り付けられていて、PCI ボードから 0x08000000 を増分指定で割り当てるよ うになっていました。`scanpci' プログラムは PCI 構成を読み出し基底アド レスを見ます。 VESA ローカルバス上では、殆どの 543x カードは 64M バイトの標準的な割り 付けアドレスを持っていて、オプションで 2048M バイト と 32M バイトを ジャンパピンで設定します。これはカードに同梱の資料に書かれている か、MS- Windows の system.ini ファイルに (linearaddr = 等と) 書かれているでしょう。Cirrus Logic が多くの VLB マザ ーボードの実装状況を調査し加えたもので、これらと異なるアドレスピンには 実装しないのです(しかしながら、彼等の初めての Windows のドライバはこ のカードを順調には扱えませんでした)。ドライバは MemBase の指定が無い 場合は標準の 64M バイトを仮定します。MemBase の例を少し示します: MemBase 0x02000000 32Mb MemBase 0x04000000 64Mb MemBase 0x80000000 2048Mb 16bpp と 32bpp モードは限定した(スクロール、テキスト)のアクセラレー タ機能を持っていますがそれでも遅いと感じるかもしれませんが、それでも (543x が持っているような)優秀なローカルバスインターフェースが十分助 けになるでしょう。 XF86Config の "Screen" 節のなかの、"Dis- play"項(subsection) に Modes と 仮想画面の大きさを分けて動かしたい深さ 毎に定義しなければいけません。例(2M バイトのビデオメモリの場合)は: Section "screen" SubSection "Display" Depth 8 Virtual 1152 900 ViewPort 0 0 Modes "640x480" "800x600" "1024x768" Option "linear" EndSubSection SubSection "Display" Depth 16 Virtual 1152 900 ViewPort 0 0 Modes "640x480" "800x600" "1024x768" Option "linear" EndSubSection SubSection "Display" Depth 32 Virtual 800 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 に関する注意事項: ビデオメモリの量が時々正しく探査できない場合があります。2つの解決方法 がドライバのソースコードにあり、1つは定義してしまうことです。もっと良 い方法は Device 節の VideoRam 行にビデオメモリの量を指定することです。 CRT 又は SIMulscan モードでは標準的な 640x480 60Mhz で 25.175 MHz の ドットクロックでの標準モード調整を行って下さい。LCD 専用のモードでは同 様のモード調整を行えますが、16.257 MHz のドットクロックを用いてくださ い。標準の 56 Hz 800x600 も CRT でサポートしています。 ``cl64xx'' ドライバでの cl6440 に関する問題はRandy Hendry 氏まで先ず最初に連絡してください。 7. ``cirrus'' ドライバでの障害対策のまとめ 先ず最初に、XF86Config で選択したモードをモニターがサポートしているこ と、つまり水平同期の上限が正しいことを確認してください。25.175 MHz の クロックで標準的な 640x480x256 (単一の水平同期を 31.5 に指定した場 合)が構成上ドライバが動作することの確認からはじめるのがお勧めです。 timing 節にこの解像度用の最高のドットクロックを置いて、mode 行の最初に 書いたモードが常に初期値のモードとして用いられます。 いくつかの VESA 標準モードの調整がいくつかのモニターで問題を起こします ので注意してください(水平同期信号を増やしてみましょう、つまり真ん中の 2つの数値の差を広げる、若くは全ての水平同期の調整数値を 16 又は 32 の 倍数になるように増やす)。 ビデオ信号が届いているが、画面が同期出来ない場合。 モニターが扱えないモードを使っているのです。標準でないモードを 使っている場合、少し数値を直す必要があるかもしれません。モニター が取り扱える標準モードと標準周波数の場合、似たようなモードと周波 数で異なる数値の組み合わせを見つけてください。 高いドットクロックでの 水平ジッタ(不安定感) 特に上にスクロールするような描画操作を行う時にこの問題が見られま す。"fifo_conservative" オプションを試してください。これが失敗し たときは、"fast_dram" オプションを試すか、より低いドットクロック を使ってみてください。これでも満足いかない場合は、 "noaccel" オ プションか、"no_bitblt" オプションが多分助けになるでしょう。 `波打つ'(`Wavy') 画面。 画面の水平揺れ又は全体のジッタが(描画操作に依存しないで)間断な 続く現象です。多分、高すぎるドットクロックを使っているせいで、近 い周波数の MCLK と干渉が起きている可能性があります。もっと低い ドットクロックを試して下さい。また、モードの数値調整を行って、2 番目の水平方向の数字をいくらか増やしてみてください。次は 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') いる。 DRAM 構成に問題があることを示しています。カードに2メガバイトの メモリを搭載している場合は、"no_2mb_banksel" オプションか、1メ ガバイトのメモリだけを仮想画面に使う場合、 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 チーム(現在、ドライバの保守は hhanemaa@cs.ruu.nl で行っています)に連絡を下さるか、 "comp.windows.x.i386unix" というニュースグループに投稿して下さい。 8.ドライバの変更点 XFree86 3.1 から以下のバグを修正しました: o アクセラレータ機能の 14 ピクセルの幅のフォントの表示のバグ o 8bpp でリニアアドレッシング機能を使ったときに他の VC から切り替えた ときサーバーが壊れる。 o 542x 上で 16bpp の時 VC 切り替えを行ったとき DAC プログラムが固まっ てしまう。 o ドライバがサーバーの探査した情報を元に戻して 543x のレジスタの内容 を破壊する。 o 543x で 8bpp の時のリニアアドレッシング(16/32bpp を構成しようとす ると失敗する) o 16/32bpp でのハードウェアカーソルの色付け XFree 3.1.1 での新機能: o いくらかの表示速度の性能向上。 o 16/32bpp でのスクロール/テキスト/塗りつぶしの加速化。 o プログラマブルクロックのサポート。 o 543x でのメモリマップド I/O のサポート。 o 5434 での 110 MHz へのドットクロック向上のサポート。 o ``cl64xx'' ドライバで CL6440 のサポート。 XFree86 3.1.1 からの変更点: o 文字表示機能でのメモリ破壊の修正。 o CL-GD5434 レビジョン E 以降でのドットクロックを 135 MHz に向上。 o 高ドットクロックでの画面再表示エラー(ジッタ)を解決するためのより バランスのとれた FIFO の設定。 o メモリマップド I/O ("mmio" オプション) の操作性向上 (5429 対応の副 作用の排除)。 o 負の大きさの矩型塗りつぶしを行ったときの潜在的なサーバー破壊を回避 する正当性チェックを追加。 o BitBLT エンジンを使わないでスクロールをした時発生する表示エラーを修 正。 o 543x PCI の基底アドレスの認識。 o CL-GD5436 の限定サポート。 o 5429 対応の VLB の初期値の基底アドレスを 0x03e00000 とした。 $XConsortium: cirrus.sgml,v 1.4 95/01/27 16:14:36 kaleb Exp $ $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/cirrus.sgml,v 3.10 1995/07/03 08:50:57 dawes Exp $ ______________________________________________________________________ このファイルは xc/programs/Xserver/hw/xfree86/doc/sgml/cirrus.sgml,v 3.10 1995/07/03 08:50:57 を、岡本 一幸 ( Kazuyuki Okamoto (mailto:ikko-@pacific.rim.or.jp) ) が XFree86 3.1.2 を日本でインストールする人向けに和訳したものです。ここが おかしいとか、ここはこうしたほうがいいといったご意見がありましたら、電 子メールでお知らせ下さい。原文の著作権は XFree86 プロジェクト社にあり ます。この和訳の著作権は XFree86 プロジェクト社と岡本 一幸にあります が、この和訳の不具合は私に、電子メールで送って下さい。 $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Japanese/cirrus.sgml,v 3.1 1995/09/16 08:31:09 dawes Exp $ ______________________________________________________________________ [EOF]