Serial Ports Test (serialtest)
|
serialtest checks the
system's on-board serial ports (su[0,1], zs[0,1], zsh[0,1], se[0,1], se_hdlc[0,1], asy[0,1]), and any multi-terminal interface (ALM2) boards (mcp[0-3]). Data is written and read in asynchronous and synchronous modes using
various loopback paths. However, the x86 UART driver does not support internal loopback and synchronous mode.
Note - serialtest now supports testing the
asy driver (16550 UART). The 16550 device only works in asynchronous mode. The maximum baud rate is 115200.
|
Note - The 16550 UART can support 2
devices but some systems only carry one physical port (ttyS1 or ttyb, /dev/term/b, better known as COM2 in the
x86 environment). Do not try to test port a. The operating system shows two ports but physically there is only
one port.
|
Note - serialtest does support x86 platforms that use the Solaris Operating System. The
internal loopback and synchronous modes of this test are not supported on x86 platforms and the maximum baud
rate supported on x86 platforms is 115200.
|
Intervention mode must be enabled to run this test.
This test is nonscalable.
Loopback Connectors
The loopback test requires null modem and plug connectors, which
are described in Appendix A.
There are a variety of loopback paths available. The internal
loopback paths do not require an external connector. Their availability depends on the device. The zs(7D) device
has an internal path for synchronous mode and the se(7D) device has an internal path for asynchronous mode. The
exact type of loopback connector required depends on the system I/O panel.
The loopback for the "Null Modem a to b" option is a
female-to-female plug. Its pin configuration is the same as the one described for the section 9-Pin to 9-Pin Port-to-Port Loopback Cable.
The loopback for the "Plug a to a" option is described
in the section 9-Pin Female Single-Port Loopback Plug.
serialtest Synchronous Testing Software Requirements
If you have zs(7D) serial
ports on your machine, the synchronous devices might not exist. Look in the /dev directory for zsh (where h=0 and/or 1). If they do not exist, use the following procedure to create them.
To Create Synchronous Devices
1. Enter the add_drv
zsh command.
2. Enter the devfsadm
command. Go to the /dev directory to check if the device nodes for zsh have been created.
# devfsadm
# cd /dev
# ls zsh
zsh
|
3. If these steps do not work, enter the rem_drv zsh command and then repeat Steps 1 and 2.
Mode and Description
Asynchronous Testing
This mode uses the asynchronous communication protocol as
described in the zs(7D)and se(7D) man
pages. The termio(7I) interface is used for configuring port
characteristics.
The user can select the loopback paths to use, the amount of
data to transfer, and the baud rate to be used for the transfer.
The test writes and reads data through the loopback path and
compares the data to the original data. The test first sends a single character. If no errors or timeouts are
detected, the rest of the data is simultaneously written and read, then compared for data integrity.
Synchronous Testing
Note - Synchronous mode is not supported
on x86 platforms.
|
This mode uses the synchronous hdlc-framing interface as
described in the zsh(7D) and se_hdlc(7D)
man pages. Data is written and read in checksum-protected packets.
The user can select the loopback paths to use and the clock
rate.
The synchronous test runs in three phases:
1. The first phase looks for activity on the port. If no
activity is detected for at least four seconds, the test proceeds to the next phase. If activity is detected,
serialtest exits with an error.
2. The second phase attempts to send and receive one
packet. If no packets are detected after five attempts, the test exits with an error. If a packet is returned,
the result is compared to the original. If the length and content of the packets do not match exactly, the test
exits with an error.
3. The third phase attempts to send many packets through
the loop. Some packet drops are to be expected especially on a heavily loaded system. The test allows a
percentage of the packets to be dropped. The user can set the drop tolerance between 0 percent and 99 percent.
The default is 20 percent. If the system is extremely busy, the
drop tolerance should be increased. Each packet is compared with its original for length and content. If a
mismatch is detected, the test exits with an error.
This mode of testing is not available for devices connected to
the super I/O port. It is, however, available for all other supported I/O ports.
serialtest Options
To reach the dialog box below, right-click on the test name in
the System Map and select Test Parameter Options. If you do not see this test in the System Map, you might need
to expand the collapsed groups, or your system may not include the device appropriate to this test. Refer to the
SunVTS User's Guide for more details.
FIGURE 46-1 serialtest
Test Parameter Options Dialog Box
TABLE 46-1
serialtest Options
Option
|
Description
|
Test Type
|
Selects how the test will run. Test options include:
a = runs the test on port a
b = runs the test on port b
a_b = runs the test on ports a and b
sequentially
a_b_concurrent = runs the test on port a
and port b concurrently.
|
Loopback Type
|
Selects the loopback test. Options include:
Internal is an internal path for a, b,
a_b, and a_b_concurrent test types.
Plug_a_to_a__b_to_b is an external
loopback plug for a, b, a_b, and a_b_concurrent test types.
no_modem_a_to_b is an external loopback
cable for a_to_b and a_to_b_concurrent test types.
Modem_a_to_b is an external loopback
cable with a modem attached to generate synchronous Transmit and Receive clocks in synchronous mode. The modem
a_to_b external loopback type is intended for Sun internal use only. It requires custom equipment that is not
available. (Supported only for SP devices.)
|
Data Type
|
Selects the data pattern to transfer. The user can select:
- Random
- Sequential
- Alphanumeric
- 0x00-0xff
|
Async Baud Rate
|
Selects the baud rate for Asynchronous mode testing. The valid
rates are: 110, 300, 600, 1200, 4800, 9600, 19200, 38400, 57600, 76800, 115200, 153600,
230400, 307200, 460800, and "ALL". The default rate is 9600 baud. Some
platforms can only support up to 38400 or 76800. If the device is connected to the super I/O port then the max
baud rate supported is 115200. The test will return an error if you try to use a higher baud rate than
is supported. For baud rates greater than 153600 the serial line drivers must be set for
RS-423 mode and not RS-232 mode. The RS-423 and RS-232 modes are usually selected by a
hardware jumper on the motherboard.
Consult your hardware installation
manual for more information.
|
Async Data Size
|
Selects the total number of bytes to transfer in Asynchronous
mode. This can range from 1 to 10000.
|
Async Flow Control
|
Selects the type of flow control to use in asynchronous mode
testing. The user can select Hardware (RTS/CTS), Software (XON/XOFF) or None. The default
depends on the loopback type. Software flow control is not allowed on a, b, a_b, or
a_b_concurrent loopback types.
|
The following options are not available for the devices
connected to the super I/O port. They are available for all other supported I/O ports.
|
Test Mode
|
Selects the mode to run the test in. The modes available are
Asynchronous, Synchronous or Both. When Both is selected, the test runs first in
Asynchronous mode then Synchronous mode.
|
Sync Baud Rate
|
Selects the device generated clock rate for
synchronous mode testing. The valid rates are from 110 to 230400. The rate does not have
to be a specific value as required for async mode baud rates. The default rate is 9600.
Some platforms can only support up to 38400 or 76800. The test will return an error if you try to use a higher
rate than is supported. For rates greater than 100000, the serial line drivers must be set for RS-423
mode and not RS-232 mode. The RS-423 and RS-232 modes are usually selected by a hardware
jumper on the motherboard.
Consult your hardware installation
manual for more information.
|
Sync Packet
|
Selects the tolerance level of Synchronous mode
dropped packets during the many_packets subtest. The default is Drop 20 percent. The valid
range is from 0 percent to 99 percent. Some packet drops are expected especially at higher Toleranceclock rates
and on a heavily loaded system.
|
Sync Poll Wait
|
Selects the number of seconds in additional time
to wait for a Synchronous mode packet to be sent. Additional time may be needed when there is
heavy system activity and time-outs are being detected. In general, the user can decrease
the value to 0 when the system load is light or increase the value when there is a heavy system load.
|
The following option is available only for devices connected to
the super I/O port. They do not apply to any other supported I/O ports.
|
User Defined Baud Rate
|
Allows the user to set
new baud rate values for the test. First select the User Defined option from the Async menu. Then enter the new
value in the User Defined Baud Rate field.
|
serialtest Test Modes
TABLE 46-2
serialtest Supported Test Modes
Mode
|
Description
|
Connection
|
Attempts to open the port to determine if the device is
connected. If it fails and the port is not busy, the test exits with an error. If it is
successful or fails with a busy or exclusive use error, then the port is considered
connected, and the test passes.
|
Functional
|
Performs the selected loopback test.
|
serialtest Command-Line Syntax
/opt/SUNWvts/bin/sparcv9/serialtest standard_arguments -o dev=device_name, porta=port_name, T=test_type, L=loopback_type, M=mode, D=data_pattern, AB=async_baud_rate, S=async_data_size, par=none|even|odd, BS=1|10|100|1000|3000|5000|10000, F=flow_control, B=sync_baud_rate, DP= sync_drop_tolerance, P=sync_poll_wait
Command-line syntax for devices connected to the super I/O port:
/opt/SUNWvts/bin/sparcv9/serialtest standard_arguments
-o dev=device_name, porta=port_name, T=test_type, L=loopback_type, D=data_pattern, AB=async_baud_rate, BS=1|10|100|1000|3000|5000|10000, F=flow_control, UAB=User_Baud_Rate
TABLE 46-3
serialtest Command-Line Syntax
Argument
|
Description
|
dev=device_name
|
Identifies the serial port(s) to test. There is no default
value. You must specify a device name such as:
- se0
- zs0,
zs1
- zs2, zs3
- su0
|
porta=port_name
|
The name of the first device of a serial device pair. The
default is a.
|
T=test_type
|
Specifies the type of test to run:
- a = runs the test on port a.
- b = runs the test on port b.
- a_b = runs the test on ports a and b sequentially.
- a_b_concurrent = runs the test on port a and port b
concurrently.
- a_to_b = runs the test from port a to port b.
|
L=loopback_type
|
The type of loopback connector attached to
ports:
- No_modem_a_to_b
- Internal_a_to_a__b_to_b
- Plug_a_to_a__b_to_b
- Modem_a_to_b
|
M=mode
|
The default test mode is asynchronous. Specify one of the
following modes:
|
D=data_pattern
|
Selects the data pattern to transfer. The user can select:
- Random
- Sequential
- Alphanumeric
- 0x00-0xFF
|
AB=async_baud_rate
|
Asynchronous baud rate (default = 9600). The valid values are
between 110 - 460800.
Note: Some platforms can only support
asynchronous baud rates up to 38400 or 76800. For baud rates greater than 153600 the serial line drivers must be
set for RS-423 mode and not RS-232 mode.
|
S=async_data_size
|
Asynchronous mode total number of bytes to write; from 1 to
10000 bytes.
|
par=none|even|odd
|
Parity used in the async loop test. Default value is none.
|
BS=1|10|100|1000|3000|5000|10000
|
Number of bytes in each write during async loop test. Default
value is 100.
|
F=flow_control
|
Asynchronous mode flow control:
- Hardware (RTS/CTS)
- Software (xon/xoff)
- None
|
B=sync_baud_rate
|
Synchronous baud rate (default = 9600). The valid rates
are between 110 - 256000.
Note: Some platforms can only support synchronous rates up to
38400 or 76800. For rates greater than 100000 the serial line drivers must be set for
RS-423 mode and not RS-232 mode.
|
DP=sync_drop_tolerance
|
Synchronous mode drop packet tolerance (default=20 percent).
|
P=sync_poll_wait
|
Synchronous mode additional wait time during poll (in seconds).
|
UAB=User_Baud_Rate
|
The user can specify any valid baud rate. To do this, AB should
be set to "u".
|
SunVTS 6.0 Test
Reference Manual
|
817-7665-10
|
|
Copyright © 2005, Sun Microsystems, Inc. All Rights
Reserved.