Please consider a donation to the Higher Intellect project. See https://preterhuman.net/donate.php or the Donate to Higher Intellect page for more info.

SGI O2

From Higher Intellect Vintage Wiki
SGI O2
O2 with classic hypercube skins
O2 with new "sgi" logo
O2+
Rear of O2

The O2 was released in 1996 to replace the SGI Indy and was discontinued in 2002.

The Silicon Graphics O2 was introduced in 1996 as the successor to the SGI Indy workstation. As the entry-level system in SGI's workstation lineup, it was designed with a focus on multimedia and video, and it found widespread use in the fields of visual effects, medical imaging, and television weather reporting. Its high-end counterpart was the SGI Octane. Early O2 systems bear the original Silicon Graphics hypercube logo, while later systems were rebadged with the new lowercase "sgi" logo.

In August 2001, the O2 was re-introduced with minor modifications as the O2+: the case colors were changed to purple and gray, a DVD-ROM came standard, the serial port controller was improved, and the baseline CPU was upgraded to the R7000/350MHz. The O2+ was only available for a brief period, after which it was not replaced (the Fuel, released in January 2002, was not a replacement for O2; Fuel was intended purely to be a single-CPU mid-range system).

The O2 is a single-processor system available with two different CPU architectures: the R5000/RM7000 series at the low-end, and later the R10000/R12000 at the high-end. The former line has lower cooling requirements and left space for two hard drives, while the latter series requires a large heat sink and fan and uses a wider system module that consumes one adjacent hard drive bay.

The O2 is often regarded as an ideal introductory system for budding SGI collectors thanks to its standard DB15 VGA, 10/100 Ethernet, and PS/2 keyboard & mouse ports, its built-in optical drive, and its relatively modest power consumption, space requirements, and noise levels. It is widely available on the secondhand market and relatively inexpensive to ship, weighing approximately 25 pounds. O2+ systems, which are exceedingly rare, fetch a premium.


System Architecture[edit]

Originally dubbed the "Moosehead" project during development, the O2 features a proprietary high-bandwidth Unified Memory Architecture (UMA) that connects the various system components. The O2 is a highly-integrated system, with CPU, graphics accelerator, memory, SCSI controller, and I/O all incorporated into a single system module, which can be slid out of the chassis with the flip of a lever. A PCI bus is bridged onto the UMA with one expansion slot available. The O2 has a designer case and a modular design, with space for two Ultra SCSI drives mounted on special sleds (only one in the later R10000/R12000 models) and an optional video capture / sound module mounted on the far left side. Further information on the design and construction of the O2 can be found in SGI service manuals on Techpubs. Detailed breakdown pictures and an IRIX hinv dump can be found here.

An O2's unique system ID (MAC address) is stored on the small PCI riser card that connects the PCI card holder to the motherboard. If this riser card is swapped, the corresponding black plastic badge on the rear of the case should be swapped as well to preserve consistency.

WARNING: The O2 system module should NEVER be removed or installed while the power cord is connected. Doing so can permanently damage the motherboard.

CPU Options[edit]

300MHz RM5200 CPU module
195MHz R10000 CPU module

The O2 comes in two distinct CPU families: the low-end MIPS 180-350 MHz R5000/R7000 based units and the higher-end 150-400 MHz R10000/R12000 based units. Processors are mounted to a daughterboard which attaches to the motherboard with a plastic bracket. It is possible to install an R10000/R12000 system module into most R5000 O2's by removing the metal separator between the system module and the hard drives, however, on some earlier models the separator is part of the chassis and cannot be removed short of cutting it out.

The 200 MHz R5000 CPUs with 1 MB L2-cache are generally noticeably faster than the 180 MHz R5000s with only 512 KB L2-cache. Note that there is no 300 Mhz R5000 CPU, the O2 will incorrectly report the RM5200 CPU as an R5000.

SGI Part Number Description
030-1102-001 R5000 180MHz (512kb SC)
030-1276-001 R5000 200MHz (1mb SC)
030-1082-002 R10000 175MHz SC
030-1242-00x R10000 195MHz SC
030-1493-001 R5200 300MHz (1mb SC)
CPU Version: Clock Speed: 2nd Level Cache:
R5000PC 180 MHz -
R5000SC 180 MHz 512 KB
R5000SC 200 MHz 1 MB
R5200SC 300 MHz 1 MB
RM7000A 350 MHz 256 KB (+1 MB tertiary)
R10000SC 150, 175, 195, 225, 250 MHz 1 MB
R12000SC 270, 300 MHz 1 MB
R12000SC 400 MHz 2 MB

