- CHAPTER 40
Pixel Processor Test (sxtest)
-
sxtest checks models of SPARCstation 10 and SPARCstation 20 machines equipped with an onboard Pixel Processor module. sxtest is specific to the VSIMM (Video SIMM)/SX Memory Controller) devices in the SPARCstation 10 SX and SPARCstation 20 SX.
-
Note - Because of possible conflicts between cg14 SunVTS frame buffer tests and OpenWindows applications that use the cg14 frame buffer, the following restrictions apply when running the sxtest SunVTS test:
- Do not run any graphic applications other than OpenWindows while running SunVTS frame buffer tests.
- To start SunVTS with vtsui, but without vtsk, you must add the host name to xhost as:
-
-
xhost + hostname.
- Do not run any OpenWindows 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.
- Enable the frame buffer locking option from the Options window for the system console cg14 device (see "The sxtest test parameter options are described in TABLE 40-1." on page 358).
- If you run sxtest with VRAM enabled, then frame buffer locking must be enabled.
-
sxtest locates load error, store error, ALU error, logic error, and so on, of the pixel processor by reading and verifying data from the control registers of the pixel processor, virtual memories, or video memories.
- This test also verifies the integration function of the cg14 frame buffer and its device driver, video memories, and data memories. sxtest also writes a test pattern to the frame buffer for visual verification. The accuracy of this test is dependant on other hardware, such as the CPU, memory card(s), and cg14 graphics card. Run the cg14test and other tests before running sxtest. sxtest is a series of 13 modules, described FIGURE 40-1.
sxtest Options

FIGURE 40-1 sxtestcg14
-
Note - The sxtest option menu is customized, based on the configuration of the test system.

