• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

iMac G3 (Rev A -> C) G4 CPU Upgrade

cb88

Well-known member
Shouldn't it be possible to get an NXP [SIZE=18.2px]MC7448THX1267N[/SIZE] to work in there? Note it's a lower power part bin specifically for that use... the 1400-1700mhz parts are higher power even at idle/sleep than this chip.

Looking at the datasheet if using 2.5V IO, the IO pins can tolerate 3.3v maximum, it is specified to run across 33-200Mhz MPX bus speeds. I think it may be nessicary to make an straight through BGA adapter board to disconnect some pins or reconnect some to the ground and power but other than that it seems possible. Or is there something i have missed on my first perusal of the datasheets?

I'm also curious if it would be possible to swap/upgrade the onboard ram.

 
Last edited by a moderator:

herd

Well-known member
Further testing shows that it seems to be rock solid at 1,75V@500MHz now.

Thanks for sharing your results!

I was tinkering a bit with a 7410 in a Pismo and tried it at 1.6v and 500MHz. It was happy with these settings and cool running. I also tried 1.5v, but that was too low for stable operation once it got warm. So one more data point... ymmv.
 

Daniël

Well-known member
Crazy to think I've been going on and off about finally getting the equipment to do my own BGA swaps since 2016, but this weekend I finally got a PCB preheater, and went for it.
Happy to report, this (badly vinegar syndromed) Japanese Pismo is now a G4 :)

G4Swap1.jpgG4Swap2.jpgG4Swap3.jpgG4Swap4.jpgG4Swap6.jpg
 

LightBulbFun

Well-known member
Crazy to think I've been going on and off about finally getting the equipment to do my own BGA swaps since 2016, but this weekend I finally got a PCB preheater, and went for it.
Happy to report, this (badly vinegar syndromed) Japanese Pismo is now a G4 :)

View attachment 76379View attachment 76378View attachment 76377View attachment 76376View attachment 76375

this is where I really wish the forum software had a "like" button of some kind, its awesome to this finally come to fruition! :)
 

herd

Well-known member
...getting the equipment to do my own BGA swaps...

Nice! I think you'll get a lot of use out of your new tools, and I look forward to seeing your projects!

What different settings/values did you try out, and which did you settle on? It seems like testing all the combinations takes more time than swapping chips.
 

max1zzz

Well-known member
Crazy to think I've been going on and off about finally getting the equipment to do my own BGA swaps since 2016, but this weekend I finally got a PCB preheater, and went for it.
Happy to report, this (badly vinegar syndromed) Japanese Pismo is now a G4 :)

View attachment 76379View attachment 76378View attachment 76377View attachment 76376View attachment 76375
Nicely done! Once you get over the initial hurdle BGA rework gets fairly easy quickly, before you know it you be swapping CPU's on everything just because you can!

Also it's always amusing to se a new post in a thread of yours form 2016 :) I should really get back to that iMac project, it's only been 8 years!
 

Daniël

Well-known member
What different settings/values did you try out, and which did you settle on? It seems like testing all the combinations takes more time than swapping chips.

Not yet changed the settings from what it shipped as, so I'll have to go ahead and tinker some more with it to tweak vCore, PLL and maybe even the 60x -> MPX bus modification.
Nicely done! Once you get over the initial hurdle BGA rework gets fairly easy quickly, before you know it you be swapping CPU's on everything just because you can!

I have a couple of swaps already in mind, including doing an XPC7400 + XPC/MPC106 + Cache swap on a Trayloader iMac card. The XPC7400 and cache will be harvested from a PMG4 CPU card, and the Grackle will be a 100MHz part to replace the stock 66MHz part, so it can be set to 100MHz without an overclock. Should make it a speedy card :)

Will be left with some parts robbed G4 cards, which I may put the G3 and accompanying cache on, for novelty G3-CPU-in-G4-Mac cards. I think @herd has successfully put a G3 on one of those G4 cards, though I'm not sure if it needs any further modifications to put it in 60x bus mode.

As for new projects, I'm currently overhauling the workbench, got myself a new standing desk to make it a bit more ergonomic :)

PXL_20240803_211654370.MP.jpg
 

Daniël

Well-known member
I'm now working towards my own G4 Trayloader card, but I want to go the full mile, so alongside a G4 swap and potentially a cache upgrade, I want to swap the MPC/XPC106 "Grackle" bus controller for a 100MHz part. I figured out the PLL setting for 100MHz, and with the new Atten hot air station in, I decided to install the first chip on the card with a 100MHz XPC106 that I bought from Utsource:

grackle.jpg


With some PC100 or PC133 RAM, this should add a nice bit of memory bandwidth if all things go well :)
 

