68kMLA Classic Interface
This is a version of the 68kMLA forums for viewing on your favorite old mac. Visitors on modern platforms may prefer the main site.
| Click here to select a new forum. | | Testing 333MHz IBM 604ev 288in PGA module with G3 carrier for a PCI Mac | Posted by: joevt on 2024-08-09 22:50:33
I have always found it curious how OF on the 6500 *does* recognise the 740, but calls it a 608! (if it did not recognise it, it would get called PowerPC 60?) make-cpu-properties is responsible for setting the CPU device name.
Open Firmware 2.0.3 changes the last character of this string: PowerPC,60x
with a characer from this string: ?1?34?3384??????
using the 4 least significant bits of the upper 16 bits of the PVR as an index.
The 740 has PVR like this: 0x00080100
The character at index 8 is 8
All 7xx CPUs would do the same.
Open Firmware 1.0.5 uses characters from this string: ?1?34?33?4?????? which is identical except for index 8.
Open Firmware 2.0.4 uses the 4 least significant bits of the upper 16 bits of the PVR in a case statement to select an entire string for the CPU name instead of just a single character. | Posted by: LightBulbFun on 2024-08-10 23:41:36
make-cpu-properties is responsible for setting the CPU device name.
Open Firmware 2.0.3 changes the last character of this string: PowerPC,60x
with a characer from this string: ?1?34?3384??????
using the 4 least significant bits of the upper 16 bits of the PVR as an index.
The 740 has PVR like this: 0x00080100
The character at index 8 is 8
All 7xx CPUs would do the same.
Open Firmware 1.0.5 uses characters from this string: ?1?34?33?4?????? which is identical except for index 8.
Open Firmware 2.0.4 uses the 4 least significant bits of the upper 16 bits of the PVR in a case statement to select an entire string for the CPU name instead of just a single character.
very interesting! so theres a look up table of sorts, its very interesting that for 2.0.3 apple did happen to add that 8 replacing one of the ?'s , perhaps PowerPC 608 was going to be the name for the G3 before it was renamed to the 750 (I do recall reading that it was called the 750 in the end since that was a larger number then the PowerPC x704 CPU)
where does OpenFirmware pickup the "ev" part of the CPU name? a 603ev mac like the 4400/5500 and 3400 with its stock CPU reports "PowerPC,603ev"
I am also curious what CPU name strings are present in New World ROM's? I am aware of PowerPC,750, PowerPC,Max (the code name for the 7400, which is seen when you install a 7400 into a G3 Blue and white) PowerPC,G4,PowerPC,970,PowerPC,G5 and of course PowerPC,60? I wonder if there are any others hiding in there? 🙂 | Posted by: joevt on 2024-08-11 00:42:48
where does OpenFirmware pickup the "ev" part of the CPU name? a 603ev mac like the 4400/5500 and 3400 with its stock CPU reports "PowerPC,603ev"
I am also curious what CPU name strings are present in New World ROM's? I am aware of PowerPC,750, PowerPC,Max (the code name for the 7400, which is seen when you install a 7400 into a G3 Blue and white) PowerPC,G4,PowerPC,970,PowerPC,G5 and of course PowerPC,60? I wonder if there are any others hiding in there? 🙂 Like I said before, Open Firmware 2.4 and later use a case statement to choose the entire CPU string instead of a part of the CPU string.
PVR 7 = 603ev.
Search for : make-cpu-properties and : cpu-case in the Part2.of files of my ROM dumps.
: cpu-case is in the latest ROMs and has the largest list of CPUs.
: cpu-case
pvr@ 10 >> dup
case
1 of " 601" 2dup plldefault endof
3 of " 603" 2dup plldefault endof
4 of " 604" 2dup plldefault endof
5 of " 602" 2dup plldefault endof
6 of " 603e" " 603e Stretch" plldefault endof
7 of " 603ev" " 603ev Valiant" plldefault endof
8 of
l2cr@ 0< if
" 750" " 750 Arthur" pllppc750 true to fat-arthur?
else
" 740" " 740 Arthur" pllppc750 then
pvr@ 0ffff and 2201 =
pvr@ 0f0f and 204 =
colon_definition_function_17e9
and or
if
true to sidewindernapbug?
(l
1 sys if
." with Nap Bug"
then
l)
then
endof
9 of " 604e" " 604e Sirroco/Helmwind" plldefault endof
0a of " 604r" " 604r Mach5" plldefault endof
0c of " G4" " G4 Max"
pllmax
true to max?
l2cr@ 0< dup to fat-max? ?fat
endof
7000 of " 750" " 750 Sahara" pllsahara
true to fat-arthur?
pvr@ 0ff0f and 203 =
if
true to vmin?
then
endof
8000 of
" G4" " G4 V'ger" pllvger
true to v'ger?
l2cr@ 0< dup to fat-v'ger? ?fat
endof
8001 of " G4" " G4 Apollo" pllapollo
true to v'ger?
l2cr@ 0< dup to fat-v'ger? ?fat
endof
8002 of " G4" " G4 Apollo7" pllapollo7
true to v'ger?
l2cr@ 0< dup to fat-v'ger? ?fat
endof
8003 of " G4" " G4 Apollo7PM" pllapollo7pm
true to v'ger?
has-dynamic-step? to supports-dfs?
l2cr@ 0< dup to fat-v'ger? ?fat
endof
8004 of " G4" " G4 Apollo8" pllapollo7pm
true to v'ger?
has-dynamic-step? to supports-dfs?
l2cr@ 0< dup to fat-v'ger? ?fat
endof
800c of drop 0c " G4" " G4 Nitro 1.2" pllmax
true to max?
l2cr@ 0< dup to fat-max? ?fat
endof
39 of " G5"
(l
1 sys if
cr ." Found 970 GPUL Neo CPU"
then
l)
true to neo?
endof
3c of
" G5"
(l
1 sys if
cr ." Found 970FX GPUL Neo CPU"
then
l)
true to neo?
endof
44 of
" G5"
(l
1 sys if
cr ." Found Antares CPU"
then
l)
true to neo?
endof
>r
" 60?"
r>
endcase
; | Posted by: joevt on 2024-08-11 00:49:23 Open Firmware 2.0.1 has a case for PVR 6,7,9 and that indexed array for other versions.
: make-cpu-properties
{ local_0 local_1 ; ... }
local_0
10
>>
-> local_2
local_2
case
mac_rom_constant_504_6
of
true
" /PowerPC,603e"
endof
mac_rom_constant_503_7
of
true
" /cpus/PowerPC,603ev"
endof
mac_rom_constant_502_9
of
true
" /PowerPC,604e"
endof
drop
false
" /PowerPC,60x"
dup
endcase
encode-string
mac_rom_constant_505_5
-
1-
swap
dup
_cpu
!
1+
mac_rom_constant_505_5
+
swap
rot
0=
if
2dup
+
2-
local_2
mac_rom_constant_506_F
and
" ?1?34?3384??????"
drop
+
c@
swap
c!
then
colon_string_5c8_name
property
Open Firmware 2.4 just has a case statement:
: make-cpu-properties
{ local_0 local_1 ; ... }
local_0 10 >> -> local_2
" /cpus/PowerPC," encode-bytes
local_2 1 0a between local_2 2 <> and
local_2 5 <>
and if
local_2 case
1 of " 601" endof
3 of " 603" endof
4 of " 604" endof
6 of " 603e" endof
7 of " 603ev" endof
8 of l2cr@ 0= if " 740" else " 750" then endof
>r " 604e" r>
endcase
else
" 60?"
then
encode-string encode+
6 - swap dup _cpu !
6 + swap "name" property | Posted by: stynx on 2024-08-13 10:17:40 Here are the chips i currently own. (10x , 2xPPC604E3DBCG350E, 4x PPC604E2BE200E)
The 10x XPC604RRX300LD batch was too expensive ($25ppp). It was one of the first suppliers who sent me actual pictures of the chips. And apart from the price, they were very professional.

