Indigo

From IRIX Network Wiki
Jump to: navigation, search

Indigo

The SGI Indigo was a line of computer workstations manufactured by SGI beginning in 1990. The initial Indigo (codename Hollywood) was based on the IP12 processor board, which contained a 32-bit MIPS R3000A RISC processor soldered on the board and proprietary memory slots. The later version (codename Blackjack) was based on the IP20 processor board, which had a removable processor module (PM1 or PM2) containing a 64-bit MIPS R4000 or R4400 processor. The IP20 used standard 72-pin DIMMs with parity.

The Indigo was designed to run SGI's version of UNIX, known as IRIX. The Indigos with R3000 processors were supported in IRIX through version 5.3 of that operating system, while Indigos equipped with a R4000 or R4400 processor can run IRIX 6.5. The machine in the hinv section below runs IRIX 4.0.5. Additionally, the free Unix-like operating system NetBSD has support for both the IP12 and IP20 Indigos as part of the sgimips port.

The Indigo was considered one of the most capable graphics workstations of its era, and was essentially peerless in the realm of hardware-accelerated three-dimensional graphics rendering. For use as a graphics workstation, the Indigo was equipped with a two-dimensional framebuffer or, for use as a 3d-graphics workstation, with the Elan graphics subsystem including one to four GEs (Geometry Engines).

A Motorola 56000 DSP was used for Audio IO. Ethernet is supported onboard by the SEEQ 80c03 chipset coupled with the HPC (High-performance Peripheral Controller), which provides the DMA engine. The HPC interfaces primarily between the GIObus and the ethernet, SCSI (wd33c93 chipset), and m56000 DSP. The GIO bus interface is implemented by the PIC (Processor Interface Controller) on IP12 and MC (Memory Controller) on IP20. Much of the hardware design can be traced back to the 4D/3x series, which shares the same memory controller, Ethernet, SCSI, and optionally DSP as the IP12 Indigo. Indeed, the 4D/30, 4D/35 and Indigo R3000 are all considered IP12 machines and run the same IRIX kernel. The Indigo R3000 is effectively a reduced cost 4D/35 without a VME bus. The PIC supports a VME expansion bus (used on the 4D/3x series) and GIO expansion slots (used on the Indigo). In all IP12, IP20, and IP22/IP24 (see Indigo 2) systems the HPC attaches to the GIO bus.


An SGI Indigo R4000 The Indigo was a visually pleasing design, based on a simple cube motif in indigo hue. Graphics and other peripheral expansion was accomplished via the GIO32 expansion bus.

The Indigo was superseded generally by the Indigo 2 (and in the low-cost market segment by the Indy), although Indigos remain useful among some specialties even into the 2000s.


The IRIS Indigo was one of the most powerful 3D machines on the market at the time. It was intended as a smaller desktop workstation replacement for the larger, heavier 4D series of workstations. The Indigo was known by the codename BlackJack while in development, and its original SGI model number wa s CMNB003. When it was introduced, SGI marketing created several working espressso machines that looked just like an Indigo called the Espressogo. The Indigo gets its name from the dark blue color of its case and IRIS stands for "Integrated Raster Imaging System". It is 15" high, 9.5" wide, 10.9" deep, and weighs 25 lbs. On the front right is a door that hides the drive bays, a lock bar, and a reset button. The lock bar is a steel bar that goes through the entire system, and accepts a padlock to prevent anyone from opening the system. The back of the Indigo has power, SCSI, keyboard, serial, audio, video, genlock, ethernet, and parallel connectors, and a ventilation opening near the power supply. The first Indigo has a 32-bit, 33Mhz MIPS R3000 RISC CPU with SGI 64-pin proprietary memory, keyboard, and mouse, and is cap able of addressing up to 96MB of memory. Notably, it is unable to use more than one bank of 4MB memory modules. The R3000 Indigo shipped with three graphics configurations: LG1 (aka, entry), XS, and XS-24. The last version of IRIX to run on the R3k Indigo was IRIX 5.3 w/XFS. SGI also produced Indigos for other companies, such as Colorbus Corp. These Indigos were standard stock, with custom company logos on the door. The HINV IP identifier for R3k CPUs is IP12. In early 1992 SGI introduced the 64-bit, 100Mhz MIPS R4000 RISC Indigo. The R4000 uses standard 72-pin parity SIMMS for memory and addresses up to 384MB of memory. The R4000 shipp ed with five different graphics configurations: LG1, XS, XS-24, XZ, and ELAN. The R4000 Indigo is capable of running the latest versions of IRIX. The R4000 Indigo is also upgradeable to a R4400 150Mhz CPU found in older Indigo 2s. The R4000 is clock multiplied at 50Mhz, and the R4400 at 75Mhz. The HINV IP identifier for R4k CPUs is IP20. The entry-level graphics are 8-bit, do not include any geometry engines, and are on the bottom of the performance scale. The entry board has two video connectors on it, an HD15 and a 13W3, and video output is locked a t 1024x768. SGI produced two entry-level graphics boards, the LG1 and the LG2. The only difference is the LG2 board is pale green with the "Song and Dance Machine" logo silk screened on it. XS, XS-24, and XZ graphics are the next option after entry-level graphic s and are in the mid-level price/performance range. XS is 8-bit color with one geometry engine (GE). The XS-24 is identical to the X S, but includes a Z-buffer, and is capable of 24-bit color. For increased 3D performance, SGI introduced the XZ, which is identical to the XS-24 but includes a second GE. The ELAN graphics option is the best for the Indigo -- it is the same as the XS-24, but with four GEs. Most Indigo R3k machines were marked with a graphics level logo on the door, and R4k Indigos had a graphics badge to identify which graphics option they had.

