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.
The "820-0961-A" mystery G3 3.3V FlashRom
Posted by: stynx on 2024-11-01 12:03:44
There is someone on eBay right now who sells original Apple PPC 4Mb 3.3V Flash ROMs. The seller had about 100 of these Roms. The origins are unknown. I have bought 10 of them to experiment. The DIMMs are in almost unused condition and in individual antistatic bags, most likely original. It is as if they were only programmed, shipped and then never used. The resistor for disabling the onboard ROM is not populated and the ROM would only work in a computer that lacks onboard ROMs.

820-0961-A_back.png820-0961-A_front.png

I have unsoldered the 29LV800BT chips and saved the contents. The 4 Rom files are in the attached ZIP file.

The contents of the rom do not match with any other Rom i have. It is similar to the G3 desktop/v3 Rom and to the PEX rom.
I was not able to interleave the files into a single ROM since i lack the tools for that.

MD5 (3.3Flash4mb_HH) = 14873b5684dc899edf612f5521c2de9e
MD5 (3.3Flash4mb_HL) = 71eab8f40a43610eb3439919522fbd52
MD5 (3.3Flash4mb_LH) = b21156f828f1281c6bad015b0fd09aa1
MD5 (3.3Flash4mb_LL) = 5d75984f03079b4df54e33dfe4c09f2e


MD5 (G3_desk_deinterleaved_U1.bin) = e5669652b42c5839916d80c49063b04e
MD5 (G3_desk_deinterleaved_U2.bin) = cd0285387aa90794c0e23068b1e4ed96
MD5 (G3_desk_deinterleaved_U3.bin) = 0d81e04bb4a0520f253d71ad0ba09680
MD5 (G3_desk_deinterleaved_U4.bin) = 86a1926abb9f15b45639e1932fa584c8

MD5 (G3_v3_deinterleaved_U1.bin) = 6dda0485f44f7f6f95359c8f9589a498
MD5 (G3_v3_deinterleaved_U2.bin) = 7d98cb7730188ccb1950f2b0ac0ddf7a
MD5 (G3_v3_deinterleaved_U3.bin) = 3ace31899d7eda8dc8db8d22630384ec
MD5 (G3_v3_deinterleaved_U4.bin) = 41f300d0f7c7ac6b635eb68e55835c37

MD5 (pex_4MB_deinterleaved_U1.bin) = 3bc332feed391d889b67ea950905bbc1
MD5 (pex_4MB_deinterleaved_U2.bin) = 975f90800d9177d59b5eca4f4deb23bd
MD5 (pex_4MB_deinterleaved_U3.bin) = 0926268dc1c86fbbf556d5269481efb2
MD5 (pex_4MB_deinterleaved_U4.bin) = bc2c332c8ef3ba711367306be705e3c7

MD5 (PM9600_r2_deinterleaved_U1.bin) = dcb9c84bbeaab166bd99d44882c1e9b1
MD5 (PM9600_r2_deinterleaved_U2.bin) = ca50e54c2619a98e1c6f84cbfb721f34
MD5 (PM9600_r2_deinterleaved_U3.bin) = 4dec259aa83081b5e7d58ddae516fa36
MD5 (PM9600_r2_deinterleaved_U4.bin) = 595874aa22e6db1c974ac7d0f4c7f7ea

MD5 (G3_Wallstreet_deinterleaved_U1.bin) = d80703b11923730fca13125629508f76
MD5 (G3_Wallstreet_deinterleaved_U2.bin) = ae811c67233034d690d757d60535e1c2
MD5 (G3_Wallstreet_deinterleaved_U3.bin) = 0fd747e01abdc399d7307ff904d26539
MD5 (G3_Wallstreet_deinterleaved_U4.bin) = df7e37d0943fea0558d085fd836ddab0

PEX-rom "U4" vs. 820-0961-A "LL"
screenshot_U4_LL.png
.
Posted by: stynx on 2024-11-01 13:04:43
Here is the rom as a single file.
Posted by: dougg3 on 2024-11-01 13:08:00
Very interesting! I wrote a quick C program that can combine the interleaved chip dumps back together. Ahh, I think you just beat me to it, but I'll post this anyway.

This results in a ROM with checksum 78E842A8. There aren't any Google results for this checksum so it's possibly a previously unknown version. Looks like it is identifying itself as version 77D.45F3. @joevt might be interested in this dump based on discussions here: https://68kmla.org/bb/index.php?thr...n-1st-gen-clamshell-ibooks-model-m2453.33055/

I did verify that the checksum is good, so all 4 of your chip dumps are definitely good. Thanks for sharing! Attached is the combined ROM image created by running the program. Below is the source code:

#include <stdio.h>
#include <stdint.h>

