Appendix A. InfiniteReality Software and Diagnostics

This appendix provides information on the required software levels needed to successfully operate the InfiniteReality graphics pipes. Field-level diagnostic tests to verify functionality in the InfiniteReality graphics subsystem are covered.

Required Software

This upgrade requires the installation of IRIX 6.2 or higher to function properly. The CD with the new OS is shipped with the upgrade components. If you need detailed information on software installation procedures, see the IRIX Admin: Software Installation and Licensing manual (P/N 007-1364-0x0).

Power-On and Testing

At this stage of the installation, you should have only the keyboard, mouse, and monitor connected. Leave any console terminal connected to the system. Do not connect additional internal or external devices to the chassis at this time.

If something is wrong with the system, it will be easier to spot problems if additional devices are not connected. Follow these procedures to power on the system:

  1. Turn on the main power switch on the back of the unit.

  2. Turn on the graphics monitor (and console terminal if installed).

  3. Turn the System Controller key switch to the On position.

  4. If desired, use the System Controller menu and display to watch the boot process status messages.

When the power-on diagnostics have been completed, you see this message on the monitor or console terminal:

Starting up the system ...To perform System Maintenance instead, press <Esc>

  1. Press <Esc> within five seconds after the completion of the power-on diagnostic. You should see a menu similar to the following:

    System Maintenance Menu

    1) Start System
    2) Install System Software
    3) Run Diagnostics
    4) Recover System
    5) Enter Command Monitor
    
    Option ? 

  2. Enter 5, "Enter Command Monitor," and see the >> prompt.

  3. Enter hinv to check and verify the basic hardware configuration of the system.


    Note: Some hardware options (such as a network board) may not be recognized by the PROM monitor. These options will not be listed by the hinv command. However, after you load and boot the operating system, the hinv command (executed at the IRIX prompt) should list most of the system hardware options. You can also type the following command at the IRIX prompt to obtain graphics hardware information (see the next section for details):

    /usr/gfx/gfxinfo


  4. Return to the Command Monitor and enter 2, "Install System Software."

  5. Make sure a CD-ROM drive is attached to the system (or is available on the network). Load the new operating system and run diagnostics as applicable.

See the IRIX Admin: Software Installation and Licensing manual (P/N 007-1364-0x0) if you need more detailed information on booting the miniroot from a remote CD-ROM.

The hinv command entered at the IRIX prompt displays more detailed information:

2 250 MHZ IP19 Processors
CPU: MIPS R4400 Processor Chip Revision: 2.1
FPU: MIPS R4010 Floating Point Chip Revision: 0.1
Data cache size: 16 Kbytes
Instruction cache size: 16 Kbytes
Secondary unified instruction/data cache size: 4 Mbytes
Main memory size:256 Mbytes, 2-way interleaved
I/O board, Ebus slot 5: IO4 revision 1
Integral EPC serial ports: 4
Integral Ethernet controller: et0, Ebus slot 5
Integral SCSI controller 1: Version WD33C95A
Integral SCSI controller 0: Version WD33C95A
Disk drive: unit 1 on SCSI controller 0
Graphics board: InfiniteReality
CC synchronization join counter
VME bus: adapter 0 mapped to adapter 45
VME bus: adapter 45
Integral IO4 parallel port: Ebus slot 5

Checking GE12 Board Information

To obtain serial number, assembly number, and revision level information on the GE12 graphics board, enter the following:

/usr/gfx/gfxinfo -vv

You see a readout similar to:

GE:NIC #: 0000.0002.a400 (family: 0b)Serial #: CGP091Part #: 030-0681-003rev_code: Agrp_code: 0x0capability: "\ff\ff\ff\ff"variety: 0xffname: GE12-4

Checking the Monitor Resolution

Use the following command to determine the screen resolution:

/usr/gfx/gfxinfo 

You should see a message similar to the following:

Graphics board 0 is "KONA" graphics. 
Managed (":0.0") 1280x1024 
Display has 2 channels
4 GEs (of 4), occmask - 0x0f
2 RM6 boards (of 2) 1/1/0/0
Texture Memory: 64MB/64MB/-/-
Medium pixel depth
32K cmap

Changing the Monitor Resolution

After you load IRIX, you can use the setmon command to change the resolution or video output format (VOF). This example shows you how to change the VOF to 1024 x 768:

su
setenv DISPLAY :0
/usr/gfx/setmon -x 1024x768_60
/usr/gfx/stopgfx;/usr/gfx/startgfx