CPU types

The Silicon Graphics IRIS Indigo has been available with two 
completely different versions of CPU boards and a total of three 
different Mips RISC CPUs.

CPU              clockspeed    CPU module     CPU board
Mips R3000A      33 MHz        *----- HP1 -----*
Mips R4000SC     50/100 MHz    PM1            HP2
Mips R4400SC     75/150 MHz    PM2            HP2

In the rest of this document "Indigo" will be used if the type of 
CPU installed does not matter. "R3K Indigo" is the term used for 
Indigos based on R3000 processors and "R4K Indigo" will be used 
when machines using R4000 or R4400 processor are meant.</nowiki>

1.2 GFX options

There are two entirely different types of graphics options. One is 
called "Entry-Level-Graphics" or "Starter-Graphics" (LG1/LG2) and is 
a simple 8bit framebuffer. The second type is actually a complete 
family of graphics options built from the same components and is 
called "Express Graphics". 
name             color     z-buffer    GEs     connectors
LG1              8bit      none        none    13W3, HD15
LG2              8bit      none        none    13W3, HD15
GR2-XS           8bit      none        1       13W3, BNC, minDIN
GR2-XS24         24bit     none        1       13W3, BNC, minDIN
GR2-XS24Z        24bit     yes         1       13W3, BNC, minDIN
GR2-XZ           24bit     yes         2       13W3, BNC, minDIN
GR2-Elan         24bit     yes         4       13W3, BNC, minDIN

1.3 Markings

All Indigos have/had markings that showed the configuration the 
machine was sold with. It is not recommended to rely on this 
information because parts may have been swapped or the machine 
could have been upgraded. 
R3K Indigos have the name of the graphics option printed on the 
drive door. Possible values are "Elan", "XZ", "XS24", "XS" and 
"Data Station".

On R4K Indigos plastic badges are used to denote the type of 
graphics option: "Elan 4000" (yellow), "XZ 4000" (green), "XS24
4000" (green), "XS 4000" (green), "Entry 4000" (red) and 
"Server 4000" (grey).

Again: Do *not* rely on the badge or the words on the drive door!

How to determine CPU type

2.1 when IRIX is running

Open a UNIX shell and run 'hinv'. Among other things the command 
shows the type of CPU that is installed in the machine.

The following is an indented and abbrevated output of 'hinv' on 
an R3K Indigo:

1 33 MHZ IP12 Processor
FPU: MIPS R2010A/R3010 VLSI Floating Point Chip Revision: 4.0
CPU: MIPS R2000A/R3000 Processor Chip Revision: 3.0   
Both of the following parts show an R4K Indigo:
1 100 MHZ IP20 Processor
FPU: MIPS R4000 Floating Point Coprocessor Revision: 0.0
CPU: MIPS R4000 Processor Chip Revision: 2.2
1 150 MHZ IP20 Processor
FPU: MIPS R4000 Floating Point Coprocessor Revision: 0.0
CPU: MIPS R4400 Processor Chip Revision: 5.0

2.2 from the PROM monitor

In the PROM monitor you can also use the 'hinv' command to determine
the CPU that is installed in the Indigo. The output looks slightly 
different and there is a special issue with the R4K Indigo.

