Tech News
← Back to articles

OpenBSD on SGI: A Rollercoaster Story

read original related products more articles

OpenBSD stories

OpenBSD on SGI: a rollercoaster story

Interest in supporting the MIPS architecture in BSD is about as old as the architecture itself, and Risc/OS (the Unix variant running on MIPS' own workstations, before MIPS got bought by SGI and stopped manufacturing anything but processors) was based upon BSD code; so was Ultrix, Digital's first flavour of Unix, which ran on VAX but also on its MIPS-based DECstations.

While there is a lot to tell on OpenBSD on SGI hardware alone, I think it is better to see a larger picture. Be warned that this story is quite long! PART 1: A missed opportunity [skip to the next part] Introduction Before I start narrating the tale of BSD on MIPS in general and of OpenBSD on SGI in particular, you might want to familiarize yourself with SGI hardware over the years. An excellent resource about SGI systems, from the early Motorola 68000-based IRISes to the latest Itanium-based Altix, can be found on Gerhard Lenerz' sgistuff site. In this narration, I will focus on only a subset of the MIPS-based systems. You might want to keep an eye on the timeline page as well. In the beginning of this story, the most iconic SGI systems are the Indigo (the Song and Dance machine, as was silkscreened on some of its boards), first released in 1991, which is getting replaced by the Indy, SGI's first workstation in pizzabox form factor, and the Indigo2, a larger desktop case which can also be put deskside with special feet, and has more expansion capabilities than the Indy. All these three systems have nice coloured cases, with a dark blue (well... indigo) for the Indigo, a clear blue for the Indy, and a clear teal for the Indigo2 (some later Indigo2 models will sport purple cases). This is quite the eye catcher, in a world where workstations tended to be greyish (with some subtle lavender touches on Sun Aurora case used by the SPARCstation 20, 5 and 4) or beige, just like the average PC clone case. Another distincting feature of the SGI systems is that, when powered on, they would play a short tune, different on every model. (You can find decent recordings of some of these sounds on YouTube. Interestingly, despite not having an internal speaker, the Octane nevertheless has its own boot tune, but to hear it, you need to plug external speakers or headphones into the rear jack.) This made these workstations really appealing. Which is the #1 reason why people have wanted to run BSD or Linux on them. Not only because it could be done, but because these machines were the raddest. In late 1996, the O 2 was introduced to replace the Indy as the entry-level workstation, and shortly after, in early 1997, the Octane was introduced to replace the Indigo2. Both systems would now use PCI cards for expansion, with the O 2 having one PCI slot for a short card, and the Octane having an optional PCI cardcage allowing for up to 3 cards of any length. Both these systems carried on with the coloured case tradition, the O 2 being dark blue, and the Octane green, but one surprising feature was that the top of their cases were rounded, and it was no longer possible to put anything on them (and definitely no 21" CRT monitor, despite the Octane chassis being strong enough to support its weight.) The Octane, despite being larger and wider than the O 2 , had no internal 5"1/4 storage device bay, requiring external SCSI CD-ROM drives, while the O 2 came with a CD-ROM drive at the top of the case. The Octane was also a multiprocessor capable machine, allowing for up to two processors; customers needing more could buy the Origin 200, introduced at about the same time; each Origin 200 system would have two processors, but two Origin 200 systems could be connected with a so-called NUMAlink cable, to create a four processor machine. And if you had needs for even more horsepower, the Origin 2000 family could easily allow for up to 128 processors, as long as you could afford them (and the electricity bill.) (SGI marketing department even had five Octane-related songs recorded and burned onto an audio CD given away to prospective customers; these songs are not that bad and will probably make you smile. You can find decent quality mp3 files for them here.) The Origin 2000 and 200 families were improved with the Origin 3000 and Origin 300 lines in 2000 and 2001, with twice as many processors per node (a single Origin 300 node would now have four processors). Then in 2002, these were improved again with the Origin 350 and Origin 3500 families, and the single-processor Fuel system intended to replace the Octane (although, with one processor and only up to 4GB of memory, it was behind the best Octane configurations, which could use two processors and 8GB of memory), and some reliability problems in the early models quickly earned it the Fool nickname. The Fuel systems also stood apart from the rest of the SGI systems because of their case colour; they were initially supposed to sport a nice blue colour, and the Fuel prototypes did; but once marketing settled on the name Fuel (the codename for that machine had been Asterix until then), it was obvious the case colour had to match with the implied fire capability of the name, and it was changed to a bright red, which would remind old-timers of the SGI Crimson. This is a very quick description of the SGI workstations, and to sum things up: in 1995, we wanted to run BSD on Indy, and wouldn't it be nice if it also ran on Indigo 2 ...

...and we expected this to become a reality a few years later.

... ...and we expected this to become a reality a few years later. from 1997 onwards, we wanted to run BSD on O 2 , and wouldn't it be nice if it also ran on Octane...

...and we hoped this would become a reality a few years later.

, and wouldn't it be nice if it also ran on Octane... ...and we hoped this would become a reality a few years later. from 2002 onwards, we wanted to run BSD on Fuel, and wouldn't it be nice if it also ran on Tezro and the rest of the Origin 350 family...

...and everyone agreed this was too much of a dream and would never happen. But eventually, OpenBSD ran on (almost) all these machines. 1988-1993, BSD The first bits of MIPS code were written by Ralph Campbell of the University of Utah, starting in 1988, but weren't contributed to the CSRG at the University of Berkeley until early january 1992, where Kirk McKusick commited the code with a simple ``contributed by Ralph Campbell'' log message. This code was attempting to get BSD to run on the original Digital DECstations, models 2100 and 3100, also known as pmax . In the beginning, this was just the kernel, with the userland being the Ultrix binaries. But work on native userland binaries followed, with the first commits occurring that same year on february 29th, by Ralph Campbell himself, who had received access to the CSRG source code repository. The code slowly matured, with more models of the DECstation 5000 series becoming supported, and Rick Macklem contributed support for the Personal DECstation. However, there was no native toolchain for BSD on MIPS; it relied upon the Ultrix cc , as and ld binaries running in emulation. In parallel, building on that MIPS support, Japanese hackers, led by Kazumasa Utashiro, were working on BSD support for the MIPS-based Sony NEWS workstations; this work got eventually commited to the CSRG source tree on march 1993 as a news3400 port. Here is what sys/news3400/README had to say: # @(#)README 8.1 (Berkeley) 06/10/93 ------------------------------------------------------------------------------ This Sony MIPS R3000 based workstation support is done as an activity of WIDE research project. Sony Corporation contributed most device drivers and gave us great technical supports. Kazumasa Utashiro worked mainly 4.4BSD implementation but that work was based on 4.3BSD-Reno port helped by other project members, especially Tadamichi Matsuyama and Hidetoshi Unno. This version is just a snapshot of developing system and has many unimplemented features and bugs. Please contact [email protected] if you have any comments about this code. Bugfix will be greatly appreciated. ------------------------------------------------------------------------------ I've been using NWS-3200 laptop machine and NWS-3400 for development. 3200's LCD display and NWB-253 display board are supported now. ------------------------------------------------------------------------------ Currently GCC is used as a compiler which uses as and ld come with NEWS-OS. They should soon be replaced by the latest GAS because it supports BSD a.out format for MIPS. ------------------------------------------------------------------------------ Known bugs: - Display driver is slow. - Serial line driver is slow. - Console doesn't accept ^S. - Some problem probably in VM. ------------------------------------------------------------------------------ Kazumasa Utashiro Software Research Associates, Inc. 1-1-1 Hirakawa-cho, Chiyoda-ku, Tokyo 102, Japan and WIDE Project NetBSD/newsmips port.)

On the 16th june of 1993, Kirk McKusick commited a ``final update from Ralph'', and not much happened on the MIPS front until Ralph Campbell put ``final changes for pmax 4.4-Lite II release'' in early june 1995.

... continue reading