The SGI O2 600MHz R7K mod in 2024

Tech&Music

New member
Aug 30, 2020
12
24
3
26
The Netherlands
It's been a long time comin'!
Since getting my O2, I've had the plan to try and fit it with the 600MHz R7K CPU through a BGA swap on a 300MHz R5K card.

It's been a couple of years now, but I've finally made the move to BGA soldering in the last few months, and after getting comfortable with it, I've decided to start on the SGI.
After removing the PROM and voltage regulator adjustment resistors, and fitting a simple bridge on R50 to set the vCore regulator to 2.5V, I removed the heatsink:

heatsinkremoval.jpg


(yes, my PCB preheater needed a clean, and got one after this project :p)

I use the method seen here, though I just use a can of compressed air held upside down, as a cheap freeze spray.
Once the heatsink is properly frozen, I put an old bank card under the heatsink at the bottom (above the yellow barcode sticker), then pop it off by wedging in a screwdriver, the card keeping the driver from digging into the PCB below.

Next, the CPU is desoldered with hot air, with the PCB preheater keeping the entire PCB reasonably hot to prevent warping or popcorning, and a good amount of flux applied around the old RM5271 CPU.
Once it's off, I then clean the pads with some solder braid:

cpuoff.jpg


Finally, the RM7000C-600T is placed on the PCB, on top of a good bead of flux, and carefully aligned to the board, after which I solder it on.
Once I see the chip slightly moving into position and sinking a bit, I know the CPU is soldered on correctly, and I let the PCB cool down:

cpuon.jpg


Now, with that done, it's onto the PROM.
This part is a bit tricky, the original Xilinx PROMs are read-once, meaning you need to source a replacement, and hope you aren't getting old ones pulled off scrap boards if buying from China.

I was tipped by @SGIArtist that the reprogrammable AT17LVxxx series would likely work in place of the Xilinx PROMs.
The programmer Atmel sold for these was the ATDH2200E, which has the schematics for the programmer listed in the manual.

So, I did the entirely reasonable thing, and just spent an afternoon recreating the necessary bits of the programmer on a breadboard, using a 90s Toshiba laptop as the programming computer.
For the PROM, I'm using a simple DIP adapter from my TL866 programmer, and as the necessary 74 logic IC was seemingly only available in SMD, I soldered that onto a DIP adapter as well.

spaghettiprogrammer.jpg


Bit of a spaghetti situation, but it worked!
I did have to use Atmel CPS 7, CPS 8 gave me weird "0 AT17LV65/256 devices needed to download" errors when trying to program the chip.

In CPS7, loading the .MCS file with the "Convert, partition, write and verify Xilinx file" option worked fine, with it converting it to a .BST file and programming that in turn.
After verifying that reading the chip as a 64K device (AT17LV65) still gave good results, I went ahead and soldered the programmed chip to the CPU board:

promon.jpg


After cleaning the flux, it went into my SGI O2.
And yes, it did power up, although it appears the original HDD decided today of all days, was the day it dies... so I can't boot into IRIX until I replace it and reinstall it, which sadly I won't be able to get to until next week at the earliest!

That said, I'm very happy it is powering up.
The ARCS hinv command shows incorrect CPU specs, missing the L2 and L3 cache and showing a wrong clockspeed, but I imagine those settings aren't fully active until IRIX is booted, or perhaps the hinv command in firmware doesn't fully "understand" the R7K's specifications, rather than a PROM issue:

promhinv.jpg


So a full IRIX hinv screencap will have to wait until later, but I'm glad this went as well as it did!
At a later date, I might also try and recreate a simplified version of the Atmel programmer in KiCAD, so a slightly less sketchy version could be easily put together with a professionally made PCB instead :p
 
I'm excited to see where this goes! If folks were able to send you an appropriate R5K board, would you be at all interested in doing this as a paid for service?
 
I'm excited to see where this goes! If folks were able to send you an appropriate R5K board, would you be at all interested in doing this as a paid for service?

Potentially, yeah.
Though, the PROM situation has thrown a spanner in the works, as while I thought the system couldn't operate without a PROM on the CPU board, this is actually not true.

The 200MHz and no L2 and L3 cache seems to stem from the Atmel chip not working (correctly) in place of the original Xilinx.
It just falls back to this if the PROM can't be read, as it does the same with no PROM installed, so I need to go back to the drawing board on this first...

PXL_20241024_193153331.jpg
 
  • Like
Reactions: ruckusman
Well, I broke my brain over it today, but I managed to get through this hurdle.
I guess the PROM image being smaller than the actual Atmel chip, put the actual 32 bits of data out of range for the O2 to read.

After painstakingly figuring this out, I made an 32 kilobyte, 8-bit Intel HEX file full of zeros, and then transplanted the first line of HEX (containing the data, the rest of the MCS file is zeros in Intel HEX).
Flashing that to the Atmel got the desired result, as in the machine properly initializing the CPU card:

PXL_20241025_151843916.jpg


Unfortunately, that also revealed this card has cache issues, the machine will turn off video and lock up once IRIX starts booting.
IDE Diagnostics goes haywire on the L3 cache checks.

I knew the solder balls on this chip were potentially a bit iffy, but I really dread reballing these R7K chips due to the solder mask on the bottom of the chip coming off very easily, hindering proper desolder braid cleaning.
This one will have to wait for a day where my head's a bit clearer, I'm afraid.
 
A friend of mine checked out the RM7000A datasheet, and pointed out to me that the datasheet actually describes the bitstream data, as it's the CPU reading it, rather than the SGI itself, unlike what I misunderstood.

image(43).png


This is very valuable information, as it frees me from having to stick to (close to) 600MHz rated chips.
Sure, having the fastest of the fastest is nice, but any R7K is going to be a nice upgrade for R5K based O2s.

I do note that it does not tell the CPU what the cache size is.
Knowing it has a couple of index lines and control signals going to the cache, with the actual data traveling on the SysAD bus, this does once again make me wonder about the possibility of putting larger SRAM chips in place, to see if it can enumerate more cache, opening another avenue to SGI O2 upgrades.

Another thing I realize, is that due to the PROM being connected to the CPU, a drop-in PGA module for the older R5K modules could potentially provide a fully solder-less install for an end user, by putting the R7K BGA CPU, voltage regulator and PROM on an interposer module that goes into the R5K's PGA socket.
If it indeed then just checks the cache size by polling the SRAM ICs themselves, it would just use the 512K already on the board with no problem.

Again, all of that is theoretical for the moment, but if I can get myself CAD-savvy enough, open source interposer modules would be my end goal.
That would potentially make R7K upgrades much more accessible to O2 owners.

Enough to think about for a while, I think :)
 
how about modifying an octane to run the 1000mhz chip from a tezro? any hope for that at all?
 
Do you have any photos of the underside of that board, it looks to be much simpler than the 030-1493-001.

Also wondering if the cache chips being on the underside and being directly in the path of the heat from the pre-heater, then having the heat from the CPU removal and new processor installation made them unstable.
Perhaps simply reflowing the cache chips may rectify that problem.
 
Last edited:

About us

  • Silicon Graphics User Group (SGUG) is a community for users, developers, and admirers of Silicon Graphics (SGI) products. We aim to be a friendly hobbyist community for discussing all aspects of SGIs, including use, software development, the IRIX Operating System, and troubleshooting, as well as facilitating hardware exchange.

User Menu