On an R3K 'hinv' shows as expected an IP12 System and an R3000 
processor running at 33 Mhz.
The following excerpts are again from an R4K Indigo (the same 
machines as the R4K Indigo examples from 2.1). 

              System: IP20
           Processor: R4000 50 Mhz, with FPU   
              System: IP20
           Processor: R4000 75 Mhz, with FPU   
Note that the R4400 processor is not recognized in the PROM monitor.
Additionally the 'hinv' command from the PROM shows always the 
external clockspeed of the system. The 'hinv' command in IRIX has 
later been changed to show the internal clockspeed.

2.3 when the machine does not boot

You can determine the type of Indigo just by looking at the CPU
or the CPU board. 

The R3000 processor on the R3K Indigo board is placed directly on 
the board itself. It carries *no* heatsink.

The processors on R4K Indigos is in a small module that is placed 
above the CPU board. The R4000 models carry a dark black/blue 
heatsink and the R4400 processors a huge heatsink that covers
the whole module. The heatsink of both models is visible in the 
space between the CPU module and the case of the Indigo.

Additionally you can try to locate the part number of the boards. 
The one frome the R3K Indigo is called HP1 and the one from the 
R4K models HP2.

How to determine the GFX option

3.1 when IRIX is running

As usual you can use 'hinv' in the UNIX shell to determine the type
of graphics option that is installed. The output lists the name of 
the graphics option as "Graphics board". The following list shows 
some example outputs (for further reference see 1.2):

Graphics board: LG1
Graphics board: GR2-XS24 with Z-buffer
Graphics board: GR2-XZ
Graphics board: GR2-Elan

Additionally you can use '/usr/gfx/gfxinfo' to get detailed 
information on the parts of the graphics subsystem.

3.2 from the PROM monitor

Again 'hinv' is the solution to determine the type of graphics 
option from the PROM monitor. The output is similar to the 'hinv'
output shown in 3.1.

3.3 when the machine does not boot

The first thing to determine is if the board is an "Entry-Level" 
or "Express" graphics board (Confused? Read 1.2). This can be done
without even opening the computer. 

When you look on the back of the machine look for the femal 13W3 
monitor connector (the one with 3 big and 10 small pins). If you 
find below that one just an HD15 VGA style connector the installed 
graphics option is "Entry-Level". If you see a BNC (Genlock) and a
miniDIN (3D) connector than it is one of the "Express" graphics 
boards.

In case of an "Express" board the next step is determining the 
actual type. The table in 1.2 shows that the various versions 
differ in 3 aspects:

1) color: 8bit vs. 24bit
2) Z-buffer: hardware or none (calculations done in software)
3) geometry engines: number of GEs

All "Express" boards are built of the following parts:

GR2:   main graphics board
GE7:   geometry engine (processor offering 32 MFlops)
VB1.1: video buffer board (includes RAMDAC)
ZB4:   z-buffer board (includes z-buffer memory)
VM2:   proprietary SIMM module (3 required for 24bit color)
Every "Express" board consist of 1 GR2, 1 VB1.1, at least 1 GE7 
and 1 VM2. 

The VB1.1 is a daughterboard that is placed on the left half of 
the GR2 board just above the VM2 SIMMs and the ZB4 daughterboard
is placed on the right half. For the GE7 processors the GR2 board 
as 4 sockets at its center.

Knowing the variations of "Express" boards that exist (1.2) and 
the various parts and their functions it is easy to determine the
type of an "Express" board.

Example: The board in question has an empty space on the right 
half (i.e. no ZB4), 3 VM2 modules and 1 GE7 (of course it has 
also 1 VB1.1 and 1 GR2). This boardset offers 24bit color, no 
hardware z-buffer and has 1 geometry engine. According to the 
table in 1.2 that makes it a GR2-XS24 graphics option.


Key Indigo Dates:

  • 1991, July: Indigo systems with R3000 processor announced. Read the official press release from 1991. indigo-announce.txt
  • 1992, January: XS and XS24 graphics options announced to ship in March, Elan to *ship in April
  • 1992, September: Indigo R4000 shipment announced for September 1992
  • 1993, January: XZ graphics options announced to ship in January


Can't set TOD problem

Search on nekochan forums there are heaps of threads about this. More information on external sites such as http://www.sgistuff.net/hardware/systems/documents/indigo-battery-faq.txt Google it there are many sites with photo tutorials and comments like this site: http://www.irisindigo.com/index.php/Indigo_Battery_FAQ A new battery cost $12 (AUD) from Farnell, as of 18th of November, 2009.

Desoldering and resoldering took about 5 minutes.