static uint8_t hhdata[1048576];
static uint8_t hldata[1048576];
static uint8_t lhdata[1048576];
static uint8_t lldata[1048576];

int main(int argc, char *argv[])
{
    FILE *hh, *hl, *lh, *ll;
    FILE *outfile;

    hh = fopen("3.3Flash4mb_HH", "rb");
    hl = fopen("3.3Flash4mb_HL", "rb");
    lh = fopen("3.3Flash4mb_LH", "rb");
    ll = fopen("3.3Flash4mb_LL", "rb");

    outfile = fopen("3.3Flash4mb_combined", "wb");

    fread(hhdata, 1048576, 1, hh);
    fread(hldata, 1048576, 1, hl);
    fread(lhdata, 1048576, 1, lh);
    fread(lldata, 1048576, 1, ll);
    fclose(hh);
    fclose(hl);
    fclose(lh);
    fclose(ll);

    for (int i = 0; i < 1048576/2; i++)
    {
        uint32_t offset = i * 2;
        fputc(hhdata[offset + 1], outfile);
        fputc(hhdata[offset + 0], outfile);
        fputc(hldata[offset + 1], outfile);
        fputc(hldata[offset + 0], outfile);
        fputc(lhdata[offset + 1], outfile);
        fputc(lhdata[offset + 0], outfile);
        fputc(lldata[offset + 1], outfile);
        fputc(lldata[offset + 0], outfile);
    }

    fclose(outfile);
    return 0;
}
Posted by: finkmac on 2024-11-01 13:41:46

check the ROM schematics there. maybe related, idk.
Posted by: stynx on 2024-11-01 13:51:46
I have read that the Gossamer G3 had several ROM-revisions.
77D.40F2 (rev A)
77D.45F1 (rev B)
77D.45F2 (rev C)

77D.45F3 would most likely be rev. D
Posted by: croissantking on 2024-11-01 14:39:45
I was about to say that this module looks just like the one in my Rev C G3 desktop, with the same flash ROMs, but then noted that you say the contents are different.

How interesting that it might be a previously unreleased Rev D ROM.

Do you have a beige G3 to try it in?
Posted by: CircuitBored on 2024-11-01 14:48:04
Given that there are copious amounts of this ROM as nearly-NOS, is it not quite probable that there is something wrong with them? Perhaps it's the ROM equivalent of a misprint or it's bugged somehow. Super interested in this - thanks for sharing!
Posted by: croissantking on 2024-11-01 14:52:44
For reference, my Beige G3 Rev C ROM:

IMG_0038.JPG
IMG_0039.JPG

Note the sticker on U1 starts with 600-6711 on mine, and 600-7091 on yours, looks like a part number.