There is also a hobbyist project that has successfully retrofitted a 600 MHz R7000 MIPS processor into the O2. In theory faster CPUs at 900MHz any beyond are possible, but this would require the public release of the O2 PROM source code which at present is not available and probably never will be.

A recall of some early versions of the RM7000A 350Mhz CPU is thought to have hastened the removal of the O2 from SGI's product line.

Memory[edit]

The O2 features eight SDRAM slots (four banks of two), with a maximum of 1GB allowed using 128MB DIMMs. PROM 4.4 is required to use 128MB DIMMs with earlier versions only allowing a 256MB maximum.

The motherboard has eight proprietary 278-pin (139 per side) memory slots, accepting four sets of paired DIMM modules, referred to as "kits." The individual SDRAM DIMM modules come in 16 MB, 32 MB, 64 MB, and 128 MB sizes. The memory banks must be filled in order, and larger modules should be installed first. The O2 is expandable to 1 GB using 4 2x128 MB kits, which were available from various manufacturers including SGI, Kingston, and Dataram.

Original SGI-branded O2 DIMMs are either single-sided (SS) with memory chips on only one side of the module or double-sided (DS), and are color-coded to assist in identification. 3rd party DIMMs may or may not follow these conventions. Knowing the current memory configuration is important as DIMMs must be installed according to a number of specific rules. These rules follow the table in this section.

Size Color Code 1 Color Code 2 SS/DS Type
16 MB Purple - SS A
32 MB Yellow - DS A
64 MB Green White SS B
128 MB Silver - DS A
128 MB Silver White DS B
  • The DIMMs in slots 1 and 2 make up Bank A. DIMMs in slots 3 and 4 make up Bank B, and so on.
  • A bank of two slots must have a DIMM in each slot or be empty (except for slots 1 and 2, Bank A, which must always be populated.)
  • The two DIMMs in any bank must be of the same size and type.
  • The largest size DIMMs must be in Bank A.
  • DIMM banks must be filled sequentially, beginning with bank A.
  • Equal or smaller size DIMMs must be in Bank B, and so on.
  • Do not skip banks, or the memory will not be recognized.

To install high density (128 MB) DIMMs, PROM revision 4.4 or higher is required (see hinv(1M)). With older PROM revisions maximum memory is 256 MB. For IRIX 6.3 there are patches to upgrade the PROM as described in "Silicon Graphics® O2® Workstation Memory Installation Instructions", for IRIX 6.5 PROM images come with the operating system and overlays CD sets.

Graphics subsystem[edit]

The CRM chipset that SGI developed for the O2 shares OpenGL calculations with the CPU. Due to the unified memory architecture, video memory is shared with main memory, and there is effectively an 'unlimited' amount of texture memory. Another useful feature is that any incoming video data from the Audio/Video option can be mapped directly as an OpenGL texture without having to perform a copy or move.

ICE (Image Compression Engine -- a dedicated 64-bit R4000-based processor containing a 128-bit SIMD unit running at 66 MHz, which is used to accelerate various image and video operations)

OpenGL 1.1 + ARB image extensions

O2 Video System[edit]

O2 AV1 Analog Video I/O
O2 AV2 Digital Video I/O
O2Cam "ZEYE" webcam

The O2 Video system supports two simultaneous input video streams and one output video stream which can be seperated into two outputs, one carrying pixel information, the other carrying alpha (key) information.

Using the O2 Video system, it is possible to capture live video into the computer's memory which can then be displayed in a graphics window on the screen or further processed by an application. It is also possible to generate video output from images in memory, which can be displayed on a standard video monitor, or recorded to a VTR. Using the VL programming library (see vlintro(3), and mvp(3)), a program can capture video in either the RGB or YCrCb color spaces, and either full or reduced size formats, and in a format usable for input to the compressor/decompressor, display on the graphics screen, or as an input to a graphics processing and/or texture operation.

SGI offered two video options for the O2/O2+: the AV1 interface and the AV2 interface.

  • The AV1 interface supports Composite and SVideo (Y/C) (both analog), and Digital I/O via the Camera/Digital Video port. The analog I/O jacks are for use with standard analog video equipment, supporting both PAL and NTSC video formats. There are a variety of controls available that allow the user or programmer to set various parameters used for the decoding and encoding of the video signals. The digital input of the AV1 is for use with the O2Cam Digital System Camera, or can be connected to an optional digital video input and output adapter to interface to standard SMPTE259M serial digital video devices.
  • The AV2 interface supports two ITU-601 (CCIR-601) serial digital video input connectors and two similiar output connectors, as well as GPI input and output and analog (black burst) sync input and loop through.


