|
| 以 PDF 格式下載這本書
- CHAPTER 14
Fast Frame Buffer Test(ffbtest)
-
ffbtest can detect and adapt to the video modes of single- and double-buffer versions of the fast frame buffer (FFB). Instead of only running in one standard graphics mode, all tests can run in any mode. In stereo mode, all tests write into the right and left eyes unless you specify otherwise.
- You can interrupt ffbtest using Control-C. Turn off all other keyboard input if OPEN LOOK is running on the unit being tested.
- Test accuracy is checked using a checksum algorithm. Possible locations of failing pixels are colored chartreuse to help visually identify their position.
-
Caution - Do not run any other application or screen saver program that uses the FFB accelerator port while running ffbtest. This combination causes SunVTS to return incorrect errors.
-
Note - Disable all screen savers before testing any graphics device. Type xset s off at a UNIX prompt to disable the Solaris screen saver.
- To start SunVTS with vtsui, but without vtsk, you must add the host name to xhost as:
-
xhost + <hostname>.
-
Note - ffbtest requires approximately 2 Mbytes 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 a lack of disk space.
ffbtest Options
- By default, all tests are enabled.

FIGURE 14-1 ffbtest
-
TABLE 14-1 ffbtest
| ffbtest Options | Description |
| 3DRAM Test | 3DRAM thoroughly tests the video memory in the FFB using 512-bit reads and writes. 3DRAM makes a full screen pass, consisting of a write and a read to each pixel location, for each access mode on the list below. The data used can be either random or specified by the user at the command line. A second pass is made with the one's complement of the data used in the first pass so that each memory location is tested with both a zero and a one. Notice that some passes are skipped on the single-buffered FFB. Errors in this subtest are attributes to the 3DRAM. A failing chip is indicated by (x, y) locations and device-specific "U" numbers. DFB8R, DFB8G, DFB8B, DFB8X - Buffer A DFB24 - Buffer A DFB32 - Buffer A SFB8R, SFB8G, SFB8B, SFB8X - Buffer A SFB8R, SFB8G, SFB8B, SFB8X - Buffer B (double buffer only) SFB32 - Buffer A SFB32 - Buffer B (double buffer only) SFB32 - Buffer C (double buffer only) SFB64 - Buffers A and C (double buffer only) SFB64 - Buffers B and C (double buffer only)
|
| 3DRAM Logic Test | 3DRAM Logic provides logical functionality to the FFB. The
following services are tested:
Compare Controls - Match AB
Compare Controls - Magnitude AB
Compare Controls - Match C (double buffer only)
Compare Controls - Magnitude C (double buffer only)
Match Mask - AB
Magnitude Mask - AB
Match Mask - C (double buffer only)
Magnitude Mask - C (double buffer only)
Raster Operations - RGB
Raster Operations - X
Raster Operations - YZ (double buffer only)
Plane Mask - RGB
Plane Mask - X
Plane Mask - Y
Plane Mask - Z
Group Enable - R, G, B, X
Group Enable - Y, Z (double buffer only) |
-
TABLE 14-1 ffbtest(Continued)
| ffbtest Options | Description |
| 3DRAM Logic Test (Continued) | Each function is tested separately with a series of SFB64 writes. A total of 16 writes are made for each different test case with Y coordinate values varying from 0 to 30 in increments of 2 pixels. This dotted column organization provides page thrashing and block flashing in all screen resolutions. For each operation all possible combinations are tested. For example, in ROP RGB new==old there are three possible values are: new < old, new == old, and new > old. Each of these cases are tested. Five passes of the functions are made. Each pass writes into a different FFB address space: SFB32-A, SFB32-B, SFB32-C, SFB64-AC, and SFB64-BC. Note that the passes that write into the SFB32 address spaces are writing two pixels at a time because the tests use SFB64 writes. Care is taken to ensure that all 3DRAM chips are tested. Errors in this subtest are attributed to the 3DRAM.
|
| RAMDAC Test | RAMDAC registers are tested using simple read/write patterns to determine if there are any bad bits. This includes all LUTs. ffbtest ensures that data is actually being read from the RAMDAC and not being supplied by the driver. Next, the RAMDAC Signature Register captures the pixels going to the screen. This test determines that all of the different data paths within the RAMDAC are functioning properly. The following modes are tested: 24-bit true color from A 24-bit true linear color from A 24-bit direct color from A 24-bit true color from B (double buffer only) 24-bit true linear color from B 24-bit direct color from B (double buffer only) 8-bit pseudo color (from each plane in RGB) from A 8-bit pseudo color (from each plane in RGB) from B (double buffer only) 8-bit non-linear grayscale (from each plane in RGB) from A 8-bit non-linear grayscale (from each plane in RGB) from B (double buffer only) 8-bit linear grayscale (from each plane in XRGB) from A 8-bit linear grayscale (from each plane in XRGB) from B (double buffer only) 8-bit overlay pseudo color (from buffer A, X plane)
|
-
TABLE 14-1 ffbtest(Continued)
| ffbtest Options | Description |
| RAMDAC Test (Continued) | A total of 11 different types of windows are displayed on the screen for the single-buffered configuration; 22 for double-buffered. A cursor is also displayed on the screen. Errors in this test are attributed to the RAMDAC.
|
Rendering Pipeline
Test | Rendering Pipeline uses the rendering pipeline tests developed for
the FFB stand-alone diagnostics.
Each primitive is tested thoroughly with the following sources and
configurations:
Dots
Anti-aliased dots
Lines using all four line drawing primitives
Triangles
Polygons
Rectangles
Fonts
Errors in this test are attributed to the FBC. |
| Fast Fill/Vertical Scroll Test | Fast Fill/Vertical Scroll primitives are separated from the Rendering Pipeline tests because of their dependence on screen type. There are three different tests, one for each screen type. Each test uses both block and page mode fast_fills. Errors in this test are attributed to the FBC. |
| Pixel Process Test | Pixel Processor, a subtest, exercises the following options selected by the FFB's Pixel Processor Control (PPC) register. Auxiliary clipping (additive and subtractive) Depth cueing Alpha blend Viewport clip (2D and 3D) Area pattern (transparent and opaque) Errors in this test are attributed to the FBC.
|
| Picking Test | Picking exercises the pick detect login of the 3DRAM. We define a pick detect window and make sure that writes to the window are picked, and writes outside the window are not picked. The test is repeated once for each 3DRAM. Errors in this test are attributed to the 3DRAM.
|
-
TABLE 14-1 ffbtest(Continued)
| ffbtest Options | Description |
| Arbitration Test | Arbitration, a subtest, continuously renders an object into the accelerator port while doing reads and writes through the direct port. For single buffered configuration, picture is rendered into the RGB planes while another process does DFB reads and writes in the X plane. For doubled buffered, a picture is rendered into all 32 planes of the B buffer while the other does 32-bit DFB reads and writes in the A plane. This subtest simulates conditions in the read world, where rendering processes and windows operations run concurrently. Errors in this test are attributed to the FBC.
|
| Stereo Test | Stereo displays an object in stereo mode with different images for the right and left eye. The user can verify proper operation by looking at the screen with stereo glasses and following the instructions being displayed. If the monitor type is not 1280x1024 @ 76MHz, this test prints a warning message and does not execute. To prevent this message from being displayed or written to the SunVTS information log, disable the stereo test in the test option menu. Only Sony P4 and N2 monitors support stereo resolutions. This test temporarily switches the monitor into stereo mode, renders a stereo image, performs a signature analysis on the stereo image (using the RAMDAC signature capture register), and after displaying the image for five seconds, restores the monitor to its previous resolution. Errors in this test are attributed to the RAMDAC.
NOTE -- If vertical lines are displayed on the console when running SunVTS, this could be caused by the ffbtest stereo test. There is a time-critical period in the FFB hardware when trying to change the screen resolution from standard to stereo and back to standard. When the system is heavily loaded or running all of the SunVTS tests, the FFB device driver may get interrupted while changing screen resolution. If this occurs, FB ASIC and RAMDAC get out of synchronization, resulting in an unusual display on the FFB screen. This problem could also cause a system hang condition. To avoid this type of display problem, disable the ffbtest stereo test when other SunVTS tests are enabled.
|
ffbtest 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 and Stress Mode.
-
TABLE 14-2 ffbtest
| Test Mode | Description |
| Functional Test | The ffbtest verifies both the single (SFB) and double buffer
(DBZ) fast frame buffer boards |
| Stress Mode | The Stress mode exercises the device being tested as much as possible. The Random Test generator, constructed as part of the verification effort, is used. Starting from a known seed, random primitives with random attributes are generated. Then the primitives are checked to ensure that they were rendered the same as on a known good system. The test is repeated ten times, with each random picture overlaying the previous one |
ffbtest Command Line Syntax
-
/opt/SUNWvts/bin/ffbtest standard_arguments -o dev=device_name, S=subtest_number,F=#_of_subtest_loops,B=#_of_test_loops,P=test_pattern
-
TABLE 14-3 ffbtest
| Argument | Explanation |
| dev=device_name | device_name is the full path name of the device being tested; the default is /dev/fbs/ffb0. |
-
TABLE 14-3 ffbtest
| Argument | Explanation (Continued) |
| S=subtest_number | subtest_number is the test number of the subtest to be run. Select from the subtests below. You can run multiple subtests by adding the subtest numbers. For example, n=0x3 runs both test 1 and test 2; n=0x180 runs both test 0x080 and test 0x0100. Note that you do not need the leading zeros.
n - 0x00001 3DRAM
n - 0x00002 3DRAM Logic
n - 0x00004 RAMDAC
n - 0x00008 Rendering Pipeline n - 0x00010 FastFill/Vertical Scroll n - 0x00020 Pixel Processor n - 0x00040 Picking
n - 0x00080 Arbitration
n - 0x00100 Stereo
More than one test can be selected by ORing subtest numbers. For example: n = 0x00009 means 3DRAM and Rendering Pipeline tests. A hex number must be preceded by 0x,decimal numbers are also acceptable
|
| F=#_of_subtest_loops | Specifies the number of times to repeat each subtest; default is 1. |
| B=#_of_test_loops | Specifies the number of times to repeat a test loop before passing; default is 1. |
| P=test_pattern | Specifies the test pattern number. The default is r, for random
patterns. You may also choose 0 for 0x0000000, 3 for
0x3333333, 5 for 0x5555555, or 9 for 0x9999999. |
ffbtest Error Messages
- Errors returned by ffbtest are nonspecific. It is not possible to determine which component caused a failure. In all error conditions, the field replaceable unit (FRU) is the entire FFB.
-
TABLE 14-4 ffbtest
| Error Message | Probable Cause(s) | Recommended Action |
| 1 | Data compare error |
| Error messages 1-7 all occur |
| 2 | Cannot gain control of mouse: <reason> |
| during the screen locking procedure where ffbtest is interacting with the X window |
| 3 | Cannot gain control of keyboard: <reason> |
| system. The test only supports FFB devices on display 0 - most |
| 4 | DGA error grabbing window on screen <value> |
| machines only have display with multiple screens, but it is possible to have multiple |
| 5 | DGA error getting window from token on screen <value> |
| displays. Make sure you are using OPEN LOOK windows |
| 6 | No FFB device found on display 0 |
| from SunSoft - other window systems are not supported and |
|
|
| may not work. |
| 7 | There is an inconsistency with the
version of the X Window System |
|
| 8 | Can't access XWindows - may need to run xhost(1). | The ffbtest process must have write access to the X Windows display on the FFB. To grant access, run 'xhost +'
|
|
| 9 | <test name> error: 3DRAM Memory error <plane group> Plane at (<x>,<y>) Expected = <value>, actual = <value>, xor = <value>. | The value written to the frame buffer was not the same as the value read back. This usually indicates a faulty 3DRAM chip. The u-number (FFB board position) of the failing chip is indicated in the error message. This message may be reported by the 3DRAM test or the arbitration test. |
|
-
TABLE 14-4 ffbtest(Continued)
| Error Message | Probable Cause(s) | Recommended Action |
| 10 | <test name>: Down-revved 3DRAM single bit failure detected <plane group> Plane at (<x>,<y>) Expected = <value>, actual = <value>, xor = <value>. | Early production 3DRAM chips exhibited single-bit read back errors on this test. This warning message indicates that your FFB has one of these chips, and the error was detected. The u-number (FFB board position) of the failing chip is indicated in the error message. This message may be reported by the 3DRAM test or the arbitration test. |
|
| 11 | <test name> error. Miscompares, starting at %s, are colored chartreuse. | The image generated by the test does not match the image generated on a known good FFB. The pixels which are colored chartreuse are where the images don't agree. Because of the checksum algorithm used for image comparison, some of the colored pixels may actually have been correct, but incorrect pixels obscured the comparison. |
|
| 12 | Installed FFB has downrev RAMDAC - skipping RAMDAC test | Early versions of the FFB RAMDAC chip had faulty signature analysis and therefore could not be used for the RAMDAC test. These chips are not necessarily bad, but they cannot be tested with ffbtest. |
|
| 13 | Unsupported screen resolution -skipping RAMDAC test | Almost all screen resolutions are supported by the RAMDAC test, but a few are not. |
|
| 14 | Miscompare found in <Red Green Blue> channel of CLUT entry <value>. Expected = <value>, Observed = <value>, XOR = <value> |
|
|
-
TABLE 14-4 ffbtest(Continued)
| Error Message | Probable Cause(s) | Recommended Action |
| 15 | Miscompare found in WID LUT entry <value>. Expected = <value>, Observed = <value>, XOR = <value>
| The RAMDAC test writes values to each entry of the lookup tables and then reads back the values. These error messages indicate that the readback value was different from the written value. This could indicate a faulty RAMDAC. |
|
| 16 | RAMDAC test failed. The on-screen image is incorrect | The RAMDAC test puts up squares of data using all of its different output modes. It then gets a "signature" from the RAMDAC, which is a checksum of the pixels actually being written to the screen. This message indicates that the checksum is different from the checksum generated on a known good FFB. This could indicate a faulty RAMDAC. |
|
| 17 | Picking test error. Got a pick hit with picking disabled | Error messages 17-19 indicate a failure in the picking test. On the FFB, picking is done by the |
|
|
|
|
|
| 18 | Picking test error. Got a pick hit outside the picking area | 3DRAM chips, so the u-number (FFB board position) of the failing chip is indicated in the error message. |
|
|
|
|
|
| 19 | Picking test error. Should have detected a pick hit |
|
|
-
TABLE 14-4 ffbtest(Continued)
| Error Message | Probable Cause(s) | Recommended Action |
| 20 | Stereo image incorrect | The Stereo test uses the RAMDAC signature analysis feature to verify that the pixels going to the screen are correct. This message indicates a failure of the test, which probably indicates a faulty RAMDAC. | Error messages 20-22 indicate incorrectly installed or corrupted software installation. Try reinstalling SunVTS |
| 21 | Stereo not supported on current monitor type: <value> | Only certain kinds on monitors support Stereo output mode. Only the P4 monitors will work with the ffbtest Stereo test. File not found Could not open file <file name>. | Reinstall software |
| 22 | Could not open file <filename>: <reason>. Keyword not Found, line <value>
| Suspect data file corruption |
|
| 23 | Out of memory | A call to mailloc(3c) or new( ) failed | Increase swap space |
| 24 | /usr/bin/tar failed |
| Check for existence and/or permissions on <file name>. Also check for available space in /tmp |
| 25 | /usr/bin/uncompress failed |
| Error messages 25-35 indicate that there is a permissions problem. You must be root to run ffbtest. These messages may also indicate some other kind of corruption. Try rebooting, and if that fails, reinstall. |
| 26 | fork1(2) failed: <reason> |
|
|
| 27 | execl(2) failed: <reason> |
|
|
| 28 | sysinfo(2) failed getting hostname. Must be superuser |
|
|
| 29 | mmap(2) failed: <reason> |
|
|
| 30 | munmap(2) failed: <reason> |
|
|
| 31 | close(2) failed: <reason> |
|
|
| 32 | wait(2) failed: <reason> |
|
|
-
TABLE 14-4 ffbtest(Continued)
| Error Message | Probable Cause(s) | Recommended Action |
| 33 | signal(2) failed: <reason> |
|
|
| 34 | thr_kill(2) failed |
|
|
| 35 | thr_join(2) failed: <reason> |
|
|
| 36 | ioctl(2) failed trying to read CLUT |
| Error messages 36-51 indicate either that the FFB was installed incorrectly or that you do not have permission to use it. Check that the FFB packages were installed correctly and that you have the latest version of the driver patches. Also make sure you are running ffbtest as root. |
| 37 | ioctl(2) failed trying to turn on FFB video |
|
|
| 38 | ioctl(2) failed trying to post CLUT |
|
|
| 39 | ioctl(2) failed trying to read WID LUT |
|
|
| 40 | ioctl(2) failed trying to post WID LUT | A downrev FFB driver or a bad electron board |
|
| 41 | ioctl(2) failed trying to get RAMDAC signature analysis |
|
|
| 42 | ioctl(2) failed trying to get current video mode |
|
|
| 43 | ioctl(2) failed trying to set current video mode |
|
|
| 44 | ioctl(2) failed trying to get FFB system info |
|
|
| 45 | ioctl(2) failed trying to go into Diagnostic mode |
|
|
| 46 | ioctl(2) failed trying to read Transparent Overlay registers |
|
|
-
TABLE 14-4 ffbtest(Continued)
| Error Message | Probable Cause(s) | Recommended Action |
| 47 | ioctl(2) failed trying to post Transparent Overlay registers |
|
|
| 48 | ioctl(2) failed trying to post cursor |
|
|
| 49 | ioctl(2) failed trying to read cursor |
|
|
| 50 | stat(2) failed trying to get info about Device Under Test |
|
|
| 51 | stat(2) failed trying to get info about screen 0:<value> |
|
|
|
|