Contained Within
Find More Documentation
Featured Support Resources
| 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
| Mode | Description |
| Transparent Mode | In 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 Mode | In 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
-
-
Reset your system using the <L1-A> or <Stop-A> keyboard commands.
-
Check for the expected value from the XAC register.
-
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.
-
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

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 Options | Description |
| Test | Specifies self_diagnostic or wait_for_error test. See "Nontransparent Mode" on page 364 before running the self_diagnostic test. |
| Time | Specifies 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
| Argument | Explanation |
| 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_time | Specifies 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
| Argument | Explanation |
| test=we|sd | we= 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 Message | Probable Cause(s) | Recommended Action |
| 6002 | Incorrect options | Failed to increase the size of test process' heap to 2GB (fatal error). |
|
| 6003 | XAC_WAIT_FOR_ERROR ioctl command fail (<error_message>) |
|
|
| 6004 | XAC_CLEAR_WAIT_FOR_ERROR ioctl command fail (<error_message>) |
|
|
| 6005 | XAC_WRITE0 ioctl command fail (<error_message>) |
|
|
| 6006 | Failed 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 Message | Probable Cause(s) | Recommended Action |
| 6009 | error status dirty bit <number> | This bit is set to 0 when the XBox detects an error. |
|
| 6010 | error status indicator <number> | This bit is set to 0 when the XBox detects an error. |
|
| 6011 | expansion sbus slave selects 0x%x |
|
|
| 6012 | parent master request %d |
|
|
| 6013 | packet type %d |
|
|
| 6014 | physical address info %d |
|
|
| 6015 | sbus size %d |
|
|
| 6016 | cable resend limit timeout error (dpr1) | This error is detected by the XBox controller. |
|
| 6017 | cable parity error (dpr1) | This error is detected by the XBox controller. |
|
| 6018 | expansion 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. |
|
| 6019 | expansion 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. |
|
| 6020 | expansion 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. |
|
| 6021 | expansion sbus timeout error | XBox controller detects a timeout on the expansion SBus during a read or write to an XBox slave. |
|
| 6022 | write 0 error |
|
|
| 6023 | buffer 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 Message | Probable Cause(s) | Recommended Action |
| 6024 | buffer 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. |
|
| 6025 | buffer 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. |
|
| 6026 | cable resend timeout error (dpr0) | This error is detected by the XAdapter controller. |
|
| 6027 | cable ack timeout error | This error occurs when XAdapter does not detect cable acknowledgment. |
|
| 6028 | cable parity error (dpr0) | This error is detected by the XAdapter controller. |
|
| 6029 | cable serial interrupt
parity error | This error is detected by the
XAdapter controller. |
|
| 6030 | child not ready error | This error indicates that the XBox controller can no longer communicate with the XAdapter. |
|
| 6031 | XAC_GET_REG_VALUES ioctl command fail (<error_message>) |
|
|
| 6032 | XAC_GET_ERROR_PKT ioctl command fail (<error_message>) |
|
|
| 6033 | XAC_TRANSPARANT ioctl command fail (<error_message>) |
|
|
| 6034 | XAC_NON_TRANSPARANT ioctl command fail (<error_message>) |
|
|
| 8003 | XAC_NON_TRANSPARANT ioctl command fail (<error_message>) |
|
|
| 8004 | XAC_REG_CHECK ioctl command fail (<error_message>) |
|
|
|
|