Chris Pirazzi's Lurker's Guide to Video contains the following three sections exclusively for the O2 Video System:

Operating system support[edit]

IRIX[edit]

IRIX versions 6.3 and 6.5 (up to the latest overlay - 6.5.30) are supported on this machine, however, only in 32-bit mode, due to the nature of the O2's internal architecture. For CPU-specific versions, see also: IRIX for O2.

Besides the default CD-based Installation, the O2 also supports network installation through DINA.

For a list of useful tips after a fresh installation of IRIX on the O2, see: IRIX Installation and Customization.

Linux[edit]

There is official Linux support for the O2 in Debian 4.0 "Etch" as well as in Gentoo but only for R5000/R7000 O2s. Linux is not stable on R10000/R12000 CPUs due to a known issue with the way they handle speculative loads and stores, detailed here. This is not a problem for Linux on the SGI Octane as there is different hardware to support these processor features.

O2 hardware currently not fully supported by Linux:

  • R10K or R12K processors.
  • CRM Accelerated Graphics (framebuffer only)
  • Sound (ALSA driver exists in Linux-MIPS tree, currently under development)
  • Video capture via SAA 7111 (Linux driver exists for the chip)
  • ICE (experimental patches exist)

Installing Linux is made more difficult due to the O2's PROM being unable to read ISO9660 filesystems. Gentoo has an experimental SGI bootable X Live CD. Please read the README for details on supported machines (the O2 is one of many SGIs supported), the level of support, and how to burn the CD as it is not a typical ISO image. Additionally, there is a project to create Linux bootable CDs here if you want to roll your own. However, the more common procedure is to use a 2nd computer as a PXE boot server and netboot an installer. Details on using a Debian minimal netinstall image can be found here.

NetBSD[edit]

NetBSD has run on the O2 since NetBSD 2.0.

OpenBSD[edit]

From http://www.openbsd.org/sgi.html : Currently OpenBSD/sgi runs in 64 bit mode and boots multi-user on supported systems.

Supported models:

  • O2 (aka Moosehead) with R5000, RM5200, RM7000, R10000 and R12000 CPUs. Level 2 caches are supported on all CPUs. RM7000 level 3 cache is supported.
    • Built-in Adaptec AIC-7880 SCSI (ahc)
    • Built-in Ethernet (mec)
    • Built-in serial ports (com)
    • 64 bit PCI expansion slot
    • Intel i8255x-based (except the i82556) PCI ethernet (fxp)
    • Built-in audio (mavb)

Add-On Options[edit]

O2 Dual-head option.
O2 1600SW adapter

The O2 is unusual for a Silicon Graphics machine in that it has only one available graphics option (CRM), which is integrated and cannot be replaced. Similarly unusual, the base machine has a single DB15 connector for graphics output. There is, however, a proprietary expansion port for one of three extra graphics interface options.

  • Dual-head 2xDB15 adapter. PN: 030-1296-002
  • 1600SW flat panel adapter. PN: 030-1170-001
  • Indy Presenter or Presenter 1280 flat panel adapter. PN: 030-1202-001

Since the video calculations are performed on the O2's CPU, running in higher resolutions or dual-head mode has a significant impact on performance. Additionally, due to limited CRM framebuffer width, the two screens for dual-head are positioned vertically in memory, causing a slowdown when objects are drawn across both screens. While no DVI option exists for the O2, when using either flat panel adapter there is an all-digital path from the computer to the display.

Media options include the SGI PCI Digital Audio Option, Analog Video Option (AV1), Digital Video Option (AV2) and various PCI64 cards ranging from SCSI, Ethernet and FireWire to FDDI.

Additional PCI slots can be obtained by using PCI expansion units such as the Magma series.

Troubleshooting[edit]

The O2 is a very unique system and thus has its own quirks. With proper care it can be very reliable, though the following common problems are likely to manifest themselves.

CD-ROM[edit]

The Toshiba CD-ROM drives in the O2 commonly throw a small white plastic gear from the tray motor. Symptoms include the tray either refusing to open or refusing to stay closed. This problem is relatively easy to fix by opening the CD-ROM drive and pushing the gear back onto the motor shaft, then adding a small amount of glue to keep the gear in place. To avoid damaging the tray mechanism during ordinary use, do not push it closed: use the "inject" command instead.

O2 Cog
Where the cog goes after it falls out


To quote kjaer.. ... "there is a pressfit nylon pinion on the transport motor that opens and closes the drive tray, and also raises and lowers the optical pickup assembly (moves it closer to the disc after the tray closes, and moves it away from the disk before the tray opens). This pinion splits when it ages, and when this happens the static friction between pinion and spindle is no longer sufficient to hold the torque required to lift the optical pickup. The drive interprets this as a mis-load and ejects the tray."

