Appendix F. Diagnostics

The divo_confidence diagnostic test shell script verifies proper DIVO board operation. This script calls the diagnostic software for DIVO field service hardware diagnosis and board fault isolation. When the DIVO board and its software are installed, this shell script is run.

The script divo_confidence calls board-level tests and VL-based tests. It requires IRIX 6.4 or later.

The test suite is explained in these sections:

divo_confidence Functionality

A divo_confidence loop takes about five minutes per DIVO board. On the first DIVO board it finds, the script performs the following actions.

  1. It runs a set of board-level tests on the first DIVO board it finds, printing the results at the end.

  2. It runs VL-based tests on the same board, printing results at the end.

  3. It repeats each set of tests.

  4. It writes this output to a log file in /usr/tmp/DIVO/logs that reflects the number of the DIVO board; for example:

    • /usr/tmp/DIVO/logs/divo_confidence.log0 contains test output for DIVO board 0 (the first board)

    • /usr/tmp/DIVO/logs/divo_confidence.log1 contains test output for DIVO board 1

  5. It runs the same tests on all other DIVO boards it finds, in numerical order, with repeats as above, and writes them to a log file in /usr/tmp/DIVO/logs that reflects the number of the DIVO board.

  6. It creates a summary of all test results for all boards and prints them to the screen as well as to a separate log file, /usr/tmp/DIVO/logs/elog.<n>.

Figure F-1 diagrams the contents of the /usr/diags/DIVO directory.

Figure F-1. /usr/diags/DIVO Contents


For detailed information on the board tests, see the divotest(1M) reference (man) page (/usr/share/catman/a_man/cat7/divotest.z), or use

/usr/diags/DIVO/bin/divotest -help 

or

/usr/diags/DIVO/bin/loopback -help 

Running divo_confidence

You must have root privilege to run divo_confidence from the local or remote console. One iteration of divo_confidence takes less than five minutes per DIVO board.

Follow these steps:

  1. In /usr/diags/DIVO/bin, enter

    divo_confidence 
    

  2. In the test summary, check the number of boards seen by the diagnostic test suite versus the number installed.

An example output for a system with one DIVO board follows.

=======================================================================
=========================  DIVO TEST SUMMARY  =========================

        DIVO board 0 serial #:  CEK544
        Test log for board 0:   /usr/tmp/DIVO/logs/divo_confidence.log0
        Started on:             Tue Apr 22 10:04:11 PDT 1997
        Ended on:               Tue Apr 22 10:09:00 PDT 1997
        Total loops run:        2
        Overall test results:    board 0 in slot io6 in module 1 passed!

=========================  DIVO TEST SUMMARY  =========================
=======================================================================

The example output above notifies you that the DIVO board passed all tests. If DIVO board 0 had failed, output might be as follows.

=======================================================================
=========================  DIVO TEST SUMMARY  =========================

        DIVO board 0 serial #:  CEK544
        Logfile for board 0:    /usr/tmp/DIVO/logs/divo_confidence.log0
        Started on:             Mon Apr 21 22:34:28 PDT 1997
        Ended on:               Mon Apr 21 22:39:17 PDT 1997
        Total loops run:        2
        Overall test results:    board 0 in slot io6 in module 1 failed!
        -> Please replace DIVO board 0 in slot io6 in module 1.
        -> View /usr/tmp/DIVO/logs/elog.0 for details of test failures.

=========================  DIVO TEST SUMMARY  =========================
=======================================================================

To see ERROR and FAIL messages for each failed DIVO board in the system, look in the error log file for that board, /usr/tmp/DIVO/logs/elog.<n>.

To see the complete divo_confidence output for an individual board, view its log file, /usr/tmp/DIVO/logs/divo_confidence.log<n> (for example, /usr/tmp/DIVO/logs/divo_confidence.log0). See Section , “divo_confidence Output,” for more information.

The divotest suite reports failures to the field-replaceable unit (FRU) level; for DIVO, this level is the board itself. If the board fails any test, contact your service provider to arrange replacement of the board.

divo_confidence Output

As mentioned previously, when divo_confidence runs the divotest suite, it prints results at the end of each test iteration. The output format is line-based and never more than 80 characters long. Table F-1 summarizes the four-character identifiers that head each line of output.

Table F-1. divotest Output Identifiers

Identifier

Meaning

TEST

Test start marker, generated at the beginning of a test; gives test's symbolic name and description. All lines up to next TEST line belong to this test.

RSLT

Test result, generated at the end of a test; gives test's symbolic name and the test result (PASS, FAIL, UNRESOLVED, UNTESTED).

DIAG

Diagnostic message: one or more of these lines precedes any FAIL or UNRESOLVED message. Message indicates components or wires that are possible causes of the failure.

INFO

Information useful to advanced user of the diagnostic test including test progress reports, exp/rcv pairs, and so on.

DBUG

Gives information only when debugging output is turned on (not recommended for field use).

TIME

Time stamp, generated at important time boundaries such as the beginning and end of divotest.

META

Summarizes information for several tests or across multiple full test loops in table format, giving PASS and FAIL counts of each test and totals over all tests.

