Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Pedro Passamani

macrumors member
Original poster
Jan 20, 2023
46
89
Hey guys, hope all is going well.

Just wanted to tell you about a fun experiment I performed this past weekend.

I had been on the lookout for a new graphics for my B&W G3 for a while. Its stock Rage 128, although fine for OS 9 and games from that era, was lacking a little bit under OS X and the newer stuff.

While browsing my local eBay equivalent, I came across a listing for a PCI Radeon 7000 that was pulled out of a Sun Fire V210 server. Now, my understanding is that PC cards don't work (without flashing, that is) in PowerPC Macs because they lack compatibility with Open Firmware, but Sun created and used Open Firmware on their SPARC systems, so that got me thinking, could that card just work?

So I took it home to see. This card was marketed and sold by Sun as the "Sun XVR-100 Graphics Accelerator".

To my surprise, it went better than expected. It actually gave me video (kinda)!

The boot screen showed up as usual, but in the OS itself the graphics were messy. I took a look at the Graphics/Displays information pane under System Profiler, and saw that the card was detected as "SUNW,375-3181", not "ATY,RV100", which is the Radeon 7000's identifier. The OS even got as far as detecting the connected display's resolution and color depth (the reported VRAM was wrong, though, as the card has 64 MB, not 128 MB).

As far as I can tell, the garbled graphics were because of missing drivers/kexts, not ROM incompatibility. I had the exact same issue happen when I tried running vanilla 10.4 on a 2005 iBook, which lacks drivers/kexts for the Mobility Radeon 9550.

Maybe if someone were to modify the ATI Radeon kext to include this card's identifier, it could work.

After playing around with it for a while, I used Graphicclerator to flash the official Radeon 7000 Mac Edition ROM, no modifications needed. With its 64 MB of VRAM, this card is now a better Radeon 7000 Mac Edition than the official version ever was.