Memory[edit]

The O2's proprietary memory modules are highly susceptible to dirt and shock, particularly during shipping. The symptoms of a bad memory contact include random memory errors and a total inability to boot, with a solid red or blinking amber LED at startup. Careful cleaning and re-seating of memory will typically solve such problems, though the DIMMs should also be carefully inspected for missing surface-mount components, which can be easily knocked-off via mishandling.

Graphics Console[edit]

If the O2 boots successfully but refuses to display video, it may be configured for output to the serial console.

O2 Cam[edit]

If your O2 cam isn't returning any images but the light is on and the microphone is active, this might be a simple problem related to the physical plug. See the below post from comp.sys.sgi.hardware:

I had an SGI engineer come out for this very problem. He took his pocket knife, and cut away some of the silver foil shielding from the A/V module where the digital connector is. Plugged it back in (FIRMLY), and that solved the problem. You might check this. Apparently, the foil shielding sometimes gets mangled up in there by the connector, causing the connector not to make good contact. If you cut it away, the connector can seat properly.

NOTE: The O2 cam's internal components are also known for becoming very hot and these old components may burn out. If the above method doesn't fix the cam, it may be dead hardware.

PROM version dictates what processor version works in what board[edit]

It was written in the old nekochan forum ..

 well, finally solved. I spent the better half of the day swapping parts between two O2 boards, with trial, error, and success. 
   my problem and solution go as follows:

 1. the board in o2 x was a 1997 board with what I found to be a 300mhz "2000 sgi" processor
 2.the board in o2 y was a 1997 board and 200mhz "1997 cube-bug" processor both had 4.14 PROM versions

 so I switched processor y into board x, installed 6.5, upgraded overlay to 6.5.22, which upgraded the PROM to   4.18. upon swapping the x processor back into the x board, it all works! 

 so as it seems, PROM version seems to dictate what processor version works in what board...
 

Power supply does not turn off[edit]

You might try the O2 jumpstart jumper. Located on the motherboard right next to the Dallas NVRAM. (you'll have to take out the PCI card cage). The default setting is jumper OFF (should be a jumper on only 1 of the 2 pins). Put the jumper ON, plug everything back together, attach all the peripheral cables, and then the AC power cord. The unit should turn on. If it does, let it sit for a minute or two, and then press the power off button. You should get a message about not being able to shut the unit off. Let this message scroll by a few dozen times. Then, unplug the AC power cord, and all other cables. Put the jumper back in the OFF position (on 1 of 2 pins), and plug everything back again and try it normally.

Also see article O2_Diagnostics:_The_Jumpstart_Procedure for this method.

videostatus=illegal_env_var[edit]

When I do a printenv I get a line with "videostatus=illegal_env_var". A resetenv makes this line disappear, but after a restart it comes back. What does this mean?

You can safely ignore this. The feature is undocumented/unsupported, but for your curiosity and enlightenment:

The purpose is, that you can set several variables to control the power-on behavior of the mvp (video-board). The variable 'videostatus' is the feedback/status indication of whether your values were accepted/active or not. For example if you set ALL these variables to some of the following:

  • 'videotiming' to 'ntsc' or 'pal'
  • 'videoinput' to 'svideo' or 'digital' or 'loopback'
  • 'videooutput' to 'image' or 'black' or 'colorbars'
  • 'videogenlock' to 'internal' 'analog' or 'digital'

THEN, 'videostatus' will be set to 'inited'. Just to tell you, that ALL your settings were recognized and accepted. If 'viedostatus' was set to 'illegal_env_var', it just means that one of the values was not accepted or no MVP board was found.

Notes[edit]

  • Power supply for O2+ is Sony 170W power supply model APS-90 Rev. N. SGI P/N: 060-0032-001

Further Reading[edit]

Wiki Articles:

External References[edit]

Manuals[edit]

  • 007-3275-003 - O2 Workstation Hardware Reference Guide
  • 007-3612-002 - O2 Workstation CPU Upgrade Installation
  • 007-3778-002 - Silicon Graphics O2 Workstation Memory Installation Instructions
  • 007-3902-002 - Downgrading to IRIX 6.3 on O2 Systems
  • 007-3998-002 - Silicon Graphics O2 R5000 Class CPU Upgrade Installation Instructions
  • 007-4486-001 - Silicon Graphics O2+ Workstation Hardware Reference Guide

Wiki Resources[edit]

External Resources[edit]

Photo Gallery[edit]