SunVTS 2.1 Test Reference Manual
  Search only this book
Download this book in PDF
CHAPTER 41

SBus Expansion Subsystem Test (xbtest)


xbtest verifies the functionality of the Sun SBus expansion subsystem (XBox) hardware and its peripherals. The SBus expansion subsystem can be used in two mutually exclusive modes: transparent and nontransparent. Transparent mode test checks SBus expansion subsystem peripherals, such as SBus cards and disk drives. Nontransparent mode test checks the actual expansion subsystem itself.

Note - Do not select the Nontransparent mode test if SBus cards are installed in the SBus expansion slots. Do not select transparent mode test if the SBus expansion slots are empty.


xbtest Modes

The xbtest modes are described in the following table:
TABLE 41-1 xbtest
ModeDescription
Transparent ModeIn Transparent mode, wait_for_error test is used. When xbtest is invoked, a child process is created. The parent process waits for the child process to terminate and then it exits. The child process issues a WAIT_FOR_ERROR_PAK ioctl call and then enters sleep mode.

When the device driver receives an error, it wakes up and passes an error packet to the child process. The child process dumps the contents of the error packet, and also exits.

If the child process does not receive an error message before the end of the test period specified by the time option, it exits. The parent process then exits. The default value for the time option is one minute. If you do not specify another value for the time option, the default value is used in both regular and stress test modes.

Nontransparent ModeIn Nontransparent mode, self_diagnostic test is used. If you do not have an XBox SBus card in any slot of your system, you must add the following line to the /etc/system file: set xbox:xbox_no_cards_in_slot0=1

After adding this line to /etc/system, reboot the machine using the -r option. You can now run the nontransparent mode test of xbtest.

This test checks the expansion subsystem hardware; the subtests are described below. The subtests, part of the diagnostic test, are repeated three times in both regular and stress test modes. Time-out checks are included to avoid indefinite hangs. If any test should fail, it does not result in a system panic; however, full recovery is not guaranteed.


To Do a Self Diagnostic Test

  1. Reset your system using the <L1-A> or <Stop-A> keyboard commands.

  2. Check for the expected value from the XAC register.

  3. Run a DVMA XAC Interrupt test:

    a. Create a DVMA transfer by asserting DVTE + INTT in control register 1 of XAC.

    b. Wait for the interrupt.

    c. Compare the error status packet with the expected values.

  4. Run a DVMA XBC Interrupt test:

    a. Create a DVMA transfer by asserting DVTE + INTT in control register 1 of XBC.

    b. Wait for the interrupt.

    c. Compare the error status packet with the expected values.


xbtest Options

Graphic

FIGURE 41-1 xbtest

The top section of the xbtest Options menu displays the device name of the SBus Expansion Subsystem card being tested.
TABLE 41-2 xbtest
xbtest OptionsDescription
TestSpecifies self_diagnostic or wait_for_error test. See "Nontransparent Mode" on page 364 before running the self_diagnostic test.
TimeSpecifies how long this xbtest waits for an error to be returned. You can change the xbtest time setting by selecting the text field and typing the number of minutes you want the test to run (minimum 1 minute; maximum 20 minutes).

xbtest Test Modes

This test is only available in the Functional test mode. A wait time of 10 seconds is used with the wait_for_error test if the XBox is in Transparent mode. If the XBox is in nontransparent mode, the subtests that are part of the self-diagnostic test are repeated three times.

xbtest Command Line Syntax

/opt/SUNWvts/bin/xbtest -o dev=xbox#,test=we|sd,time=test_time

TABLE 41-3 xbtest
ArgumentExplanation
dev=xbox#Specifies the physical path name of the subsystem unit to be tested (.xbox#), where # is the instance number defined in path_to_inst(4). You need to search the /devices tree to find the physical pathname of the subsystem.

Note: You must include the device_name path when running xbtest from the command line.

time=test_timeSpecifies how long this test waits for an error to be returned. Used only with the we option. Substitute test_time with the number of minutes you want xbtest to wait. The default is one minute.
TABLE 41-3 xbtest
ArgumentExplanation
test=we|sdwe= specifies wait_for_error test. This option directs xbtest to run in transparent mode. This option runs xbtest continually until an error is returned, or until the time interval specified with the T=test_time option has ended

sd= specifies self_diagnostic test. This option is used in Nontransparent mode. See "Nontransparent Mode" on page 364, before running Nontransparent mode
For example, to run xbtest, type:

  # /opt/SUNWvts/bin/xbtest -o dev=xbox0,test=we,time=2  


xbtest Error Messages

TABLE 41-4 xbtest

Error MessageProbable Cause(s)Recommended Action
6002Incorrect optionsFailed to increase the size of test process' heap to 2GB (fatal error).
6003XAC_WAIT_FOR_ERROR ioctl command fail (<error_message>)

6004XAC_CLEAR_WAIT_FOR_ERROR ioctl command fail (<error_message>)

6005XAC_WRITE0 ioctl command fail (<error_message>)

6006Failed to open /etc/ path_to_inst file (<error_message>)

6007<device_name> invalid device name

6008<device_name>'s instance number(%d) not in /etc/ path_to_inst file

TABLE 41-4 xbtest(Continued)

Error MessageProbable Cause(s)Recommended Action
6009error status dirty bit <number>This bit is set to 0 when the XBox detects an error.
6010error status indicator <number>This bit is set to 0 when the XBox detects an error.
6011expansion sbus slave selects 0x%x

6012parent master request %d

6013packet type %d

6014physical address info %d

6015sbus size %d

6016cable resend limit timeout error (dpr1)This error is detected by the XBox controller.
6017cable parity error (dpr1)This error is detected by the XBox controller.
6018expansion sbus read error
(err ack)
The signal err ack is asserted
on the expansion SBus by
XBox slave while being read
by an XBox master.

6019expansion sbus read error (rsvd ack)The signal rsvd ack is asserted on the expansion SBus by XBox slave while being read by an XBox master.
6020expansion sbus read error
(late error)
The signal rsvd ack is asserted
on the expansion SBus by
XBox slave while being read
by an XBox master.

6021expansion sbus timeout errorXBox controller detects a timeout on the expansion SBus during a read or write to an XBox slave.
6022write 0 error

6023buffer write error (err ack)The signal err ack is asserted on the expansion or host SBus while the XBox controller / XAdapter was performing a DVMA write.
TABLE 41-4 xbtest(Continued)

Error MessageProbable Cause(s)Recommended Action
6024buffer write error (rsvd ack)The signal rsvd ack is asserted on the expansion or host SBus while the XBox controller / XAdapter was performing a DVMA write.
6025buffer write error (late
error)
The signal late error is
asserted on the expansion or
host SBus while the XBox
controller / XAdapter was
performing a DVMA write.

6026cable resend timeout error (dpr0)This error is detected by the XAdapter controller.
6027cable ack timeout errorThis error occurs when XAdapter does not detect cable acknowledgment.
6028cable parity error (dpr0)This error is detected by the XAdapter controller.
6029cable serial interrupt
parity error
This error is detected by the
XAdapter controller.

6030child not ready errorThis error indicates that the XBox controller can no longer communicate with the XAdapter.
6031XAC_GET_REG_VALUES ioctl command fail (<error_message>)

6032XAC_GET_ERROR_PKT ioctl command fail (<error_message>)

6033XAC_TRANSPARANT ioctl command fail (<error_message>)

6034XAC_NON_TRANSPARANT ioctl command fail (<error_message>)

8003XAC_NON_TRANSPARANT ioctl command fail (<error_message>)

8004XAC_REG_CHECK ioctl command fail (<error_message>)