Daniël

Well-known member
Well, there's good news and bad news. The good news is that I managed to extract an XPC7400 from a donor PowerMac G4 CPU card, reballed it, and installed it on the card, which works!

G4-01.jpg

1000023209.jpg
1000023261.jpg
G4-04.jpg


Not pictured is changing the resistors for the vCore, I removed the singular resistor and changed them for a 10K + 27K pair, which comes down to about 7.3K (in parallel).
@dosdude1 shows this in his video, he mentions 10K + 28K, which is about 7.2K, though I figure the 0.1K difference won't change the voltage too much out of the 2.0V to 2.1V ballpark (nominal voltage according to Motorola is 1.8V to 1.9V, but Apple ran them at 2.15V on these PMG4 CPU cards).

However, as seen in the following picture, the bus speed is still 66MHz:

G4-05.jpg


I need to re-check my PLL mappings for the MPC106, to make sure my changes actually did set it to 100MHz and 83MHz (both settings resulted in no POST).
There used to be a site with these details, but I cannot find it anymore, sadly.

As for the cache, apparently @dosdude1 had tried doing an upgrade to 1MB of L2 cache before, but the SPD EEPROM for the cache seemed to have an illogical checksum that prevented editing, and hasn't been figured out yet.
It has been done before, as Daystar used to offer a G4 swap service, where they'd take your Trayloader's CPU card, to swap the 750 for a 7400, and upgrade the cache to 1MB.

An SPD EEPROM dump of one of those cards is basically the easy way of making it possible.
Well, @LightBulbFun pointed me towards this ad, which I promptly bought :)


While the seller only lists the partnumber of the G3 card, which seemingly made this one slip under the radar, this is actually one of the Daystar upgraded cards, complete with 7400 G4 and 1MB of L2 cache, using the same exact partnumber of cache ICs that Apple's PMG4 AGP CPU card does.
Rest assured, I bought it to dump the SPD EEPROM, which I shall share as soon as I obtain it :)
 

Daniël

Well-known member
Here's a warning, do not buy the MPC106 or XPC106ARX100BG from Utsource!
Despite fairly convincing laser engraved dies with that part number, since managing to set the bus speed to 83MHz on my CPU card, the system's completely unstable with address errors, random crashes and occasional no boots.

I know @croissantking was looking at those, I would strongly advise against it.
Now I wonder, were any legit MPC106 or XPC106 chips laser engraved on the die?
I've not seen any on Macs with anything other than the part number on the ceramic carrier.
 
Last edited:

croissantking

Well-known member
Here's a warning, do not buy the MPC106 or XPC106ARX100BG from Utsource!
Despite fairly convincing laser engraved dies with that part number, since managing to set the bus speed to 83MHz on my CPU card, the system's completely unstable with address errors, random crashes and occasional no boots.

I know @croissantking was looking at those, I would strongly advise against it.
Now I wonder, were any legit MPC106 or XPC106 chips laser engraved on the die?
I've not seen any on Macs with anything other than the part number on the ceramic carrier.
Oh wow, caution heeded.
 

Daniël

Well-known member
Is a PCB preheater a must for BGA chip swapping?

Yes, as heating one section of a board can cause warpage, heating the entire board up some lessens that.
That, and it just makes it easier, as you're at a higher starting point temperature wise.

The Yihua 853A is a smaller and cheaper board heater, it may be large enough for the occasional use.
I got the T8280 for the larger heating area, but they used to cost what the 853A costs now, so they've been inflated quite a bit.

That, and they can be difficult to get in the EU or UK, as apparently improper grounding on some units got them banned.
Mine's fine out of the box, thankfully.
 

Daniël

Well-known member
In hindsight, I guess I should have registered that the mirror finish die on these Utsource Grackles was odd.
The "real" Grackles have a matte, purple-ish hue, with only some non-partnumber engravings in the lower half.

The faked one copies those, alongside the partnumber in the upper half.
The text is also slightly longer than the real one.

Just a shame it's not even 83MHz, given it's completely unstable at that speed.
At least the Utsource ads have pictures of these chips now, so you can identify them as fakes.

PXL_20240819_195154892.MP.jpg
 

Daniël

Well-known member
While the seller only lists the partnumber of the G3 card, which seemingly made this one slip under the radar, this is actually one of the Daystar upgraded cards, complete with 7400 G4 and 1MB of L2 cache, using the same exact partnumber of cache ICs that Apple's PMG4 AGP CPU card does.
Rest assured, I bought it to dump the SPD EEPROM, which I shall share as soon as I obtain it :)

Well, that didn't quite work out as I planned.
I received the card last Saturday, but I'm getting the same issue on my DIY cache upgraded card when the SPD EEPROM is left on: A boot chime, orange LED, but no boot.

