SunVTS 2.1.3 Test Reference Manual
  Cerca solo questo libro
Scarica il manuale in formato PDF
CHAPTER 6

Color Graphics Frame Buffer Test (cg14test)


cg14test checks the cg14 frame buffer card. cg14test is specific to the VSIMM (Video SIMM) devices in the SPARCstation 10 SX and the SPARCstation 20 SX.

CAUTION Caution - Due to possible conflicts between SunVTS cg14 frame buffer tests and OPEN LOOK applications that use the cg14 frame buffer, the following restrictions apply when running cg14test:
Do not run graphic applications other than OPEN LOOK while SunVTS is running frame buffer tests.
Do not run OPEN LOOK programs that generate video updates outside or on top of the SunVTS window.
Do not close the SunVTS window to an icon while it is running frame buffer tests.
Ensure that the frame buffer locking option is enabled from the Options window (see the section about testing frame buffers in SunVTS 2.1 User's Guide for details).

cg14test Groups

There are nine test groups in cg14test:
  1. MDI and VBC Chip Control Registers

  2. Memory Chips

  3. MDI Chip Cursor Registers

  4. MDI Chip CLUT Registers

  5. DAC Chip Registers

  6. MDI Chip XLU Registers

  7. CG14 Display (visual only)

  8. MDI Chip Testmode Readback in 8-bit mode

  9. Driver IOCTLs

TABLE 6-1 cg14
Test GroupsDescription
Hardware (Groups 1-6)These test groups are tested by opening /dev/fbs/cgfourteenX, mapping the MDI Control Address Space, modifying the target test location (using direct writes to the mapped address space), reading from the mmapped address space for verification, and closing the device.
Visual Pattern (Group 7)This subtest loads a visual pattern of 256 colors, then rotates the pattern around. You verify this test by seeing it display.
Data Propagation (Group 8)This test group is tested by loading the frame buffer (FB) memory with four neutral data patterns, then setting a target FB pixel with data that triggers the test mode readback latch. The result is read from the readback register after vertical blanking occurs. Two different trigger patterns are used at each FB pixel. All four MDI pixel paths (A - D) are used, and the pixel locations for each trigger are designed to detect gross MDI input data opens or short, VRAM SAM addressing, and VRAM-to-SAM transfer addressing. The screen shows four horizontal bars, which are either greyscale or colored. These bars change each time the trigger data is inverted, and as it completes the testing of a raster pattern.

NOTE -- If the resolution and VRAM size permits, 8-bits per pixel mode are tested.

TABLE 6-1 cg14(Continued)
Test GroupsDescription
Driver (Group 9)Test all IOCTL calls that have not yet been used to verify proper driver communication to the hardware. Call the driver to perform a hardware update, and then confirm that the update was successful by using the complementary driver read, or reading the mmap'ed address space and comparing it against the stimulus.

cg14test performs the appropriate steps before and after each test (if possible) to maintain context and prevent visual confusion by saving the register data before it is overwritten, disabling video (if possible), performing the specific test, and restoring the saved register data information.

The data used for register testing is optimized to include all 0's, all 1's, and walking a 1 through each bit being tested.

MDI and VBC Chip Control Registers (Group 1)Master Control Register bits 7-0 write/read verify Packed Pixel Register bits 3-0 write/read verify Master Status Register bits 7-4 read-only verify 0x00 and 0x30 occur

Horizontal Blank Start Register bits 9-0 write/read verify Horizontal Blank Clear Register bits 9-0 write/read verify Horizontal Sync Set Register bits 9-0 write/read verify Horizontal Sync Clear Register bits 9-0 write/read verify Composite Sync Clear Register bits 9-0 write/read verify Vertical Blank Start Register bits 11-0 write/read verify Vertical Blank Clear Register bits 11-0 write/read verify Vertical Sync Set Register bits 11-0 write/read verify Vertical Sync Clear Register bits 11-0 write/read verify Transfer Cycle Set Register bits 9-0 write/read verify (MDI revision 0 only)

Transfer Cycle Clear Register bits 9-0 write/read verify (MDI revision 0 only)

Fault Status Address Register bits 15-0 write/read verify Auto-increment Address Space Register bits 7-0 write/read verify Video Base Register bits 23-12 write/read verify

Memory Chips (Group 2)The Memory Chips test group includes VRAM Testing, Memory Retention, and Test Write Recovery.

VRAM Testing The Data Bus Test uses 18 NTA patterns (Nair, Thatte, and Abraham's testing procedure for RAM) to check for data and address faults. This test is performed in MDI_CHUNKY_XBGR_MAP access mode only. See Table 7-2.

TABLE 6-1 cg14(Continued)
Test GroupsDescription
Memory Chips (Group 2) ContinuedVRAM Testing (Continued) The test ascends through the Frame buffer memory, clearing it to 0's. The NTA pattern test number x reads a location to make sure test data y is present. It then writes new data z to that location. The location ascends through the FB sequentially. See Table 7-2.

Memory Retention VRAM Data Retention checks for gross problems with the VRAM refresh. Since refresh is active during this test, no retention problems should occur unless the refresh is defective.

This test turns off the video, writes 0's to all the VRAM, waits the specified memory_hold time (the default is five seconds), then reads and compares all VRAM data. This process is repeated with data of f's, then the video is restored and the test is complete.

There are two new command line parameters related to this test: R=number and H=number. R= lets the user specify the refresh interval from 128-1023. The time between refresh cycles and the system default is 123. H= lets the user specify the retention test hold time in seconds.

Test Write Recovery A write recovery test is used in all the EMC mapping modes to write data to 0's followed by immediately reading that data location to see if the VRAM can recover from a write correctly. This is done to all sequential ascending locations. Next, a second independent pass of memory is made with the complementary data of 0xffffffff written to descending locations of the FB memory buffer.

The EMC mapping access modes are: 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

TABLE 6-1 cg14(Continued)
Test GroupsDescription
MDI Chip Cursor Registers (Group 3)The MDI Chip Cursor Registers are:

Cursor Plane 0 Register bits 31-0 write/read verify Cursor Plane 1 Register bits 31-0 write/read verify Cursor Plane 0 Register bits 31-0 write/read verify (with auto increment) Cursor Plane 1 Register bits 31-0 write/read verify (with auto increment Cursor Control Register bits 2-0 write/read verify Cursor Color Register 1 bits 28-0 write/read verify Cursor Color Register 2 bits 28-0 write/read verify X-Cursor Location Register bits 11-0 write/read verify Y-Cursor Location Register bits 11-0 write/read verify Cursor Plane 0 Non-Auto Registers test Cursor Plane 0 Auto Registers test Cursor Plane 1 Non-Auto Registers test Cursor Plane 1 Auto Registers test Cursor Planes Retry A test Cursor Planes Retry B test

MDI Chip CLUT Registers (Group 4)The MDI Chip CLUT Registers are:

LUT1 Registers 0-255 bits 31-27 & 23-0 write/read verify LUT1 Registers 0-255 bits 31-27 & 23-0 write/read verify (with auto increment) LUT1D Registers 0-255 bits 31-27 & 23-0 write/read verify LUT1D Registers 0-255 bits 31-27 & 23-0 write/read verify (with auto increment) LUT2 Registers 0-255 bits 31-27 & 23-0 write/read verify LUT2 Registers 0-255 bits 31-27 & 23-0 write/read verify (with auto increment) LUT2D Registers 0-255 bits 31-27 & 23-0 write/read verify LUT2D Registers 0-255 bits 31-27 & 23-0 write/read verify (with auto increment) LUT3 Registers 0-255 bits 31-27 & 23-0 write/read verify LUT3 Registers 0-255 bits 31-27 & 23-0 write/read verify (with auto increment) LUT3D Registers 0-255 bits 31-27 & 23-0 write/read verify LUT3D Registers 0-255 bits 31-27 & 23-0 write/read verify (with auto increment)

TABLE 6-1 cg14(Continued)
Test GroupsDescription
DAC Chip Registers (Group 5)The DAC Chip Registers test group includes the RAMDAC registers and control registers.

RAMDAC Registers Address Register bits 7-0 (0x7 maximum) write/read verify Mode Register bits 7-0 (skip bit 5) bits write/read verify

Control Registers ID Register bits 7-0 r/o verify data is 0x8C Pixel-Mask Register bits 7-0 write/read verify (skipped if dac rev = 2) Command2 Register bits 7-0 write/read verify (skipped if dac rev = 2) Command3 Register bits 7-0 write/read verify (skipped if dac rev = 2)

MDI Chip XLUT Registers (Group 6)The MDI Chip XLUT Registers are:

XLUT Registers 0-255 bits 7-0 write/read verify XLUT Registers 0-255 bits 7-0 write/read verify (with auto increment) XLUTD Registers 0-255 bits 7-0 write/read verify XLUTD Registers 0-255 bits 7-0 write/read verify (with auto increment)

CG14 Display (visual only) Group 7)This test visually displays 256 boxes on the screen (each in a different color), and then shifts the CLUT1 entries giving the visual impression of the pattern mirroring itself from left to right horizontally. The pattern then rotates up, down, followed by mirroring itself horizontally left to right.
MDI Chip Test Mode Readback Register (Group 8)This Test Mode reads back register bits 23-0 in read-only and verify modes.
TABLE 6-1 cg14(Continued)
Test GroupsDescription
Driver IOCTLs (Group 9)MDI_GET_CFGINFO check # of CLUT's, pixel height, pixel width, and pixel mode against hardware

FBIOGATTR check real_type, fb_height, fb_width, fb_depth, fb_cmsize, and fb_size against cfginfo values FBIOGTYPE check fb_type, fb_height, fb_width, fb_depth,fb_size, and fb_cmsize against driver defines or cfginfo values

FBIOGVIDEO check status returned against hardware FBIOSVIDEO set off, off, on, on, off verifying against hardware FBIOVERTICAL (imbedded in FBIOSVIDEO) MDI_VRT_CNTL turn off, off, on, on, off the video interrupt enable and verify the hardware agreesMDI_SET_PIXELMODE set different modes and verify against the hardware MDI_SET_PPR set the different modes and verify against the hardware

MDI_SET_COUNTERS set HSS, HSC, XCC, HBC, XCS, HBS, CSC, VSS, VSC, VBC, VBS, HCT, and VCT then verify against hardware MDI_SET_XLUT set xlut and verify against hardware MDI_GET_XLUT get xlut and verify against hardware MDI_SET_CLUT set clut (1-3 as applicable) and verify against hardware

MDI_GET_CLUT get clut (1-3 as applicable) and verify against hardware

FBIOPUTCMAP set and verify clut1 matches FBIOGETCMAP verify clut1 matches get FBIOSATTR set emu_type to FBTYPE_MDICOLOR and verify FBIOGATTR check

FBIOGCURMAX verify x and y size match driver defines FBIOSCURSOR verify set at 3 locations matches hardware FBIOGCURSOR verify driver knows what set(s) just did FBIOSCURPOS verify set at three locations matches hardware FBIOGCURPOS verify driver knows what set(s) just did MDI_SET_CURSOR set then check CCR, XCU, and YCU cursor hardware registers

TABLE 6-2 cg14test
NTA Test Pattern Number = xTest Data = yNew Data = z
1.00x000000000x01010101
1.50x010101010xffffffff
2.10xffffffff0xf1f1f1f1
2.20xf1f1f1f10x33333333
3.10x333333330xf0f0f0f0
TABLE 6-2 cg14test(Continued)
NTA Test Pattern Number = xTest Data = yNew Data = z
3.20xf0f0f0f00x0f0f0f0f
4.10x0f0f0f0f0x55555555
4.20x555555550xaaaaaaaa
5.10xaaaaaaaa0x05050505 (1x) 0x88888888 (2x)
5.20x888888880xf5f5f5f5
6.10xf5f5f5f50x00000000 (1x) 0x5f5f5f5f (2x)
6.20x5f5f5f5f0x11111111
7.10x111111110x00000000 (1x) 0xcccccccc (2x)
7.20xcccccccc0xdbdbdbdb
8.10xdbdbdbdb0x6d6d6d6d
8.20x6d6d6d6d0x6b6b6b6b
9.10x6b6b6b6b0x0000000
9.20x00000000-

cg14test Options

Internal bitmap(305x180)

FIGURE 6-1 cg14test Option Menu
TABLE 6-3 cg14test
OptionsDescription
FB LockingSee the section about Testing Multiple Frame Buffers in the SunVTS 2.1 User's Guide for details.
Long TestWhen enabled, the color bar screen(s) in the MDI Testmode Readback test checks all SAM transfers in clock=0 mode and clock=1 mode. If Long test is disabled, clock=1 runs checks on the first eight addresses and the first SAM transfer only.
Processor AffinityFor multiprocessor systems, indicates the processor to be tested.

cg14test Command Line Syntax

/opt/SUNWvts/bin/cg14test standard_arguments -o dev=device_name,
lock=E(nable)/D(isable),L,I

TABLE 6-4 cg14test
ArgumentExplanation
dev=device_nameSpecifies the path of the cg14 device file to be tested; for example: /dev/fbs/device_name.
lock=E(nable)/
D(isable)
Enables and disables the window system locking option. See the
Testing Multiple Frame Buffers sections in the SunVTS 2.1 User's
Guide for details. Do not use when your device is the window
system display.
LEnables the long TMRB test.
IEnables optional driver ioctl tests for cursor. Note- Do not move the mouse during the cg14test when you run this option.

cg14test Test Modes

Due to the nature of graphic tests, reading from or writing to the frame buffer during graphic tests will disturb user operation. This test is only available in Functional test mode.
The Functional test uses all subtests to test the cg14 frame buffer. The user can select the long mode for TRMB subtest.

cg14test Error Messages

TABLE 6-5 cg14test

Error MessageProbable Cause(s)Suggested Action (if applicable)
6002MDI name register = numberCG14 video board
6004MDI Cursor planes retry test maximum retry limit exceededCG14 video board
6006name error messageCG14 video boar
6008Failed open of file name,Disk

errno=numberCPU board
6010Failed write to file name,CG14 video board

errno=numberCPU board


Disk
6012Failed close of file name,Disk

errno=numberCPU board
6014MDI chip TestMode Readback, number-bit name mode, offset= number pixelpipe=name clock=number exp=number obs=number

6016MEM (name), Data RetentionCG14 video board

offset= number exp=number
obs=number
CPU board
6018MEM (name), NTA name offset=CG14 video board

number exp=number obs=numberCPU board
6020MEM (name), WRRD nameCG14 video board

offset= number exp=number
obs=number
CPU board
6022failed, mapping name space,CG14 device file

errno = numberSunOS


CG14 video board


CPU board
TABLE 6-5 cg14test(Continued)

Error MessageProbable Cause(s)Suggested Action (if applicable)
6024MEM (name), WRRD nameSunOS

offset= number exp=number
obs=number
CG14 video board


CPU board
6026VBC Control RegisterCG14 video board

exp=number obs=numberCPU board
8002name is an invalid
parameter for name!
Operator error
8004unable to close device nameCG14 device file


SunOS


CG14 video board
8006invalid CG14 device typeCG14 device file

from nameSunOS


CG14 video board
8008IOCTL Error: nameCPU board


CG14 video board
8008IOCTL(name) nameCPU board


CG14 video board
8010unable to unlock OL windowsSunOS


Operator error
8012IOCTL(name,CLUTnumber) nameCG14 device file


SunOS


CG14 video board
8014unable to open CG14 deviceIncorrect device name

nameNo existing device


CG14 video board