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:
(yes, my PCB preheater needed a clean, and got one after this project )
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:
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:
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.
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:
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:
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
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:
(yes, my PCB preheater needed a clean, and got one after this project )
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:
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:
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.
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:
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:
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