Tried different chassis (Rev A, B and C), but no dice.
Very strange that it's the exact same issue as my card, so it may suggest something's wrong with the cache here, too.

Frustrating though! :(
 

Daniël

Well-known member
Couple of days of bashing my head at this did actually get me results!
The eBay G4 card is actually an XLR8 MAChSpeed 400 G4, so that's pretty cool to know, even if it unfortunately doesn't work yet.

Now, I went in circles trying to figure out the cache SPD EEPROM out.
Had a few false starts, but eventually my own cache upgraded card started working, but I couldn't get it to report 1MB of cache in Gauge Pro.

The SPD EEPROM from the XLR8 did differ slightly, and they're both factory 233MHz G3 cards, so that did indicate something was different.
However, I got a sneaking suspicion it needed the MAChSpeed Control Panel installed to get the full cache to work.

Well, yes, that was the case!

machspeed.jpg


Now, I know that @dosdude1 had tried editing the SPD EEPROM on his 1MB cache upgraded G4 Trayloader card, but couldn't get it to work.
He ended up using a Lombard SPD EEPROM dump instead, but that ran the cache at 5:2 at 400MHz CPU clock, and seemingly wouldn't let the system operate at higher CPU clocks.

So, with this software enabling the full cache instead of the SPD EEPROM doing the heavy lifting, would it be possible?
You do get some manual control over cache speed, so there should be more flexibility...

imacg3cache.jpg


The answer is yes, this 466MHz XPC7400 will run at 500MHz, with the cache 2:1 at 250MHz, its rated speed.
I still hope to find out how to get the bus speed up to 100MHz if possible, as my attempts after soldering on a legitimate XPC106ARX100BG so far have failed to push it beyond 83MHz (still a nice bump though).

The XLR8 card has some cruddy solder joints on the cache chips that I can't seem to clear up with reflowing, so I might need to pull them entirely, clean the pads and resolder them.
Very cool progress, I hope to get OS X on this machine soon to do some further stress testing and GeekBenching :)

And as promised, here's the SPD EEPROM dump from the XLR8 card.
I can't 100% say it's what makes MAChSpeed Control pick it up, but given I dumped two other SPD EEPROMs from 233MHz cards, and they were identical to each other but not the XLR8, I would suspect it does.

You can always try downloading MSC from Macintosh Garden and seeing if after filling in the serial, it'll find the cache without an SPD EEPROM flash, but I suspect it wouldn't.
I can't imagine the differences between the dumps are not related to it.
 
Last edited:

herd

Well-known member
Nice work! Thanks for sharing your progress. I think there is an OS X version of MSC that might enable cache under OS X.

Is the cache at 3.3v on those boards? The pins and solder joints are exposed on the QFP parts so a soldering iron might work better than an oven for repairing the connections.
 

LightBulbFun

Well-known member
Nice work! Thanks for sharing your progress. I think there is an OS X version of MSC that might enable cache under OS X.

Is the cache at 3.3v on those boards? The pins and solder joints are exposed on the QFP parts so a soldering iron might work better than an oven for repairing the connections.

Cache is indeed 3.3V on these cards sadly, I say, sadly, as it means the 7410 cannot be used on these boards, which is a shame, as not only is the 7410 a bit easier to acquire/work with (a 7400 you pretty much have to buy an old Apple CPU card to harvest it off of, and then faff about reballing it) but the 7410 is also fair bit lower power/cooler running then a 7400, and you can also trade that off to get more clocks out of a 7410 as well

I am quite eager to see how OS X behaves on it, because even when OpenFirmware does not fully recognise the CPU and does not build out the l2-cache node in the device-tree, on new world Macs, OS X can directly read the SPD EEPROM/Resistor configuration straps on the CPU card and enable L2 cache directly without the need for any enabler

I Do wonder on the L2 cache front, being 3.3V I think it does just go to a wide 3.3V plane in the PCB, so its not like you can cut a trace and inject 2.5V, but I wonder if instead of cutting traces, you could just lift the required pins on the L2 cache pins and inject 2.5V directly into the L2 cache as required?

I also wonder if these iMac G3 tray-loading cards by any chance have the extra address pin hooked up for 2MB of L2 cache? :)
 

herd

Well-known member
The CPU has a bunch of the same L2 power pins, so you'd definitely need to change it somewhere upstream. Based on the pictures above from Daniël, the extra address pin is not routed. However it's not too hard to add it because the pin is on the outside edge of the CPU. I've done this to upgrade a Pismo CPU to 2MB of L2, but the software side of getting it working is a bigger headache.
 
Top