I have some very old high watt, low computational power SGI / IRIX machines. These have been under my care for sometime, and over the years I was member on "Nekochan", as the go to place for various tips on keeping these machines going.

To the great disappointment of various old time SGI geeks "Nekochan" has now gone to the internet graveyard.

If you are have an SGI / IRIX problem then a lot of the Nekochan refugees are now over on "IRIX Network".


So why this interest in old SGI / IRIX machines?

The reasons are N fold:

  1. These machines were the coolest things since sliced bread when I was first out of uni and doing my post graduate studies at RMIT which included both Graphics and AI units. Both of these are still relevant today
  2. I went to a "Performance Co-Pilot" birds of feather session earlier in the year. The core "Performance Co-Pilot" team are a bunch of Melbourne based ex-SGI employee's who have been working on this for over 20 years! So it was really interesting to hear what they had to say. My observation is that the collectd and Fluentd are treading over the same ground still.
  3. Many of things that are critical to working with NFVi and cloud infrastructure were available in old SGI machines well before anywhere else including: NUMA (non-uniform memory architecture) which is part of cpu / multi-core Intel server architecture and essential to understand to get best performance with NFVi paltforms, L1/L2 seperate systems monitoring and control systems which provide ability to remotely manage and partition the physical infrastructure, Graphics and Video Processing acceleration using specialise CPUs and FPGAs.
  4. I turn on my old machines periodically to see if they are still working, as I expect that at some point, leaky capacitors or dead batteries will kick in and kill them...

This post is not in anyway trying to emulate the wealth of useful information that was on "Nekochan" rather it is just my personal links and tips so I can avoid having to relearn / retest this stuff should I need to redo any of this in the future...


Adaptec AUA-3020 (Blue / Rev. B) - 3 USB + 2 Firewire & AFW-4300B (Red / Rev 1.1) cards

These two variations of Adaptec Firewire boards work (to a lesser and greater extent) with IRIX on Fuel, Tezro (not tested), O350 & Octane. When working correctly they will report as DM10 and IEEE1394 SCSI in hinv.

Correct installation requires 6.5.29/30 and IRIX Firewire 1.1 (Beta) and if install is working then should mean that fwprobe reports board without any additional "hacking" or work arounds.

The two variations are:

  • Adaptec AUA-3020 (Blue / Rev. B) - has 3 x USB + 2 x Full Size FireWire. There is another variation of this board which has 1 x Full Size FireWire + 1 x Mini FireWire (this is kwown as Rev. A). Both of these boards have NEC USB and Texas Instruments FireWire chips.
  • Adaptec AFW-4300B (Red / Rev. 1.1) - has 3 x Full Size FireWire. This board has Texas Instruments FireWire chips. There is another variation of this board with blue PCB which is known not to work with SGI / IRIX.

To use the AUA-3020 on Fuel / O350 you need to set the "systune" kernel configuration parameter:

systune pciio_multimaster_override 1
reboot

See "Internet Archive - Way Back Machine"  - "USB Card and the Fuel"

NOTE #1: In testing on Octane2 adding card to PCI Cage and configuring "systune" parameter causes a kernel crash at boot. Only way to fix is to remove the card from PCI Cage. Without systune "fix" card is not recognised.

NOTE #2: In testing with Fuel with multiple PCI cards installed I have found that AUA-3020 causes kernel crash irrespective of "systune" configuration. So given that Fuel already has USB built in I would just use AFW-4300B (see below).

The AFW-4300B works and reports as DM10 and IEEE1394 SCSI on Fuel, Tezro, O350 and Octane.

However operation on Octane is problematic and fwprobe does not report finding the board and connected devices. I have found that on Octane only IEEE1394 SCSI appears to work and IIDC FireWire Camera does not report correctly. Getting fwprobe to report correctly requires considerable hacking of HW / FW filesystem.


IRIX 6.5.X Network Install

Here is high level summary of IRIX 6.5 network install. See Ian Mapleson's SGI Depot and IRIX TechPubs for additional information;

This installation was for Tezro. IRIX Tezro support starts at 6.5.21 (so I used 6.5.22 to allow for bug fixes). The boot process uses BOOTP and rsh:

  1. Follow Ian Mapleson instructions to get Install Server setup (this involves copy each of IRIX Software Library CD's to disk and optionally creating symlink short cuts to these (to avoid having retype long names all the time)
  2. Use 6.5.22 /miniroot/unix.IP35 as boot image for Tezro
  3. Ensure there is "guest" account access to images by editing: /etc/hosts.equiv and ~guest/.rhost
  4. Use fully qualified host names when referring to source files
  5. Once at PROM select "clean install"
  6. Start with: 6.5.x/overlay-1/CDROM/dist
  7. Proceeed through: ol-2, ol-3, apps, foundations-1, foundations-2, nfs-v3
  8. Then select "done"
  9. At "INST>" prompt:
keep *
install standard
go

10. Address conflicts. Generally the <N>a option is always faster path to resolution

NOTE: Once you have bootable machine you can install additional software via GUI


Resetting Graphics Resolution

The IRIX graphics resolution settting can be managed via UI Display Setting panel, but if you set them to a particular resolution (1600x1200 @ 60HZ) and then change monitors to once that does not support the settings, then you might find you cannot get to GUI any more.

Here are some useful tips:

  • The utilities for graphic are in: /usr/gfx , including gfxinfo (get current graphics pipeline info) and setmon (set the resolution for monitor)
  • The set of valid resolutions are in: /usr/gfx/ucode/<YOUR-TYPE>/vof
  • Graphics types include: ODSY - Odyssey/VPro (V12/V10/V8,V6), IMPACT - Impact (MXE/SSE/SE)
  • X11 Monitor Settings are in: /var/X11/Xvc

So to reset you graphics you can:

  • Reboot machine in single user mode (results in default resolution: 1280x1024 on VPro) and set do /usr/gfx/setmon -x <1600x1200_60> – for example (see /usr/gfx/ucode for valid options)
  • Simply delete the: /var/X11/Xvc/<TYPE>0_TimingTable file and it will regenerate using default on reboot
  • If you can't get into single user mode, then telnet into machine and delete TimingTable file
  • Here are sample Timing Table's:
 -- here is V12 in 1280x1024 @ 60 SAFE
# cat Odyssey0_TimingTable
1280x1024_60_safe
16
1
--- and V12 when in 1600x1200 @ 60
# cat Odyssey0_TimingTable     
1600x1200_60
16
1
-- and here is IMPACT (MXE) in 1600x1200 @60
# cat Impact0_TimingTable
1600x1200_60

L3 Controller & L2 Emulator Linux Setup

The SGI Origin and Onyx 3000 / 300 series machines have L1 (level 1) controllers on each compute node. These can be connected (via USB) to single L2 (level 2) controller and L3 (Level 3) controllers can access L2 via network.

There is a hardware L3 controller (SGI console) or a linux L3 controller or you can telnet to the L2 controller for remote booting and configuration of a set of nodes.

The linux  L3 software is available at a number of places on the web including including here.

The Linux controller require a very early Linux version (I used Fedora 1, Yarrow) with kernel version 2.4 for USB to work.

I had no success getting the USB to work with VMWare and you need the USB to run the L2 simulator as this expects to connect to machines via USB. As I could not get this running on VMWare I have installed it on old PC (must have USB port).

One day I will try with KVM / QEMU ... (see here for progress on this)

NOTE: All of L2 & host L1 RS-242 serial ports are set to: 38,400 - 8 bits, No Parity, 1 stop bits (38,400 8-N-1)


Reading IRIX CD ROM on Ubuntu (Linux Box)

If you need to read an IRIX OS or other cd and do not have a CD/DVD drive connected to your SGI machine, here is simple workaround:

  1. Ensure you have xfsprog package installed (XFS == eXtensible File System)
  2. Copy the entire CD to an image file (using dd)
  3. Do a loop mount of image specifying type as efs (== extent file system)
# sudo apt install xfsprogs
# sudo dd if=/dev/cd0 of=irix-cd-01.img
# sudo mkdir /mnt/IRIXCD
# sudo mount -t efs -o ro,loop irix-cd-1.img /mnt/IRIXCD
# ls /mnt/IRIXCD
CDgrelnotes  CDrelnotes  dist  installtools  relnotes  stand  WhatsNew

NOTES 1: Why efs rather than xfs type ?

  • EFS preceeded XFS and all SGI OS cds, have been formatted as EFS to allow booting by older machines

NOTE 2: What about RedHat ?

  • SGI and RedHat co-developed the Linux EFS/XFS file system support so RedHat has XFS built in and uses it as default file-system (rather than ext4 like Ubuntu)

NOTE 3: The RedHat / SGI connection runs deep as SGI did a lot of porting to RedHat Linux, including the "Performance Co-Pilot" tool set


Recovering a bricked L2 Controller following IRIX 6.5.30 Update

As described earlier the SGI "big iron" machines have L1 & L2 controllers. There is a bug in IRIX 6.5.30 (L2 firmware version 1.44) which means if you do IRIX update and include L2 update then it will brick the L2 controller. Connecting to this you will see that it is failing due to not finding a file.

This set of information has been updated based on checking against working L2 Controller. I have also recently re-verified this via a "bricked" L2 from another SGI enthausiant. If you have problems with the instructions then please let me know.

Here is the way to recover the bricked L2:

  1. You need to connect to L2 via serial (console) port

2. Then get into L2 OS (which is a PowerPC BusyBox implementation), this is by using "shell" command or just "!"

3. Change directories into /tmp (which is writable) and create new mount point: "cd /tmp" & "mkdir TMPLIB"

4. Create a new in memory (temporary) file system and mount it on your new directory: "mount -t tmpfs -o size=800k tmpfs /tmp/TMPLIB"

5. Copy the required sub directory contents onto the temporary mounted file system: "cp /stand/sysco/lib/* /tmp/TMPLIB"

5. Assign (ifconfig) your L2 an IP address and optionally the default route if required (depending on whether your http server is on local subnet or not): "ifconfig eth0 XXX.XXX.XXX.XXX netmask 255.255.255.0 broadcast XXX.XXX.XXX.255" (assuming /24) & "route add default gw XXX.XXX.XXX.XXX eth0"

6. Get the missing file via a web server via http (or tftp server) (the missing file is: libscan.ppclinux.so which is here) and save it into your new temporary lib directory: "wget http://XXX.XXX.XXX.XXX/<LOC>/libscan.ppclinux.so" (note I am using IP addresses as I have not configured DNS in this case).

7. Now create another in memory (temporary) files systems and mount it on top of existing "/stand/sysco/lib" directory: "mount -t tmpfs -o size 800k tmpfs /stand/sysco/lib" and copy all the TMPLIB files over to this version "cp /tmp/TMPLIB/* /stand/sysco/lib"

8. Now remove the "TMPLIB" to free memory: "umount /tmp/TMPLIB" and exit shell

9. You should be able to now proceed with fixing your L2 by doing an flashsc reflash from USB connected IRIX host using patch PATCH SG0007149 which has L2 firmware 1.48

NOTE 1: See man flashsc for flashing instructions

NOTE 2: My other posting on this, which outlines the basic steps

NOTE 3: There might be other more efficient ways to getting updated mount on "/stand/sysco/lib" using mount / remount options, if you know these then please provide feedback for updating.

NOTE 4: This "hack" was originally documented on nekochan by Pymble Software.

NOTE 5: L2 Console port is: 38400,8,N,1


Recovering an L2 Controller with an L3 Controller

Another potential failure with L2 is that the image gets corrupted. This happened to me when the L2 power supply failed part way through doing a recovery from 6.5.30 bricked L2 (as per above procedure).

In this case when you connect to the L2 console port it will boot and indicate that it is in recovery mode and that you need to connect it to an L3 controller via the Console port to and run the l2recovery program:

Validating L2 Controller Flash image....FAILED!
INVALID IMAGE HEADER CHECKSUM (C55DDEBE)


FATAL ERROR!!!   Your L2 controller binary image is corrupted!!

You must perform the L2 Controller flash recovery sequence, which
allows you to download a new L2 controller image via the Console
serial connection on the L2 controller

The typical recovery sequence is:
1) Attach a serial (null modem) cable from the L2 Controller serial port
   marked "Console", to the serial port on the L3 Controller.
2) Disconnect any terminal program that may be connected to the
   serial port.
3) Execute the l2recover command on the L3 controller:
     /usr/cpu/firmware/sysco/l2recover /usr/cpu/firmware/sysco/l2.bin
4) When the command completes, the L2 should reboot.  If it does not
   then power cycle the L2 to reboot it.

So what is an L3 controller ??

It can just be your Tezro, Fuel or O350 IRIX machine, a null modem cable and the flashsc program.

I did this via Fuel using Serial Port #2 (/dev/ttyd2) plugged into the L2 serial port: "cd /usr/cpu/firmware/sysco" & "flashsc -l2recover --dev /dev/ttyd2 l2.bin"


L1 & L2 Chimera & Dallas Chip Tips

All of SGI Origin 350, Onyx 350, Onyx 4, (Fuel ?) & Tezro use a variation of the "Chimera" systems board. The non graphics servers where code named as "Chimera Server" and the Onyx and Tezro graphics machines as "Chimera Blade"

This means that they all have L1 Controllers and can be managed via an L2 controller.

In fact you can flip the machines identity by changing its Serial Number and turn rackmount Tezro's into Origin's and Origins into rackmount Tezros.

Your can also swap "Dallas" chips across from Origins / Tezro's into Numalink Routers to get around the security of Numalink Router Serials to allow you to create new and consistent Serial No's across a set of "Chimera" hosts to build up a Origin/Onyx 350 multi-chassis Numalink'ed machine.

To do this you will need to be willing to test various L1 / L2 controller serial and configuration options, some of which might cause a problem with your machine. Most of these are recoverable, but the majority of information covering the various failure and fix scenarios was documented on "Nekochan".

Here are some clues to potential problems and fixes:

  • "TLB refilll exception" - I got this when I was running an older version of L1 software with a newer (IP59_4CPU - 4 x 1 GHZ) Chimera board. The resolution was to put in an older (IP53_4CPU - 4 x 700/800 MHZ) version of Chimera board and then update the L1 version, before putting back the newer board.
  • Disabled CPU - another problem is machine boots but has disabled CPUs possibly due to the above problem which results in board being disabled and you cannot re-enable it via regular PROM moniter boot command "enableall". So in this case you need to boot the machine into POD/DEX/CAC (Power-On Diagnostic / Dirty EXclusive / CAChed) Mode by setting the Debug flags via L1. This allows you to by pass PROM boot and hence the disabled CPUs. Debug flag is: "debug 0x10d" . This opens up a whole new arcane world of tweeking. The required sequence to revive machine is to:
  1. Make sure you are directly connected to the required machines console serial port (38,400-8-N-1) (as it is not possible to do this via L2)
  2. Set the Debug Flag: "debug 0x10d"
  3. Power Up: "power up"
  4. Enter Dex mode: "go dex"
  5. Enter CaC mode : "go cac"
  6. Clear the logs: "clearalllogs"
  7. Reinitalise logs: "initalllogs"
  8. flush the buffers - "flush"
  9. Now escape back to L1 (Ctl-T) and
  10. Reset debug to 0: "debug 0"
  11. Returning to console, do a reset: "reset".

Essentially what this is doing is clearing the fault log which resulted in the CPU being disabled.

See example POD/ DEX/ CAC L1 session further below.

I think the only reference to this is in this "Nekonomicon" trace ... but some of this is in the following SGI document "Hardware Quick-reference Booklet (Origin and Onyx2 Series) - HMQ-380-C" see page 174 for "POD Mode Commands".

For tips on flipping Numalink Router serials see pymblesoft.com blog, I used the chip swapping method outlined there by swapping out Numalink Dallas chip and replacing it with one from a Tezro...

See here for pictures of Dallas DS1742W-120 orientation in O350 (IP53) and Numalink Router, which should came in handy for those having to do this.

SGI Numalink Router - Dallas DS1742W-120 Orientation
SGI Onyx4 / Origin 350 (Chimera IP53) - Dallas DS1742W-120 Orientation (Left Front / Right Back)
Tezro - Dallas DS1742W-120 (Top Front / Bottom Back)
Fuel - Dallas DS1724-120 (Left is Rear near PCI Slots)

As described above, it is possible to change a numalink router by putting in a alternate Dallas chip (from Tezro for instance) and through some tricking tweeking   with L2 getting it to take on a new serial number.

It has also been observed that if you have a Dallas chip with a flat battery in your Numalink router then it will simply take on the serial number from the connected L2 on startup.

I have also some testing of putting various Dallas chips into Numalink.

Putting in chips from Fuel , Tezro, Numalink or cleared / unitialised Dallas chips results in different behavior.

This can include whether the Numalink Router comes up with existing Rack / Slot configuration, serial secuity being enabled or it a takes on serial number from L2 controller.

Here is an example from using a chip (which could be from either Onyx4 or the original Numalink). The log shows that is auto-initalised and took on serial from L2:

?-192.168.XXX.XXX-L2>config
L2 192.168.XXX.XXX: - ---- (no rack ID set) (LOCAL)
L1 192.168.XXX.XXX:0:0   - ---r-- (no rack and slot ID set)
?-192.168.XXX.XXX-L2>serial
L2 system serial number: not set.
?-192.168.XXX.XXX-L2>192.168.XXX.XXX:0:0 brick rackslot 1 7
000r00:
brick rack set to 001 (takes effect on next L1 reboot/power cycle)
brick slot set to  07 (takes effect on next L1 reboot/power cycle)
?-192.168.XXX.XXX-L2>192.168.XXX.XXX:0:0 reboot_l1
?-192.168.XXX.XXX-L2>INFO: closed connection to 000r00
INFO: opened USB device at b1;p2/0;d6 (/dev/sgil1_0)
 
