The SGI O2 was SGI’s last-ditch attempt at a low-end MIPS-based workstation back in 1996, and correspondingly didn’t use the hottest parts of the time, nor did it offer much of an upgrade path. None of which is a concern to hobbyists who are more than happy to work around any hardware- and software limitations to e.g. install much faster CPUs. While quite a few CPU upgrades were possible with just some BGA chip reworking skills, installing the 900 MHz RM7900 would require some PROM hacking, which [mattst88] recently took a shake at.
The initial work on upgrading SGI O2 systems was done in the early 2000s, with [Joe Page] and [Ian Mapleson] running into the issue that these higher frequency MIPS CPUs required a custom IP32 PROM image, for which they figured that they’d need either SGI’s help or do some tricky reverse-engineering. Since SGI is no longer around, [mattst88] decided to take up the torch.
After downloading a 512 kB binary dump of the last version of the O2’s PROM, he set to work reverse-engineering it, starting by dissembling the file. A big part of understanding MIPS PROM code is understanding how the MIPS architecture works, including its boot process, so much of what followed was a crash-course on the subject.
With that knowledge it was much easier to properly direct the Capstone disassembler and begin the arduous process of making sense of the blob of data and code. The resulting source files now reassemble into bit-identical ROM files, which makes it likely that modifying it to support different CPUs is now possible with just a bit more work.
For those who want to play along, [mattst88] has made his ip32prom-decompiler project available on GitHub.
Thanks to [adistuder] for the tip.
Top image: Silicon Graphics 1600SW LCD display and O2 workstation. (Source: Wikimedia)

The photo in this article is not compliant with SGI marketing standards. You are not allowed to show pictures of SGI computers with nothing on the monitor.
Isn’t obvious that on the screen is shown a black pixel zoomed in 100 times?
When it comes to reverse-engineering the O2 PROM, there was some work-in-progress SGI O2 emulation from [checks notes] almost 4 years ago? https://youtu.be/sMPm0Sz6u_0
I also dug up a bunch of unused boot/error/shutdown chimes that exist in the PROM but aren’t otherwise used. SGI were able to do this since the O2 used Karplus-Strong synthesis to generate the boot/error/shutdown chimes rather than embedding samples in the PROM like prior workstations: https://youtu.be/UZLwZhmkW8Y
It’s also pretty easy to work out what the PROM is doing, since a copy of the IRIX 6.5.17 source code has been floating around for a decade or two at this point, and it includes the source for the various boot PROMs across SGI’s whole lineup as well.
I think [mattst88] would be way better off just snagging the latter and using that to dive into what needs tweaking in order to support a 900MHz module.
For what it’s worth, the MAME driver is presently not being worked on, but a former SGI engineer was poking at SGI tech in MAME around the start of the year. He’s since disappeared, I hope just because he’s busy with Real Life Syndrome™.
Speaking as the product support engineer assigned to this system, the characterization in the first paragraph could not be further from the truth.
Facts:
* MIPS CPUs were actually doing great at the time. MIPS had design wins for all the major consoles plus a ton of image processing apps, and this was well before even feature phones, with the ARMs in them being not much more than microcontrollers (we used to laugh at them). Saying this was some last ditch attempt is garbage: MIPS at the time was crowing about it’s leadership position.
* In 1996 SGI’s stock price was riding pretty high. This was mostly before it’s financial difficulties, and the O2 was absolutely designed in the good times.
* This was a follow-on to the Indy system, which was a mid-range desktop workstation (compared to other vendors). They also had Octane, their high-end version (which was really a cut-down Origin 2000 technologically).
* The O2 design is primarily custom chips for it’s major components. So “hottest parts” is a weird thing to say as the standard components in there are mostly glue.
* O2 (Moosehead) was an experiment in uniform memory architecture for SGI, which was an unexplored area for them. All previous systems had separated graphics and system memory.
* It was upgradable: you swapped the CPU modules.
If you’re gonna editorialize, at least try to base it somewhat in reality.
As an SGI enthusiast that description in the article struck me as off as well. Its great to have someone with actual authority on it write from experience. Really wouldn’t be surprised if the ‘research’ of that article started and ended with spending some tokens.
This was a really well written article ! A nice condensation of the video and no sensationalism this kind of article is peak hackaday
Things are looking up recently in SGI world. New RAM PCBs. PROM disassembly, renewed hacking on CPU upgrades, new drivers. New software like mogrix.
It would be cool if projects like this ended up re-inspiring research into the VW 320/540 series. They were capable of running windows and performed really well with their unified memory. Unfortunately they’re limited by Microsoft’s choices to win2k being the latest version of windows they can run. They were kept from booting xp and onward by the lack of 1 file, hal.dll (hardware abstraction layer iirc). Essentially thats the file that tells windows how to play with the landscape it wakes up in. If we could get to understanding proms really well perhaps theres some hope of xp or win7 on a vw 320. (VWs also used a prom system)