Note: The setmon command loads the VOF value into EEPROM so that the system boots in the specified display mode.

For additional information on monitor and graphics settings, see the following reference (man) pages:

  • setmon(1g)

  • gfxinfo(1g)

  • gfxinit(1g)

  • stopgfx(1g)

  • startgfx(1g)

The setmonitor command has been superseded by the XSGIvc library.

The vout program is replaced by ircombine in all InfiniteReality graphics systems.

See Section 1.3, "InfiniteReality Combiner Programming Overview," in Chapter 1 for introductory information on the combiner options. For more detailed information on using the ircombine program with an Onyx InfiniteReality or i-Station graphics system, see the InfiniteReality Video Format Combiner User's Guide (P/N 007-3279-00x).

Flashing an IO4 Through the Command Monitor (flash -T)

To flash the IO4 PROM(s) use the flash -T command through the command monitor. Some SSEs may prefer the command monitor method since it flashes only the microcode in the IO4 PROM, whereas the inst-f method flashes the microcode in both the IO4 PROM and the system disk. This process is necessary only in rackmount systems that have multiple IO4s installed.

If you have a flashing failure while using the inst-f method, you can potentially damage both the IO4 board and the hard disk. However, this problem is unlikely to occur. If you have a flashing failure using the command monitor method, the problem is limited to the IO4 board.

