This chapter provides an overview of the diagnostic tools available to you.
There are three types of diagnostics and a verification program available for troubleshooting the GT Graphics Subsystem, as follows:
To understand how the internal self test works, see Figure 3-1 and the explanation below.
When the system unit is powered up, the Host CPU OpenBoot PROM runs a series of diagnostics, known as the system unit power-on self test (POST). The system unit POST, among other things, probes for a default frame buffer (in this case, the GT Graphics Subsystem). The CPU attempts to read address zero, the starting address for valid SBus openboot PROMs.
If the system unit POST gets the proper response from reading the SBus Adapter Board openboot PROM, it assumes a device is plugged into the slot. The CPU openboot PROM code then proceeds to move or copy the GT Openboot PROM FORTH code into CPU memory. If the system unit POST fails the probe, it halts and indicates an error on the four keyboard LEDs.
The GT Graphics Subsystem has its own internal tests, which we refer to here as the internal self test. The internal self test is executed out of the GT Internal Self Test PROM (on the Graphics Processor Front End Board) when the Graphics Tower is powered on with the DIAG/NORM switch in the DIAG position (see "Running the Internal Self Test" on page 38).
The GT OpenBoot PROM on the Graphics Processor Rendering Pipeline Board is used during the internal self test. The GT OpenBoot PROM has FORTH code routines for drawing and deleting characters on the GT monitor. When the GT system is the only frame buffer in the system or the first frame buffer the CPU finds when probing the SBus slots, the CPU Openboot PROM uses the GT Openboot PROM routines to establish a display device (/dev/console) for the user.
When the Graphics Tower is powered-up with the diagnostic switch in the DIAG position, four LED indicators on the rear of the Graphics Tower indicate the diagnostic status of the GT Graphics Subsystem. Figure 3-2 shows the location of the diagnostic switch and indicators.
To run the internal self test:
See steps 1 through 5 of "System Power-Down" on page 72.
Wait at least two minutes after powering down the Graphics Tower before powering up again. This gives the Graphics Tower time to reset.
Note - You do not have to power down the system unit nor do you have to disconnect the Host Adapter Cable (between the system unit and the GT Graphics Tower). Since the internal self test attempts to display patterns, the monitor should be connected to the GT Graphics Tower.
The switch is in the DIAG position when the bottom half of the switch is pressed in.
See Table 3-1. The internal self test takes 4 minutes 45 seconds. Where two FRUs are indicated, the first FRU is the most-likely failure.
To resume normal system operation following the internal self test:
The switch is in the NORM position when the top half of the switch is pressed in. You do not have to cycle the power on the GT Graphics Tower.
Power off the system unit, wait about two minutes, and power on the system unit.
Table 3-1 Graphics Tower Diagnostic Indicators
When the internal self test is first started, the diagnostic indicators all flash on and off three times before the test sequence begins. Each test displays for a minimum of 2 seconds so you can observe the test progression.
If a monitor is attached, you can observe patterns as the tests progress. These patterns are shown in the following two figures. Figure 3-3 shows the eight blocks that display as the result of the Frame Buffer test of the plane groups. the screen will flicker and flash. This is normal.
Figure 3-3 Console View of Plane Groups Test
Figure 3-4 shows the patterns displayed by the Rendering Pipeline and Frame Buffer tests. Wherever the colors Red, Green, and Blue are identified, they should be the pure RGB colors.
Three anti-aliased lines run diagonally from the upper left to the lower right. The line in the middle is red, the other two are green, Three non-anti-aliased lines run diagonally from the top right to the bottom left. These lines are red at one end and blue at the other, with all the blending colors in between.
There are four equilateral triangles. The top triangle is green and flat-shaded. The right triangle is a vertex-shaded, non-anti-aliased. The left and bottom triangles are vertex-shaded, anti-aliased.
There are four purple dots in the center of the intersections of the six lines.
Figure 3-4 Console View of Patterns Tests
The gtprobe test is a standalone utility that checks for proper operation of the interface to the GT Graphics Subsystem. This test can be run from an attached auxiliary terminal, from a remote log in terminal, or from the system terminal.
This test performs the following operations:
If the routine reaches the MIA test register, it writes test patterns to the register and reads one back for verification.
Note - This test must be run from an attached auxiliary terminal or from a remote log in terminal. If you can see anything on the attached system monitor, gtprobe probably won't find any problems.
The gtprobe command is as follows:
gtprobe -v
where -v is the verbose option which causes gtprobe to print several sequence messages in addition to the basic messages.
To run the gtprobe test:
You should see a series of messages something like this:
At start up, gtprobe prints all devices that are installed in each SBus slot (slots 1, 2, and 3). If gtprobe doesn't find a GT device, it will default to the first empty SBus slot.
In the above example, the gt device is in SBus slot 1. If gtprobe found the SBus slot, accept the default (press Return). If gtprobe did not find the SBus slot, the GT openboot SBus probe sequence did not detect a GT device during boot time. Type the slot number you believe to have the SBus Adapter Board and press Return.
If you accept the default and press Return, you should now see a series of messages something like this:
If you don't see the complete message, all the way to
Done verifying the GT Openboot PROM's checksum.
gtprobe has found a problem. Analyze the messages to determine the nature of the problem, such as one of the following:
If you do see the complete message, gtprobe has passed without finding any errors.
The diagnostics described here can be run either as a stand-alone program or under the standard SunDiag. SunDiag probes the system kernel for installed hardware devices then displays a control panel with the devices it found.
The GT SunDiag diagnostics consist of a sequence of subtests that can accurately locate and identify failing FRUs. All tests are non-destructive and maintain the system integrity during and after the tests are run.
Caution - While running the SunDiag diagnostic, do not run a Pixrects application or any other application that uses the GT accelerator port. If you do, you will disturb the SunDiag tests, resulting in possible false errors.
Note - The GT SunDiag diagnostics requires approximately 1.5M bytes of disk space in the /tmp directory to extract its working files. If this space is not available, the diagnostic will fail and report warning and error messages indicating lack of disk space.
You can run SunDiag one of four ways:
The following information is written with the assumption that you are familiar with the SunDiag On-line System Exerciser. If not, read the SunDiag User's Guide.
To start SunDiag:
For SunOS 4.x, type:
For Solaris 2.x, type:
Figure 3-5 shows an example SunDiag window (SunView version).
Figure 3-5 The SunDiag Interface
See Figure 3-6. SunDiag automatically probes for available devices. A check mark means that the device is enabled for testing. If the gt device is not shown, the GT Graphics Subsystem is not properly installed.
Figure 3-6 The SunDiag Control Panel
To test the GT Graphics Subsystem, enable the "Graphics Tower GT0" test under "User Tests" on the SunDiag control panel. SunDiag 2.0.4 does not allow you to make sub-test selections for the GT diagnostics. By default, SunDiag runs all of the available tests, except the interactive tests. See "Test Descriptions" on page 53. The Graphics Tower tests take about 12 minutes to run, if run without any other tests.
Subsequent versions of SunDiag will allow you to select specific tests by way of an Option button.
Note -
To avoid excessive test cycle times when testing the GT Graphics
Subsystem, follow these instructions:
1. Enable Single Pass on the SunDiag Options menu.
2. Enable Verbose on the SunDiag Options menu.
3. Do not select any other diagnostic tests.
Following this procedure will ensure that gttest will run once, report status as
each test routine executes, and then exit.
Error messages display in the console window (lower left corner of the interface menu). The SunDiag error messages are described on page 58.
The SunDiag tty interface lets you run SunDiag from a remote workstation over the network, or from a terminal attached to one of the system unit serial ports. See the SunDiag User's Guide.
To start SunDiag with the tty interface from SunOS 4.x:
To start SunDiag with the tty interface from Solaris 2.x:
The GT system-level diagnostic program is
Run the on-line command tests from the SunOS 4.x operating system as follows:
Run the on-line command tests from the Solaris 2.x operating system as follows:
The
k
B=l
Figure 3-7 shows three examples of SunDiag on-line commands.
Figure 3-7 SunDiag On-Line Command Examples
Figure 3-8 shows an overview of the SunDiag tests. The subtests are run in the order shown in the figure. The subtests assume that the GT Graphics Subsystem has an active working interface with the SPARCstation CPU. If for any reason SunDiag cannot make the connection, further testing is not possible and SunDiag will report a fatal unrecoverable error.
The SunDiag error messages are described starting on page 58.
Figure 3-8 SunDiag Overview
The direct ports tests check the non-accelerated portion of the GT.
The video memory array test selects and tests all 64 by 64 pixrect regions covering the entire video memory planes, including the 2 by 8 alpha/overlay plane, 24-bit depth (Z buffer) plane, 10-bit WID plane, and two cursor planes. The planes are tested both as single-buffered and as double-buffered. The memory is tested with random patterns generated each time the test is started. If the test detects an error, SunDiag reports the defective plane and location.
This test performs a destructive read-write test on the Frame Buffer lookup tables. If the test detects a failure, SunDiag reports the location of the failure.
At the end of the test, red, green, and blue stripes display for approximately 30 seconds for visual verification of the digital-to-analog converters (DACs).
The accelerator port tests check the accelerated portion of the GT.
This test checks the Graphics Processor Front End Board Local Data Memory. The Local Data Memory test is a non-destructive read-write memory test. This test aborts at the first error and reports a memory failure.
The Setup Processor shared memory test verifies that the i860 microprocessor can write and read the setup processor shared memory without error.
The rendering pipeline tests checks each of the three rendering pipeline stages: setup processor, edge walker, span interpolator, and Pixel Bus Multiplexer. The Edge Walker and Span Interpolator tests are a series of small tests that verify the functionality of the edge walker and span interpolator ASICs in vectors, triangles, Gouraud shading, alpha blending, and anti-aliasing rendering. The results of the tests are verified by means of checksum values accumulated from data output by the Rendering Pipeline. SunDiag reports any subtest failures.
The video memory array can be accessed by the i860 microprocessor via the Local Bus. This is a destructive read-write test which verifies that all the Frame Buffer video memory locations are good. If the test detects an error, SunDiag reports the defective plane and location.
The Frame Buffer Output Section contains a diagnostic feedback register in the RAMDACs. The Frame Buffer Output Section test creates various windows in the Window ID plane then sets up the look-up tables (LUTs) associated with these values. The test then writes known values to the video memory of these windows. Next, the Frame Buffer is switched into trace mode, which reads the video through the diagnostic feedback register and puts the data into the shadow memory. Finally, the test compares the contents of the shadow memory with the expected values via checksum and determines if the Output Section is operating properly.
The integration test is a sequence of subtests running GT display list programs. These subtests ensure the GT Graphics Subsystem integrity at the system level. The subtests test all features of the hardware at the application level, reading the results from the Frame Buffer with Pixrect calls and verifying the results by comparing against known good images.
These tests use a frame buffer region of 1152 by 900 pixels, in the upper left corner of the screen, regardless of the size screen attached to the system. The tests use previously-generated test images for each color plane (red, green, and blue). These test images are stored in a reduced size (64 times the normal size) to save disk space.
This test renders fairly large vector objects with aliased, non-aliased, and shaded vectors.
This test renders objects with aliased, non-aliased shaded, and shaded triangles.
This test renders an object with both parametric and NURBS [1]) curves of different orders.
This test renders and clips an object around and in front on the screen.
This test renders objects with the Z-buffer-compare attribute turned on.
This test renders an object with the edge highlighting attribute turned on.
This test renders a scene with two transparency modes (standalone and alpha blend) in various degrees. This results in a two-pass transparency of the objects in the scene.
This test renders an object with the depth-cueing attribute turned on.
This test renders an object with multiple light sources and Gouraud shading for front and back surfaces.
This test generates diverse text lines with different attributes for checking.
This test has two parts: a pick detect test and a pick echo test.
This test renders a moving, double-buffered object into the image plane while a second SunOS process performs a read-write test to all planes of the direct port on the Frame Buffer. This test simulates conditions in the real world, where rendering processes and windows operation run concurrently.
This test displays an object in stereo mode. The user verifies proper operation by looking at the screen with stereo glasses.
The user can draw and verify the light pen functionality on the screen.
The GT SunDiag error messages are described below. The error messages are listed in alphabetical order.
Failed the read-write of the Frame Buffer lookup tables. "#n" is the CLUT number. [color_index] is the color index value. [value] is a hexadecimal value. "HFB" is the GT Frame Buffer Board.
Failed the read-write of the Frame Buffer lookup tables. "#n" is the CLUT number. [color_index] is the color index value. [value] is a hexadecimal value. "HFB" is the GT Frame Buffer Board.
Failed the Arbitration integration test. [address] is the linear address of the bad memory cell. "HFB" is the GT Frame Buffer Board.
Failed the Arbitration integration test. [plane_group] is one of the following: Image plane A or B, Depth plane, WID plane, Cursor plane, or Fast Clear Plane A or B. [address] is the linear address of the bad memory cell. "HFB" is the GT Frame Buffer Board.
A software error. You may have to re-boot the SPARCstation.
Indicates a software initialization problem. [filename] is the file that SunDiag can't open.
A software error.
Indicates a software initialization problem. [filename] is the display list file that SunDiag can't read.
SunDiag is unable to communicate with the GT Graphics Subsystem. A software error or hardware error with the GT SBus Adapter Board, HAC Cable, or Front End Board.
Failed accelerator port video memory test. [code] is the error code number. [failure] is an explanation of the error indicated by [code]. "HGPFE" is the GT Front End Board.
Failed the depth cueing integration test. Only the failing component (RED, GREEN, or BLUE) appears in the message.
Failed accelerator port video memory test. [code] is the error code number. [failure] is an explanation of the error indicated by [code]. "HGPFE" is the GT Front End Board.
Failed the direct port video memory test, tested from the host. [plane_group] is one of the following: Image plane A or B, Depth plane, WID plane, or Cursor plane. [address] is the linear address of the bad memory cell. "HFB" is the GT Frame Buffer Board.
Failed the direct port video memory test, tested from the host. [plane_group] is one of the following: Image plane A or B, Depth plane, WID plane, or Cursor plane. [address] is the linear address of the bad memory cell. "HFB" is the GT Frame Buffer Board.
A problem with system initialization.
This message indicates an unknown problem with the lightpen. The lightpen test can not proceed.
A software error. May have to re-boot the SPARCstation.
A software error. May have to re-boot the SPARCstation.
A software error. May have to re-boot the SPARCstation.
A software error. May have to re-boot the SPARCstation.
Failed accelerator port video memory test. [code] is the error code number. [failure] is an explanation of the error indicated by [code]. "HGPFE" is the GT Front End Board.
A hardware problem. SunDiag was unable to communicate with the Front End Board. Indicates a problem with the SBus Adapter Board, HAC cable, or Front End Board.
A software error. May have to re-boot the SPARCstation.
A software error. [message] further describes the problem. May have to re- boot the SPARCstation.
Failed the hidden surface removal integration test. Only the failing component (RED, GREEN, or BLUE) appears in the message.
A software error. May have to re-boot the SPARCstation.
A software error. May have to re-boot the SPARCstation.
A software error. May have to re-boot the SPARCstation.
Failed accelerator port video memory test. [code] is the error code number. [failure] is an explanation of the error indicated by [code]. "HGPFE" is the GT Front End Board.
Failed the accelerator port test of the Front End Local Data Memory. [code] is the error code number. [failure] is an explanation of the error indicated by [code]. "HGPFE" is the GT Front End Board.
Failed the lighting and shading integration test. Only the failing component (RED, GREEN, or BLUE) appears in the message.
Failed the Picking integration test. Only the failing component (RED, GREEN, or BLUE) appears in the message.
Failed the Picking integration test. Only the failing component (RED, GREEN, or BLUE) appears in the message.
Failed the picking integration test. Only the failing component (RED, GREEN, or BLUE) appears in the message.
Failed the poly edges highlighting integration test. Only the failing component (RED, GREEN, or BLUE) appears in the message.
Failed the accelerator port Rendering Pipeline test. [code] is the error code number. [failure] is an explanation of the error indicated by [code]. "HGPFE" is the GT Front End Board.
Failed the spline curves integration test. Only the failing component (RED, GREEN, or BLUE) appears in the message.
Failed the accelerator port Rendering Pipeline Setup Processor shared RAM test. [code] is the error code number. [failure] is an explanation of the error indicated by [code]. "HGPFE" is the GT Front End Board.
System initialization failed. Most likely a hardware problem with the GT Front End Board.
Failed the texts integration test. Only the failing component (RED, GREEN, or BLUE) appears in the message.
Failed the transparency integration test. Only the failing component (RED, GREEN, or BLUE) appears in the message.
Failed the triangles integration test. Only the failing component (RED, GREEN, or BLUE) appears in the message.
SunDiag is unable to open the GT device driver. Make sure that there is a /dev/gt0 device driver and that the permissions are correct.
Failed the vectors integration test. Only the failing component (RED, GREEN, or BLUE) appears in the message.
Failed the viewport clipping integration test. Only the failing component (RED, GREEN, or BLUE) appears in the message.
Failed accelerator port video memory test. [code] is the error code number. [failure] is an explanation of the error indicated by [code]. "HGPFE" is the GT Front End Board.
The GT verification program, gt_quicktest, displays wireframe and polygon models within a window. It loads several models and displays them, either singly or in sequence.
To start the GT verification program:
For the Sun)S 4.x operating system, type:
For the Solaaris 2.x operating system, type:
The verification tool window will appear. See Figure 3-9.
Figure 3-9 gt_quicktest window
The selections are described in Table 3-2.
Table 3-2 gt_quicktest Menu Selections