?-192.168.XXX.XXX-L2>config
L2 192.168.XXX.XXX: - ---- (no rack ID set) (LOCAL)
L1 192.168.XXX.XXX:0:0   - 001r07
?-192.168.XXX.XXX-L2>001r07
001r07 ATTN: FAN 0 warning limit reached @ 0 RPM.
001r07
001r07 ATTN: Environmental redundancy lost.
l1 log
001r07:
02/07/06 06:28:15 checksum Error - common header initialized
02/07/06 06:28:15 nvram checksum error - initializing core data.
02/07/06 06:28:15 nvram checksum error - initializing extended data.
02/07/06 06:28:15 nvram checksum error - log pointers invalid, log pointers reset
02/07/06 06:28:15 L1 booting 1.42.9
02/07/06 06:28:15 ** fixing invalid SSN value
02/07/06 06:28:15 ** fixing BSN mismatch
02/07/06 06:28:15 USB0: waiting on open
02/07/06 06:28:15 USB0: opened
02/07/06 06:28:15 USB0: registered for events
02/07/06 06:28:15 power up (PANEL)
02/07/06 06:28:15 FAN 0 warning limit reached @ 0 RPM.
02/07/06 06:28:15 Environmental redundancy lost.
02/07/06 06:28:15 L1 booting 1.42.9
02/07/06 06:28:15 USB0: waiting on open
02/07/06 06:28:15 USB0: opened
02/07/06 06:28:15 USB0: registered for events
02/07/06 06:28:15 FAN 0 warning limit reached @ 0 RPM.
02/07/06 06:28:15 Environmental redundancy lost.
?-192.168.XXX.XXX-L2>l1 serial
001r07:
BSN: NYY856    SSN: L0000000    Time: 02/07/2106 06:28:15    Security: OFF
?-192.168.XXX.XXX-L2>

It you look above at the log sequence: "checksum Error - common header initialized ...", you can see the Numalink L1 is reinitalising the Dallas chip. This is the exact same sequence observed on Fuel as well.

So I think is possible to flip a Numalink router is to just put in a cleared Dallas and start it up connected to L2. I have tried this and here is log from putting in cleared Dallas:

10/30/20 23:18:15 L1 booting 1.42.9
10/30/20 23:18:16 USB0: waiting on open
10/30/20 23:18:17 USB0: opened
10/30/20 23:18:16 USB0: registered for events
?-192.168.XXX.XXX-L2>serial all
001r07:
 
Data                            Location      Value
------------------------------  ------------  --------
Local System Serial Number      NVRAM          not set
Reference System Serial Number  NVRAM
Local Brick Serial Number       EEPROM        NYY856
Reference Brick Serial Number   NVRAM         NYY856
 
 
EEPROM      Product Name    Serial         Part Number           Rev  T/W
----------  --------------  -------------  --------------------  ---  ------
POWER       RPWR            NYY856         030_1631_004          C    00
LOGIC       ROUTER          NXA065         030_1634_004          C    00
 
?-192.168.XXX.XXX-L2>l1 power up
001r07 ERROR: SerNum:Invalid System Serial Number format. See log for details.
?-192.168.XXX.XXX-L2>l1 log
001r07:
10/30/20 23:16:22 checksum Error - common header initialized
10/30/20 23:16:22 nvram checksum error - initializing core data.
10/30/20 23:16:22 nvram checksum error - initializing extended data.
10/30/20 23:16:23 nvram checksum error - log pointers invalid, log pointers reset
10/30/20 23:16:23 L1 booting 1.42.9
10/30/20 23:16:24 USB0: waiting on open
10/30/20 23:16:24 USB0: opened
10/30/20 23:16:25 USB0: registered for events
10/30/20 23:18:15 L1 booting 1.42.9
10/30/20 23:18:16 USB0: waiting on open
10/30/20 23:18:17 USB0: opened
10/30/20 23:18:16 USB0: registered for events
10/30/20 23:19:44 Invalid SSN format.
10/30/20 23:19:45 SSN:
10/30/20 23:19:45 Numeric portion (last 7 chars) must be 0000000 through 3999999
?-192.168.XXX.XXX-L2>l1 help serial
001r07:
serial
        shows secure system serial numbering information only.
serial verify
        test the brick's readiness for secure serial numbering.
serial all
        show system and brick part/serial numbers.
serial all v|verbose
        show system and brick part/serial numbers with EEPROM indexes
serial dimm
        show dimm part/serial numbers.
serial dimm v|verbose
        show dimm part/serial numbers with extended data and EEPROM indexes.
serial clear
        clear the system serial number.
serial <str> <str> <str> <str>
        erases and reassigns system serial number using temporary authenticator.serial security on
        enables system serial number security.
?-192.168.XXX.XXX-L2>l1 serial clear
001r01:
INFO: command not supported on bricks that enforce security.
?-192.168.XXX.XXX-L2>l1 serial verify
001r01:
ERROR: SerNum:No assigned System Serial Number. See log for details

In this case it appears to have enabled Serial Security. So likely the 0nly way to get machine to initialise with new serial number is by plugging it into computer node via Numalink connection.

NOTE: More testing here using EEPROM Programmer to clear chip before putting it into SGI Chassis. This shows how to disable the serial security on Numalink Router.


Old SGI IRIX comes with DatMan DAT Audio Player

Old SGI's where the only machine that was available that could play DAT Audio tapes. To do this you needed to have a DAT/DDS drive that had special SGI firmware.

There were two main tape drives that were available:

  • Connor Archive - DAT/DDS-2
  • Sony SDT-9000 - DAT/DDS-3 that came in two varieties, one with firmware version 12.2 and one with version 13.1 .

You can flash Sony SDT-9000 drives with SGI software. The tools for this include "Sony Tape Fireware Upgrade Utility. Here is version 1.1 of this that runs on Windows XP and there are more recent and even a linux version available if you do search. There is also a DOS based flashing tool that you ran from a boot floppy. This cames packaged with SDT-9000 12.2 firmware. To use this you also have to have the DOS ASPI drivers on the boot floppy with appropriate CONFIG.SYS loader file.

My Sony SDT-9000 is an original SGI version, with 13.1 firmware. Using IRIX scsicontrol you get:

/dev/scsi/sc1d1l0:  Tape          SONY    SDT-9000        13.1
ANSI vers 2, ISO ver: 0, ECMA ver: 0; supports:  synch
Device is  not ready

The 13.1 firmware used to be available from http://forums.rpc1.org but this site is now long gone and unfortunately I seem to have lost my version...

NOTE: Having looked at my SDT-9000, I saw that it is an original SGI part with F/W 13.1 clearly stamped on it. I will see if I can use SCSI tool to extract firmware in non-distructive way.


Network Setup on IRIX