The takeaway here is two fold. GPUs pulled out of Sun SPARC systems are great choices for PowerPC Macs (as far as the Radeon 7000 goes; don't know about other GPUs they used), and maybe they could work out of the box if we just had compatible drivers/kexts for them.

Have any of you got experience with using cards from SPARC systems in your PowerPC Macs? I'd love the hear the stories as I'm always learning new stuff about the amazing world of PowerPC Macs!
 

Attachments

  • 1.jpg
    1.jpg
    573.7 KB · Views: 198
  • GPU.jpg
    GPU.jpg
    112.2 KB · Views: 121
  • Info (2).jpg
    Info (2).jpg
    156.5 KB · Views: 114
  • Info.jpg
    Info.jpg
    136 KB · Views: 114
  • IMG_20231216_145231078.jpg
    IMG_20231216_145231078.jpg
    642.3 KB · Views: 107
  • IMG_20231216_145213505.jpg
    IMG_20231216_145213505.jpg
    252.2 KB · Views: 102
  • IMG_20231216_145059008.jpg
    IMG_20231216_145059008.jpg
    308.5 KB · Views: 105
  • IMG_20231216_145106746.jpg
    IMG_20231216_145106746.jpg
    190.5 KB · Views: 112
So I took it home to see. This card was marketed and sold by Sun as the "Sun XVR-100 Graphics Accelerator".



Have any of you got experience with using cards from SPARC systems in your PowerPC Macs? I'd love the hear the stories as I'm always learning new stuff about the amazing world of PowerPC Macs!
Those XVR-100 cards are just rebadged Mac Radeon 7000 GPUs with Sun firmware. You can flash between both firmwares to your heart's content. The majority of those cards have 32MB VRAM. You can also flash the PC Sapphire Radeon cards if you can find the right Sun firmware. I have been looking for the 64MB VRAM version of the XVR-100 firmware for years but only the 32MB firmware seems to be out there.
 
BAckup kexts & add Sun's pci ids?
I tried changing the Info.plist file inside ATIRadeon.kext, which is the one the system loaded after I flashed the card with ATI's official Radeon 7000 Mac Edition ROM, but the correct Device ID was already there, as it's the same as the standard Radeon 7000.

Booting off a Tiger install disc gave the same graphical issues, and System Profiler showed "Kext not loaded" under the card's info.

Do you know if it's necessary to edit other kexts besides the main one?
 
Those XVR-100 cards are just rebadged Mac Radeon 7000 GPUs with Sun firmware. You can flash between both firmwares to your heart's content. The majority of those cards have 32MB VRAM. You can also flash the PC Sapphire Radeon cards if you can find the right Sun firmware. I have been looking for the 64MB VRAM version of the XVR-100 firmware for years but only the 32MB firmware seems to be out there.
Yep, I flashed it with ATI's official Radeon 7000 Mac Edition ROM and it worked fine, the full 64 MB of VRAM and everything.

Now comes the fun part, I've gotten my hands on another 64 MB XVR-100, which I'm planning on using in either my 7200/120 or Performa 6400/200, that I could try dumping the ROM. I haven't tried it yet, but I suppose Graphicclerator or ATIFlash can be used for that, right? No need for a SPARC system or anything like that, correct?
 
I hate to necro-post, but I can confirm a few things. Sun 375-3181 XVR-100 can be flashed in OS X, and the ROM image can also be dumped with the ATI flashing tools. I was able to flash a revision 51 card and successfully use it as a boot display in a PowerComputing clone! If there's any interest, I can post the dumped Sun ROM image in some fashion.
 
I hate to necro-post, but I can confirm a few things. Sun 375-3181 XVR-100 can be flashed in OS X, and the ROM image can also be dumped with the ATI flashing tools. I was able to flash a revision 51 card and successfully use it as a boot display in a PowerComputing clone! If there's any interest, I can post the dumped Sun ROM image in some fashion.
I would be interested in the ROM image. I missed the last post before yours and it is probably too late to get a dump from the OP's Sun card now.
 
I've attached a dump of the 375-3181, Rev 51 card as it was when I received it from the eBay seller. This dump was generated with the ROM dumping tool from Graphiccelerator running on a 10.4 G5 system. I still have another card that is untouched, so let me know if that dump is somehow incorrect/incomplete and I can attempt to dump the other card for you.
 

Attachments

  • 375-3181.zip
    25.2 KB · Views: 4
  • Love
Reactions: weckart
I've attached a dump of the 375-3181, Rev 51 card as it was when I received it from the eBay seller. This dump was generated with the ROM dumping tool from Graphiccelerator running on a 10.4 G5 system. I still have another card that is untouched, so let me know if that dump is somehow incorrect/incomplete and I can attempt to dump the other card for you.

Attached a dump produced by my DumpPCIRom.sh script. It appears that my toke and detok have a couple issues with this ROM in how it redefines these words:
lshift, rshift, and, or.

I didn't look at the ROM to see if it was compatible with Apple Open Firmware. Of course, it doesn't contain a classic Mac OS ndrv driver or a Mac OS X kext but the Open Firmware driver itself might be usable.
 

Attachments

  • ROM SUN 375-3181.zip
    124.8 KB · Views: 3
I will have to get my Sun box out of storage and dig out a suitable PC box to flash it on. That will take a couple of days or so. I've never had any luck with Graphiccelerator myself, so it may need a dump with flashrom or the ATI utility which I am going to flash it with.
 
  • Like
Reactions: VintageSlowMac
I'm currently restricted to OS 9 and 10.5/ppc for systems that have a PCI slot. Unfortunately all of my x86 hardware has switched over exclusively to PCIe. Still, let me know and I'll help if I can with the second card if needed.
 
  • Like
Reactions: weckart
Attached a dump produced by my DumpPCIRom.sh script. It appears that my toke and detok have a couple issues with this ROM in how it redefines these words:
lshift, rshift, and, or.

I didn't look at the ROM to see if it was compatible with Apple Open Firmware. Of course, it doesn't contain a classic Mac OS ndrv driver or a Mac OS X kext but the Open Firmware driver itself might be usable.

Updated toke and detok in my OpenBIOSStuff fork. Now my DumpPCIRom.sh script produces Forth Open Firmware code for this ROM that is satisfactorily reversible.
 

Attachments

  • ROM SUN 375-3181.zip
    124.8 KB · Views: 2
Updated toke and detok in my OpenBIOSStuff fork. Now my DumpPCIRom.sh script produces Forth Open Firmware code for this ROM that is satisfactorily reversible.
Not sure what I am supposed to do with this as it seems to be a disassembled bit of firmware. The Sun format is even more split into parts but there is a script which creates a binary blob for flashing.

As for https://forums.macrumors.com/members/vintageslowmac.1414528/ 's ROM dump, I got it flashed eventually after serveral inexplicable error messages. The card works first time but there are some issues.

1. On the console page at boot, fonts and images are scruffy, almost like the card is on its way out. This doesn't happen with the genuine Sun XVR-100 375-3126 card I have (32MB VRAM) and the text looks more solid. However, once I boot into Java Desktop, it's all fine with no apparent screen artefacts.

IMG20251008092333.jpeg

However the card identifies itself correctly as a 375-3181, so the 64MB of VRAM should be be recognised.

IMG20251008094905.jpeg

However, probing the resolutions offered still doesn't give me 1920x1080, which the card should manage.

IMG_20251008_095313.jpeg

Not sure what is up with that but I'll grab a suitable display and give it a go. Worst case scenario is that I shall need to reinstall Solaris again if I can't recover from a garbled display.
 
Not sure what I am supposed to do with this as it seems to be a disassembled bit of firmware. The Sun format is even more split into parts but there is a script which creates a binary blob for flashing.
It's code for Open Firmware.
The ROM uses Open Firmware Forth byte codes (fcode) so it can run on any system that supports Open Firmware, regardless of the processor architecture.
My DumpPCIRom.sh script dumps the different images that exist in the PCI Option ROM (BIOS, Open Firmware, EFI, etc.). For the Open Firmware image, it converts the fcode to Forth code. The Forth code is more human readable and it is editable. The toke command can create a new PCI Option ROM with any changes made to the Forth code.

The ROM provided by VintageSlowMac only has an Open Firmware image and doesn't appear to contain any extra info after the Open Firmware image.
The fcode has an incorrect checksum which probably means it has been modified? The image does not appear to have a checksum outside the fcode.

The x-num, and, or, lshift, rshift words explicitly mask numbers to 32 bits. That seems to suggest that this code was meant to also work with implementations of Open Firmware that use 64-bit words on the stack? Power Macs only use 32-bit words. I haven't researched other implementations of Open Firmware.
 
It's code for Open Firmware.
The ROM uses Open Firmware Forth byte codes (fcode) so it can run on any system that supports Open Firmware, regardless of the processor architecture.
My DumpPCIRom.sh script dumps the different images that exist in the PCI Option ROM (BIOS, Open Firmware, EFI, etc.). For the Open Firmware image, it converts the fcode to Forth code. The Forth code is more human readable and it is editable. The toke command can create a new PCI Option ROM with any changes made to the Forth code.

The ROM provided by VintageSlowMac only has an Open Firmware image and doesn't appear to contain any extra info after the Open Firmware image.
The fcode has an incorrect checksum which probably means it has been modified? The image does not appear to have a checksum outside the fcode.

The x-num, and, or, lshift, rshift words explicitly mask numbers to 32 bits. That seems to suggest that this code was meant to also work with implementations of Open Firmware that use 64-bit words on the stack? Power Macs only use 32-bit words. I haven't researched other implementations of Open Firmware.
OK but for someone not versed in Forth forensics, what do I do with this code? I'm happy to give it a go but ATIflasher expects a rom file, not code.
 
OK but for someone not versed in Forth forensics, what do I do with this code? I'm happy to give it a go but ATIflasher expects a rom file, not code.
It's just a dump of the ROM provided by @VintageSlowMac. It's not useful unless you want to make changes or see what the code looks like.
It was interesting to me because it's made for Sun Sparc Open Firmware instead of Apple Open Firmware. I've looked at many ROMs made for Apple Open Firmware but not Sun Spare Open Firmware, so I wanted to see if there were any interesting differences.

What card did you flash, and do you have that card's original firmware?
 
It's just a dump of the ROM provided by @VintageSlowMac. It's not useful unless you want to make changes or see what the code looks like.
It was interesting to me because it's made for Sun Sparc Open Firmware instead of Apple Open Firmware. I've looked at many ROMs made for Apple Open Firmware but not Sun Spare Open Firmware, so I wanted to see if there were any interesting differences.

What card did you flash, and do you have that card's original firmware?
I flashed a modded Sapphire Radeon 7000 from Mac to Sun. From the little I know, Sun implemented a pretty clean and complete version of OF, whilst Apple modified its own one. I would assume that whatever you parsed from the dump would reflect that.
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.