I still have 35x XPC604RRX300 and 2x PPC604E3DBC400E on the way. The 35x XPC604RRX300LD were just bought because they were relatively cheap at $3.50ppp (and will reduce the overall ppp to about $8 for all 45pc i then own).
The PPC604E3DBC400E seem to be extremely hard to come by. I have only one supplier who also is rising the price of the chips even after they are already payed.
If the transaction for the 35 chips is successful, i will post the supplier here and anyone who is interested can buy some of the XPC604RRX300LD at $3.50ppp. They have about 240 chips left and are happy to sell them off. They were upfront that the chips will have to be re-balled since the solder-balls are oxidized and the chips may not work reliably. For them it is basically defective stock taking up space. They were a bit slow in the initial communication but seem to be professional.
-Jonas | Posted by: stynx on 2024-08-13 10:20:51 I will initially try to modify one of my old 150MHz CPU cards with a PPC604E2BE200E. I am interested to see if the Helmwind CPU is capable of going past 250MHz. If i can get that to work, i will try a XPC604RRX300LD on another of the BGA255 604 cards (also doing the 2V VCC mod).
Lets see how it goes ;-)
It might take a bit of time, though since i have a 4-day retro-meeting (100-130 people) in early September and have to prepare.
-Jonas | Posted by: stynx on 2024-08-14 10:45:59
If the transaction for the 35 chips is successful, i will post the supplier here and anyone who is interested can buy some of the XPC604RRX300LD at $3.50ppp. They have about 240 chips left and are happy to sell them off. They were upfront that the chips will have to be re-balled since the solder-balls are oxidized and the chips may not work reliably. For them it is basically defective stock taking up space. They were a bit slow in the initial communication but seem to be professional.
Ok, another bust. The price jumped from $3.53 to $33.82 *lol* and I canceled the order. They suddenly were out of stock and had to be reordered.... I had asked them 3 times if the $3.53 was the final price, and i asked her to check again .... lol
I got another three XPC604RRX300LD that i had ordered separately from the US for testing a bit ago (also $25ppp).
So i have 13 XPC604RRX300LD at $25ppp + shipping + tax = ca. $36ppp
Another four PPC604E3DBCG350E are on the way on donor CPU cards (IBM dual CPU 332MHz slot-module with 2x256k inline cache).
These are 58€ for one card = $28ppp for the cpu itself (desoldering and cleaning is easy)
-Jonas | Posted by: stynx on 2024-08-14 10:49:46 @herd what kind of solder balls should i use for reballing?
I want to use SN63PB37 alloy but i need to know the size...
-Jonas | Posted by: LightBulbFun on 2024-08-15 14:44:02
@herd what kind of solder balls should i use for reballing?
I want to use SN63PB37 alloy but i need to know the size...
-Jonas for what its worth I use 0.76mm leaded balls for reballing all of my PPC CPU's and that seems to have worked fine so far
@herd goes into a bit more detail about the weird 0.89 balls found on factory fresh CPU's here 🙂
I have a 2002 iMac G4 15" (P80) that I pulled off one of my shelves to mess around with because I don't really use it a whole lot. I got curious since I had a couple 7455A CPUs on hand I bought off of eBay about a couple years ago and after years of practicing soldering and hot air work I...
68kmla.org
| Posted by: stynx on 2024-08-16 05:43:14
for what its worth I use 0.76mm leaded balls for reballing all of my PPC CPU's and that seems to have worked fine so far
@herd goes into a bit more detail about the weird 0.89 balls found on factory fresh CPU's here 🙂
I have a 2002 iMac G4 15" (P80) that I pulled off one of my shelves to mess around with because I don't really use it a whole lot. I got curious since I had a couple 7455A CPUs on hand I bought off of eBay about a couple years ago and after years of practicing soldering and hot air work I...
68kmla.org
That helps a lot, thank you. | Posted by: herd on 2024-08-16 20:03:04 I would use whatever size fits your stencil(s); I think 0.76mm diameter should generally work with large pitch BGA. Probably more important, particularly with chineez suppliers, is to test on scrap parts when you receive them and expect to request a refund/return. It seems they will print anything on a label. I have some silver solder that melts at 180º as well as some ROHS solder balls. I also have some eutectic solder balls that might rust; I should check them with a magnet... | Posted by: stynx on 2024-08-17 04:00:19
I would use whatever size fits your stencil(s); I think 0.76mm diameter should generally work with large pitch BGA. Probably more important, particularly with chineez suppliers, is to test on scrap parts when you receive them and expect to request a refund/return. It seems they will print anything on a label. I have some silver solder that melts at 180º as well as some ROHS solder balls. I also have some eutectic solder balls that might rust; I should check them with a magnet... Thank you for the info. I have ordered the solder balls from Spain since the Chinese companies that sell SN63PB37 solder balls did not seem legit. Eutectic solder balls are seemingly not so common...
I have also desoldered 3 PPC-chips from 2 High-perf. cards (250MHz) and a 180MHz 604e card. Using a heat-transfer pad on the backside to have good contact with my hot-plate helped a lot. It also prevented the capacitors on the back from falling off, although i was a bit impatient with the first High-perf board and peeled some caps off with the pad when it was still too hot. I waited the second time a few minutes and everything went perfect. The cleaning up of the solder-balls was a bit messy and i had to "wipe" the contacts a few times with fresh (S62PB36AG2) solder to be able to suck it from the pads with solder-wick.
I set my hot-air to 300 deg. C. and the heat-bed to 200 deg. C.
After 2-3 min. the CPU became movable and i could lift it off with a vacuum-pen.
  | Posted by: stynx on 2024-08-20 11:46:41 The two ppc604e3db-c400e that i got today are fake, most likely some other speed rating like 300MHz or 250MHz
