sxtest
28
Pixel Processor Test (sxtest)
- This test 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 hostname 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 "FB Locking" on page 335).
- If sxtest is run with VRAM enabled, then frame buffer locking must also be enabled.
- This test 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 cg14test and other tests before running sxtest. sxtest is a series of 13 modules, described below.

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

Figure 28-2 sxtest
-
FB Locking See the section about testing multiple frame buffers in SunVTS 2.0 User's Guide for details.
- Frame buffer locking is enabled by default on the window server running the OpenWindows software.
-
CMEM (Contiguous Memory) Choose either 0 or 4, if your system has 4 or more Mbytes of contiguous memory available.
- To set CMEM, enter the following:
-
/usr/platform/SUNW,SPARCstation10,SX/sbin/sxconfig
|
- The system must have 32 Mbytes of memory or more to set CMEM. For example:
-
-
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 this section.
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 via 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 pictures 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.
MUL (Module1)
-
* Click enable to test the multiplier operations.
- Eight subtests are called, and each subtest has 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 executing 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, and each subtest has 2500 randomly generated ALU SPAM macros.
-
-
sp_alu0
-
sp_alu1
-
sp_alu2
-
sp_alu3
-
sp_alu4
- Each subtest tests SPAM ALU instruction sets by executing 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)
ROP (Module3)
-
* Click enable to test the ROP operations.
- Five subtests are called, and each subtest has 2500 randomly generated ROP SPAM macros.
-
-
sp_rop0
-
sp_rop1
-
sp_rop2
-
sp_rop3
-
- Each subtest tests SPAM ROP instruction sets by executing 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, and each subtest has 2500 randomly generated LOGIC SPAM macros.
-
-
sp_logic0
-
sp_logic1
-
sp_logic2
-
sp_logic3
-
sp_logic4
- Each subtest tests SPAM LOGIC instruction sets by executing 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)
SHIFT (Module5)
-
* Click enable to test the shift operations.
- Five subtests are called, and each subtest has 2500 randomly generated SHIFT SPAM macros.
-
-
sp_shift0
-
sp_shift1
-
sp_shift2
-
sp_shift3
-
sp_shift4
- Each subtest checks SPAM SHIFT instruction sets by executing 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, and each subtest has 2500 randomly generated COMP SPAM macros.
-
-
sp_comp0
-
sp_comp1
-
sp_comp2
-
sp_comp3
-
sp_comp4
- Each subtest checks SPAM COMP instruction sets by executing 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)
MISC (Module7)
-
* Click enable to test the miscellaneous operations.
- Five subtests are called, and each subtest has 2500 randomly generated MISC SPAM macros.
-
-
sp_misc0
-
sp_misc1
-
sp_misc2
-
sp_misc3
-
sp_misc4
- Each subtest checks SPAM MISC instruction sets by executing 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 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.
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
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 doesn't 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
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.
-
Connectivity Mode Not available for sxtest.
-
Online Mode Not available for sxtest.
-
Offline Mode In this mode, 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
-
| Argument | Explanation |
| dev=device_name | Specifies the device_name to be tested. |
| lock=E(nable)/D(isable ) | Enables/disables frame buffer locking. See the section "Testing Multiple Frame Buffers" in Chapter 3 of the SunVTS 2.0 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. XXX |
sxtest Error Messages
-
-
6002 Unable to lock frame buffer.
-
Probable_cause(s):
-
a. 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!!!
6038 <name>, i_module = <name>
6040 FB unlock request failed.
8000 Can't acquire console semaphore
-
Probable_cause(s):
-
a. Syetem load too heavy
-
b. System error
-
Recommended_Action(s):
-
a. Reduce the system load b. 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 offline mode.
8012 Failed to open <name>
|