Farnell had them in stock in the USA and took about 2 weeks to deliver to Australia.

Changing the battery Signs of battery failure

 When the onboard battery of the Indigo fails while the machine is 
 running nothing happens until the next time the machine is shut 
 down and then switched on again.
 
 When the battery is empty the Indigo refuses to boot. It constantly 
 repeats the following error message:
 
 Initializing tod clock.
 setting secs=0 min=0 hour=0 day=1 month=1 year=0
 Can't set tod clock.
 

Effects of battery failure

 The Indigo does not boot until it has a new battery. After that the 
 date/time is wrong but aside from that nothing really bad happens
 (usually). Other systems as for example old Sun Sparcstations (IPC
 or IPX) forget important data like the ethernet MAC adress when 
 the battery in their NVRAM fails. 

What to do

 The solution to the battery problems is the same as on a cheap 
 flashlight: Replace the old battery with a new one. Sounds easy
 but it is slightliy more difficult. 
 
 On both types of Indigos (R3K and R4K - see Indigo Versions FAQ for
 details) the battery is located on the CPU board. In the R3K Indigo 
 it is put in a "socket", in the R4K models it is soldered in place.

Before you start

 Before describing the procedure in detail it is time to adress the 
 reader (especially the ones who have to work on an R4K Indigo).
 
 Begin your work only if you know what you are doing and you have 
 the right tools at hand. If you are not sure or have no experience 
 at all in working on electronic equipment please ask someone 
 experienced to help you. Although the procedure is not that 
 difficult there is a chance to do real damage to the computer.
 
 The descriptions won't mention how to take the parts out of the 
 Indigo and how they are placed back in. There are good descriptions
 in the Indigo Owners guide for that. Read the appropriate sections
 carefully!
 

Obtaining the Battery

 The battery type used in the Indigo R4000 systems is a Tadiran 
 TL-5186 (the one on R3000 systems looks the same and maybe is as 
 well a TL-5186). A battery with the same dimensions and technical
 data is a Sonnenschein SL-340 which might be easier to obtain in
 some places (Austria, Germany, Netherlands and maybe Europe in 
 general).

On Indigo R3K Systems

 Changing the battery on R3K systems is pretty simple. The battery 
 is on the right side of the board close to its edge hidden below the 
 dummy that can be replaced with a GIO card. After removing the dummy 
 the old battery can be taken out of its "socket" and be replaced by 
 a new one. The "socket" is actually only a small rubber strap that 
 holds the battery in place. 
 Attention! Make sure that you do NOT insert the battery the wrong
 way. This may cause damage to the mainboard and leave you with a
 dead system.
  

On Indigo R4K Systems

 The situation on R4K Indigos is a bit more complicated. The battery 
 is located on the CPU board right below the CPU module but it is 
 soldered in place. It is not too difficult to find the pins from 
 the battery on the back of the board.
 The procedure itself is pretty obvious and not too difficult with 
 the right tools and a second person that helps holding the board 
 and pulls on the battery while the first works with the desoldering 
 tools and pays attention that no parts get damaged, burned or 
 whatever bad can happen. Clean the soldering points after the 
 battery has been removed and solder the new one in place.
 Attention! Make sure that you do NOT insert the battery the wrong
 way. This may cause damage to the mainboard and leave you with a
 dead system.
    

When finished

 When booting the Indigo for the first time after replacing the 
 battery enter maintenance mode and go into the PROM monitor. Set 
 the clock and boot the machine. Everything should work fine now.

Forum topic on battery hack

 https://forums.irix.cc/viewtopic.php?f=12&t=172

Example hinv

hinv -v
1 33 MHZ IP12 Processor
FPU: MIPS R2010A/R3010 VLSI Floating Point Chip Revision: 4.0
CPU: MIPS R2000A/R3000 Processor Chip Revision: 3.0
On-board serial ports: 2
Data cache size: 32 Kbytes
Instruction cache size: 32 Kbytes
Main memory size: 64 Mbytes
Integral Ethernet: ec0, version 0
Disk drive: unit 1 on SCSI controller 0
Integral SCSI controller 0: Version WD33C93B, revision C
Iris Audio Processor: revision 10
Graphics board: LG1

/usr/gfx/gfxinfo 
Graphics board 0 is "LG1" graphics.
        Managed (":0.0") 1024x768 
        LG2 revision 3, REX revision 1.5, VC1 revision B, PIC rev 1.5
        14" monitor, video option not installed.

More information

Byte September 1991 Indigo