Thank you for posting these dumps.
Posted by: stynx on 2024-11-01 16:17:48
A FlashRom was typically not used in release-hardware by Apple. Your rev. C ROM is the same module with an earlier revision of the firmware. Finding a FlashRom in a normal Gossamer G3 is a bit of a special occurrence, i think. The B&W G3 was released in jan. '99, only 4 months after (sept./oct. '98) the 77D.45F3 was flashed onto "my" 3.3V ROM dimm.
For reference, my Beige G3 Rev C ROM:
...
Note the sticker on U1 starts with 600-6711 on mine, and 600-7091 on yours, looks like a part number.
Your ROM is only 3 months older (june '98). The B&W G3 was a massive shift since the system-in-ROM period was over and only a smaller boot loader was left in the Mac. I don't really know what was happening at Apple at the time (mid 1998) but maybe there was a lot of unused FlashRom hardware in stock that was not needed anymore and was used instead of ordering mask new ROMs for a dying hardware architecture?

I have no Gossamer G3 to test the Rom, though. I can send one of the 10 modules to someone in Europe if interested.
Posted by: croissantking on 2024-11-01 16:26:22
I have no Gossamer G3 to test the Rom, though. I can send one of the 10 modules to someone in Europe if interested.
I’ll DM you.
Posted by: joevt on 2024-11-02 02:42:59
Very interesting! I wrote a quick C program that can combine the interleaved chip dumps back together. Ahh, I think you just beat me to it, but I'll post this anyway.

This results in a ROM with checksum 78E842A8. There aren't any Google results for this checksum so it's possibly a previously unknown version. Looks like it is identifying itself as version 77D.45F3. @joevt might be interested in this dump based on discussions here: https://68kmla.org/bb/index.php?thr...n-1st-gen-clamshell-ibooks-model-m2453.33055/

I did verify that the checksum is good, so all 4 of your chip dumps are definitely good. Thanks for sharing! Attached is the combined ROM image created by running the program. Below is the source code:
Here's a shell script to combine the ROMs:
cat 3.3Flash4mb_* | perl -0777 -nE 'for ($i = 0; $i < (4 << 20); $i++) { print substr($_, ((($i >> 1) & 3) << 20) + (($i >> 3) << 1) + (($i & 1) ^ 1), 1); }' > romcombined.bin

rev C: 077d.45f2 "Boot Gossamer 0." 78f57389 616d792ee6e2877c5c8faf30b6c56fe8
rev D: 077d.45f3 "Boot Gossamer 0." 78e842a8 da81cd01c7c743f9eb2637465182f591
Both have Open Firmware 2.4.

rev D adds this line of code for PCI-PCI bridges:
	2008 my_space >pci.cachelinesize config-l!
The tbxi parts have more changes (use tbxi to extract). Many ndrvs only have their build date updated.

I tried the rev D rom in my fork of DingusPPC but it didn't reach Open Firmware compared to rev C until I reset the nvram. It doesn't seem to get beyond that though. Are we sure this is for a Beige G3? I don't know what else it could be for, since the Open Firmware part is exactly the same as rev C. It could be a bug in DingusPPC.
Posted by: croissantking on 2024-11-02 15:45:54
@stynx is going to send me one to try in a Beige G3, so let’s see if it boots.
Posted by: Arbee on 2024-11-03 10:43:18
From an internal document I have, 4.5F3 is "Gossamer Speedbump", and is listed with a checksum of 78eb4234 and an MD5 of 9cc0e3e01bb02691b497d792ea3e9403. So not exactly this but close.
Posted by: croissantking on 2024-11-03 11:41:11
This results in a ROM with checksum 78E842A8. There aren't any Google results for this checksum so it's possibly a previously unknown version. Looks like it is identifying itself as version 77D.45F3.
How can you tell that it identifies as 45F3?

From an internal document I have, 4.5F3 is "Gossamer Speedbump"
I wonder if it relates to the rumoured (but never released) 366MHz Beige G3 - although odd they would need a new ROM revision for that. I’m not sure even what changed between Rev B and C.
Posted by: dougg3 on 2024-11-03 12:24:09
How can you tell that it identifies as 45F3?

There is data near the start of the ROM that identifies various info about it. For example, the first four bytes are the checksum. At 0x08 you can see 0x077D which is the family version, and then at 0x12 there is 0x45F3 which is the minor version (4.5f3). @eharmon's ROM Fiend template for Hex Fiend provides some very useful info about ROM dumps.
Posted by: Arbee on 2024-11-03 17:06:26
I wonder if it relates to the rumoured (but never released) 366MHz Beige G3 - although odd they would need a new ROM revision for that. I’m not sure even what changed between Rev B and C.
I think there are some timing values in the MPC106 and a few other things that would need to be adjusted. Also potentially the 366 MHz would have had a newer/faster ATI chip.

Differences from the developer note:
- Rev A is a Rage II+DVD, Rev B & C are Rage Pro
- Rev B supports both master and slave ATA devices and the ATAPI Zip drive (Rev A only supports a SCSI Zip drive)
- Rev B adds "improved support for PCI multifunction cards"
- Rev B lets desktop and tower cases have "the same enhanced Apple Audio/Video and Audio input/output card as the All-In-One"
- Rev C machines can be configured with a DVD drive and DVD audio/video decoder card
Posted by: croissantking on 2024-11-03 20:47:12
I think there are some timing values in the MPC106 and a few other things that would need to be adjusted. Also potentially the 366 MHz would have had a newer/faster ATI chip.

Differences from the developer note:
- Rev A is a Rage II+DVD, Rev B & C are Rage Pro
- Rev B supports both master and slave ATA devices and the ATAPI Zip drive (Rev A only supports a SCSI Zip drive)
- Rev B adds "improved support for PCI multifunction cards"
- Rev B lets desktop and tower cases have "the same enhanced Apple Audio/Video and Audio input/output card as the All-In-One"
- Rev C machines can be configured with a DVD drive and DVD audio/video decoder card
Neat info. Would you mind sharing the dev note/internal document? I’d love to have a little browse.
Posted by: Arbee on 2024-11-05 15:50:00
Here's the developer note. I haven't checked in depth but I think its the same as the one here: https://preterhuman.net/macstuff/techpubs/hardware/hardware2.html
Posted by: croissantking on 2024-11-06 07:03:32
Thanks, interesting reading. @3lectr1cPPC might this be useful to go on MacDat?
Posted by: 3lectr1cPPC on 2024-11-06 07:17:33
I haven't put a developer note archive up yet but that's a good idea. I'm in the midst of a big new project on the Laptop Portal at the moment (php + sql database backend), but after that's done I'll probably look to do that next.
1 >