They are reclaimed, reballed, laser-etched and overpainted. The chips were roughly handled and the silicon is chipped.
I would highly discourage anyone from trying to get these.
The 300MHz rated Motorola chips are most likely the only ones available in decent numbers. | Posted by: Daniël on 2024-08-21 00:49:04
The two ppc604e3db-c400e that i got today are fake, most likely some other speed rating like 300MHz or 250MHz
They are reclaimed, reballed, laser-etched and overpainted. The chips were roughly handled and the silicon is chipped.
I would highly discourage anyone from trying to get these.
The 300MHz rated Motorola chips are most likely the only ones available in decent numbers.
What do the dies look like on the fakes?
Are they still the purple-ish (Motorola) or red-ish (IBM), matte finish, or is it a clear, mirror-like finish?
In the iMac G3 -> G4 thread in Hacks & Development, I posted about fake MPC106/XPC106 Grackle chips from China.
They've taken 66MHz parts (100% sure they are, as even at 83MHz they're unstable as hell), removed the partnumber marking off the ceramic carrier, and polished the die down to a mirror shine to laser-etch a fake 100MHz partnumber onto.
Just curious if they've done the same with these.
In any case, welcome to the club of fake PowerPC(-related) chip owners :-( | Posted by: stynx on 2024-08-21 10:14:45
What do the dies look like on the fakes? I will post a photo in a few days. I'm a bit busy atm. | Posted by: stynx on 2024-08-23 05:22:57 I will post updates about the ongoing process of replacing the 604e cpus here:
I will post my attempts to swap PPC604e CPUs here now. First steps - desolder old CPUs: I used a stack of 2mm thick heat-transfer pads on the backside for better contact with my hot-plate. The hotplate was @200 deg C A hot-air station @300 deg C was then used to heat the CPUs directly. After...
68kmla.org
| Posted by: stynx on 2024-08-23 05:29:54
What do the dies look like on the fakes?
Are they still the purple-ish (Motorola) or red-ish (IBM), matte finish, or is it a clear, mirror-like finish?
In any case, welcome to the club of fake PowerPC(-related) chip owners :-( Here are the PPC604e3DB-C400E fakes.
 
sold by https://impochips.com/ - https://tech-electr.com/
PPC604E3DB-C400E
impochips.com
Im pretty sure that they will make any kind of speed rating that you desire 😛 | Posted by: stynx on 2025-06-19 06:57:22 I recently bought another 375 MHz rated 604e3 with ZIF carrier (from an RS6000 p43 system).
The processor version is 10,1 like the Apple Mach5 CPUs and is visually identical 604e3/375, i bought earlier, which is a 9,31 version.
The 10,1 version will identify as a 604ev while the 9,31 version will identify as a 604e. Both CPUs are nearly identical in terms of speed. The only difference is that i get about 10% higher scores in some floating point calculations with the 9,31 version. (no cache/Kansas board)
I have also found that the 10,1 version does not play nicely with older systems (TNT for example) while the 9,31 works without a problem. Maybe the 10,1 604ev has some changes to the default values in the registers or something. I could use a Mach5-card that i modified with a 9,31 604e3 with a TNT board if i had the Kansas Rom installed. The 10,1 604ev Mach5 card would not work in the older machines, even with the Kansas Rom.
-Jonas | Posted by: Franklinstein on 2025-06-19 13:51:24 Just some notes based on some stuff in this thread:
The 740 was intended to be a mostly pin compatible replacement for the 603 and 603. I say "mostly" because some signals go from read-only to bi-directional (or vice-versa) and some voltages can differ, so unfortunately it's not a perfect drop-in. Plenty of people here found that out the hard way. Usually it wasn't a magic smoke situation, just disappointment and wasted time.
The 7x0 chips were basically enhanced 603s (with an L2 controller on the 750). The 74x0 was basically an enhanced 604 with a vector processor and L2 cache controller. That's why the 7x0 chips don't do SMP: they're based on the 603 which also didn't do SMP (at least, not without extra steps as in the BeBox).
According to the various PowerPC design manuals, the 60x bus is designed to operate with either up to 4 60x processors or a single 60x processor and a board-level L2 cache; as designed you didn't get both. Somehow Daystar managed to do some voodoo and get a multi-processor with L2 setup working (later licensed to other vendors including Apple), but it was out of spec and needed software workarounds to get things to play nice (and it usually didn't give as substantial of a speed improvement as you'd expect). Why does SMP work with the 74xx chips? Because there's no board-level L2 cache, so up to 4 CPUs can work together as intended (they can manage their own and snoop one another's caches as needed without outside control). So why no quad G4s? Hard to say. Could be that it was too big, too power-hungry, or they just didn't see the point. Maybe Apple's bridge chips couldn't support more than 2. Maybe there were yield problems that would've kept them from making more than a couple examples (Moto did have huge problems with G4 yields to the point IBM was asked to help fab them for a while). | Posted by: stynx on 2025-06-20 17:52:43 Regarding the 60x bus and SMP vs. cache: The MPC106 datasheet describes the functionality of the MPC106 cache-controller as you said. This is most likely not really a 60x bus feature but a mpc105/106 feature. The control lines that are needed to interface with the L2 cache are also used for SMP functions. You can connect each individual CPU through a memory/cache controller or connect them all together to one memory/cache controller. IBM used individual cache controllers in their SMP CPU cards, basically creating something like the Apple Mach5 card with multiple CPUs. Apple had SMP prototypes in the works right from the start with the 604 but the lack of a SMP capable operating system and the massive cost of multiple cache controllers per system made the efforts futile. The PPC74xx did solve several problems since it had an internal L2 controller (and later L3) and had direct support for SMP like the PPC604. | | < 4 |
|