SunVTS 4.4 テストリファレンスマニュアル

第 8 章 カラーグラフィックスフレームバッファーテスト (cg14test)

cg14test は、cg14 フレームバッファーカードを検査します。このテストは、SPARCstation 10 SX および SPARCstation 20 SX に搭載されている VSIMM (ビデオ SIMM) デバイス専用のテストです。


注意 - 注意 -

SunVTS cg14 フレームバッファーテストと、cg14 フレームバッファーを使用する Open Windows アプリケーションが衝突する可能性があるため、cg14test を実行する際には、以下の制限が適用されます。 SunVTS がフレームバッファーテストを実行している間は、OPEN LOOK 以外のグラフィックアプリケーションを実行しないでください。 SunVTS ウィンドウの外部、またはその上に重なるビデオ更新情報を生成する OPEN LOOK プログラムを実行しないでください。 フレームバッファーテストを実行している間は、SunVTS ウィンドウをアイコン化しないでください。


cg14test テストの条件

フレームバッファーのロックオプションは、必ず Options ウィンドウから有効にします。

詳細は、「フレームバッファーのテスト」を参照してください。

cg14test のグループ

cg14test には、以下の 9 つのテストグループがあります。

  1. MDI および VBC チップ制御レジスタ (MDI and VBC Chip Control Registers)

  2. メモリーチップ (Memory Chips)

  3. MDI チップカーソルレジスタ (MDI Chip Cursor Registers)

  4. MDI チップ CLUT レジスタ (MDI Chip CLUT registers)

  5. DAC チップレジスタ (DAC Chip Registers

  6. MDI チップ XLU レジスタ (MDI Chip XLU Registers)

  7. CG14 ディスプレイ(CG14 Display) (目視のみ)

  8. ビットモードでの MDI チップテストモードリードバック (MDI Chip Testmode Readback in 8-bit mode)

  9. ドライバ IOCTL (Driver IOCTLs)

表 8-1 cg14 のテストグループ

グループ 

説明 

ハードウェア 

(テストグループ 1 〜 6) 

/dev/fbs/cgfourteenX を開き、読み書き共有の MDI 制御アドレス空間を割り当て (mmap) ます。割り当てられたアドレス空間への直接書き込みを使用して、ターゲットのテスト位置を修正し、確認のため割り当てられたアドレス空間から読み取り、デバイスをクローズします。

画像パターン 

(テストグループ 7) 

256 色の画像パターンを読み込み、パターンを回転させます。このサブテストは、目視で確認する必要があります。 

データ伝播 

(テストグループ 8) 

 

フレームバッファー (FB) メモリーに 4 つのニュートラルデータパターンを読み込み、テストモードリードバックラッチをトリガーするデータをターゲット FB ピクセルに設定します。結果は、垂直ブランキングが行われた後に、リードバックレジスタから読み取られます。2 つの異なるトリガーパターンが FB の各ピクセルに使用されます。4 つの MDI ピクセルパス (A 〜 D) がすべて使用され、トリガーごとのピクセル位置は、グロス MDI 入力データのオープンまたはショート、VRAM SAM アドレス指定、VRAM SAM 転送アドレス指定を検出するようになっています。 画面は、グレースケールまたはカラーの 4 つの水平バーを表示します。これらのバーは、トリガーデータが反転するたびに、および 1 つのラスターパターンのテストが完了したときに変化します。 

注 - 解像度と VRAM 容量によっては、8 ビット/ピクセルのモードがテストされます。 

ドライバ (テストグループ 9) 

 

ハードウェアへのドライバ通信の検査に、それまで使用されていない IOCTL コールをすべてテストします。ドライバを呼び出してハードウェア更新を実行し、次に、補完ドライバ読み取りを使用するか、割り当て (mmap) られたアドレス空間を読み取ってスティミュラスと比較し、更新が正常に完了したかどうかを確認します。 

 

cg14test は、(可能な場合には) 各ステップの前後に以下の作業を行うことによって、テストの全体的流れを維持し、視覚的に混乱するのを防止します。

  1. 上書きされる前にレジスタのデータを保存します。

  2. 可能な場合はビデオを使用不可にします。

  3. 固有のテストを実行します。

  4. 保存したレジスタデータ情報を復元します。

レジスタテストに使用されるデータは、すべて 0、すべて 1、テスト中に各ビットに 1 が移動するなどに最適化されています。 

MDI および VBC チップ 制御レジスタ 

(テストグループ 1) 

 

マスター制御レジスタのビット 7 〜 0 を書き込み・読み取り照合 

  • パック化ピクセルレジスタのビット 3 〜 0 を書き込み・読み取り照合

  • 主状態レジスタのビット 7 〜 4 を読み取って 0x00 と 0x30 の発生を確認

  • 水平ブランク開始レジスタのビット 9 〜 0 を書き込み・読み取り照合

  • 水平ブランク解除レジスタのビット 9 〜 0 を書き込み・読み取り照合

  • 水平同期設定レジスタのビット 9 〜 0 を書き込み・読み取り照合

  • 水平同期解除レジスタのビット 9 〜 0 を書き込み・読み取り照合

  • 複合同期解除レジスタのビット 9 〜 0 を書き込み・読み取り照合

  • 垂直ブランク開始レジスタのビット 11 〜 0 を書き込み・読み取り照合

  • 垂直ブランク解除レジスタのビット 11 〜 0 を書き込み・読み取り照合

  • 垂直同期設定レジスタのビット 11 〜 0 を書き込み・読み取り照合

  • 垂直同期解除レジスタのビット 11 〜 0 を書き込み・読み取り照合

  • 転送サイクル設定レジスタのビット 9 〜 0 を書き込み・読み取り照合 (MDI バージョン 0 のみ)

  • 転送サイクル解除レジスタのビット 9 〜 0 を書き込み・読み取り照合 (MDI バージョン 0 のみ)

  • 障害状態アドレスレジスタのビット 15 〜 0 を書き込み・読み取り照合

  • 自動増分アドレス空間レジスタのビット 7 〜 0 を書き込み・読み取り照合

  • ビデオ基底レジスタのビット 23 〜 12 を書き込み・読み取り照合

メモリーチップ 

(テストグループ 2) 

メモリーチップテストグループは、VRAM テスト、メモリー保持、書き込み回復テストから構成されています。 

 

VRAM テスト  

データバステストは、18 個の NTA パターン (Nair、Thatte、Abraham のメモリーテスト手法) を使用して、データ障害とアドレス障害がないかどうかを検査します。このテストは、MDI_CHUNKY_XBGR_MAP アクセスモードでのみ実行されます (表 8-2 参照)。

テストは以下のように行われます。ゼロ解除しながら、FB メモリーを昇順にアクセスします。 

NTA パターンテスト番号 x は、ある位置を読み取ってデータ y が存在していることを確認します。次に、新しいデータ z をその位置に書き込みます。位置は、FB 内を昇順に移っていきます。 

 

メモリー保持 

VRAM データ保持テストは、VRAM の更新に大きな問題がないかどうかを検査します。このテスト中は、更新が有効なため、更新に欠陥がないかぎり、データ保持での問題は発生しません。 

 

このテストは、ビデオを無効にし、すべての VRAM に 0 を書き込み、指定されたメモリー保持時間 (デフォルトは 5 秒) を待ってから、すべての VRAM データを読み取って比較します。このプロセスが f のデータで繰り返されてからビデオが復元され、テストが完了します。 

 

このテストに関係する「R=数値」と「H=数値」の 2 つの新しいコマンド行パラメタがあります。R= を使用して、128 〜 1023 の範囲で更新間隔を指定することができます。更新サイクルと、システムのデフォルトとの間の時間は 123 です。H= を使用して、保持テストの保持時間を秒単位で指定することができます。

メモリーチップ 

(テストグループ 2) (続き) 

 

書き込み回復 

書き込み回復テストは、すべての EMC 割り当てモードで使用され、データ 0x0000000 を書き込み、直後にそのデータ位置を読み取って VRAM が書き込みから正しく回復できるかどうかを検査します。これをすべての位置に昇順で行います。次に、 2 回目のもう 1 つのパスが、先程とは反対のデータ 0xffffffff を、メモリーバッファーに降順で書き込みます。

 

EMC 割り当てアクセスモードは以下のとおりです。 

  • MDI_CHUNKY_XGBR_MAP

  • MDI_CHUNKY_BGR_MAP

  • MDI_PLANAR_X16_MAP

  • MDI_PLANAR_C16_MAP

  • MDI_PLANAR_X32_MAP

  • MDI_PLANAR_B32_MAP

  • MDI_PLANAR_G32_MAP

  • MDI_PLANAR_R32_MAP

MDI チップの カーソルレジスタ (テストグループ 3) 

 

MDI チップのカーソルレジスタのテスト内容は以下のとおりです。 

 

  • カーソル平面 0 レジスタのビット 31 〜 0 を書き込み・読み取り照合

  • カーソル平面 1 レジスタのビット 31 〜 0 を書き込み・読み取り照合

  • カーソル平面 0 レジスタのビット 31 〜 0 を書き込み・読み取り照合 (自動増分)

  • カーソル平面 1 レジスタのビット 31 〜 0 を書き込み・読み取り照合 (自動増分)

  • カーソル制御レジスタのビット 2 〜 0 を書き込み・読み取り照合

  • カーソルカラーレジスタ 1 のビット 28 〜 0 を書き込み・読み取り照合

  • カーソルカラーレジスタ 2 のビット 28 〜 0 を書き込み・読み取り照合

  • X カーソル位置レジスタのビット 11 〜 0 を書き込み・読み取り照合

  • Y カーソル位置レジスタのビット 11 〜 0 を書き込み・読み取り照合

  • カーソル平面 0 の非自動レジスタのテスト

  • カーソル平面 0 の自動レジスタのテスト

  • カーソル平面 1 の非自動レジスタのテスト

  • カーソル平面 1 の自動レジスタのテスト

  • カーソル平面の再試行 A テスト

  • カーソル平面の再試行 B テスト

MDI チップの CLUT レジスタ (テストグループ 4) 

MDI チップの CLUT レジスタのテスト内容は以下のとおりです。 

 

  • LUT1 レジスタ 0 〜 255 のビット 31 〜 27 と 23 〜 0 を書き込み・読み取り照合

  • LUT1 レジスタ 0 〜 255 のビット 31 〜 27 と 23 〜 0 を書き込み・読み取り照合 (自動増分)

  • LUT1D レジスタ 0 〜 255 のビット 31 〜 27 と 23 〜 0 を書き込み・読み取り照合

  • LUT1D レジスタ 0 〜 255 のビット 31 〜 27 と 23 〜 0 を書き込み・読み取り照合 (自動増分)

  • LUT2 レジスタ 0 〜 255 のビット 31 〜 27 と 23 〜 0 を書き込み・読み取り照合

  • LUT2 レジスタ 0 〜 255 のビット 31 〜 27 と 23 〜 0 を書き込み・読み取り照合 (自動増分)

  • LUT2D レジスタ 0 〜 255 のビット 31 〜 27 と 23 〜 0 を書き込み・読み取り照合

  • LUT2D レジスタ 0 〜 255 のビット 31 〜 27 と 23 〜 0 を書き込み・読み取り照合 (自動増分)

  • LUT3 レジスタ 0 〜 255 のビット 31 〜 27 と 23 〜 0 を書き込み・読み取り照合

  • LUT3 レジスタ 0 〜 255 のビット 31 〜 27 と 23 〜 0 を書き込み・読み取り照合 (自動増分)

  • LUT3D レジスタ 0 〜 255 のビット 31 〜 27 と 23 〜 0 を書き込み・読み取り照合

  • LUT3D レジスタ 0 〜 255 のビット 31 〜 27 と 23 〜 0 を書き込み・読み取り照合 (自動増分)

DAC チップの レジスタ (テストグループ 5) 

 

DAC チップのレジスタのテストグループは、RAMDAC レジスタと制御レジスタのテストから構成されています。 

 

RAMDAC レジスタ

  • アドレスレジスタのビット 7 〜 0 (0x7 最大) を書き込み・読み取り照合

  • モードレジスタのビット 7 〜 0 (ビット 5 をスキップ) を、書き込み・読み取り照合

 

制御レジスタ

  • ID レジスタのビット 7 〜 0 を読み取り、データが 0x8C であるかを確認

  • ピクセル - マスクレジスタのビット 7 〜 0 を書き込み・読み取り照合 (dac rev = 2 の場合は省略)

  • コマンド 2 レジスタのビット 7 〜 0 を書き込み・読み取り照合 (dac rev = 2 の場合は省略)

  • コマンド 3 レジスタのビット 7 〜 0 を書き込み・読み取り照合 (dac rev = 2 の場合は省略)

MDI チップの XLUT レジスタ (テストグループ 6) 

チップの XLUT レジスタグループのテスト内容は以下のとおりです。 

 

  • XLUT レジスタ 0 〜 255 のビット 7 〜 0 を書き込み・読み取り照合

  • XLUT レジスタ 0 〜 255 のビット 7 〜 0 を書き込み・読み取り照合 (自動増分)

  • XLUTD レジスタ 0 〜 255 のビット 7 〜 0 を書き込み・読み取り照合

  • XLUTD レジスタ 0 〜 255 のビット 7 〜 0 を書き込み・読み取り照合 (自動増分)

CG14 ディスプレイ(テストグループ 7) (目視のみ)  

このテストは、(それぞれ異なる色で) 画面に 256 個のボックスを表示し、次にCLUT1 エントリをシフトさせて、パターンが左から右に水平に反射したような視覚的印象を与えます。その後、パターンは回転しながら上下してから左から右に水平に反射します。 

MDI チップのテストモードリードバックレジスタ (テストグループ 8) 

読み取り専用および検証モードでバックレジスタのビット 23 〜 0 を読み取ります。 

ドライバ IOCTL (テストグループ 9) 

  • MDI_GET_CFGINFO ハードウェアの CLUT 番号、ピクセルの高さ、ピクセル幅、ピクセルモードを検査

  • FBIOGATTRreal_typefb_heightfb_widthfb_depth, fb_cmsizefb_size を検査

  • FBIOGTYPE ドライバ定義または cfginfo 値の fb_typefb_heightfb_widthfb_depthfb_sizefb_cmsize を検査

  • FBIOGVIDEO ハードウェアに返される状態を検査

  • FBIOSVIDEO オフ、オフ、オン、オン、オフを設定してハードウェアを検査

  • FBIOVERTICAL (FBIOSVIDEO に埋め込まれたものを使用)

  • MDI_VRT_CNTL ビデオ割り込みを無効、無効、有効、有効、無効にし、ハードウェアがそのとおりに動作するかを検査

  • MDI_SET_PPR さまざまなモードを設定し、ハードウェアの動作を検査

  • MDI_SET_COUNTERS HSS、HSC、XCC、HBC、XCS、HBS、CSC、VSS、VSC、VBC、VBS、HCT、VCT を設定し、ハードウェアの動作を検査

  • MDI_SET_XLUT xlut を設定し、ハードウェアの動作を検査

  • MDI_GET_XLUT xlut を取得し、ハードウェアの動作を検査

  • MDI_SET_CLUT clut (適用可能として 1 〜 3) を設定し、ハードウェアの動作を検査

  • MDI_GET_CLUT clut (適用可能として 1 〜 3) を取得し、ハードウェアの動作を検査

  • FBIOPUTCMAP clut1 を設定し、一致を検査

  • FBIOGETCMAP clut1 が取得したものと一致しているかを検査

  • FBIOSATTR emu_typeFBTYPE_MDICOLOR に設定して検査

ドライバ IOCTL (テストグループ 9) (続き) 

  • FBIOGATTR 検査

  • FBIOGCURMAX x および y サイズがドライバ定義と一致しているかを検査

  • FBIOSCURSOR 3 つの位置の設定がハードウェアに一致しているかを検査

  • FBIOGCURSOR ドライバが直前の設定を認識しているかを検査

  • FBIOSCURPOS 3 つの位置の設定がハードウェアに一致しているかを検査

  • FBIOGCURPOS ドライバが直前の設定を認識しているかを検査

  • MDI_SET_CURSOR CCR、XCU、および YCU カーソルハードウェアレジスタを設定して検査

表 8-2 cg14test の NTA テストパターン

NTA テスト パターン 

番号 = x

テストデータ = y

新データ = z

1.00x000000000x01010101
1.50x010101010xffffffff
2.10xffffffff0xf1f1f1f1
2.20xf1f1f1f10x33333333
3.10x333333330xf0f0f0f0
3.20xf0f0f0f00x0f0f0f0f
4.10x0f0f0f0f0x55555555
4.20x555555550xaaaaaaaa
5.10xaaaaaaaa

0x05050505 (1x)

0x88888888 (2x)

5.20x888888880xf5f5f5f5
6.10xf5f5f5f5

0x00000000 (1x)

0x5f5f5f5f (2x)

6.20x5f5f5f5f0x11111111
7.10x11111111

0x00000000 (1x)

0xcccccccc (2x)

7.20xcccccccc0xdbdbdbdb
8.10xdbdbdbdb0x6d6d6d6d
8.20x6d6d6d6d0x6b6b6b6b
9.10x6b6b6b6b0x0000000
9.20x00000000-

cg14test のオプション

ダイアログボックスを表示するには、システムマップにあるテスト名を右クリックし、Test Parameter Options を選択します。システムマップにこのテスト名が表示されない場合は、グループツリーを展開すると表示される場合があります。展開しても表示されない場合は、このテストに合ったデバイスがシステムに含まれていない可能性があります。詳細は、『SunVTS 4.4 ユーザーマニュアル』を参照してください。

図 8-1 cg14test のテストパラメタオプションダイアログボックス

Graphic

表 8-3 cg14test のオプション

オプション 

説明 

FB Locking 

詳細は、「フレームバッファーのテスト」を参照してください。

Long Test 

このオプションを有効にすると、MDI テストモードリードバックテストの「カラーバー」画面で、clock=0 モードと clock=1 モードのすべての SAM 転送を検査します。無効にすると、clock=1 モードで実行され、最初の 8 つのアドレスと最初の SAM 転送だけが検査されます。 

Processor Affinity 

マルチプロセッサシステムの場合に、テストするプロセッサ番号を指定します。 

cg14test のテストモード

グラフィックテストの性格上、グラフィックテスト中にフレームバッファーを読み書きすると、ユーザーの作業の障害になることがあります。このため、このテストは、オフラインの機能テストモードでのみ使用することができます。

表 8-4 cg14test のテストモード

テストモード 

サポート 

説明 

接続テスト 

× 

サポートされていません。 

機能テスト 

(オフライン) 

○ 

このモードでは、cg14 フレームバッファーをテストするときにすべてのサブテストが使用されます。ユーザーは、TRMB サブテストに対して Long モードを選択できます。 

cg14test のコマンド行構文

/opt/SUNWvts/bin/cg14test 標準引数 -o dev=デバイス名, lock=E(nable)/D(isable),L,I

表 8-5 cg14test のコマンド行構文

引数 

説明 

dev=デバイス名

テストする cg14 デバイスファイルのパスを指定します。

例: /dev/fbs/デバイス名

lock=E(nable)/D(isable)

ウィンドウシステムのロックオプションを有効または無効にします。詳細は、「フレームバッファーのテスト」を参照してください。

デバイスがウィンドウシステムのディスプレイの場合は、このオプションを使用しないでください。 

L

長時間の TMRB テストを有効にします。 

I

カーソルに対するオプションの ioctl テストを有効にします。 

注 - このオプションを特定した場合は、cg14test の実行中にマウスを動かさないでください。


注 -

64 ビットのテストは、sparcv9 サブディレクトリに格納されています (/opt/SUNWvts/bin/sparcv9/テスト名)。このディレクトリにテストが存在しない場合は、そのテストは、32 ビットのテストとしてだけ実行することができます。詳細は、「32 ビットテストと 64 ビットテスト」を参照してください。