Mac OS on ANS - Modding a ROM DIMM

@Big Ben - would you be willing to document via shaky-cam mobile phone and upload to YouTube or Internet Archive and show the bootup/build process???

Thanks!!!
 
Last edited:
I’m afraid there is nothing special about booting MacOS it just boots like any other Power Mac: grey screen, happy mac and so on.
Open Firmware stuff was related to improper configuration.
Front LCD screen is disabled so nothing to see here too.

As far as building a ROM DIMM, I won’t be able to build others until someone design a new pcb board.
 
I just wanted to say thank you to Big Ben, John, joevt, stynx, dougg3, Eric & jocketlill.

It is absolutely amazing to see everyone come together to make something amazing happen!!!

If anyone is thinking about making a custom rom board, let me know. I was thinking of reaching out to Joe to see if we could get a blank SIMM created.
 
I forced the boot into Mac OS with setenv boot-command bye

Now the ANS just boot like a normal Mac. To boot AIX I suspect you only have to press Command-Option-O-F and type boot to start AIX.

I tried to install a video card but it wasn't detected, maybe a bad contact or a non-working card as it was untested.

Fun-fact the Cirrus Logic 54m30 chip is limited by... software and hardware (sort-of), because the chip is designed for little-endian operations and the driver lack implementation of endianess convertion.


Source: https://wiki.preterhuman.net/ANS_Hardware_Developer_Notes - page 9 section 2.8

Doc also contains CPU board pinout!

On that note, I ended up making an OpenFirmware driver for the Cirrus Logic GD54{30,34,36,46} cards based on the FirmWorks codebase and some taking apart of the ANS code.

It seemed to work fine when I was emulating the Viper CHRP firmware.

If it's useful for anyone else, here you go.
 

Attachments

On that note, I ended up making an Open Firmware driver for the Cirrus Logic GD54{30,34,36,46} cards based on the FirmWorks codebase and some taking apart of the ANS code.
The ANS code has one fcode image for the GD5430. I would have just used that to create an fcode image for a PCI Option ROM but some additions/changes would be needed to handle words that are in the ANS ROM but not part of the Open Firmware spec.

Your ROM is currently set to compile for GD5446 (sets the device ID in the fcode image of the PCI Option ROM to 0x00B8) but all the variants (GD54{30,34,36,46}) are handled identically by the code. They don't have differences that matter for the Open Firmware driver?

It seemed to work fine when I was emulating the Viper CHRP firmware.
Do you have more details about this? What emulator? What virtual hardware? What OS or just Open Firmware?
 

Attachments

The ANS code has one fcode image for the GD5430. I would have just used that to create an fcode image for a PCI Option ROM but some additions/changes would be needed to handle words that are in the ANS ROM but not part of the Open Firmware spec.

Your ROM is currently set to compile for GD5446 (sets the device ID in the fcode image of the PCI Option ROM to 0x00B8) but all the variants (GD54{30,34,36,46}) are handled identically by the code. They don't have differences that matter for the Open Firmware driver?


Do you have more details about this? What emulator? What virtual hardware? What OS or just Open Firmware?

Not really. The GD variants just have different VRAM amounts for the most part. Ideally the ROM variants could be handled better with a better makefile, but I wrote it in my spare time during Winter break.

I hacked together a QEMU that *mostly* boots the CHRP Viper and Cobra ROMs (I couldn't get the timing down for deserializing the weird bitbang DIMM/SIMM presence thing and actually implement the device model for that properly, so I patched 2 words to get past the memory sizing sequence.). Enough to the OF "ok> " prompt anyway.

I tried it with the FirmWorks PReP firmware as well. It "works" on both implementations.
 

Attachments

  • Screenshot 2025-11-29 at 12.43.32 AM.png
    Screenshot 2025-11-29 at 12.43.32 AM.png
    443.6 KB · Views: 11
  • Screenshot 2025-11-29 at 1.34.36 AM.png
    Screenshot 2025-11-29 at 1.34.36 AM.png
    1 MB · Views: 11
bitsavers website has PowerSurge Flash ROM pictures and schematics.
http://bitsavers.org/pdf/apple/powerpc/PowerSurge/ROM_Flasher/
@joevt,

I just found this thread. I wish I could keep track (and understand) of all that is going on with PPC ROMs and how to flash them.

I still have a working ANS ROM SIMM that boots MacOS 8.6 and I guess MacOS 9.X (I haven't tried that) and I would love to make additional ROM SIMMs for anyone that wants one. I just don't know how.

First question, from this thread I see the images of the Flashgordan board. It appears that is was made my Apple, correct? Is there anyway to obtain one?

I have 32 AM28F020-90JC that I got from UTSource. I had planned on flashing them one by one because all I have is a TL866II Plus. If the Flashgordan board is available it would make dups much easier. I also received a different ROM SIMM from ClassichasClass that has 4 ROM chips (2 on each side) and if that can be flashed with the ANS MacOS code all the better.

Lastly, I don't remember or can find the OF commands to determine the exact ROM version. Would you mind helping?

adios,
jt
 
First question, from this thread I see the images of the Flashgordan board. It appears that is was made my Apple, correct? Is there anyway to obtain one?
Probably not. You probably have to make your own or use a different flashing method.

I also received a different ROM SIMM from ClassichasClass that has 4 ROM chips (2 on each side) and if that can be flashed with the ANS MacOS code all the better.
Do you know if it's 5V or 3.3V? Is it 4 MiB? Since it only has 4 chips, it's probably not programmable by Apple's Flasher utility without creating your own flashing code. Apple's Flasher utility is useful only if you can boot with the ROM SIMM connected. If it's in the ROM SIMM slot, then it needs a bootable ROM to already be flashed, or it needs a switch to switch between two versions of ROM. The Flash Gordon board connects to a different slot (NuBus?), and the flashable ROM SIMM connects to that.

Lastly, I don't remember or can find the OF commands to determine the exact ROM version. Would you mind helping?
The version should appear when you enter Open Firmware. One of the device nodes may have a version property.
Capture the output of dump-device-tree to see all the properties of all the devices.

In Open Firmware, get and verify all the checksums from the ROM using the code at:
https://tinkerdifferent.com/threads/apple-network-server-macos-based-roms-found.4756/post-41390
 
Back
Top