FIGURE 40-2 sxtest
sxtest Test Parameters
- The sxtest test parameter options are described in TABLE 40-1.
-
TABLE 40-1 sxtest
| Option | Description |
| FB Locking | Frame buffer locking is enabled by default on the window server running the OpenWindows software. See the section about testing multiple frame buffers in the SunVTS 2.1 User's Guide for details.
|
| CMEM (Contiguous Memory) | Choose either 0 or 4 if your system has 4 Mbytes (or more) of contiguous memory available. To set CMEM on a SPARCstation 10, enter the following: cd /usr/platform/SUNW,SPARCstation10,SX/sbin
The system must have 32 Mbytes of memory or more to set CMEM. For example: % sxconfig -s 4 -1 28 -f
|
| VRAM (Video Random Access Memory) | Choose either 0|4|8 video random access memory. CAUTION: If sxtest is run with its VRAM enabled, then frame buffer locking must be enabled or SunVTS results in errors. |
sxtest Module Descriptions
- The 13 sxtest modules are described in TABLE 40-2.
-
TABLE 40-2 sxtest
| Module | Description |
| Display (module0) | Click Enable to display visual patterns. Three subtests call the SPAM library and display pictures to verify the integrity of a subset of the kernel and the SPAM libraries through the SPARCstation 10 SX video system. These routines are ported from the SPAM demonstration programs. All subtests in this module are skipped if the cg14 frame buffer does not exist, or if the VRAM is disabled. One of the following subtests displays screens between other subtests. This helps you determine whether the system is hung or if sxtest is running.
rect_test: The screen is filled with random rectangles. The rectangles are drawn in CHUNKY_XBGR mode if 32-bit mode OpenWindows is running. If not, they are drawn in CHUNKY_C8 mode with the SPAM library routine sl_rect_fill_32.
shaa: A picture of shaded lines is drawn in CHUNKY_BGR mode with the SPAM library routines sl_line_shaa_32, sl_span_load_8, and sl_rect_fill_8. NOTE: The shaa test is skipped if the test is running on an 8-bit window.
lines -- The screen is filled with lines of various colors. These lines are drawn in CHUNKY_XBGR mode if 32-bit mode OpenWindows is running; If not, they are drawn in CHUNKY_C8 mode with SPAM library routine sl_line_fill_8.
|
-
TABLE 40-2 sxtest(Continued)
| Module | Description |
| MUL (module1) | Click Enable to test the multiplier operations.
Eight subtests are called, each having 2500 randomly generated
MUL SPAM macros.
sp_mul0
sp_mul1
sp_mul2
sp_mul3
sp_mul4
sp_mul5
sp_mul6
sp_mul7
Each subtest tests SPAM MUL instruction sets by running random
SPAM MUL macro patterns, for example:
spam_dot(S_0,R42,R45,R31,5)
spam_mulr(L_16,R44,R29,R52,1)
spam_mul(S_15,R115,R114,R58,4)
spam_mul(L_16,R89,R110,R81,8)
spam_mulr(S_8,R21,R76,R53,1)
spam_saxpr(S_8,R54,R46,R98,2)
spam_dotr(L_16,R75,R40,R20,5)
spam_dot(L_16,R44,R45,R84,4)
spam_saxp(L_0,R93,R96,R44,8)
spam_mulr(L_0,R86,R56,R56,5)
spam_dotr(L_0,R14,R62,R40,2
spam_saxpr(S_15,R112,R85,R95,7) |
| ALU (Module2) | Click Enable to test ALU operations.
Five subtests are called, each having 2500 randomly generated
ALU SPAM macros.
sp_alu0
sp_alu1
sp_alu2
sp_alu3
sp_alu4
Each subtest tests SPAM ALU instruction sets by running random
SPAM ALU macro patterns, for example:
spam_subv(R101,R31,R42,1)
spam_subs(R90,R44,R90,14)
spam_subv(R44,R70,R29,14)
spam_sum(R58,R95,R114,9)
spam_adds(R54,R46,R98,10)
spam_addi(R9,51,R68,9)
spam_abs(R76,R28,7)
spam_addv(R80,R59,R93,11) |
-
TABLE 40-2 sxtest(Continued)
| Module | Description |
| ROP (Module3) | Click Enable to test the ROP operations.
Five subtests are called, each having 2500 randomly generated
ROP SPAM macros.
sp_rop0
sp_rop1
sp_rop2
sp_rop3
sp_rop4
Each subtest tests SPAM ROP instruction sets by running random
SPAM ROP macro patterns, for example:
spam_selb(R101,R31,R42,1)
spam_ropl(R90,R27,R44,14)
spam_sels(R19,R16,R112,15)
spam_ropm(R47,R29,R96,16)
spam_selb(R52,R43,R29,5)
spam_ropb(R115,R114,R58,7)
spam_selv(R57,R75,R16,2)
spam_ropm(R110,R93,R83,13) |
| LOGIC (Module4) | Click Enable to test the logical operations.
Five subtests are called, each having 2500 randomly generated
LOGIC SPAM macros.
sp_logic0
sp_logic1
sp_logic2
sp_logic3
sp_logic4
Each subtest tests SPAM LOGIC instruction sets by running
random SPAM LOGIC macro patterns, for example:
spam_xors(R101,R31,R42,1)
spam_xori(R90,101,R90,14)
spam_xorv(R30,R19,R95,13)
spam_ands(R108,R16,R125,1)
spam_andv(R115,R114,R58,7)
spam_ors(R46,R89,R8,16)
spam_orv(R57,R75,R16,2)
spam_andi(R9,51,R68,9) |
-
TABLE 40-2 sxtest(Continued)
| Module | Description |
| SHIFT (Module5) | Click Enable to test the shift operations.
Five subtests are called, each having 2500 randomly generated
SHIFT SPAM macros.
sp_shift0
sp_shift1
sp_shift2
sp_shift3
sp_shift4
Each subtest checks SPAM SHIFT instruction sets by running
random SPAM SHIFT macro patterns, for example:
spam_sllv(R101,R31,R42,1)
spam_slli(R90,5,R90,14)
spam_srai(R30,19,R95,13)
spam_srli(R108,16,R125,1)
spam_sllv(R52,R43,R29,5)
spam_slfi(R46,25,R8,16)
spam_slfs(R57,R75,R16,2)
spam_srav(R54,R44,R93,8)
spam_srlv(R58,R60,R96,16) |
| COMP (Module6) | Click Enable to test the compare operations.
Five subtests are called, each having 2500 randomly generated
COMP SPAM macros.
sp_comp0
sp_comp1
sp_comp2
sp_comp3
sp_comp4
Each subtest checks SPAM COMP instruction sets by running
random SPAM COMP macro patterns. For example:
spam_cmpv_gt(R101,R31,R42,1)
spam_cmps_lt(R90,R44,R90,14)
spam_cmps_eq(R95,R112,R19,12)
spam_cmpv_gt(R44,R43,R29,14)
spam_cmpv_lt(R115,R114,R58,7)
spam_cmps_gt(R46,R89,R8,16)
spam_cmps_eq(R57,R75,R16,2)
spam_cmpv_le(R54,R46,R98,10)
spam_cmpv_eq(R9,R51,R68,9)
spam_cmps_gt(R76,R103,R28,7)
spam_cmpv_eq(R52,R37,R50,8)
spam_cmpv_ge(R61,R86,R16,12) |
-
TABLE 40-2 sxtest(Continued)
| Module | Description |
| MISC (Module7) | Click Enable to test the miscellaneous operations.
Five subtests are called, each having 2500 randomly generated
MISC SPAM macros.
sp_misc0
sp_misc1
sp_misc2
sp_misc3
sp_misc4
Each subtest checks SPAM MISC instruction sets by running
random SPAM MISC macro patterns, for example:
spam_scat(R45,-1,R29,1)
spam_gath(R95,-6,R114,9)
spam_delt(R89,R9,R16,16)
spam_plot(R54,R46,R98,10)
spam_plot(R53,R20,R75,16)
spam_scat(R91,-2,R70,9)
spam_gath(R120,-2,R51,15)
spam_delt(R59,R95,R120,1) |
| MADR (Module8) | Click Enable to test the address lines of sx. Eight subtests are called; each subtest verifies the 0x100000 SPAM address with spam_stld and spam_ldld instructions. All address bits and data bits of 4 Mbytes of VRAM and 4 Mbytes of DRAM are tested after running through the eight subtests. 0x00000000-0x000fffff 0x00100000-0x001fffff 0x00200000-0x002fffff 0x00300000-0x003fffff 0xfc000000-0xfc0fffff * 0xfc100000-0xfc1fffff * 0xfc200000-0xfc2fffff * 0xfc300000-0xfc3fffff *
* These subtests are skipped if the CMEM option is disabled.
|
-
TABLE 40-2 sxtest(Continued)
| Module | Description |
SMCALL
(Module9) | Click Enable for a brief test of sxtest functionality.
Eleven subtests are called from spam.smcall to verify the general
function of the SMC chip. All subtests have a cg14 version and a
non-cg14 version. These subtests repeat four times, each time with
the IQ FIFO programmed to a different number of entries (8, 16,
32, or 64).
shift_ldst
instr_mix *
arith_ldst
cmp_ldst
select_ldst
interlock_all *
logic_ldst
mult_ldst
rop
scat_ldst
delt_ldst
* These subtests are skipped if the VRAM option is set to disable. |
| MCNT (Module10) | Click Enable to test the load and store functions with different
repeat counts.
Twelve subtests are called; they test the SPAM store functions by
varying address offset and item count.
spsd_stba_cnt
spsd_stbd_cnt
spsd_stbds_cnt
spsd_stcd_cnt
spsd_stla_cnt
spsd_stld_cnt
spsd_stlds_cnt
spsd_stpd_cnt
spsd_stqd_cnt
spsd_stsa_cnt
spsd_stsd_cnt
spsd_stsds_cnt |
-
TABLE 40-2 sxtest(Continued)
| Module | Description |
| GRIF (Module11) | Click Enable to test the graphic interface logic.
Thirty-six subtests are called; they test the SPAM graphic interface
login with load/store instructions. All subtests are skipped if cg14
does not exist.
spsd_stbd_dram
spsd_stbd_xbgr
spsd_stbd_bgr
spsd_stbd_8x
spsd_stbd_8c
spsd_stbd_x32
spsd_stbd_b32
spsd_stbd_g32
spsd_stbd_r32
spsd_stsd_dram
spsd_stsd_xbgr
spsd_stsd_bgr
spsd_stsd_8x
spsd_stsd_8c
spsd_stsd_x32
spsd_stsd_b32
spsd_stsd_g32
spsd_stsd_r32
spsd_ldbd_dram
spsd_ldbd_xbgr
spsd_ldbd_bgr
spsd_ldbd_8x
spsd_ldbd_8c
spsd_ldbd_x32
spsd_ldbd_b32
spsd_ldbd_g32
spsd_ldbd_r32
spsd_ldsd_dram
spsd_ldsd_xbgr
spsd_ldsd_bgr
spsd_ldsd_8x
spsd_ldsd_8c
spsd_ldsd_x32
spsd_ldsd_b32
spsd_ldsd_g32
spsd_ldsd_r32 |
-
TABLE 40-2 sxtest(Continued)
| Module | Description |
| REGF (Module12) | Click Enable to test the register file pointer logic.
Twenty-two subtests are called from spam.regfile to verify the
register file's logic with assorted SPAM instructions.
readpointer1 *
readpointer2 *
readpointer3 *
readpointer4 *
writepointer1 *
writepointer2 *
writepointer3 *
writepointer4 *
readpointer5 *
writepointer5 *
rdptr0 .
wrptr0 .
rdptr1 .
wrptr1 .
rdptr2 .
wrptr2 .
rdptr3 .
wrptr3 .
rdptr4 .
wrptr4 .
rdptr5 .
wrptr5 .
* These subtests are skipped if the VRAM option is disabled.
. These subtests are skipped if the CMEM option is disabled. |
sxtest Test Modes
- Due to the nature of graphic tests, reading from or writing to the frame buffer during testing will disturb user production. sxtest is available only in the Functional test mode.
- In Functional test, sxtest runs the visual subtest, memory address subtest, memory count subtest, graphic interface subtest, and register file subtest by default. The user can select or de-select other subtests as needed.
sxtest Command Line Syntax
-
-
/opt/SUNWvts/bin/sxtest standard_arguments -o dev=device_name,
lock=E(nable)/D(isable),tm=to_module#,cmem=n,vram=n, md=XXX
-
TABLE 40-3 sxtest
| Argument | Explanation |
| dev=device_name | Specifies the device_name to be tested. |
lock=E(nable)/
D(isable) | Enables/disables frame buffer locking. See "Testing Multiple
Frame Buffers" in Chapter 3 of the SunVTS 2.1 User's Guide for
details. Frame buffer locking is enabled by default on the window
server running the OpenWindows software. |
| tm=to_module# | Specifies an ending module number; use these last four arguments to narrow sxtest to a specific test scope. |
| cmem=0|4 | Enables or disables the contiguous memory; choose either 1 to enable or 0 to disable. Note: You must choose disable (0) if your system is equipped with less then 4 Mbytes of contiguous memory.
|
| cgfourteen0=0|4 |8 | Enables or disables the video random access memory; choose 1 to enable or 0 to disable. |
| md=vis+alu+... | Selects which modules are tested in a pass. |
sxtest Error Messages
-
TABLE 40-4 sxtest
| Error Message | Probable Cause(s) | Recommended Action |
| 6002 | Unable to lock frame buffer | FB lock was enabled while Window System was not running. |
|
| 6004 | Can`t get sem number |
|
|
| 6006 | Failed lock sem:dev number,
type number |
|
|
| 6008 | Failed unlock sem |
|
|
| 6010 | Failed GETVAL sem= |
|
|
| 6012 | Failed sem_val |
|
|
| 6014 | console_p() failed: |
|
|
| 6016 | Failed sem_setall |
|
|
| 6017 | Failed sem_rmid |
|
|
| 6018 | Failed get sem |
|
|
| 6020 | ioctl command name failed |
|
|
| 6022 | error_message |
|
|
| 6024 | Failed to malloc for name |
|
|
| 6026 | mem
ccitt[name+number,name+number]: o:number e:number o^e:number
|
|
|
| 6028 | mem
crc16[name+number,name+number]: o:number e:number o^e:number
|
|
|
| 6030 | reg ccitt: o:number e:number
o^e:number |
|
|
| 6032 | reg crc16: o:number e:number
o^e:number |
|
|
| 6034 | Failed to open name device |
|
|
| 6035 | First Open of sx device |
|
|
| 6036 | Modules selected
improperly!!! |
|
|
-
TABLE 40-4 sxtest(Continued)
| Error Message | Probable Cause(s) | Recommended Action |
| 6038 | name, i_module = name |
|
|
| 6040 | FB unlock request failed |
|
|
| 8000 | Can't acquire console | System load too heavy. | Reduce the system load. |
| semaphore |
|
|
| System error. | If the problem persists, call your authorized Sun service provider. |
| 8002 | Can`t get sem number |
|
|
| 8004 | Unable to set page bounds |
|
|
| 8006 | mmap: unable to map MDI control register space |
|
|
| 8008 | Failed to mmap name |
|
|
| 8010 | sxtest is only running in Functional test |
|
|
| 8012 | Failed to open name |
|
|
|