ABRT

Reports an exceptional error condition leading to the abortion of the diagnostic tests; probably caused by a malloc failure, unexpected system call failure, or assertion failure; rare.

FILES

/usr/diags/DIVO/bin/divotest contains executables for DIVO diagnostics.
/usr/diags/DIVO/ucode is a directory of DIVO diagnostic microcode.
/usr/diags/DIVO/data is a directory of data files for DIVO diagnostics. See Figure F-1.

The following is an example test output for divo_confidence—that is, both divotest and the VL-based tests—for a system with two DIVO boards correctly installed.


Note: For ease of understanding, iterations are indicated rather than reproduced in full.


===== DIVO_CONFIDENCE ==== DIVO_CONFIDENCE ==== DIVO_CONFIDENCE =====
===== DIVO_CONFIDENCE ==== DIVO_CONFIDENCE ==== DIVO_CONFIDENCE =====

Starting divo_confidence script ......
Found 2 DIVO(s) installed ......

divo_confidence script takes about 5 minutes per board to run ......
Looping 2 time(s) ......

Test log for board 0 is /usr/tmp/DIVO/logs/divo_confidence.log0

        Uname:                  IRIX64 testsystem28-3 6.4 02121744 IP27
        Divotest is:            /usr/diags/DIVO/bin/divotest
        VL tests path:          /usr/dmedia/bin/DIVO

===> Tue Apr 22 10:04:12 PDT 1997
===> Running divotest (ex_loop 1) on board 0 slot io6 module 1
TIME      0.005   Tue Apr 22 10:04:12 1997
CMDL          /usr/diags/DIVO/bin/divotest MODNUM=1 DEVNUM=0 REPEAT=10
CMDL            -continue -fe0 -fe1 TRACE=/usr/tmp/DIVO/logs/divotest.0
CMDL            -notime -noinfo -notrace
TEST init0          Initialize INPIPE front-end hardware
RSLT init0          PASS
TEST init1          Initialize OUTPIPE front-end hardware
RSLT init1          PASS
TEST refresh0       Refresh INPIPE SDRAM
RSLT refresh0       PASS
TEST refresh1       Refresh OUTPIPE SDRAM
RSLT refresh1       PASS
TEST bridge         BRIDGE sanity test
RSLT bridge         PASS
TEST linc0sanity    INPIPE LINC sanity test
RSLT linc0sanity    PASS
TEST linc1sanity    OUTPIPE LINC sanity test
RSLT linc1sanity    PASS
TEST flash0sanity   INPIPE FLASHPROM sanity test
RSLT flash0sanity   PASS
TEST flash1sanity   OUTPIPE FLASHPROM sanity test
RSLT flash1sanity   PASS
TEST sdram0         INPIPE SDRAM stress test
RSLT sdram0         PASS
TEST sdram1         OUTPIPE SDRAM stress test
RSLT sdram1         PASS
TEST linc0mbox      INPIPE LINC mailbox test
RSLT linc0mbox      PASS
TEST linc1mbox      OUTPIPE LINC mailbox test
RSLT linc1mbox      PASS
TEST linc0dma       INPIPE LINC DMA engine0/engine1 stress test
RSLT linc0dma       PASS
TEST linc1dma       OUTPIPE LINC DMA engine0/engine1 stress test
RSLT linc1dma       PASS

<<<you might see other tests as well as these>>>
<<<test series repeats>>>
<<<results of divotest appear>>>

META                ITERATION=10      PASSES         NON-PASSES
META                init0             10             0
META                init1             10             0
META                refresh0          10             0
META                refresh1          10             0
META                bridge            10             0
META                linc0sanity       10             0
META                linc1sanity       10             0
META                flash0sanity      10             0
META                flash1sanity      10             0
META                sdram0            10             0
META                sdram1            10             0
META                linc0mbox         10             0
META                linc1mbox         10             0
META                linc0dma          10             0
META                linc1dma          10             0
META                TOTAL             150            0

<<<VL-based tests run next>>>
<<<results of VL-based tests appear>>>

<<<both test series repeat>>>
<<<complete suite is run on other board installed>>>
<<<then results of all tests are summarized>>
=======================================================================
=========================  DIVO TEST SUMMARY  =========================

        DIVO board 0 serial #:  CEK544
        Test log for board 0:   /usr/tmp/DIVO/logs/divo_confidence.log0
        Started on:             Tue Apr 22 10:04:11 PDT 1997
        Ended on:               Tue Apr 22 10:09:00 PDT 1997
        Total loops run:        2
        Overall test result:    board 0 in slot io6 in module 1 passed!

        DIVO board 1 serial #:  CEK545
        Test log for board 1:   /usr/tmp/DIVO/logs/divo_confidence.log1
        Started on:             Tue Apr 22 10:10:11 PDT 1997
        Ended on:               Tue Apr 22 10:15:00 PDT 1997
        Total loops run:        2
        Overall test result:    board 1 in slot io7 in module 1 passed!

========================== DIVO TEST SUMMARY ==========================
=======================================================================