Follow these steps to flash the IO4 PROM through the command monitor:

  1. Log in remotely or use an ASCII terminal to boot the system and log in as root.


    Note: It is possible to run this procedure using a graphics monitor; however, it is safer to run the steps through an ASCII terminal in case the graphics subsystem fails during installation.


  2. Load the 6.2 or higher IRIX CD into the drive.

  3. At the command monitor (IO4) prompt, enter

    >> version

    You should see a display similar to the following.

    IO4 PROM Monitor SGI Version 3.x Rev A IP19


    Note: The version number, 3.x, indicates that the IO4 PROM has been previously flashed with an IRIX 6.1 or higher PROM code. You should see the version number 3.16 (or higher).


  4. Enter hinv to find the controller number and ID number of the CD-ROM. You should see a display line similar to the following:

    SCSI controller 0 cdrom(5)


    Note: The display line specifies the controller number 0 and the ID number 5. This is very important information. You need to use these numbers later to access the contents of the CD-ROM to flash the IO4 PROM.


  5. Check if you can communicate with the CD-ROM by entering the following:

    >> ls dksc(scsi controller#,CD-ROM ID#,8)


    Note: The number 8 is the volume header section.

    Using the values obtained in our example, the command line would be

    >> ls dksc(0,5,8)io4prom

    You should see a listing of the contents of the 6.2 or higher CD-ROM similar to the following:

    sgi label io4prom mr sash64

  6. If you are able to communicate with the CD-ROM, flash the IO4 with the following command:

    >> flash -T dksc(scsi controller#,CD-ROM ID#,8)io4prom

    Using the values obtained in our example, the command line would be:

    >> flash -T dksc(0,5,8)io4prom


    Caution: Be sure to specify the -T (total) option. If you don't, only a portion of the IO4 PROM is erased by the flash command. As a result, there may not be enough memory space for the new IO4 PROM image and the flashing process will then fail.


Reboot the system after the flashing process is complete.

Read or Flash the GE12 EEPROM

The GE12 flash information in this section is provided for reference purposes. During the normal course of an InfiniteReality upgrade it is not necessary to flash the GE12's EEPROM.

To obtain status information on the GE12's EEPROM, enter the following at the system prompt:

% /usr/gfx/KONA/bin/ireeprom -i

You get a readout that looks similar to:

Manufacturer code: 0x1fDevice code: 0xc4State: GoodRevision: 103timestamp: Sat Mar 30 17:27:25 1996Code+data length: 0x15d24Checksum: 0x006f9c79

If it is necessary to "force" flash programming of the GE12's EEPROM enter the following at the system prompt:

% /usr/gfx/KONA/bin/ireeprom -w -F -f /usr/gfx/ucode/KONA/tport.bin

You get a response that looks similar to:

Reading data from image...Writing to EEPROM...EEPROM code and data load complete...Writing EEPROM header...EEPROM header load complete...Comparing EEPROM contents with image...Images match: EEPROM loaded with new imageEEPROM write completed

InfiniteReality Graphics System Audit

After the upgrade hardware and new IRIX operating system have been installed, bring up IRIX and run the diagnostics to verify proper InfiniteReality graphics operation.


Note: The irsaudit diagnostic software comes standard with all OS releases that support InfiniteReality. It does not need to be loaded from a separate diagnostics CD.

The InfiniteReality graphics system audit (irsaudit) diagnostic program is a microcode-based carefully ordered sequence of tests that together validate an InfiniteReality system as functional. It supports field service hardware diagnosis and component fault isolation. It also covers manufacturing verification and burn-in, but those topics are not covered within the scope of this manual.

The irsaudit Is Fast

Unlike some other diagnostic tests, irsaudit validates an InfiniteReality graphics subsystem in 10 minutes. The irsaudit diagnostic also requires minimal disk space (less than 10 MB). The system audit is a carefully ordered sequence of tests used to declare a new or upgraded system fully functional. The InfiniteReality graphics diagnostic audit has the following features:

  • tests individual boards (GE12, RM, DG)

  • uses JTAG, BIST, and CRC logic test on ASICs and external memory

  • non-operational microcode generates stress stimulus on components

  • tolerant of severe hardware failures (without hanging)

  • must be run after IRIX boots successfully, but before the window manager is launched (the window system cannot be active while the InfiniteReality system audit runs)

  • tests the Sirius (VO2) port when a Sirius board is present

  • tests DG option connectors when options are connected

Unlike previous graphics hardware diagnostics, irsaudit does not use the IDE harness and does not have a ``prompting'' interface. Instead, it is driven with command-line options.

Running irsaudit

The output of irsaudit is in a standardized format to allow easy parsing of results.

IRIX 6.2 or later must be running in order to utilize irsaudit. Note that the window manager should not be running, as irsaudit needs to take direct control of the graphics hardware. You can stop the window system using /usr/gfx/stopgfx from root.

The operator must have root privilege to run irsaudit. See the irsaudit(1) reference (man) page (/usr/diags/IR/bin/irsaudit) for details not covered in this chapter.

For example, to confirm the type of F ASIC installed on the system IO4, enter:

# irsaudit -sysprobe

If the IO4 has F2 only, irsaudit reports "down rev" in a blue highlight.

Entering irsaudit with no arguments following the command runs a standard set of tests that stops upon encountering a first failure. This may be useful for testing the general state of a new or upgraded system.

Arguments to irsaudit

There are a number of arguments that you can use with the irsaudit command to provide various levels of diagnostic information. Keep in mind that irsaudit must be run as root from the local or remote console. Note that the default for irsaudit is to report failures to the field replaceable unit (FRU) level.

There are four types of options (arguments) used with the irsaudit diagnostics:

  • Dash options are general options that tell irsaudit to select a particular aspect of a test or extend a test beyond default parameters. For example the -continue option tells irsaudit to continue the specified tests after a failure (the default is to stop and exit on the first failure detected).

  • Parameter options provide a numeric parameter to the irsaudit test. For instance, the parameter argument numrms=2 would cause the test to check the first two RM6s in the system only.

  • Plus options are largely undocumented options used for bring-up and debugging. A plus option would take the form +skipcrcinit and has limited or no use in the field.

  • Two-dash options remove tests from the default selected tests that would normally be run. If you want to skip all tbstress tests during the running of irsaudit, add the argument --tbstress to the specific irsaudit test.

The options are further divided into test, output control, general, and private categories. Only the categories necessary or useful for field service applications are listed in this document.

Note that # irsaudit -help prints help messages explaining all options and usages.

Test Selection Options

Following are some test selection irsaudit options that an installer may wish to input:

  • # irsaudit -all runs the program through all standard tests (this is the same as entering the irsaudit command with no arguments at all).

  • # irsaudit -ge runs only the GE12 tests.

  • # irsaudit -rm checks all the RM6 boards in the system.

  • # irsaudit -dg checks the DG4 board(s) installed in the system.

  • # irsaudit -pab checks any paddle board installed on the DG4.

Output Control Arguments

The following output control options may be useful under certain field conditions:

  • # irsaudit -noinfo suppresses the output of INFO messages.

  • # irsaudit -time enables the output of TIME messages.

Parameter Options

The following parameter options may be useful for tests conducted in the field:

  • # irsaudit PIPE=# selects which InfinteReality pipe in a multi-pipe system is to be tested. The default pipe is always 0. This option is useless in a deskside system.

  • # irsaudit REPEAT=# flags the diagnostic to repeat selected tests a set number of times.

  • # irsaudit LOG=filename sends the standard output to a named file.

General Options

  • # irsaudit -continue continues testing when a failure occurs (default is to stop on the first detected failure).

  • # irsaudit -repeat loops back over the specified tests until interrupted by entering <Ctrl-c> or until a failure occurs.

  • # irsaudit -forever loops back over the specified tests until a failure occurs or the tests are interrupted by entering <Ctrl-c>.

A Sample irsaudit Output File

The output format from irsaudit is line based and never more than 80 characters long. Each line is tagged by one of the following four-character identifiers:

  • TEST indicates the test's symbolic name and description.

  • RSLT shows a test result generated at the end of a test.

  • DIAG is a diagnosis message that precedes any failure or unresolved test.

  • INFO shows a summary of failure symptoms (useful to advanced users).

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

  • TIME is a generated time stamp for events such as the beginning or end of a test series.

  • META summarizes information generated by several tests.

  • ABRT reports an exceptional error condition that aborted the diagnostic process.

  • CODE encodes board and ASIC failures for easy parsing.

  • TRCE traces the progress of a test (must be enabled by the -trace command option).

  • CMDL shows the command-line arguments to the irsaudit diagnostic.

  • NIC# shows the on-board NIC identification numbers returned from the InfiniteReality graphics boards.

The following is an example test output. Test areas are truncated and separated by (...) to shorten the output file. This output does not apply to any particular requirement mentioned in this chapter:

%/usr/diags/IR/bin/irsaudit -c -meta 
TEST reset Reset
RSLT reset PASS
TEST hh_reg HIP Host Registers
RSLT hh_reg PASS
TEST ha_reg HIP ARM Registers
RSLT ha_reg PASS
TEST jtaginit JTAG Master
RSLT jtaginit PASS
TEST mbox ARM-Host Mailbox
RSLT mbox PASS
TEST sysprobe JTAG System Probe
RSLT sysprobe PASS
TEST nicprobe NIC Board Probe
NIC# PNGE-030-0681-001 SN-BYZ961 (0000.0002.e7cd)
INFO Unprogrammed NIC on RM0.
NIC# PNRM-??? SN-??? (0000.0002.e574)
NIC# PNDG-030-0686-001 SN-CBD709 (0000.0005.0992)
CODE nicprobe BF R PNRM-???:SN-???(0000.0002.e574)
RSLT nicprobe FAIL Error count is 1.
TEST intr HIP Interrupts
RSLT intr PASS
TEST icu_mem ICU Memory
RSLT icu_mem PASS
TEST fmreg FM Registers
RSLT fmreg PASS
TEST fmvcbus VC Bus Test (using FM)
RSLT fmvcbus PASS
TEST fmdid FM Normal DID Table
RSLT fmdid PASS
TEST fmovdid FM Overlay/Underlay DID Table
RSLT fmovdid PASS
TEST encreg Encoder Registers
RSLT encreg PASS
TEST vocreg VOC Registers
RSLT vocreg PASS
TEST vocdblbuf VOC Double-buffered Registers
RSLT vocdblbuf PASS ...

TEST texmem Texture Memory test
INFO RM #0 has 64MB of texture memory.
RSLT texmem PASS
TEST rmcrctri RM CRC tri test
RSLT rmcrctri PASS
TEST rmcrctex RM CRC tex test
RSLT rmcrctex PASS
TEST rmstress RM STRESS
RSLT rmstress PASS
META      ITERATION=1      PASSES      NON-PASSES
META      reset            1           0 
META      hh_reg           1           0 
META      ha_reg           1           0 
META      jtaginit         1           0 
META      mbox             1           0 
META      sysprobe         1           0 
META      nicprobe         0           1 
META      intr             1           0 
META      icu_mem          1           0 
META      fmreg            1           0 
META      fmvcbus          1           0 
META      fmdid            1           0 
META      fmovdid          1           0 
META      encreg           1           0 
META      vocreg           1           0 
META      vocdblbuf        1           0 
META      vocspreg         1           0 
META      voccpbuf         1           0 
META      dacreg           1           0 
META      xmapreg          1           0 
META      xmapdid          1           0 
META      xmapovdid        1           0 
META      xmapchid         1           0 
META      vcbus            1           0 
META      xmapmem          1           0 
META      ge_intbist       1           0 
META      ge_extbist       1           0 
META      geconn           1           0 
META      dg_intbist       1           0 
META      pab_intbist      0           1 
META      rmconn           1           0 
META      bpconn           1           0 
META      fpconn           1           0 
META      rm_intbist       1           0 
META      rm_extbist       1           0 ...