The following files are used to set the main IRIX (6.5) network configuration:

  • /etc/sys_id - the host name (not qualified) such as "frog"
  • /etc/hosts - the more complete host name and IP address, ensure you have line such as: "XXX.XXX.XXX.XXX. frog.MYDOMAIN.COM frog" (also check that localhost is defined (127.0.0.1)
  • /etc/config/netif.options - if you have mutltiple network cards and you want to change which is default then you will need to change the network interface / name configuration (typically required if you add a 1GbE or 10GbE card to your machine
  • /etc/config/ifconfig-N.options - if you need to change the network mask (defaults to 255.255.255.0) or other interface specific options. Each interface needs it own file with N=1 provided and others needing to be created explicitly
  • /etc/config/static-route.options - define the default (static route) with a line like: "$ROUTE $QUIET add net default XXX.XXX.XXX.XXX"
  • /etc/resolv.conf - to configure your DNS resolution (as per other Unix platforms)
  • /etc/nsswitch.conf - the network services switch file, make sure that the host line is using file, dns (and not yp - yellow pages, which is now obselete)
  • /etc/config/proclaim.options - if you want to configure interfaces via DHCP. Note that you must have an ip address/host name entry in the "/etc/hosts" file for proclaim to correctly configure the interface
  • /etc/ethers - provides mapping between MAC address and host name. To find MAC address of interfaces: "netstat -ian"

Locale and other IRIX configurations

IRIX shell and systems behaviour is strong affected by the Locale settings. Having incorrect Locale setting can result in strange behavior including:

  • EZsetup Account - not working
  • Infosearch - puts the wrong title on the Browser window

There are two primary environment variables that you need to make sure you have configured: TZ & LANG. The default configurations for these are in:

  • /etc/TIMEZONE - look at /usr/lib/locale/TZ for the set of defined Time Zones or you can just create you own withing the TIMEZONE configuration file
  • /etc/default/login - make sure that this has LANG=C or something else as otherwise EZsetup will not find language and location and so will automatically log out session
  • /var/sgi_apache/httpd-outbox/etc/httpd.conf - is the Apache config file and Server name here will result in what is put on the Browser title page with Infosearch (web based help)

MIDI via SGI Serial Port

SGI of at least the Octane era have very versatile Serial ports that can be controlled via sofware to support:

  • RS-232 - the default serial coms
  • RS-422 - balanced serial comms that is basis for AppleTalk / LocalTalk networking
  • AppleTalk - as SW on top of RS-422 and
  • MIDI - again on top of RS-422

To support RS-422/AppleTalk/MIDI you will need to solder together special cable.

Traditional serial MIDI (1.0) used a DIN (European standard) plug that was totally foreign go computer communiations (though used extensively in audio applicatios) which used RS-232, DB9 (PC's) and mini DIN (Mac). So to connect a computer to MIDI the first thing you needed as either a special cable, a conversion unit or most likely both.

For my SGI Octane2 I leveraged a simple passive converter made by Opocode. The Opcode Translator Pro and cut open a Macintosh LocalTalk/Serial cable  and wired it up with RS-422 / MIDI wiring compatible DB9. Here are the pictures of the MIDI interface parts for SGI setup:

Opcode Translator Pro with DB9 to mini DIN-8
Opcode Translator Pro - Front Panel
Opcode Translator Pro - Back Panel (Model / CPU - mini DIN-8 & Modem - Out DIN to Keyboard)

If you are looking to use such a set up, read about connecting old Macintosh's to MIDI and this post on MIDI on O2 which was what I referred when setting up Octane over 10 years ago.

NOTE 1: Officially the DB9 is a DE-9, but it is ubquitously referred to as DB9 including in SGI documentation

NOTE 2: Do a "man serial" to get comprehensive of description of wiring and control of the SGI serial ports and how these vary across machines.


LSI SAS3442X-R in O350 & Fuel

Adding an LSI SAS3442X-R board in combination with SATA SSD into your O350 or Fuel is by far and away the cheapest way to get signficant disk performance boost. Fuel installation is a snap, if you buy a "new old stock" retail box which comes with board + cabling with Molex power. Here is a area where the Fuel's "cheap" PC architecture wins hards down.

Within O350 rack mount server things are a little more complicated as it does not have Molex power connectors dangling all around the place or slots for for disks inside, so you need to be a little more creative to get the power and SAS/SATA cabling sorted.

Here is the low down on these board. Firstly they come in various configurations and the naming reflects this:

  • SAS3442X ==  Serial Attached SCSI, 3 Gbit/sec, 4 Internal , 4 External, 2 Connectors, PCI-X (vs PCE-e)
  • SAS3080X == SAS, 3 Gbit/sec, 8 internal, PCI-X
  • X == PCI-X and there is also a corresponding PCI-express variants
  • -R == RAID, but cards can be flashed to HBA (Initator Target) mode.

The board come in a number of versions (ReportsAs | -PartNo | FWVer):

  • 1068(A0) | -01A | A0 - avoid these as they do not have updated software available and they cannot be flashed for RAID or IT mode of operation
  • 1068(B0) | -01B | B0 - these can be cross flashed (RAID/IT) and should work in SGI's (I have not tested or confirmed this version)
  • 1068(B1) | -02C | B1 - these can be cross flashed (RAID/IT) and work well in SGIs

Once you get your board you should flash it to latest firmware / BIOS, using the HBA (IT) firmware rather than RAID firmware as SGI cannot be configured to use RAID.

To flash the board will will need an MS-DOS machine with PCI-X slot. Neither the Linux or Windows version of the flashing tool allow you to erase the flash which is required to flip it from RAID to HBA (IT) mode.

The last firmware / BIOS version is:

  • 01.33.00.00 - Firmware
  • 06.36.00.00 - BIOS

This is avaiable via the BroadCom support site and is in the "P21 Package for Window & Dos". The package includes:

  • 3442XRB0.fw - RAID (-R) for 1068(B0) series adaptors
  • 3442XRB1.fw - RAID (-R) for 1068(B1) series adaptors
  • 3442XTB0.fw - HBA (-IT) for 1068(B0) series adaptors
  • 3442XTB1.fw - HBA (-IT) for 1068(B1) series adaptors
  • mptsas.rom - BIOS (same for all versions)

NOTE: Only 1068(A0) series Firmare I was able to find is in HP Service Pack (SP45154) and after applying this the adaptor will report as SAS3080 (ie 8 Internal Ports).

To flash an "-R" board to lastest "-IT" firmware the steps are:

  1. Find the card - "sasflash -listall", you only need this if there are multiple boards in the same machine, in my example I do not use controller number option as I only had one board in the flashing machine
  2. Erase Flash - "sasflash -o -e 7" , note that this also erase the SAS device Address and so be sure to record this so you can reapply it later
  3. Flash the new Firmware & BIOS - "sasflash -o -f FMVERt.bX -b mptsas.rom"
  4. Put the SAS Address back = "sasflash -o -sasadd XXXXXXXXXX"

Card should now report new FW/BIOS version:

LSI Logic SAS3442X-R - Flashed to latest BIOS

If you have flashed it to IT (HBA) mode then you should see that it reports as XX.XX.XX.XX-IT in the FW Revision, by going into bios configuration at boot:

Now take board out of MS-DOS flashing machine and put it in your Fuel/O350 and you will see it reports the LSI 1068 at boot:

Fuel - Boot to Single User with SAS3442X-R (IT)

Here is why you would bother with this...

---
--- 1. Here is diskperf of in built Ultra 160 SCSI boot disk
---      with a Seagate Cheetah U160 spinning disk
---

# diskperf -W -D -c4g -n "fuel/pink UW160 ST336706LW" testfile
#---------------------------------------------------------
# Disk Performance Test Results Generated By Diskperf V1.2
#
# Test name     : fuel/pink UW160 ST336706LW
# Test date     : Sat Oct  3 22:52:00 2020
# Test machine  : IRIX64 pink 6.5 07202013 IP35
# Test type     : XFS data subvolume
# Test path     : testfile
# Request sizes : min=16384 max=4194304
# Parameters    : direct=1 time=10 scale=1.000 delay=0.000
# XFS file size : 4294967296 bytes
#---------------------------------------------------------
# req_size  fwd_wt  fwd_rd  bwd_wt  bwd_rd  rnd_wt  rnd_rd
#  (bytes)  (MB/s)  (MB/s)  (MB/s)  (MB/s)  (MB/s)  (MB/s)
#---------------------------------------------------------
      16384    2.60   52.58    2.88    2.89    2.32    2.45
      32768    4.98   52.84    6.08    6.10    4.38    4.62
      65536    9.14   52.85   13.70   13.72    8.03    8.32
     131072   15.68   52.51   31.43   28.23   14.27   14.76
     262144   24.39   51.92   36.51   36.63   22.76   22.36
     524288   33.61   51.29   36.42   36.74   31.47   31.79
    1048576   41.44   51.62   46.25   41.76   39.28   37.59
    2097152   46.84   51.23   46.36   46.41   45.73   43.57
    4194304   50.30   50.96   49.32   49.69   49.13   47.92
    
---
--- 2. And here is an Octane2 with an ACARD SAS/SATA adaptor
---      with a Samsung 850 EVO SATA SSD
---

# diskperf -W -D -c4g -n "octane2/porcipine scsi/sata/acard 850 EVO" testfile
#---------------------------------------------------------
# Disk Performance Test Results Generated By Diskperf V1.2
#
# Test name     : octane2/porcipine scsi/sata/acard 850 EVO
# Test date     : Sat Oct  3 22:32:06 2020
# Test machine  : IRIX64 porcipine 6.5 07202013 IP30
# Test type     : XFS data subvolume
# Test path     : testfile
# Request sizes : min=16384 max=4194304
# Parameters    : direct=1 time=10 scale=1.000 delay=0.000
# XFS file size : 4294967296 bytes
#---------------------------------------------------------
# req_size  fwd_wt  fwd_rd  bwd_wt  bwd_rd  rnd_wt  rnd_rd
#  (bytes)  (MB/s)  (MB/s)  (MB/s)  (MB/s)  (MB/s)  (MB/s)
#---------------------------------------------------------
      16384   23.72   20.57   23.65   19.16   23.67   19.08
      32768   29.38   24.93   29.36   23.86   29.34   23.73
      65536   33.03   29.02   33.02   28.26   33.01   28.15
     131072   35.43   30.43   35.40   29.61   35.43   29.49
     262144   36.94   31.26   36.93   30.41   36.92   30.32
     524288   37.67   31.53   37.66   30.66   37.67   30.56
    1048576   37.99   31.43   37.98   30.81   37.98   30.79
    2097152   38.18   31.00   38.14   30.55   38.18   30.67
    4194304   38.27   30.04   38.28   29.83   38.28   29.89
    
---
--- 3. Now here is the LSI Logic SAS3442X-R with
---       Samsung 840 EVO SATA SSD
---

# diskperf -W -D -c4g -n "fuel/pink sas3442X-I 840 EVO" test/testfile
#---------------------------------------------------------
# Disk Performance Test Results Generated By Diskperf V1.2
#
# Test name     : fuel/pink sas3442X-I 840 EVO
# Test date     : Sat Oct  3 22:23:11 2020
# Test machine  : IRIX64 pink 6.5 07202013 IP35
# Test type     : XFS data subvolume
# Test path     : test/testfile
# Request sizes : min=16384 max=4194304
# Parameters    : direct=1 time=10 scale=1.000 delay=0.000
# XFS file size : 4294967296 bytes
#---------------------------------------------------------
# req_size  fwd_wt  fwd_rd  bwd_wt  bwd_rd  rnd_wt  rnd_rd
#  (bytes)  (MB/s)  (MB/s)  (MB/s)  (MB/s)  (MB/s)  (MB/s)
#---------------------------------------------------------
      16384   96.89  105.67   94.87   63.93   94.41   63.93
      32768  138.93  150.77  129.34  103.63  135.62  102.92
      65536  180.30  194.71  136.40  149.68   59.84  149.72
     131072  205.64  225.30  148.95  191.94   61.98  191.70
     262144  224.77  245.83  132.71  224.31   57.87  224.69
     524288  228.81  258.08  131.87  246.02   59.23  246.12
    1048576  224.70  264.18  111.43  257.66   59.37  257.81
    2097152  217.02  267.26  109.98  264.21   57.54  264.55
    4194304  179.81  268.91  135.53  267.42   57.62  267.30

So spinning disk Fuel report results are generally poorer than Octane2 with SSD even though Fuel has much faster disk sub-system (160 MB/sec vs. 40/80 ?? MB/sec).

But the Fuel with SAS3442X has the best single disk performance I have ever seen on MIPS SGI machine and this is very cheap to setup compared to ACARD SCSI to SATA Adaptors which are now selling for prices that are more than an entire Fuel !  Get to ebay now to improve your Fuel performance ;-) .

NOTE #1: If you find that your sasflash version does not allow you to erase the ROM, then you should go back to an older version.

NOTE #2: See below for updated Fuel hinv


Putting SATA SSD into O350 with LSI SAS3442X

As shown above the LSI SAS3442X provides a way to put much faster modern SATA SSD into Fuel.  For O350 Servers you need do a bit of cabling playing and you can get SATA SSD installed and accessbile via same front facing disk bay used for 3.5 inch disks.

While the disk are not hot swappable, this option does allow you to easily add 1 to 4 disk depending on whether you want to still include one of the hardrives in the bay. This option also allow you to keep your DVD-ROM attached.

So if you have only a single compute module you can have boot disk, 1 or 2 SATA SSDs and DVD-ROM.

Do provide this I used:

  • LSI SAS3442X-R SAS/SATA cable that come with card
  • A Molex 1 in 2 out power extension cable
  • A Molex to 2 SATA power cable

Using the Molex extension cable was able to get power to SCSI backplane / DVD-ROM drive and have extension feed into the drive bay and the SATA power cables.  The SATA lines are then just feed through the same way.

While 2 SATA lines is easy, for 4 lines you will have to sacrifice the SCSI disk, as there is not sufficient room for drives or cables.

Here are pictures of the way to do this:

O350 - Plug Existing Cable into Molex Extension and Add SAS/SATA Power to one extension

Once to have extension run SAS lines (flat blue cabling in picture) and SAS power cables from one part of extension between fan gap and into drive bay. Then push Molex plug into same fan gap and bring out other Molex extension to plug into the existing SCSI backplane power and keep the existing DVD-ROM mini power cable out from the fan gap:

O350 - Cable Contortions to keep existing DVD-ROM Power available
O350 - SAS3442X using 2 SAS Lane and exiting ATA DVD-ROM cable slotted back into gap

The result is two SAS/SATA lanes being available in the existing drive bay:

O350 - SAS/SATA cabling feeding into drive bay
O350 - Drive bay wired for 2 x SAS/SATA and keeping boot drive and DVD-ROM

Using "Browservice" as Proxy for Modern Web via SGI / IRIX

One area of frustration for retro-computing is that the old Web browser is pretty much useless. A nice workaround is to use a proxy server than handles modern web broswer rendering and then passes result but to retro-browser as something they can use (jpgs or png bitmaps).

"Browservice" is one such solution that is simple to set up and use. To set it up you need to compile the proxy on Ubuntu server and the start up the proxy:

  • Installation - for me went mostly without a hickup
  • Running - the proxy I used guideance from "defaultrouteuk" via the YouTube he posted on his experience.
---
--- 1. Browservice Intall on Ubuntu, starting with pre-requisites
---
$ sudo apt install cmake g++ pkg-config libxcb1-dev libx11-dev libpoco-dev libjpeg-dev zlib1g-dev libpango1.0-dev libpangoft2-1.0-0 ttf-mscorefonts-installer xvfb xauth libatk-bridge2.0-0 libasound2 libgbm1 libxi6 libcups2 libnss3 libxcursor1 libxrandr2 libxcomposite1 libxss1
[sudo] password for USR:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package ttf-mscorefonts-installer is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Unable to locate package libpoco-dev
E: Package 'ttf-mscorefonts-installer' has no installation candidate
E: Unable to locate package xvfb

---
--- Install issues as per github guide for Ubuntu so
---     remove ttf-mscorefonts-installer and do manual install via
---     debian package
---

$ sudo apt remove ttf-mscorefonts-installer
$ wget https://www.nic.funet.fi/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.7_all.deb
$ sudo dpkg -i ttf-mscorefonts-installer_3.7_all.deb
Selecting previously unselected package ttf-mscorefonts-installer.
(Reading database ... 70776 files and directories currently installed.)
Preparing to unpack ttf-mscorefonts-installer_3.7_all.deb ...
Unpacking ttf-mscorefonts-installer (3.7) ...
dpkg: dependency problems prevent configuration of ttf-mscorefonts-installer:
 ttf-mscorefonts-installer depends on cabextract; however:
  Package cabextract is not installed.
 ttf-mscorefonts-installer depends on xfonts-utils; however:
  Package xfonts-utils is not installed.

dpkg: error processing package ttf-mscorefonts-installer (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 ttf-mscorefonts-installer
 
 ---
 --- Now missing cabextract so install this
 ---   this was not found, so did apt update and then install.
 ---   Install failed again indicating need to do:
 ---    $ apt --fex-broken install
 ---
$ sudo apt install cabextrat
$ apt search cabextract
$ sudo apt update
$ sudo apt-get install cabextract
$ sudo apt --fix-broken install
$ sudo apt-get install cabextract

---
--- Now go back to debian install that failed
---

$ sudo dpkg -i ttf-mscorefonts-installer_3.7_all.deb

---
--- And back to pre-requistite install...
---

$ sudo apt install cmake g++ pkg-config libxcb1-dev libx11-dev libpoco-dev libjpeg-dev zlib1g-dev libpango1.0-dev libpangoft2-1.0-0 ttf-mscorefonts-installer xvfb xauth libatk-bridge2.0-0 libasound2 libgbm1 libxi6 libcups2 libnss3 libxcursor1 libxrandr2 libxcomposite1 libxss1

---
--- Prequisites installed so now clone repository and build
---

$ mkdir src
$ cd src
$ git clone https://github.com/ttalvitie/browservice.git
Cloning into 'browservice'...
remote: Enumerating objects: 24, done.
remote: Counting objects: 100% (24/24), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 1284 (delta 10), reused 15 (delta 7), pack-reused 1260
Receiving objects: 100% (1284/1284), 2.55 MiB | 1.28 MiB/s, done.
Resolving deltas: 100% (966/966), done.
$ cd browservice
$ ./download_cef.sh
$ ./setup_cef.sh
$ make -j5
$ sudo chown root:root release/bin/chrome-sandbox && sudo chmod 4755 release/bin/chrome-sandbox

---
--- All built so start the proxy.. on port 8080
---   with jpg generation
---

$ release/bin/browservice --http-listen-addr=0.0.0.0:8080 --use-dedicated-xvfb=YES --default-quality=100

Point your browser at proxy and you should get modern web via jpgs:

Modern Web via Browservice on IRIX 6.5

Thanks you "defaultrouteuk" I hope the packet get home ok ;-)


References & Links:

  • Irix Network - working to take up hole left with demise of Nekchan, populated by many passionate and knowledgeable SGI users
  • irix7.com - keep an archive of lots and lots of original SGI technical documents
  • SGI Depot - keeps an archive of various sgi related materials and provides parts. run by Ian Mapleson one of the original sgi/irix community members and all round helpful person
  • techpub.jurassic.nl - another SGI TechPubs archive, link and thanks for keeping this high quality document (via HTML and PDF), while irix7 above is PDFs
  • "Hardware Quick-reference Booklet (Origin and Onyx2 Series) - HMQ-380-C" - this document is for older Orgin / Onyx2 , but the POD command document (see page 174 for "POD Mode Commands") is still useful for Origin 350 Chimera based systems
  • Opcode Translator Pro - was a simple Macintosh targetted MIDI interface and can be used with correctly wired cable provide MIDI keyboard interface for Octane and other SGI machines that support MIDI via serial port. See the following site for various other retro-Mac MIDI stuff.
  • MIDI on O2 - this page is the one that I referred to over 10 years ago when setting up MIDI on Octane
  • HP Server for Flashing - more details on setup to help with flashing disks & Adapters.
  • Dallas DS1742W Hacking - my testing on replacement and intialisation of Dallas DS1742W chips
  • SGI Fuel L1 Serial Comms - HPE has this old SGI bullitin which clearly states that L1 comms via internal serial port if 38400 Baud and external Serial Port #1 is 9600 Baud.

HINVs

hinv -mv (hardware inventory) is the start of understanding what your SGI machine is and what's inside it. Here are a couple of samples, starting with Tezro the last "Desktop" IRIX / MIPS SGI.

This type if data is simillar, but much easier to decipher than that you get from ipmi (BMC) interface.


Quad CPU, V12 Tezro

Lets start with a Tezro, the last "Desktop" IRIX / MIPS SGI, this one is now dead and cannabillised...

Location: /hw/module/001c01/node
       IP53_4CPU Board: barcode NET662     part 030-1868-001 rev -C
Location: /hw/module/001c01/IXbrick/xtalk/11
       WS_INT_53 Board: barcode NKX689     part 030-1881-007 rev -A
Location: /hw/module/001c01/IXbrick/xtalk/12
      ODY128B1_2 Board: barcode MXJ297     part 030-1884-002 rev -D
Location: /hw/module/001c01/IXbrick/xtalk/13
       XT-DIGVID Board: barcode NDJ045     part 030-1927-003 rev  B
Location: /hw/module/001c01/IXbrick/xtalk/15
       WS_INT_53 Board: barcode NKX689     part 030-1881-007 rev -A
Location: /hw/module/001c01/IXbrick/xtalk/15/pci-x/0/1/ioc4
             IO9 Board: barcode NDX123     part 030-1771-005 rev -A
Location: /hw/module/001c01/IXbrick/xtalk/15/pci-x/1/2
     PCI_SIO_UFC Board: barcode NFD033     part 030-1657-003 rev  A
4 700 MHZ IP35 Processors
CPU: MIPS R16000 Processor Chip Revision: 2.1
FPU: MIPS R16010 Floating Point Chip Revision: 2.1
CPU 0 at Module 001c01/Slot 0/Slice A: 700 Mhz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 2.1. Scache: Size 4 MB Speed 350 Mhz  Tap 0xc
CPU 1 at Module 001c01/Slot 0/Slice B: 700 Mhz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 2.1. Scache: Size 4 MB Speed 350 Mhz  Tap 0xc
CPU 2 at Module 001c01/Slot 0/Slice C: 700 Mhz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 2.1. Scache: Size 4 MB Speed 350 Mhz  Tap 0xc
CPU 3 at Module 001c01/Slot 0/Slice D: 700 Mhz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 2.1. Scache: Size 4 MB Speed 350 Mhz  Tap 0xc
Main memory size: 4096 Mbytes
Instruction cache size: 32 Kbytes
Data cache size: 32 Kbytes
Secondary unified instruction/data cache size: 4 Mbytes
Memory at Module 001c01/Slot 0: 4096 MB (enabled)
  Bank 0 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 1 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 2 contains 512 MB (Standard) DIMMS (enabled)
  Bank 3 contains 512 MB (Standard) DIMMS (enabled)
  Bank 4 contains 512 MB (Standard) DIMMS (enabled)
  Bank 5 contains 512 MB (Standard) DIMMS (enabled)
Integral SCSI controller 3: Version Fibre Channel QL2342 Port 1, 133 MHz PCI-X
Integral SCSI controller 4: Version Fibre Channel QL2342 Port 2, 133 MHz PCI-X
Integral SCSI controller 2: Version IDE (ATA/ATAPI) IOC4
  CDROM: unit 0 on SCSI controller 2
Integral SCSI controller 0: Version QL12160, low voltage differential
  Disk drive: unit 1 on SCSI controller 0 (unit 1)
  Disk drive: unit 2 on SCSI controller 0 (unit 2)
Integral SCSI controller 1: Version QL12160, low voltage differential
IOC3/IOC4 serial port: tty3
IOC3/IOC4 serial port: tty4
IOC3/IOC4 serial port: tty5
IOC3/IOC4 serial port: tty6
Graphics board: V12
Integral Gigabit Ethernet: tg0, module 001c01, PCI bus 1 slot 4
Iris Audio Processor: version MAD revision 1, number 1
Iris Audio Processor: version RAD revision 13.0, number 1
  PCI Adapter ID (vendor 0x1077, device 0x2312) PCI slot 1
  PCI Adapter ID (vendor 0x1077, device 0x2312) PCI slot 1
  PCI Adapter ID (vendor 0x10a9, device 0x100a) PCI slot 1
  PCI Adapter ID (vendor 0x104c, device 0xac28) PCI slot 2
  PCI Adapter ID (vendor 0x1077, device 0x1216) PCI slot 3
  PCI Adapter ID (vendor 0x14e4, device 0x1645) PCI slot 4
  PCI Adapter ID (vendor 0x1412, device 0x1724) PCI slot 2
  PCI Adapter ID (vendor 0x10a9, device 0x0005) PCI slot 1
  PCI Adapter ID (vendor 0x10a9, device 0x0003) PCI slot 2
XT-DIGVID Multi-standard Digital Video: controller 0, unit 0, version 0x0
IOC4 firmware revision 79
IOC3/IOC4 external interrupts: 1
HUB in Module 001c01/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
Dual Channel Display
IP35prom in Module 001c01/Slot n0: Revision 6.210

Octane2 with Dual 600 MHz CPU and V12

To my mind the Octane was the best designed SGI desktop. Highly modular with great graphics and a nice case design. The Jony Ive Mac of its time. This is a fully loaded one with: dual CPUs, V12 graphics, Digital Video, Fibre Channel IF, Firewire and 1GbE:

Location: /hw/node
      PM20600MHZ Board: barcode MRR028     part 030-1778-001 rev  C
Location: /hw/node/xtalk/15
            IP30 Board: barcode LLY851     part 030-1467-001 rev  D
Location: /hw/node/xtalk/15/pci/2
    PWR.SPPLY.ER Board: barcode AAE1390344 part 060-0035-003 rev  A
             FP1 Board: barcode MKH271     part 030-0891-003 rev  J
Location: /hw/node/xtalk/13
        XTALKPCI Board: barcode KLA035     part 030-0952-005 rev  E
Location: /hw/node/xtalk/11
  ODY128VERSIONB Board: barcode MEE875     part 030-1611-001 rev  C
Location: /hw/node/xtalk/10
       XTALK_PCI Board: barcode MYP257     part 030-1275-005 rev  A
Location: /hw/node/xtalk/9
       XT-DIGVID Board: barcode MHC189     part 030-1653-002 rev  G
2 600 MHZ IP30 Processors
Heart ASIC: Revision F
CPU: MIPS R14000 Processor Chip Revision: 2.4
FPU: MIPS R14010 Floating Point Chip Revision: 0.0
Main memory size: 8192 Mbytes
Xbow ASIC: Revision 1.4
Instruction cache size: 32 Kbytes
Data cache size: 32 Kbytes
Secondary unified instruction/data cache size: 2 Mbytes
Integral SCSI controller 0: Version QL1040B (rev. 2), single ended
  Disk drive: unit 1 on SCSI controller 0 (unit 1)
  Disk drive: unit 2 on SCSI controller 0 (unit 2)
Integral SCSI controller 1: Version QL1040B (rev. 2), single ended
Integral SCSI controller 3: Version IEEE1394 SBP2
Integral SCSI controller 9: Version Fibre Channel QL2342 Port 1, 33 MHz PCI
Integral SCSI controller 10: Version Fibre Channel QL2342 Port 2, 33 MHz PCI
IOC3/IOC4 serial port: tty1
IOC3/IOC4 serial port: tty2
IOC3 parallel port: plp1
Graphics board: V12
Integral Fast Ethernet: ef0, version 1, pci 2
Gigabit Ethernet: tg4, PCI slot 1 port 0
Gigabit Ethernet: tg5, PCI slot 1 port 1
Iris Audio Processor: version RAD revision 12.0, number 1
  PCI Adapter ID (vendor 0x10a9, device 0x0003) PCI slot 2
  PCI Adapter ID (vendor 0x1077, device 0x1020) PCI slot 0
  PCI Adapter ID (vendor 0x1077, device 0x1020) PCI slot 1
  PCI Adapter ID (vendor 0x10a9, device 0x0005) PCI slot 3
  PCI Adapter ID (vendor 0x14e4, device 0x1648) PCI slot 1
  PCI Adapter ID (vendor 0x14e4, device 0x1648) PCI slot 1
  PCI Adapter ID (vendor 0x104c, device 0x8024) PCI slot 2
  PCI Adapter ID (vendor 0x1077, device 0x2312) PCI slot 1
  PCI Adapter ID (vendor 0x1077, device 0x2312) PCI slot 1
IIDC Video Camera: unit 0, revision 1.30, connected to DM10, unit 0
XT-DIGVID Multi-standard Digital Video: controller 0, unit 0, version 0x0
Dual Channel Display
DMediaPro DM10 FW option: unit 0, revision 1.1.0

Fuel with V12 & PCI cards

The Fuel as a greate case of what could have been. It has snappier UI performance than Octane (2 x 600 MHZ) owing to faster disk sub-system, had built-in USB but only allowed 4 MB RAM. So it sits in halfway house between Octane2 & Tezro. I have now updated as I have added: Revolution 7.1, 1 GbE, LSI SAS3442X & DM10 FireWire boards.

# hinv -mv
Location: /hw/module/001c01/node
            IP34 Board: barcode MSM019     part 030-1707-003 rev -H
Location: /hw/module/001c01/node/cpubus/0
        IP34PIMM Board: barcode MSK007     part 030-1836-001 rev -C
Location: /hw/module/001c01/Ibrick/xtalk/13
          ASTODY Board: barcode MNT914     part 030-1726-003 rev -E
Location: /hw/module/001c01/Ibrick/xtalk/14
            IP34 Board: barcode MSM019     part 030-1707-003 rev -H
Location: /hw/module/001c01/Ibrick/xtalk/15
            IP34 Board: barcode MSM019     part 030-1707-003 rev -H
1 600 MHZ IP35 Processor
CPU: MIPS R14000 Processor Chip Revision: 2.4
FPU: MIPS R14010 Floating Point Chip Revision: 2.4
CPU 0 at Module 001c01/Slot 0/Slice A: 600 Mhz MIPS R14000 Processor Chip (enabled) 
  Processor revision: 2.4. Scache: Size 4 MB Speed 300 Mhz  Tap 0xa
Main memory size: 3072 Mbytes
Instruction cache size: 32 Kbytes
Data cache size: 32 Kbytes
Secondary unified instruction/data cache size: 4 Mbytes
Memory at Module 001c01/Slot 0: 3072 MB (enabled)
  Bank 0 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 1 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 2 contains 512 MB (Standard) DIMMS (enabled)
  Bank 3 contains 512 MB (Standard) DIMMS (enabled)
Integral SCSI controller 3: Version IEEE1394 SBP2
Integral SCSI controller 2: Version SAS/SATA LS1068
  Disk drive: unit 3 on SCSI controller 2 (unit 3)
Integral SCSI controller 0: Version QL12160, low voltage differential
  Disk drive: unit 1 on SCSI controller 0 (unit 1)
Integral SCSI controller 1: Version QL12160, single ended
  Tape drive: unit 1 on SCSI controller 1: DAT
  CDROM: unit 2 on SCSI controller 1
IOC3/IOC4 serial port: tty1
IOC3/IOC4 serial port: tty2
IOC3 parallel port: plp1
Graphics board: V12
Gigabit Ethernet: tg1, module 001c01, PCI bus 2 slot 1
Integral Fast Ethernet: ef0, version 1, module 001c01, pci 4
Iris Audio Processor: version MAD revision 1, number 1
  PCI Adapter ID (vendor 0x14e4, device 0x1645) PCI slot 1
  PCI Adapter ID (vendor 0x1000, device 0x0054) PCI slot 2
  PCI Adapter ID (vendor 0x1077, device 0x1216) PCI slot 1
  PCI Adapter ID (vendor 0x1412, device 0x1724) PCI slot 2
  PCI Adapter ID (vendor 0x104c, device 0x8024) PCI slot 3
  PCI Adapter ID (vendor 0x10a9, device 0x0003) PCI slot 4
  PCI Adapter ID (vendor 0x11c1, device 0x5802) PCI slot 5
IIDC Video Camera: unit 0, revision 1.30, connected to DM10, unit 0
HUB in Module 001c01/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
IP35prom in Module 001c01/Slot n0: Revision 6.211
DMediaPro DM10 FW option: unit 0, revision 1.1.0
USB controller: type OHCI

If you have one of these lying around working then you need to consider contacting a historical computer museum. In its day this was considered a "super computer". Now it is out-classed by a single 2RU Dual CPU high core count Intel based server and as you can see from picture it takes up signficantly more space...

Onyx4/ 350 (O350) Numalink-ed Rack with 5 Chassis for total of 20 CPUs

This one has a Numalink'ed rack with 5 compute chassis with 4 CPU's each for total of 20 CPUs (some 700 Mhz, some 800 Mhz and some 1 GHz):

Location: /hw/module/001c01/node
       IP53_4CPU Board: barcode NRG676     part 030-1956-003 rev -A
Location: /hw/module/001c01/IXbrick/xtalk/12
      ODY128B1_2 Board: barcode RCZ635     part 030-1909-008 rev -B
Location: /hw/module/001c01/IXbrick/xtalk/15
       2U_INT_53 Board: barcode REF634     part 030-1809-006 rev -D
Location: /hw/module/001c01/IXbrick/xtalk/15/pci-x/0/1/ioc4
             IO9 Board: barcode NZT098     part 030-1771-006 rev -A
Location: /hw/module/001c02/node
       IP53_4CPU Board: barcode NET662     part 030-1868-001 rev -C
Location: /hw/module/001c02/IXbrick/xtalk/12
       XT-DIGVID Board: barcode NSY227     part 030-1927-004 rev  A
Location: /hw/module/001c02/IXbrick/xtalk/15
       2U_INT_53 Board: barcode RBY376     part 030-1809-006 rev -D
Location: /hw/module/001c02/IXbrick/xtalk/15/pci-x/0/1/ioc4
             IO9 Board: barcode RBG126     part 030-1771-006 rev -A
Location: /hw/module/001c03/node
       IP59_4CPU Board: barcode RMB786     part 030-1989-003 rev -D
Location: /hw/module/001c03/IXbrick/xtalk/15
       2U_INT_53 Board: barcode NCA858     part 030-1809-003 rev -B
Location: /hw/module/001c03/IXbrick/xtalk/15/pci-x/0/1/ioc4
             IO9 Board: barcode RAD764     part 030-1771-006 rev -A
Location: /hw/module/001c03/IXbrick/xtalk/15/pci-x/1/1
     PCI_SIO_UFC Board: barcode NFD033     part 030-1657-003 rev  A
Location: /hw/module/001c04/node
       IP59_4CPU Board: barcode RAG401     part 030-1989-003 rev -C
Location: /hw/module/001c04/IXbrick/xtalk/15
       2U_INT_53 Board: barcode RHM011     part 030-1809-006 rev -D
Location: /hw/module/001c04/IXbrick/xtalk/15/pci-x/0/1/ioc4
             IO9 Board: barcode NFV336     part 030-1771-005 rev -A
Location: /hw/module/001c07/node
       IP59_4CPU Board: barcode RBS625     part 030-1989-003 rev -C
Location: /hw/module/001c07/IXbrick/xtalk/15
       2U_INT_53 Board: barcode NAL684     part 030-1809-003 rev -B
Location: /hw/module/001c07/IXbrick/xtalk/15/pci-x/0/1/ioc4
             IO9 Board: barcode NAJ955     part 030-1771-005 rev -A
Location: /hw/module/001r06/router
          ROUTER Board: barcode NCW164     part 030-1634-003 rev -A
Processor 0: 800 MHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 2.2
FPU: MIPS R16010 Floating Point Chip Revision: 2.2
Processor 1: 800 MHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 2.2
FPU: MIPS R16010 Floating Point Chip Revision: 2.2
Processor 2: 800 MHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 2.2
FPU: MIPS R16010 Floating Point Chip Revision: 2.2
Processor 3: 800 MHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 2.2
FPU: MIPS R16010 Floating Point Chip Revision: 2.2
Processor 4: 1.0 GHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 3.0
FPU: MIPS R16010 Floating Point Chip Revision: 3.0
Processor 5: 1.0 GHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 3.0
FPU: MIPS R16010 Floating Point Chip Revision: 3.0
Processor 6: 1.0 GHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 3.0
FPU: MIPS R16010 Floating Point Chip Revision: 3.0
Processor 7: 1.0 GHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 3.0
FPU: MIPS R16010 Floating Point Chip Revision: 3.0
Processor 8: 1.0 GHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 3.0
FPU: MIPS R16010 Floating Point Chip Revision: 3.0
Processor 9: 1.0 GHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 3.0
FPU: MIPS R16010 Floating Point Chip Revision: 3.0
Processor 10: 1.0 GHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 3.0
FPU: MIPS R16010 Floating Point Chip Revision: 3.0
Processor 11: 1.0 GHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 3.0
FPU: MIPS R16010 Floating Point Chip Revision: 3.0
Processor 12: 700 MHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 2.1
FPU: MIPS R16010 Floating Point Chip Revision: 2.1
Processor 13: 700 MHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 2.1
FPU: MIPS R16010 Floating Point Chip Revision: 2.1
Processor 14: 700 MHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 2.1
FPU: MIPS R16010 Floating Point Chip Revision: 2.1
Processor 15: 700 MHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 2.1
FPU: MIPS R16010 Floating Point Chip Revision: 2.1
Processor 16: 1.0 GHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 3.0
FPU: MIPS R16010 Floating Point Chip Revision: 3.0
Processor 17: 1.0 GHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 3.0
FPU: MIPS R16010 Floating Point Chip Revision: 3.0
Processor 18: 1.0 GHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 3.0
FPU: MIPS R16010 Floating Point Chip Revision: 3.0
Processor 19: 1.0 GHZ IP35 
CPU: MIPS R16000 Processor Chip Revision: 3.0
FPU: MIPS R16010 Floating Point Chip Revision: 3.0
CPU 0 at Module 001c01/Slot 0/Slice A: 800 Mhz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 2.2. Scache: Size 4 MB Speed 400 Mhz  Tap 0xa
CPU 1 at Module 001c01/Slot 0/Slice B: 800 Mhz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 2.2. Scache: Size 4 MB Speed 400 Mhz  Tap 0xa
CPU 2 at Module 001c01/Slot 0/Slice C: 800 Mhz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 2.2. Scache: Size 4 MB Speed 400 Mhz  Tap 0xa
CPU 3 at Module 001c01/Slot 0/Slice D: 800 Mhz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 2.2. Scache: Size 4 MB Speed 400 Mhz  Tap 0xa
CPU 12 at Module 001c02/Slot 0/Slice A: 700 Mhz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 2.1. Scache: Size 4 MB Speed 350 Mhz  Tap 0xc
CPU 13 at Module 001c02/Slot 0/Slice B: 700 Mhz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 2.1. Scache: Size 4 MB Speed 350 Mhz  Tap 0xc
CPU 14 at Module 001c02/Slot 0/Slice C: 700 Mhz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 2.1. Scache: Size 4 MB Speed 350 Mhz  Tap 0xc
CPU 15 at Module 001c02/Slot 0/Slice D: 700 Mhz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 2.1. Scache: Size 4 MB Speed 350 Mhz  Tap 0xc
CPU 4 at Module 001c03/Slot 0/Slice A: 1.0 Ghz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 3.0. Scache: Size 16 MB Speed 333 Mhz  Tap 0x15
CPU 5 at Module 001c03/Slot 0/Slice B: 1.0 Ghz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 3.0. Scache: Size 16 MB Speed 333 Mhz  Tap 0x15
CPU 6 at Module 001c03/Slot 0/Slice C: 1.0 Ghz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 3.0. Scache: Size 16 MB Speed 333 Mhz  Tap 0x15
CPU 7 at Module 001c03/Slot 0/Slice D: 1.0 Ghz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 3.0. Scache: Size 16 MB Speed 333 Mhz  Tap 0x15
CPU 16 at Module 001c04/Slot 0/Slice A: 1.0 Ghz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 3.0. Scache: Size 16 MB Speed 333 Mhz  Tap 0x15
CPU 17 at Module 001c04/Slot 0/Slice B: 1.0 Ghz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 3.0. Scache: Size 16 MB Speed 333 Mhz  Tap 0x15
CPU 18 at Module 001c04/Slot 0/Slice C: 1.0 Ghz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 3.0. Scache: Size 16 MB Speed 333 Mhz  Tap 0x15
CPU 19 at Module 001c04/Slot 0/Slice D: 1.0 Ghz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 3.0. Scache: Size 16 MB Speed 333 Mhz  Tap 0x15
CPU 8 at Module 001c07/Slot 0/Slice A: 1.0 Ghz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 3.0. Scache: Size 16 MB Speed 333 Mhz  Tap 0x15
CPU 9 at Module 001c07/Slot 0/Slice B: 1.0 Ghz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 3.0. Scache: Size 16 MB Speed 333 Mhz  Tap 0x15
CPU 10 at Module 001c07/Slot 0/Slice C: 1.0 Ghz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 3.0. Scache: Size 16 MB Speed 333 Mhz  Tap 0x15
CPU 11 at Module 001c07/Slot 0/Slice D: 1.0 Ghz MIPS R16000 Processor Chip (enabled) 
  Processor revision: 3.0. Scache: Size 16 MB Speed 333 Mhz  Tap 0x15
Main memory size: 40960 Mbytes
Instruction cache size: 32 Kbytes
Data cache size: 32 Kbytes
Secondary unified instruction/data cache size: 4 Mbytes
Secondary unified instruction/data cache size: 4 Mbytes
Secondary unified instruction/data cache size: 4 Mbytes
Secondary unified instruction/data cache size: 4 Mbytes
Secondary unified instruction/data cache size: 16 Mbytes
Secondary unified instruction/data cache size: 16 Mbytes
Secondary unified instruction/data cache size: 16 Mbytes
Secondary unified instruction/data cache size: 16 Mbytes
Secondary unified instruction/data cache size: 16 Mbytes
Secondary unified instruction/data cache size: 16 Mbytes
Secondary unified instruction/data cache size: 16 Mbytes
Secondary unified instruction/data cache size: 16 Mbytes
Secondary unified instruction/data cache size: 4 Mbytes
Secondary unified instruction/data cache size: 4 Mbytes
Secondary unified instruction/data cache size: 4 Mbytes
Secondary unified instruction/data cache size: 4 Mbytes
Secondary unified instruction/data cache size: 16 Mbytes
Secondary unified instruction/data cache size: 16 Mbytes
Secondary unified instruction/data cache size: 16 Mbytes
Secondary unified instruction/data cache size: 16 Mbytes
Memory at Module 001c01/Slot 0: 8192 MB (enabled)
  Bank 0 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 1 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 2 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 3 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 4 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 5 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 6 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 7 contains 1024 MB (Premium) DIMMS (enabled)
Memory at Module 001c02/Slot 0: 8192 MB (enabled)
  Bank 0 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 1 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 2 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 3 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 4 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 5 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 6 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 7 contains 1024 MB (Premium) DIMMS (enabled)
Memory at Module 001c03/Slot 0: 8192 MB (enabled)
  Bank 0 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 1 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 2 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 3 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 4 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 5 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 6 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 7 contains 1024 MB (Premium) DIMMS (enabled)
Memory at Module 001c04/Slot 0: 8192 MB (enabled)
  Bank 0 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 1 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 2 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 3 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 4 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 5 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 6 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 7 contains 1024 MB (Premium) DIMMS (enabled)
Memory at Module 001c07/Slot 0: 8192 MB (enabled)
  Bank 0 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 1 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 2 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 3 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 4 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 5 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 6 contains 1024 MB (Premium) DIMMS (enabled)
  Bank 7 contains 1024 MB (Premium) DIMMS (enabled)
ROUTER in Module 001c02/Slot 0: Revision 1: Active Ports [1,2,3,4,5,] (enabled)
Integral SCSI controller 8: Version IDE (ATA/ATAPI) IOC4
  CDROM: unit 0 on SCSI controller 8
Integral SCSI controller 14: Version IDE (ATA/ATAPI) IOC4
  CDROM: unit 0 on SCSI controller 14
Integral SCSI controller 9: Version QL12160, low voltage differential
  Disk drive: unit 2 on SCSI controller 9 (unit 2)
Integral SCSI controller 10: Version QL12160, low voltage differential
Integral SCSI controller 11: Version IDE (ATA/ATAPI) IOC4
Integral SCSI controller 15: Version SAS/SATA LS1068
Integral SCSI controller 16: Version QL12160, low voltage differential
  Disk drive: unit 1 on SCSI controller 16 (unit 1)
Integral SCSI controller 17: Version QL12160, low voltage differential
Integral SCSI controller 18: Version IEEE1394 SBP2
Integral SCSI controller 3: Version IDE (ATA/ATAPI) IOC4
Integral SCSI controller 12: Version QL12160, low voltage differential
Integral SCSI controller 13: Version QL12160, low voltage differential
Integral SCSI controller 2: Version IDE (ATA/ATAPI) IOC4
  CDROM: unit 0 on SCSI controller 2
Integral SCSI controller 4: Version QL12160, low voltage differential
Integral SCSI controller 5: Version QL12160, low voltage differential
Integral SCSI controller 6: Version Fibre Channel LS949X Port 0
Integral SCSI controller 0: Version QL12160, low voltage differential
  Disk drive: unit 1 on SCSI controller 0 (unit 1)
Integral SCSI controller 1: Version QL12160, low voltage differential
Integral SCSI controller 7: Version Fibre Channel LS949X Port 1
IOC3/IOC4 serial port: tty11
IOC3/IOC4 serial port: tty12
IOC3/IOC4 serial port: tty13
IOC3/IOC4 serial port: tty14
IOC3/IOC4 serial port: tty21
IOC3/IOC4 serial port: tty22
IOC3/IOC4 serial port: tty23
IOC3/IOC4 serial port: tty24
IOC3/IOC4 serial port: tty17
IOC3/IOC4 serial port: tty18
IOC3/IOC4 serial port: tty19
IOC3/IOC4 serial port: tty20
IOC3/IOC4 serial port: tty3
IOC3/IOC4 serial port: tty4
IOC3/IOC4 serial port: tty5
IOC3/IOC4 serial port: tty6
IOC3/IOC4 serial port: tty7
IOC3/IOC4 serial port: tty8
IOC3/IOC4 serial port: tty9
IOC3/IOC4 serial port: tty10
IOC3/IOC4 serial port: tty15
IOC3/IOC4 serial port: tty16
Graphics board: V12
Gigabit Ethernet: tg2, module 001c03, PCI bus 1 slot 4
Gigabit Ethernet: tg4, module 001c07, PCI bus 1 slot 4
Gigabit Ethernet: tg3, module 001c04, PCI bus 1 slot 4
Gigabit Ethernet: tg1, module 001c02, PCI bus 1 slot 4
Integral Gigabit Ethernet: tg0, module 001c01, PCI bus 1 slot 4
10 Gigabit Ethernet: xg1, module 001c02, 100 MHz PCIX bus 2 slot 2
Iris Audio Processor: version MAD revision 1, number 2
Iris Audio Processor: version MAD revision 1, number 1
Iris Audio Processor: version RAD revision 13.0, number 1
  PCI Adapter ID (vendor 0x10a9, device 0x100a) PCI slot 1
  PCI Adapter ID (vendor 0x1077, device 0x1216) PCI slot 3
  PCI Adapter ID (vendor 0x14e4, device 0x1645) PCI slot 4
  PCI Adapter ID (vendor 0x10a9, device 0x100a) PCI slot 1
  PCI Adapter ID (vendor 0x1000, device 0x0054) PCI slot 2
  PCI Adapter ID (vendor 0x1077, device 0x1216) PCI slot 3
  PCI Adapter ID (vendor 0x14e4, device 0x1645) PCI slot 4
  PCI Adapter ID (vendor 0x10a9, device 0x100a) PCI slot 1
  PCI Adapter ID (vendor 0x1077, device 0x1216) PCI slot 3
  PCI Adapter ID (vendor 0x14e4, device 0x1645) PCI slot 4
  PCI Adapter ID (vendor 0x10a9, device 0x100a) PCI slot 1
  PCI Adapter ID (vendor 0x1077, device 0x1216) PCI slot 3
  PCI Adapter ID (vendor 0x14e4, device 0x1645) PCI slot 4
  PCI Adapter ID (vendor 0x10a9, device 0x100a) PCI slot 1
  PCI Adapter ID (vendor 0x1033, device 0x0035) PCI slot 2
  PCI Adapter ID (vendor 0x1033, device 0x0035) PCI slot 2
  PCI Adapter ID (vendor 0x1033, device 0x00e0) PCI slot 2
  PCI Adapter ID (vendor 0x1077, device 0x1216) PCI slot 3
  PCI Adapter ID (vendor 0x14e4, device 0x1645) PCI slot 4
  PCI Adapter ID (vendor 0x1000, device 0x0640) PCI slot 1
  PCI Adapter ID (vendor 0x10a9, device 0x0003) PCI slot 1
  PCI Adapter ID (vendor 0x1412, device 0x1724) PCI slot 2
  PCI Adapter ID (vendor 0x104c, device 0x8024) PCI slot 1
  PCI Adapter ID (vendor 0x1033, device 0x0035) PCI slot 2
  PCI Adapter ID (vendor 0x1033, device 0x0035) PCI slot 2
  PCI Adapter ID (vendor 0x1033, device 0x00e0) PCI slot 2
  PCI Adapter ID (vendor 0x1000, device 0x0640) PCI slot 1
  PCI Adapter ID (vendor 0x17d5, device 0x5831) PCI slot 2
  PCI Adapter ID (vendor 0x1412, device 0x1724) PCI slot 1
  PCI Adapter ID (vendor 0x10a9, device 0x0005) PCI slot 2
XT-DIGVID Multi-standard Digital Video: controller 0, unit 0, version 0x0
IOC4 firmware revision 83
IOC4 firmware revision 79
IOC4 firmware revision 79
IOC4 firmware revision 83
IOC4 firmware revision 83
IOC3/IOC4 external interrupts: 3
IOC3/IOC4 external interrupts: 5
IOC3/IOC4 external interrupts: 4
IOC3/IOC4 external interrupts: 2
IOC3/IOC4 external interrupts: 1
HUB in Module 001c01/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
HUB in Module 001c02/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
HUB in Module 001c03/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
HUB in Module 001c04/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
HUB in Module 001c07/Slot 0: Revision 2 Speed 200.00 Mhz (enabled)
Dual Channel Display
IP35prom in Module 001c01/Slot n0: Revision 6.211
IP35prom in Module 001c02/Slot n0: Revision 6.211
IP35prom in Module 001c03/Slot n0: Revision 6.211
IP35prom in Module 001c04/Slot n0: Revision 6.211
IP35prom in Module 001c07/Slot n0: Revision 6.211
DMediaPro DM10 FW option: unit 0, revision 1.1.0
USB controller: type OHCI
USB controller: type OHCI
USB controller: type OHCI
USB controller: type OHCI

Sample POD/DEX/CAC Session via Console Serial Port

Here is a sample session on Chimera board via L1 Console Serial Port

01c01-L1>help
Commands are:
check              fru                promver|promversionnode               
reset|rst          prom               try                pic                    
make               pwm                syscom             error                  
pci                *                  autopower|apwr     syscom|junkbus|jb|bedr 
partdb             cpu                nia|ni|ctc         nib                    
iia|ii|cti         iib                iic                iid                    
config|cfg         debug              display|dsp        button|btn             
env                fan                help|hlp           history|hist           
l1dbg              link               log                ioport|ioprt           
istat              l1                 leds               margin|mgn             
network            pimm               port|prt           power|pwr              
reset|rst          nmi                softreset|softrst  select|sel             
serial             sysstate           eeprom             uart                   
usb                router|rtr         service            date                   
nvram              security           flash              reboot_l1              
version|ver        pbay               test|tst           scan                   
fru|pci|prom|node                                                               
enter 'hlp <cmd>' for more help on a single command.                            
001c01-L1>cpu                                                                   
CPU Present Enabled                                                             
--- ------- -------                                                             
0A    1       1                                                                 
0B    1       1                                                                 
0C    1       1                                                                 
0D    1       1                                                                 
001c01-L1>env                                                                   
Environmental monitoring is enabled and running.                                
                                                                                
Description    State       Warning Limits     Fault Limits       Current        
-------------- ----------  -----------------  -----------------  -------        
          1.8V   Wait Pwr  10%   1.62/  1.98  20%   1.44/  2.16    0.000        
           12V   Wait Pwr  10%  10.80/ 13.20  20%   9.60/ 14.40    0.125        
        12V #2   Wait Pwr  10%  10.80/ 13.20  20%   9.60/ 14.40    0.125        
          3.3V   Wait Pwr  10%   2.97/  3.63  20%   2.64/  3.96    0.069        
        12V IO   Wait Pwr  10%  10.80/ 13.20  20%   9.60/ 14.40    0.125        
        5V AUX   Wait Pwr  10%   4.50/  5.50  20%   4.00/  6.00    5.096        
      3.3V AUX   Wait Pwr  10%   2.97/  3.63  20%   2.64/  3.96    3.302        
    PCI 5V AUX   Wait Pwr  10%   4.50/  5.50  20%   4.00/  6.00    5.070        
      PCI 3.3V   Wait Pwr  10%   2.97/  3.63  20%   2.64/  3.96    0.069        
      PCI 2.5V   Wait Pwr  10%   2.25/  2.75  20%   2.00/  3.00    0.000        
        PCI 5V   Wait Pwr  10%   4.50/  5.50  20%   4.00/  6.00    0.000        
  XIO 12V BIAS   Wait Pwr  10%  10.80/ 13.20  20%   9.60/ 14.40    0.125        
        XIO 5V   Wait Pwr  10%   4.50/  5.50  20%   4.00/  6.00    0.000        
      XIO 2.5V   Wait Pwr  10%   2.25/  2.75  20%   2.00/  3.00    0.000        
  XIO 3.3V AUX   Wait Pwr  10%   2.97/  3.63  20%   2.64/  3.96    3.302        
 IP53 3.3V AUX   Wait Pwr  10%   2.97/  3.63  20%   2.64/  3.96    3.302        
   IP53 5V AUX   Wait Pwr  10%   4.50/  5.50  20%   4.00/  6.00    5.070        
      IP53 12V   Wait Pwr  10%  10.80/ 13.20  20%   9.60/ 14.40    0.125        
     IP53 VCPU   Wait Pwr  10%   1.13/  1.38  20%   1.00/  1.50    0.000        
     IP53 SRAM   Wait Pwr  10%   2.25/  2.75  20%   2.00/  3.00    0.000        
     IP53 1.5V   Wait Pwr  10%   1.35/  1.65  20%   1.20/  1.80    0.000        
                                                                                
Description     State       Warning RPM  Current RPM                            
--------------- ----------  -----------  -----------                            
FAN  0  EXHST 1   Wait Pwr         1980            0                            
FAN  1       PS   Wait Pwr         3200            0                            
FAN  2    PCI 1   Wait Pwr         1980            0                            
FAN  3    PCI 2   Wait Pwr         1980            0                            
FAN  4      ODY   Wait Pwr         1679            0                            
                                                                                
                              Advisory   Critical   Fault      Current          
Description       State       Temp       Temp       Temp       Temp             
----------------- ----------  ---------  ---------  ---------  ---------        
 0 INTERFACE 0      Wait Pwr    [Autofan Control]    75C/167F   18C/ 64F        
 1 INTERFACE 1      Wait Pwr    [Autofan Control]    75C/167F   19C/ 66F        
 2 INTERFACE 2      Wait Pwr    [Autofan Control]    75C/167F   17C/ 62F        
 3 PCI RISER        Wait Pwr    [Autofan Control]    75C/167F   17C/ 62F        
 4 ODYSSEY          Wait Pwr    [Autofan Control]    75C/167F   17C/ 62F        
 5 NODE             Wait Pwr    [Autofan Control]    75C/167F   17C/ 62F        
 6 BEDROCK          Wait Pwr  Not currently available                           
                                                                                
                     Zone Temp     Target    Current   Zone Fan   Curr/Min      
Zone Name  State     Sensors       Average   Average   Index      Fan %         
---------  --------  ------------  --------  --------  ---------  ---------     
NODE       Wait Pwr     0,1,2,5,6  47C/116F  17C/ 62F          0   18%/ 18%     
PS         Wait Pwr     0,1,2,5,6  47C/116F  17C/ 62F          1   55%/ 55%     
PCI        Wait Pwr             3  45C/113F  17C/ 62F        2,3   55%/ 55%     
ODY        Wait Pwr             4  48C/118F  17C/ 62F          4   55%/ 55%

...
... Set the debug flags and boot up to POD mode...
...

001c01-L1>debug 0x10d                                                           
debug switches set to 0x010d                                                    
001c01-L1>power up                                                              
001c01-L1>                                                                      
entering console mode  001c01 CPU0, <CTRL_T> to escape to L1                    
Starting PROM Boot process                                                      
hubii_link_good: 8-brick attached to module 001c01.                             
HUB at 0x0 attached as widget 0xb                                               
001c01/0xb/xbow_arb: nasid= 0x0 xbow_base= 0x9200000000000000                   
001c01/0xb/xbow_arb: 622 master is 0xb                                          
Check_master: link 11 is master                                                 
hubii_link_good: 8-brick attached to module 001c01.                             
Check_master: link 11 is master                                                 
                                                                                
                                                                                
IP35 PROM SGI Version 6.210  built 02:33:51 PM Aug 26, 2004                     
  built for bedrock rev. 1.1 or greater                                         
SN12 Graphics Blade.                                                            
Local master CPU A revision: f42                                                
Local slave CPU B revision: f42                                                 
Local slave CPU D revision: f42                                                 
Local slave CPU C revision: f42                                                 
PROM length: 0x1686a8, BSS length: 0xa7a0, flash count: 2                       
Configured bedrock clock: 200.0 MHz                                             
Status of local IO: 0x1 0x3fc03ff6403                                           
Bedrock Rev: 2, Module: 1 (001c01) from Sys Ctlr                                
On PROM entry: ERR_EPC=0xc00000001fc02cb0 (0xc00000001fc02cb0)                  
Configuring memory                                                              
Local memory configured: 8192 MB (premium)                                      
*** Warning: System controller debug switches are non-zero (0x10d)              
*** Diag level set to None (2)                                                  
*** Info level set to verbose                                                   
*** Boot stop requested at Global (2)                                           
before reading NICHub NIC: 0x62c0e690                                           
SR1 set to 0x6000081690349000                                                   
SR0 set to 0x0000000062c0e690                                                   
Testing/Initializing memory ...............             DONE                    
Copying PROM code to memory ...............             Copy PROM (0x90000000188
Done                                                                            
DONE                                                                            
Skipping secondary cache diags                                                  
Skipping secondary cache diags                                                  
Skipping secondary cache diags                                                  
Skipping secondary cache diags                                                  
CPU B switching stack into UALIAS and invalidating D-cache                      
CPU A switching stack into UALIAS and invalidating D-cache                      
CPU C switching stack into UALIAS and invalidating D-cache                      
CPU D switching stack into UALIAS and invalidating D-cache                      
CPU B switching into node 0 cached RAM                                          
CPU C switching into node 0 cached RAM                                          
CPU B running cached                                                            
CPU C running cached                                                            
CPU A switching into node 0 cached RAM                                          
CPU D switching into node 0 cached RAM                                          
CPU A running cached                                                            
CPU D running cached                                                            
Initializing kldir.                                                             
Done initializing kldir.                                                        
Initializing klconfig.                                                          
init_klcfg: nasid 0 start 9600000000030000 size 10000                           
Done initializing klconfig.                                                     
Discovering local IO ......................             Check_master: link 11 ir
Check_master: link 11 is master                                                 
DONE                                                                            
CPU A initialized subnode                                                       
CPU C initialized subnode                                                       
Discovering NUMAlink connectivity .........                                     
Local hub NUMAlink is down.                                                     
*** Local network link down                                                     
DONE                                                                            
Found 1 objects (1 hubs, 0 routers) in 5893 usec                                
Waiting for peers to complete discovery....             Discovery results:      
ENTRY 0: HUB(62c0e690)                                                          
    NASID=-1 Mod=1 Flg=0x9500000 PROM=6.210 Route=N/A                           
    MODULE=001c01 PARTITION=0 SPACE=RESET                                       
    Port 1 connection: Not connected                                            
    Port status: NF                                                             
DONE                                                                            
No other nodes present; becoming global master                                  
Global master is entry 0, NIC 0x62c0e690, /hw/rack/001/bay/01                   
Global master is /hw/rack/001/bay/01                                            
Global barrier (line 4315)Global barrier passed.                                
Global barrier (line 4348)Global barrier passed.                                
Master System Topology Graph (pre-nasid_assign):                                
Local Slave : Waiting for my NASID ...                                          
ENTRY 0: HUB(62c0e690)                                                          
    NASID=-1 Mod=1 Flg=0x9500000 PROM=6.210 Route=N/A                           
    MODULE=001c01 PARTITION=0 SPACE=RESET                                       
Local Slave : Waiting for my NASID ...                                          
Local Slave : Waiting for my NASID ...                                          
    Port 1 connection: Not connected                                            
    Port status: NF                                                             
Calculating NASIDs                                                              
num_routers is 0                                                                
Master System Topology Graph:                                                   
ENTRY 0: HUB(62c0e690)                                                          
    NASID=0 Mod=1 Flg=0x9500000 PROM=6.210 Route=N/A                            
    MODULE=001c01 PARTITION=0 SPACE=RESET                                       
    Port 1 connection: Not connected                                            
    Port status: NF                                                             
Distributing routing tables                                                     
Distributing NASIDs                                                             
*** NASID assigned to 0                                                         
CPU B switching to UALIAS                                                       
CPU D switching to UALIAS                                                       
CPU C switching to UALIAS                                                       
CPU A switching to UALIAS                                                       
CPU D running in UALIAS                                                         
CPU A running in UALIAS                                                         
CPU B running in UALIAS                                                         
CPU C running in UALIAS                                                         
CPU D Flushing and invalidating caches                                          
CPU C Flushing and invalidating caches                                          
CPU B Flushing and invalidating caches                                          
Changing node ID to 0                                                           
Global barrier (line 4823)Global barrier passed.                                
CPU A Flushing and invalidating caches                                          
Global barrier (line 4928)Global barrier passed.                                
CPU B switching to node 0 cached RAM                                            
CPU D switching to node 0 cached RAM                                            
CPU B running cached                                                            
CPU D running cached                                                            
CPU A switching to node 0 cached RAM                                            
CPU C switching to node 0 cached RAM                                            
CPU A running cached                                                            
CPU C running cached                                                            
Nasids in partition:  +0                                                        
Regions in partition:  +0                                                       
Intializing any CPUless nodes..............             Global barrier (line Gl.
Global barrier (line 7715)Global barrier passed.                                
DONE                                                                            
Global barrier (line 5089)Global barrier passed.                                
hubii_link_good: 8-brick attached to module 001c01.                             
Checking partitioning information .........             DONE                    
No other nodes present; becoming partition master                               
*** After partitioning ***                                                      
ENTRY 0: HUB(62c0e690)                                                          
    NASID=0 Mod=1 Flg=0x9500000 PROM=6.210 Route=N/A                            
    MODULE=001c01 PARTITION=0 SPACE=RESET                                       
    Port 1 connection: Not connected                                            
    Port status: FE                                                             
Erecting partition fences ................                        DONE          
Update config for routers connected to hubs                                     
Update config for hubs and hubless routers                                      
CPU B flushing cache                                                            
CPU D flushing cache                                                            
CPU A flushing cache                                                            
CPU C flushing cache                                                            
check_router_cfg: nasid 0 is_voyager 0 check_cfg = 0                            
Global barrier (line 5300)Global barrier passed.                                
Nasids in partition:  +0                                                        
Regions in partition: Local slave entering slave loop                           
Local slave entering slave loop                                                 
Local slave entering slave loop                                                 
 +0                                                                             
A 000 001c01:                                                                   
A 000 001c01: *** Entering POD mode on node 0

...
... Get POD Command Help
...

A 000 001c01: POD SysCt Cac> ?                                                  
A 000 001c01: Commands may be separated by semicolons, grouped with             
A 000 001c01: curly braces, and used in nested loop constructs.                 
A 000 001c01:                                                                   
A 000 001c01: Calculator                                                        
A 000 001c01:    Print hex:           px EXPR                                   
A 000 001c01:    Print decimal:       pd EXPR                                   
A 000 001c01:    Print octal:         po EXPR                                   
A 000 001c01:    Print binary:        pb EXPR                                   
A 000 001c01:    Look up PROM addr:   nm ADDR                                   
A 000 001c01: Hardware Registers                                                
A 000 001c01:    Print register(s):   pr [GPRNAME [VAL]                         
A 000 001c01:    Print fpreg(s):      pf [REGNO]                                
A 000 001c01:    Store register:      sr REG VAL                                
A 000 001c01:    Store fpreg:         sf REGNO VAL                              
A 000 001c01: Memory Access                                                     
A 000 001c01:    Print address:       pa ADDR [BITNO]                           
A 000 001c01:    Load byte:           lb ADDR [COUNT]                           
A 000 001c01:    Load half-word:      lh ADDR [COUNT]                           
A 000 001c01:    Load word:           lw ADDR [COUNT]                           
A 000 001c01:    Load double-word:    ld ADDR [COUNT]                           
A 000 001c01:    Load ASCII:          la ADDR [COUNT]                           
A 000 001c01:    Store byte:          sb ADDR [VAL [COUNT]]                     
A 000 001c01:    Store half-word:     sh ADDR [VAL [COUNT]]                     
A 000 001c01:    Store word:          sw ADDR [VAL [COUNT]]                     
A 000 001c01:    Store double-word:   sd ADDR [VAL [COUNT]]                     
A 000 001c01:    Store and verify:    sdv ADDR VAL                              
A 000 001c01: Memory Operations                                                 
A 000 001c01:    Fill mem w/ byte:    memset DST BYTE LEN                       
A 000 001c01:    Copy memory bytes:   memcpy DST SRC LEN                        
A 000 001c01:    Cmp memory bytes:    memcmp DST SRC LEN                        
A 000 001c01:    Add memory bytes:    memsum SRC LEN                            
A 000 001c01: Memory Testing                                                    
A 000 001c01:    Mem. sanity test:    santest ADDR                              
A 000 001c01:    Dir/prot init:       dirinit START LEN                         
A 000 001c01:    Memory clear:        meminit START LEN                         
A 000 001c01:    Dir. test/init:      dirtest START LEN                         
A 000 001c01:    Memory test/init:    memtest START LEN                         
A 000 001c01:    Clear errors:        clear                                     
A 000 001c01:    Display errors:      error                                     
A 000 001c01:    Quality mode:        qual [1|0]                                
A 000 001c01:    ECC mode:            ecc [1|0]                                 
A 000 001c01:    Set R10k int mask:   im [BYTE]                                 
A 000 001c01:    Test error limit:    maxerr COUNT                              
A 000 001c01:    Scan dir states:     scandir ADDR [LEN]                        
A 000 001c01:    Directory state:     dirstate [BASE [LEN [STATE]]]             
A 000 001c01: Network and Vectors                                               
A 000 001c01:    Vector read:         vr VEC VADDR                              
A 000 001c01:    Vector write:        vw VEC VADDR VAL                          
A 000 001c01:    Vector exchange:     vx VEC VADDR VAL                          
A 000 001c01:    Discover network:    disc                                      
A 000 001c01:    Dump pcfg struct:    pcfg [n:NODE] [v]                         
A 000 001c01:    Get/set node ID:     node [[VEC] ID]                           
A 000 001c01:    Set up route:        route [VEC NODE]                          
A 000 001c01:    Read router NIC:     rnic [VEC]                                
A 000 001c01:    Dump config info.:   cfg [n:NODE]                              
A 000 001c01:    Dump route table:    rtab [VEC]                                
A 000 001c01:    Dmp/clr rtr stat:    rstat VEC                                 
A 000 001c01: Control Structures                                                
A 000 001c01:    Reset the system:    reset [all]                               
A 000 001c01:    Softreset a node:    softreset n:NODE                          
A 000 001c01:    Call subroutine:     call ADDR [A0 [A1 [...]]]                 
A 000 001c01:    Inv. cache & jump:   jump ADDR [A0 [A1]]                       
A 000 001c01:    Goto slave mode:     slave                                     
A 000 001c01:    Repeat count:        repeat COUNT CMD                          
A 000 001c01:    Repeat forever:      loop CMD                                  
A 000 001c01:    While loop:          while (EXPR) CMD                          
A 000 001c01:    For loop:            for (CMD;EXPR;CMD) CMD                    
A 000 001c01:    If statement:        if (EXPR) CMD                             
A 000 001c01:    Delay:               delay MICROSEC                            
A 000 001c01:    Sleep:               sleep SEC                                 
A 000 001c01:    Benchmark timing:    time CMD                                  
A 000 001c01:    Echo string:         echo "STRING"                             
A 000 001c01: Miscellaneous                                                     
A 000 001c01:    Show PROM version:   version                                   
A 000 001c01:    Display help:        help [CMDNAME]                            
A 000 001c01:    Read hub NIC:        nic [n:NODE]                              
A 000 001c01:    Prgm remote PROM:    flash NODE [...]                          
A 000 001c01:    Prgm remote PROM with values:    fflash NODE [...]             
A 000 001c01:    Prgm modebits with values: setmodebits NODE [...]              
A 000 001c01: TLB and Cache                                                     
A 000 001c01:    Clear TLB:           tlbc [INDEX]                              
A 000 001c01:    Read TLB:            tlbr [INDEX]                              
A 000 001c01:    Inv. cache(s):       inval [i][d][s]                           
A 000 001c01:    Flush+inv caches:    flush                                     
A 000 001c01:    Dump dcache tag:     dtag line                                 
A 000 001c01:    Dump icache tag:     dtag line                                 
A 000 001c01:    Dump scache tag:     stag line                                 
A 000 001c01:    Dump dcache line:    dline line                                
A 000 001c01:    Dump icache line:    iline line                                
A 000 001c01:    Dump scache line:    sline line                                
A 000 001c01:    Dump dcache tag:     adtag line                                
A 000 001c01:    Dump icache tag:     aitag line                                
A 000 001c01:    Dump scache tag:     astag line                                
A 000 001c01:    Dump dcache line:    adline line                               
A 000 001c01:    Dump icache line:    ailine line                               
A 000 001c01:    Dump scache line:    asline line                               
A 000 001c01:    Store a scache dword:  sscache line taglo taghi                
A 000 001c01:    Store a scache tag:    sstag line taglo taghi [way]            
A 000 001c01:    Set memory mode:     go dex|unc|cac                            
A 000 001c01:    Hub_send_data_err:   hubsde                                    
A 000 001c01:    Rtr_send_data_err:   rtrsde                                    
A 000 001c01:    Check local link:    chklink                                   
A 000 001c01:    Self-test hub:       bist le|ae|lr|ar [n:NODE]                 
A 000 001c01:    Self-test router:    rbist le|ae|lr|ar VEC                     
A 000 001c01:    Self-test memory:    mbist ADDR                                
A 000 001c01:    Disable CPU/MEM:     disable n:NODE [SLICE/BANKS]              
A 000 001c01:    Enable CPU/MEM:      enable n:NODE [SLICE/BANKS]               
A 000 001c01:    Temp. disable:       tdisable n:NODE [SLICE]                   
A 000 001c01: Cache tests                                                       
A 000 001c01:    Instruction Cache test: icachetest                             
A 000 001c01:    Primary Cache test:     dcachetest                             
A 000 001c01:    Secondary Cache test:   scachetest                             
A 000 001c01:    compute CPU frequency                                          
A 000 001c01:    Generate SAMSUNG WAR                                           
A 000 001c01: I/O PROM                                                          
A 000 001c01:    List segments:       segs [FLAG]                               
A 000 001c01:    Load/exec segment:   exec [SEGNAME [FLAG]]                     
A 000 001c01:    Reconfig. memory:    reconf                                    
A 000 001c01: Console Selection                                                 
A 000 001c01:    Use IOC3/IOC4 UART:  ioc                                       
A 000 001c01:    Use JunkBus UART:    junk                                      
A 000 001c01:    Use SysCtlr UART:    elsc                                      
A 000 001c01:    Use Net UART:        talk [n:NODE SLICE]                       
A 000 001c01: Error Registers                                                   
A 000 001c01:    Dump II CRBs:        crb [n:NODE]                              
A 000 001c01:    137-col wide crb:    crbx [n:NODE]                             
A 000 001c01:    Dump PI err spool:   dumpspool [n:NODE SLICE]                  
A 000 001c01:    Dump error info:     error_dump                                
A 000 001c01:    Dump reset error:    reset_dump                                
A 000 001c01:    Dump bridge errs:    edump_bri [n:NODE]                        
A 000 001c01: System Controller                                                 
A 000 001c01:    System ctlr cmd:     sc ["STRING"]                             
A 000 001c01:    Wr sysctlr nvram:    scw ADDR [VAL [COUNT]]                    
A 000 001c01:    Rd sysctlr nvram:    scr ADDR [COUNT]                          
A 000 001c01:    Rd sysctlr dbgsw:    dips                                      
A 000 001c01:    Set/get debug sw:    dbg [VIRT_VAL PHYS_VAL]                   
A 000 001c01:    Set/get password:    pas ["PASW"]                              
A 000 001c01:    Set/get module #:    module [NUM]                              
A 000 001c01:    Set/get partition #: partition [NUM]                           
A 000 001c01:    Get module NIC:      modnic                                    
A 000 001c01: Debugging                                                         
A 000 001c01:    Verbose mode:        verbose [1|0]                             
A 000 001c01:    Use alt. regs:       altregs [NUM]                             
A 000 001c01:    kernel debugging:    kdebug [STACKADDR]                        
A 000 001c01:    Use kernel symtab:   kern_sym                                  
A 000 001c01:    Send NMI to node:    nmi n:NODE [SLICE]                        
A 000 001c01:    Why are we here?:    why                                       
A 000 001c01:    Stack backtrace:     btrace [epc sp]                           
A 000 001c01:    Switch to cpu:       cpu [[n:NODE] SLICE]                      
A 000 001c01:    Disassemble:         dis ADDR [COUNT]                          
A 000 001c01:    Dump mem cfg:        dmc [n:NODE]                              
A 000 001c01:    Run FRU analyzer:    fru [1(local) | 2(all node)]              
A 000 001c01: Environment Variables and Error Log                               
A 000 001c01:    Init. PROM log:      initlog [n:NODE]                          
A 000 001c01:    Clear PROM log:      clearlog [n:NODE]                         
A 000 001c01:    Init. all PROM logs in system: initalllogs                     
A 000 001c01:    Clear all PROM logs in system: clearalllogs                    
A 000 001c01:    Set variable:        setenv [n:NODE] KEY ["STRING"]            
A 000 001c01:    Remove variable:     unsetenv [n:NODE] KEY                     
A 000 001c01:    Print variables:     printenv [n:NODE] [KEY]                   
A 000 001c01:    Tail log entries:    log [n:NODE] [TAIL_CNT [HEAD_CNT]]        
A 000 001c01:    power cycle CBrick                                             
A 000 001c01:    initialize PLL WAR variables                                   
A 000 001c01:    obtain PLL WAR statistics                                      
A 000 001c01: I/O Diagnostics                                                   
A 000 001c01:    XBow Diagnostic:     dgxbow [m<n|h|m>] [n<NODE>]               
A 000 001c01:    Bridge Diagnostic:   dgbrdg [m<n|h|m>] [n<NODE>] [s<slot>]     
A 000 001c01:    IO7 Conf Spc Diag:   dgconf [m<n|h|m>] [n<NODE>] [s<slot>]     
A 000 001c01:    PCI Bus Diag.:       dgpci [m<n|h|m>] [n<NODE>] [s<slot>] [p<P]
A 000 001c01:    Serial PIO Diag:     dgspio [m<n|h|m|x>] [n<NODE>] [s<slot>] [ 
A 000 001c01:    Serial DMA Diag:     dgsdma [m<n|h|m|x>] [n<NODE>] [s<slot>] [ 
A 000 001c01:    Keyb/Mouse Diag:     dgpckm [m<n|m>]                           

...
... Now Enter CAC Mode ... but we hae to first go to DEX..
...

A 000 001c01: POD SysCt Cac> go cac                                             
A 000 001c01: Must be in Dex mode before switching to Cac or Unc.                        
A 000 001c01: POD SysCt Cac> go dex                                             
A 000 001c01:                                                                   
A 000 001c01: *** Requested DEX mode on node 0

...
... Get DEX Command Help
...

A 000 001c01: POD SysCt Dex> ?                                                  
A 000 001c01: Commands may be separated by semicolons, grouped with             
A 000 001c01: curly braces, and used in nested loop constructs.                 
A 000 001c01:                                                                   
A 000 001c01: Calculator                                                        
A 000 001c01:    Print hex:           px EXPR                                   
A 000 001c01:    Print decimal:       pd EXPR                                   
A 000 001c01:    Print octal:         po EXPR                                   
A 000 001c01:    Print binary:        pb EXPR                                   
A 000 001c01:    Look up PROM addr:   nm ADDR                                   
A 000 001c01: Hardware Registers                                                
A 000 001c01:    Print register(s):   pr [GPRNAME [VAL]                         
A 000 001c01:    Print fpreg(s):      pf [REGNO]                                
A 000 001c01:    Store register:      sr REG VAL                                
A 000 001c01:    Store fpreg:         sf REGNO VAL                              
A 000 001c01: Memory Access                                                     
A 000 001c01:    Print address:       pa ADDR [BITNO]                           
A 000 001c01:    Load byte:           lb ADDR [COUNT]                           
A 000 001c01:    Load half-word:      lh ADDR [COUNT]                           
A 000 001c01:    Load word:           lw ADDR [COUNT]                           
A 000 001c01:    Load double-word:    ld ADDR [COUNT]                           
A 000 001c01:    Load ASCII:          la ADDR [COUNT]                           
A 000 001c01:    Store byte:          sb ADDR [VAL [COUNT]]                     
A 000 001c01:    Store half-word:     sh ADDR [VAL [COUNT]]                     
A 000 001c01:    Store word:          sw ADDR [VAL [COUNT]]                     
A 000 001c01:    Store double-word:   sd ADDR [VAL [COUNT]]                     
A 000 001c01:    Store and verify:    sdv ADDR VAL                              
A 000 001c01: Memory Operations                                                 
A 000 001c01:    Fill mem w/ byte:    memset DST BYTE LEN                       
A 000 001c01:    Copy memory bytes:   memcpy DST SRC LEN                        
A 000 001c01:    Cmp memory bytes:    memcmp DST SRC LEN                        
A 000 001c01:    Add memory bytes:    memsum SRC LEN                            
A 000 001c01: Memory Testing                                                    
A 000 001c01:    Mem. sanity test:    santest ADDR                              
A 000 001c01:    Dir/prot init:       dirinit START LEN                         
A 000 001c01:    Memory clear:        meminit START LEN                         
A 000 001c01:    Dir. test/init:      dirtest START LEN                         
A 000 001c01:    Memory test/init:    memtest START LEN                         
A 000 001c01:    Clear errors:        clear                                     
A 000 001c01:    Display errors:      error                                     
A 000 001c01:    Quality mode:        qual [1|0]                                
A 000 001c01:    ECC mode:            ecc [1|0]                                 
A 000 001c01:    Set R10k int mask:   im [BYTE]                                 
A 000 001c01:    Test error limit:    maxerr COUNT                              
A 000 001c01:    Scan dir states:     scandir ADDR [LEN]                        
A 000 001c01:    Directory state:     dirstate [BASE [LEN [STATE]]]             
A 000 001c01: Network and Vectors                                               
A 000 001c01:    Vector read:         vr VEC VADDR                              
A 000 001c01:    Vector write:        vw VEC VADDR VAL                          
A 000 001c01:    Vector exchange:     vx VEC VADDR VAL                          
A 000 001c01:    Discover network:    disc                                      
A 000 001c01:    Dump pcfg struct:    pcfg [n:NODE] [v]                         
A 000 001c01:    Get/set node ID:     node [[VEC] ID]                           
A 000 001c01:    Set up route:        route [VEC NODE]                          
A 000 001c01:    Read router NIC:     rnic [VEC]                                
A 000 001c01:    Dump config info.:   cfg [n:NODE]                              
A 000 001c01:    Dump route table:    rtab [VEC]                                
A 000 001c01:    Dmp/clr rtr stat:    rstat VEC                                 
A 000 001c01: Control Structures                                                
A 000 001c01:    Reset the system:    reset [all]                               
A 000 001c01:    Softreset a node:    softreset n:NODE                          
A 000 001c01:    Call subroutine:     call ADDR [A0 [A1 [...]]]                 
A 000 001c01:    Inv. cache & jump:   jump ADDR [A0 [A1]]                       
A 000 001c01:    Goto slave mode:     slave                                     
A 000 001c01:    Repeat count:        repeat COUNT CMD                          
A 000 001c01:    Repeat forever:      loop CMD                                  
A 000 001c01:    While loop:          while (EXPR) CMD                          
A 000 001c01:    For loop:            for (CMD;EXPR;CMD) CMD                    
A 000 001c01:    If statement:        if (EXPR) CMD                             
A 000 001c01:    Delay:               delay MICROSEC                            
A 000 001c01:    Sleep:               sleep SEC                                 
A 000 001c01:    Benchmark timing:    time CMD                                  
A 000 001c01:    Echo string:         echo "STRING"                             
A 000 001c01: Miscellaneous                                                     
A 000 001c01:    Show PROM version:   version                                   
A 000 001c01:    Display help:        help [CMDNAME]                            
A 000 001c01:    Read hub NIC:        nic [n:NODE]                              
A 000 001c01:    Prgm remote PROM:    flash NODE [...]                          
A 000 001c01:    Prgm remote PROM with values:    fflash NODE [...]             
A 000 001c01:    Prgm modebits with values: setmodebits NODE [...]              
A 000 001c01: TLB and Cache                                                     
A 000 001c01:    Clear TLB:           tlbc [INDEX]                              
A 000 001c01:    Read TLB:            tlbr [INDEX]                              
A 000 001c01:    Inv. cache(s):       inval [i][d][s]                           
A 000 001c01:    Flush+inv caches:    flush                                     
A 000 001c01:    Dump dcache tag:     dtag line                                 
A 000 001c01:    Dump icache tag:     dtag line                                 
A 000 001c01:    Dump scache tag:     stag line                                 
A 000 001c01:    Dump dcache line:    dline line                                
A 000 001c01:    Dump icache line:    iline line                                
A 000 001c01:    Dump scache line:    sline line                                
A 000 001c01:    Dump dcache tag:     adtag line                                
A 000 001c01:    Dump icache tag:     aitag line                                
A 000 001c01:    Dump scache tag:     astag line                                
A 000 001c01:    Dump dcache line:    adline line                               
A 000 001c01:    Dump icache line:    ailine line                               
A 000 001c01:    Dump scache line:    asline line                               
A 000 001c01:    Store a scache dword:  sscache line taglo taghi                
A 000 001c01:    Store a scache tag:    sstag line taglo taghi [way]            
A 000 001c01:    Set memory mode:     go dex|unc|cac                            
A 000 001c01:    Hub_send_data_err:   hubsde                                    
A 000 001c01:    Rtr_send_data_err:   rtrsde                                    
A 000 001c01:    Check local link:    chklink                                   
A 000 001c01:    Self-test hub:       bist le|ae|lr|ar [n:NODE]                 
A 000 001c01:    Self-test router:    rbist le|ae|lr|ar VEC                     
A 000 001c01:    Self-test memory:    mbist ADDR                                
A 000 001c01:    Disable CPU/MEM:     disable n:NODE [SLICE/BANKS]              
A 000 001c01:    Enable CPU/MEM:      enable n:NODE [SLICE/BANKS]               
A 000 001c01:    Temp. disable:       tdisable n:NODE [SLICE]                   
A 000 001c01: Cache tests                                                       
A 000 001c01:    Instruction Cache test: icachetest                             
A 000 001c01:    Primary Cache test:     dcachetest                             
A 000 001c01:    Secondary Cache test:   scachetest                             
A 000 001c01:    compute CPU frequency                                          
A 000 001c01:    Generate SAMSUNG WAR                                           
A 000 001c01: I/O PROM                                                          
A 000 001c01:    List segments:       segs [FLAG]                               
A 000 001c01:    Load/exec segment:   exec [SEGNAME [FLAG]]                     
A 000 001c01:    Reconfig. memory:    reconf                                    
A 000 001c01: Console Selection                                                 
A 000 001c01:    Use IOC3/IOC4 UART:  ioc                                       
A 000 001c01:    Use JunkBus UART:    junk                                      
A 000 001c01:    Use SysCtlr UART:    elsc                                      
A 000 001c01:    Use Net UART:        talk [n:NODE SLICE]                       
A 000 001c01: Error Registers                                                   
A 000 001c01:    Dump II CRBs:        crb [n:NODE]                              
A 000 001c01:    137-col wide crb:    crbx [n:NODE]                             
A 000 001c01:    Dump PI err spool:   dumpspool [n:NODE SLICE]                  
A 000 001c01:    Dump error info:     error_dump                                
A 000 001c01:    Dump reset error:    reset_dump                                
A 000 001c01:    Dump bridge errs:    edump_bri [n:NODE]                        
A 000 001c01: System Controller                                                 
A 000 001c01:    System ctlr cmd:     sc ["STRING"]                             
A 000 001c01:    Wr sysctlr nvram:    scw ADDR [VAL [COUNT]]                    
A 000 001c01:    Rd sysctlr nvram:    scr ADDR [COUNT]                          
A 000 001c01:    Rd sysctlr dbgsw:    dips                                      
A 000 001c01:    Set/get debug sw:    dbg [VIRT_VAL PHYS_VAL]                   
A 000 001c01:    Set/get password:    pas ["PASW"]                              
A 000 001c01:    Set/get module #:    module [NUM]                              
A 000 001c01:    Set/get partition #: partition [NUM]                           
A 000 001c01:    Get module NIC:      modnic                                    
A 000 001c01: Debugging                                                         
A 000 001c01:    Verbose mode:        verbose [1|0]                             
A 000 001c01:    Use alt. regs:       altregs [NUM]                             
A 000 001c01:    kernel debugging:    kdebug [STACKADDR]                        
A 000 001c01:    Use kernel symtab:   kern_sym                                  
A 000 001c01:    Send NMI to node:    nmi n:NODE [SLICE]                        
A 000 001c01:    Why are we here?:    why                                       
A 000 001c01:    Stack backtrace:     btrace [epc sp]                           
A 000 001c01:    Switch to cpu:       cpu [[n:NODE] SLICE]                      
A 000 001c01:    Disassemble:         dis ADDR [COUNT]                          
A 000 001c01:    Dump mem cfg:        dmc [n:NODE]                              
A 000 001c01:    Run FRU analyzer:    fru [1(local) | 2(all node)]              
A 000 001c01: Environment Variables and Error Log                               
A 000 001c01:    Init. PROM log:      initlog [n:NODE]                          
A 000 001c01:    Clear PROM log:      clearlog [n:NODE]                         
A 000 001c01:    Init. all PROM logs in system: initalllogs                     
A 000 001c01:    Clear all PROM logs in system: clearalllogs                    
A 000 001c01:    Set variable:        setenv [n:NODE] KEY ["STRING"]            
A 000 001c01:    Remove variable:     unsetenv [n:NODE] KEY                     
A 000 001c01:    Print variables:     printenv [n:NODE] [KEY]                   
A 000 001c01:    Tail log entries:    log [n:NODE] [TAIL_CNT [HEAD_CNT]]        
A 000 001c01:    power cycle CBrick                                             
A 000 001c01:    initialize PLL WAR variables                                   
A 000 001c01:    obtain PLL WAR statistics                                      
A 000 001c01: I/O Diagnostics                                                   
A 000 001c01:    XBow Diagnostic:     dgxbow [m<n|h|m>] [n<NODE>]               
A 000 001c01:    Bridge Diagnostic:   dgbrdg [m<n|h|m>] [n<NODE>] [s<slot>]     
A 000 001c01:    IO7 Conf Spc Diag:   dgconf [m<n|h|m>] [n<NODE>] [s<slot>]     
A 000 001c01:    PCI Bus Diag.:       dgpci [m<n|h|m>] [n<NODE>] [s<slot>] [p<P]
A 000 001c01:    Serial PIO Diag:     dgspio [m<n|h|m|x>] [n<NODE>] [s<slot>] [ 
A 000 001c01:    Serial DMA Diag:     dgsdma [m<n|h|m|x>] [n<NODE>] [s<slot>] [ 
A 000 001c01:    Keyb/Mouse Diag:     dgpckm [m<n|m>]                           

...
... Enter CAC Mode
...

A 000 001c01: POD SysCt Dex>  go cac                                            
A 000 001c01: Testing/Initializing memory                                       
A 000 001c01: Init PROM text/data (0x9600000001a00000), len 0x16c000            
A 000 001c01:   Initializing dir/prot                                           
A 000 001c01:   Initializing ECC                                                
A 000 001c01:   Clearing memory                                                 
A 000 001c01: Copy PROM (0x9000000018000000) to RAM (0x9600000001a00000), len 08
A 000 001c01: Done                                                              
A 000 001c01: Init PROM bss (0x9600000001b6c000), len 0x8000                    
A 000 001c01:   Initializing dir/prot                                           
A 000 001c01:   Initializing ECC                                                
A 000 001c01:   Clearing memory                                                 
A 000 001c01: Init PROM stack/structures (0x96000000020d0000), len 0x12000      
A 000 001c01:   Initializing dir/prot                                           
A 000 001c01:   Initializing ECC                                                
A 000 001c01:   Clearing memory                                                 
A 000 001c01: Done                                                              
A 000 001c01:                                                                   
A 000 001c01: *** Requested CAC mode on node 0

...
... Get CAC Command Help
...

A 000 001c01: POD SysCt Cac> ?                                                  
A 000 001c01: Commands may be separated by semicolons, grouped with             
A 000 001c01: curly braces, and used in nested loop constructs.                 
A 000 001c01:                                                                   
A 000 001c01: Calculator                                                        
A 000 001c01:    Print hex:           px EXPR                                   
A 000 001c01:    Print decimal:       pd EXPR                                   
A 000 001c01:    Print octal:         po EXPR                                   
A 000 001c01:    Print binary:        pb EXPR                                   
A 000 001c01:    Look up PROM addr:   nm ADDR                                   
A 000 001c01: Hardware Registers                                                
A 000 001c01:    Print register(s):   pr [GPRNAME [VAL]                         
A 000 001c01:    Print fpreg(s):      pf [REGNO]                                
A 000 001c01:    Store register:      sr REG VAL                                
A 000 001c01:    Store fpreg:         sf REGNO VAL                              
A 000 001c01: Memory Access                                                     
A 000 001c01:    Print address:       pa ADDR [BITNO]                           
A 000 001c01:    Load byte:           lb ADDR [COUNT]                           
A 000 001c01:    Load half-word:      lh ADDR [COUNT]                           
A 000 001c01:    Load word:           lw ADDR [COUNT]                           
A 000 001c01:    Load double-word:    ld ADDR [COUNT]                           
A 000 001c01:    Load ASCII:          la ADDR [COUNT]                           
A 000 001c01:    Store byte:          sb ADDR [VAL [COUNT]]                     
A 000 001c01:    Store half-word:     sh ADDR [VAL [COUNT]]                     
A 000 001c01:    Store word:          sw ADDR [VAL [COUNT]]                     
A 000 001c01:    Store double-word:   sd ADDR [VAL [COUNT]]                     
A 000 001c01:    Store and verify:    sdv ADDR VAL                              
A 000 001c01: Memory Operations                                                 
A 000 001c01:    Fill mem w/ byte:    memset DST BYTE LEN                       
A 000 001c01:    Copy memory bytes:   memcpy DST SRC LEN                        
A 000 001c01:    Cmp memory bytes:    memcmp DST SRC LEN                        
A 000 001c01:    Add memory bytes:    memsum SRC LEN                            
A 000 001c01: Memory Testing                                                    
A 000 001c01:    Mem. sanity test:    santest ADDR                              
A 000 001c01:    Dir/prot init:       dirinit START LEN                         
A 000 001c01:    Memory clear:        meminit START LEN                         
A 000 001c01:    Dir. test/init:      dirtest START LEN                         
A 000 001c01:    Memory test/init:    memtest START LEN                         
A 000 001c01:    Clear errors:        clear                                     
A 000 001c01:    Display errors:      error                                     
A 000 001c01:    Quality mode:        qual [1|0]                                
A 000 001c01:    ECC mode:            ecc [1|0]                                 
A 000 001c01:    Set R10k int mask:   im [BYTE]                                 
A 000 001c01:    Test error limit:    maxerr COUNT                              
A 000 001c01:    Scan dir states:     scandir ADDR [LEN]                        
A 000 001c01:    Directory state:     dirstate [BASE [LEN [STATE]]]             
A 000 001c01: Network and Vectors                                               
A 000 001c01:    Vector read:         vr VEC VADDR                              
A 000 001c01:    Vector write:        vw VEC VADDR VAL                          
A 000 001c01:    Vector exchange:     vx VEC VADDR VAL                          
A 000 001c01:    Discover network:    disc                                      
A 000 001c01:    Dump pcfg struct:    pcfg [n:NODE] [v]                         
A 000 001c01:    Get/set node ID:     node [[VEC] ID]                           
A 000 001c01:    Set up route:        route [VEC NODE]                          
A 000 001c01:    Read router NIC:     rnic [VEC]                                
A 000 001c01:    Dump config info.:   cfg [n:NODE]                              
A 000 001c01:    Dump route table:    rtab [VEC]                                
A 000 001c01:    Dmp/clr rtr stat:    rstat VEC                                 
A 000 001c01: Control Structures                                                
A 000 001c01:    Reset the system:    reset [all]                               
A 000 001c01:    Softreset a node:    softreset n:NODE                          
A 000 001c01:    Call subroutine:     call ADDR [A0 [A1 [...]]]                 
A 000 001c01:    Inv. cache & jump:   jump ADDR [A0 [A1]]                       
A 000 001c01:    Goto slave mode:     slave                                     
A 000 001c01:    Repeat count:        repeat COUNT CMD                          
A 000 001c01:    Repeat forever:      loop CMD                                  
A 000 001c01:    While loop:          while (EXPR) CMD                          
A 000 001c01:    For loop:            for (CMD;EXPR;CMD) CMD                    
A 000 001c01:    If statement:        if (EXPR) CMD                             
A 000 001c01:    Delay:               delay MICROSEC                            
A 000 001c01:    Sleep:               sleep SEC                                 
A 000 001c01:    Benchmark timing:    time CMD                                  
A 000 001c01:    Echo string:         echo "STRING"                             
A 000 001c01: Miscellaneous                                                     
A 000 001c01:    Show PROM version:   version                                   
A 000 001c01:    Display help:        help [CMDNAME]                            
A 000 001c01:    Read hub NIC:        nic [n:NODE]                              
A 000 001c01:    Prgm remote PROM:    flash NODE [...]                          
A 000 001c01:    Prgm remote PROM with values:    fflash NODE [...]             
A 000 001c01:    Prgm modebits with values: setmodebits NODE [...]              
A 000 001c01: TLB and Cache                                                     
A 000 001c01:    Clear TLB:           tlbc [INDEX]                              
A 000 001c01:    Read TLB:            tlbr [INDEX]                              
A 000 001c01:    Inv. cache(s):       inval [i][d][s]                           
A 000 001c01:    Flush+inv caches:    flush                                     
A 000 001c01:    Dump dcache tag:     dtag line                                 
A 000 001c01:    Dump icache tag:     dtag line                                 
A 000 001c01:    Dump scache tag:     stag line                                 
A 000 001c01:    Dump dcache line:    dline line                                
A 000 001c01:    Dump icache line:    iline line                                
A 000 001c01:    Dump scache line:    sline line                                
A 000 001c01:    Dump dcache tag:     adtag line                                
A 000 001c01:    Dump icache tag:     aitag line                                
A 000 001c01:    Dump scache tag:     astag line                                
A 000 001c01:    Dump dcache line:    adline line                               
A 000 001c01:    Dump icache line:    ailine line                               
A 000 001c01:    Dump scache line:    asline line                               
A 000 001c01:    Store a scache dword:  sscache line taglo taghi                
A 000 001c01:    Store a scache tag:    sstag line taglo taghi [way]            
A 000 001c01:    Set memory mode:     go dex|unc|cac                            
A 000 001c01:    Hub_send_data_err:   hubsde                                    
A 000 001c01:    Rtr_send_data_err:   rtrsde                                    
A 000 001c01:    Check local link:    chklink                                   
A 000 001c01:    Self-test hub:       bist le|ae|lr|ar [n:NODE]                 
A 000 001c01:    Self-test router:    rbist le|ae|lr|ar VEC                     
A 000 001c01:    Self-test memory:    mbist ADDR                                
A 000 001c01:    Disable CPU/MEM:     disable n:NODE [SLICE/BANKS]              
A 000 001c01:    Enable CPU/MEM:      enable n:NODE [SLICE/BANKS]               
A 000 001c01:    Temp. disable:       tdisable n:NODE [SLICE]                   
A 000 001c01: Cache tests                                                       
A 000 001c01:    Instruction Cache test: icachetest                             
A 000 001c01:    Primary Cache test:     dcachetest                             
A 000 001c01:    Secondary Cache test:   scachetest                             
A 000 001c01:    compute CPU frequency                                          
A 000 001c01:    Generate SAMSUNG WAR                                           
A 000 001c01: I/O PROM                                                          
A 000 001c01:    List segments:       segs [FLAG]                               
A 000 001c01:    Load/exec segment:   exec [SEGNAME [FLAG]]                     
A 000 001c01:    Reconfig. memory:    reconf                                    
A 000 001c01: Console Selection                                                 
A 000 001c01:    Use IOC3/IOC4 UART:  ioc                                       
A 000 001c01:    Use JunkBus UART:    junk                                      
A 000 001c01:    Use SysCtlr UART:    elsc                                      
A 000 001c01:    Use Net UART:        talk [n:NODE SLICE]                       
A 000 001c01: Error Registers                                                   
A 000 001c01:    Dump II CRBs:        crb [n:NODE]                              
A 000 001c01:    137-col wide crb:    crbx [n:NODE]                             
A 000 001c01:    Dump PI err spool:   dumpspool [n:NODE SLICE]                  
A 000 001c01:    Dump error info:     error_dump                                
A 000 001c01:    Dump reset error:    reset_dump                                
A 000 001c01:    Dump bridge errs:    edump_bri [n:NODE]                        
A 000 001c01: System Controller                                                 
A 000 001c01:    System ctlr cmd:     sc ["STRING"]                             
A 000 001c01:    Wr sysctlr nvram:    scw ADDR [VAL [COUNT]]                    
A 000 001c01:    Rd sysctlr nvram:    scr ADDR [COUNT]                          
A 000 001c01:    Rd sysctlr dbgsw:    dips                                      
A 000 001c01:    Set/get debug sw:    dbg [VIRT_VAL PHYS_VAL]                   
A 000 001c01:    Set/get password:    pas ["PASW"]                              
A 000 001c01:    Set/get module #:    module [NUM]                              
A 000 001c01:    Set/get partition #: partition [NUM]                           
A 000 001c01:    Get module NIC:      modnic                                    
A 000 001c01: Debugging                                                         
A 000 001c01:    Verbose mode:        verbose [1|0]                             
A 000 001c01:    Use alt. regs:       altregs [NUM]                             
A 000 001c01:    kernel debugging:    kdebug [STACKADDR]                        
A 000 001c01:    Use kernel symtab:   kern_sym                                  
A 000 001c01:    Send NMI to node:    nmi n:NODE [SLICE]                        
A 000 001c01:    Why are we here?:    why                                       
A 000 001c01:    Stack backtrace:     btrace [epc sp]                           
A 000 001c01:    Switch to cpu:       cpu [[n:NODE] SLICE]                      
A 000 001c01:    Disassemble:         dis ADDR [COUNT]                          
A 000 001c01:    Dump mem cfg:        dmc [n:NODE]                              
A 000 001c01:    Run FRU analyzer:    fru [1(local) | 2(all node)]              
A 000 001c01: Environment Variables and Error Log                               
A 000 001c01:    Init. PROM log:      initlog [n:NODE]                          
A 000 001c01:    Clear PROM log:      clearlog [n:NODE]                         
A 000 001c01:    Init. all PROM logs in system: initalllogs                     
A 000 001c01:    Clear all PROM logs in system: clearalllogs                    
A 000 001c01:    Set variable:        setenv [n:NODE] KEY ["STRING"]            
A 000 001c01:    Remove variable:     unsetenv [n:NODE] KEY                     
A 000 001c01:    Print variables:     printenv [n:NODE] [KEY]                   
A 000 001c01:    Tail log entries:    log [n:NODE] [TAIL_CNT [HEAD_CNT]]        
A 000 001c01:    power cycle CBrick                                             
A 000 001c01:    initialize PLL WAR variables                                   
A 000 001c01:    obtain PLL WAR statistics                                      
A 000 001c01: I/O Diagnostics                                                   
A 000 001c01:    XBow Diagnostic:     dgxbow [m<n|h|m>] [n<NODE>]               
A 000 001c01:    Bridge Diagnostic:   dgbrdg [m<n|h|m>] [n<NODE>] [s<slot>]     
A 000 001c01:    IO7 Conf Spc Diag:   dgconf [m<n|h|m>] [n<NODE>] [s<slot>]     
A 000 001c01:    PCI Bus Diag.:       dgpci [m<n|h|m>] [n<NODE>] [s<slot>] [p<P]
A 000 001c01:    Serial PIO Diag:     dgspio [m<n|h|m|x>] [n<NODE>] [s<slot>] [ 
A 000 001c01:    Serial DMA Diag:     dgsdma [m<n|h|m|x>] [n<NODE>] [s<slot>] [ 
A 000 001c01:    Keyb/Mouse Diag:     dgpckm [m<n|m>]                    
A 000 001c01: POD SysCt Cac>

...
... Escape back to L1 (Ctl-t)
...

escaping to L1 system controller                                                
001c01-L1>debug 0x0                                                             
debug switches set to 0x0000                                                    
                                                                                
returning to console mode  001c01 CPU0, <CTRL_T> to escape to L1

...
... Finally so reset to go back to standard boot process
...
                                                                                
A 000 001c01: POD SysCt Cac> reset                                              
A 000 001c01: Resetting the system...                                           
Starting PROM Boot process                                                      
                                                                                
                                                                                
IP35 PROM SGI Version 6.210  built 02:33:51 PM Aug 26, 2004                     
Testing/Initializing memory ...............             DONE                    
Copying PROM code to memory ...............             DONE                    
Discovering local IO ......................             DONE                    
Discovering NUMAlink connectivity .........                                     
Local hub NUMAlink is down.                                                     
*** Local network link down                                                     
DONE                                                                            
Found 1 objects (1 hubs, 0 routers) in 5897 usec                                
Waiting for peers to complete discovery....             DONE                    
No other nodes present; becoming global master                                  
Global master is /hw/rack/001/bay/01                                            
Intializing any CPUless nodes..............             DONE                    
Checking partitioning information .........             DONE                    
No other nodes present; becoming partition master                               
Local slave entering slave loop                                                 
Local slave entering slave loop                                                 
Local slave entering slave loop                                                 
Loading BASEIO prom .......................             DONE                    
                                                                                
BASEIO PROM Monitor SGI Version 6.210  built 02:30:38 PM Aug 26, 2004 (BE64)    
4 CPUs on 1 nodes found.                                                        
                                                                                
NVRAM checksum is incorrect: reinitializing.                                    
Automatic update of PROM environment disabled                                   
Graphics diagnostics                                                            
                                                                                
Odyssey board #0 found on nasid 0                                               
Running Odyssey xtalk sanity diag...                                            
        Board version 1 - Buzz revision 3B                                      
        On board sdram size: 128 Mb                                             
        Cas latency: CAS 3                                                      
        4 banks by sdram module                                                 
Running Odyssey Buzz registers diag...                                          
Device passed diagnostics                                                       
                                                                                
Installing PROM Device drivers ............                                     
On-board (IO9) tigon3 1000BaseT interface                                       
Base I/O Ethernet set to /dev/ethernet/tg0                                      
Installing Graphics Console...                                                  
graphics install: searching for pipe 0                                          
Probing IOC4 ATA adapter 2                                                      
IOC4 RevId = 83                                                                 
Detected Vendor id/Product MATSHITA DVD-ROM SR-8178                             
                                                                                
Walking SCSI Adapter 0, (pci id 3)                                              
1+ Device Vendor Product: ATA SCSIDE BRIDGE320                                  
2- 3- 4- 5- 6- 7- 8- 9- 10- 11- 12- 13- 14- 15- = 1 device(s)                   
                                                                                
                                                                                
Walking SCSI Adapter 1, (pci id 3)                                              
1- 2- 3- 4- 5- 6- 7- 8- 9- 10- 11- 12- 13- 14- 15- = 0 device(s)                
                                                                                
Initializing PROM Device drivers ..........                                     
  Initializing Base I/O Ethernet Interface...Done.                              
  ---------------Interface Configuration Summary----------------                
  ASIC|Revision|MAC Address       : 5701|B5|08:00:69:11:e9:d0                   
  Link Negotiation|Advertisement  : On|<H10 F10 H100 F100 H1000 F1000>          
  Link|Speed|Duplex|Rx/Tx FlowCtrl: Up|1000|Full|Off/Off                        
  --------------------------------------------------------------                
DONE                                                                            
                                                                                
escaping to L1 system controller                                                
001c01-L1>

Sample Session with Fuel (internal ) Serial Comms Port

The Fuel has multiple ways to support diagnostic communications:

  • L1 USB Port - this is the external USB port just below the Ethernet port and can be used to connect Fuel to an L2 controller
  • Internal Serial Port - there is an internal serial port which can also be used to communicate with the L1 controller using a NULL modem serial cable (38400,8,N,1)
  • External Serial Port #1 which is the lower of the two serials ports above the Ethernet Port.

When I first got my Fuel I could communicate with L1 via USB and L2 but not via either the internal or external serial ports. To resolve this I had to:

  • edit /etc/inittab - to ensure that ports where defined and not allocated to other uses
  • edit /etc/uucp/Devices - to allow use of Serial Port #2 communications at multiple speeds
  • /etc/ioconfig.conf - to reset the tty config back to tty1 & tty2 as it was reporting serial ports on tty2 & tty4
  • POD/CAC Reset - go into POD/CAC mode and do a reset of logs to clear errors

Here is exampe session via the internal Serial port:

001a01-L1>
001a01-L1>
001a01-L1>ver
L1 1.48.1 (Image A), Built 01/22/2007 11:34:20    [Fuel/PE/O300 1MB image]
001a01-L1>?
ERROR: command not found.
001a01-L1>help
Commands are:
*                  autopower|apwr     syscom|junkbus|jb|bedrockbrick              
partdb             cpu                nia|ni|ctc         nib                
iia|ii|cti         iib                iic                iid                
config|cfg         debug              display|dsp        button|btn         
env                fan                help|hlp           history|hist       
l1dbg              link               log                ioport|ioprt       
istat              l1                 leds               margin|mgn         
network            pimm               port|prt           power|pwr          
reset|rst          nmi                softreset|softrst  select|sel         
serial             sysstate           eeprom             uart               
usb                router|rtr         service            date               
nvram              security           flash              reboot_l1          
version|ver        pbay               test|tst           scan               
fru|pci|prom|node  
enter 'hlp <cmd>' for more help on a single command.
001a01-L1>uart
      Baud    Read    Read    Read     Read   Read   Write   Write   Write
UART  Rate    State   Status  Timeouts Breaks Errors State   Status  Timeouts
----  ----    -----   ------  -------- ------ ------ -----   ------  --------
JNK 0 57692   Connect Suspend 0        0      42     Connect Ready   0    
SMP   37500   Connect Ready   0        0      0      Connect Ready   3    

001a01-L1>serial
BSN: MSM019    SSN: XX:XX:XX:XX:XX:XX    Time: 02/07/2106 06:28:15    Security: OFF
Public Key data in EEPROM is invalid
001a01-L1>usb

Device: 0  Disconnects: 1  Bus Resets:  20

Endpoint State    Status    Stalls Errors Timeouts
-------- -----    ------    ------ ------ --------
Control  Stalled  Suspended 30085  0      0    
Read     Unconfig Ready     0      0      0    
Write    Unconfig Ready     1      0      0    

001a01-L1>power up
001a01-L1>
entering console mode  001a01 CPU0, <CTRL_T> to escape to L1
Starting PROM Boot process  


IP35 PROM SGI Version 6.211  built 04:16:18 PM Jan 25, 2008
Running in DDR mode
*** Mixed standard and premium memory:
*** Treating all as standard.
Testing/Initializing memory ...............             DONE
Copying PROM code to memory ...............             DONE
Discovering local IO ......................             DONE
Discovering NUMAlink connectivity .........
Local hub NUMAlink is down.
*** Local network link down
DONE
Found 1 objects (1 hubs, 0 routers) in 5884 usec
Waiting for peers to complete discovery....             DONE
No other nodes present; becoming global master
Global master is /hw/rack/001/bay/01
Intializing any CPUless nodes..............             DONE
Checking partitioning information .........             DONE
No other nodes present; becoming partition master
Loading BASEIO prom .......................             DONE

BASEIO PROM Monitor SGI Version 6.211  built 04:15:20 PM Jan 25, 2008 (BE64)
1 CPUs on 1 nodes found.
Automatic update of PROM environment disabled

PS/2 Keyboard & Mouse diagnostics
    Found mouse on port 0
    Found keyboard on port 1
PS/2 Keyboard & Mouse diagnostics passed 

Graphics diagnostics

Odyssey board #0 found on nasid 0
Running Odyssey xtalk sanity diag...
        Board version 1 - Buzz revision 2B
        On board sdram size: 128 Mb
        Cas latency: CAS 3
        4 banks by sdram module
Running Odyssey Buzz registers diag...
Device passed diagnostics

Installing PROM Device drivers ............             
Base I/O Ethernet set to /dev/ethernet/ef0
Installing Graphics Console...
graphics install: searching for pipe 0

Walking SCSI Adapter 0, (pci id 1)
1+ Device Vendor Product: ATA Samsung SSD 840
2- 3- 4- 5- 6- 7- 8- 9- 10- 11- 12- 13- 14- 15- = 1 device(s)


Walking SCSI Adapter 1, (pci id 1)
1+ Device Vendor Product: SONY SDT-9000
2+ Device Vendor Product: TOSHIBA DVD-ROM SD-M1711
3- 4- 5- 6- 7- 8- 9- 10- 11- 12- 13- 14- 15- = 2 device(s)

Initializing PROM Device drivers ..........             DONE

escaping to L1 system controller
001a01-L1>env
Environmental monitoring is enabled and running.

Description    State       Warning Limits     Fault Limits       Current
-------------- ----------  -----------------  -----------------  -------
           12V    Enabled  10%  10.80/ 13.20  20%   9.60/ 14.40   12.063
        12V IO    Enabled  10%  10.80/ 13.20  20%   9.60/ 14.40   12.063
            5V    Enabled  10%   4.50/  5.50  20%   4.00/  6.00    5.044
          3.3V    Enabled  10%   2.97/  3.63  20%   2.64/  3.96    3.320
          2.5V    Enabled  10%   2.25/  2.75  20%   2.00/  3.00    2.470
          1.5V    Enabled  10%   1.35/  1.65  20%   1.20/  1.80    1.466
        5V AUX    Enabled  10%   4.50/  5.50  20%   4.00/  6.00    5.096
      3.3V AUX    Enabled  10%   2.97/  3.63  20%   2.64/  3.96    3.285
 PIMM 12V BIAS    Enabled  10%  10.80/ 13.20  20%   9.60/ 14.40   12.063
          SRAM    Enabled  10%   2.25/  2.75  20%   2.00/  3.00    2.509
          VCPU    Enabled  10%   1.44/  1.76  20%   1.28/  1.92    1.593
     PIMM 1.5V    Enabled  10%   1.35/  1.65  20%   1.20/  1.80    1.495
 PIMM 3.3V AUX    Enabled  10%   2.97/  3.63  20%   2.64/  3.96    3.268
   PIMM 5V AUX    Enabled  10%   4.50/  5.50  20%   4.00/  6.00    5.096
  XIO 12V BIAS    Enabled  10%  10.80/ 13.20  20%   9.60/ 14.40   12.000
        XIO 5V    Enabled  10%   4.50/  5.50  20%   4.00/  6.00    5.044
      XIO 2.5V    Enabled  10%   2.25/  2.75  20%   2.00/  3.00    2.457
  XIO 3.3V AUX    Enabled  10%   2.97/  3.63  20%   2.64/  3.96    3.285

Description     State       Warning RPM  Current RPM
--------------- ----------  -----------  -----------
FAN  0  EXHAUST    Enabled          920         1188
FAN  1       HD    Enabled         1560         2393
FAN  2      PCI    Enabled         1120         1520
FAN  3    XIO 1    Enabled         1600         2343
FAN  4    XIO 2    Enabled         1600         2220
FAN  5       PS    Enabled         1349        30681

                              Advisory   Critical   Fault      Current      
Description       State       Temp       Temp       Temp       Temp       
----------------- ----------  ---------  ---------  ---------  ---------  
 0 NODE 0            Enabled    [Autofan Control]    80C/176F   31C/ 87F
 1 NODE 1            Enabled    [Autofan Control]    80C/176F   27C/ 80F
 2 NODE 2            Enabled    [Autofan Control]    80C/176F   25C/ 77F
 3 PIMM              Enabled    [Autofan Control]    80C/176F   38C/100F
 4 ODYSSEY           Enabled    [Autofan Control]    80C/176F   24C/ 75F
 5 BEDROCK           Enabled    [Autofan Control]    85C/185F   29C/ 84F


returning to console mode  001a01 console, <CTRL_T> to escape to L1


NOTES 1: Thanks to Mark Whithouse from Red Hat for invitation to "Performance Co-Pilot" birds of a feather session.

NOTES 2: Photo is of Numalink'ed Origin/Onyx O350.