Testing 333MHz IBM 604ev 288in PGA module with G3 carrier for a PCI Mac

joevt

Well-known member
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.
 

LightBulbFun

Well-known member
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? :)
 
Last edited:

joevt

Well-known member
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.
Code:
: 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
    ;
 

joevt

Well-known member
Open Firmware 2.0.1 has a case for PVR 6,7,9 and that indexed array for other versions.
Code:
: 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:
Code:
: 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
 

stynx

Well-known member
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.
IMG_1517.png

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
 

stynx

Well-known member
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
 

stynx

Well-known member
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
 

stynx

Well-known member
@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
 

LightBulbFun

Well-known member
@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 :)

 

stynx

Well-known member
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 :)

That helps a lot, thank you.
 

herd

Well-known member
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...
 

stynx

Well-known member
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.

IMG_1518.pngIMG_1519.pngIMG_1521.png
 

stynx

Well-known member
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.
 

Daniël

Well-known member
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 :-(
 

stynx

Well-known member
I will post updates about the ongoing process of replacing the 604e cpus here:
 

stynx

Well-known member
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.
IMG_1525.pngIMG_1526.png
sold by https://impochips.com/ - https://tech-electr.com/
Im pretty sure that they will make any kind of speed rating that you desire :p
 
Last edited:
Top