Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.
Hmm, if these things are really that rare - only 2.500 ever in existance - it might be well worth a try. Depends on how much @LightBulbFun would ask for the service or if he likes to play around with it a little... 😉

it depends if the failure is actually the BGA balls between the PCB and the chip, sadly more often than not its actually the bumps/solder balls under the die itself that fail thanks to bad under-fill

so reballing the chip wont do much in the long run, your best bet would be to source a replacement G70 chip from somewhere, and get it soldered on :)


as an aside im not yet doing plastic BGA stuff, I have got cBGA stuff nailed down pretty nicely, but I am still yet to do pBGA yet, but I have got a MBP4,1 with a dead GPU thats the perfect practice candiate

its just waiting for me to setup my soldering workstation again


in the meantime if you want it fixed and a replacement GPU chip can be sourced then @dosdude1 is who I would contact,
 
  • Like
Reactions: flyproductions
I don't think BootROM 4.8.7f1 or later should require patch for 512MB BAR.
its worth noting that, G4's and G5 machines BootROM revisions where there own thing,

in that think of the 5 as G5 and 4 as G4, rather then 5 being ahead of 4 if that makes sense



for example the PowerMac7,3 of June 2004, BootROM 5.1.8 does not support the ud alias (USB Disk) but the PowerMac7,3 G5 of Early 2005, BootROM 5.2.something! does support the ud alias :)

and the same happened on the G4 side, 4.8.x BootROMs dont have the ud alias, but 4.9.x BootROM's do :)

so if the support for a 512MB BAR was only introduced in 2004 machines, then it makes sense that 2003 PowerMac G5 would not have it
 
so reballing the chip wont do much in the long run, your best bet would be to source a replacement G70 chip from somewhere, and get it soldered on :)
Sadly even if getting one of them would be possible, probably desoldering one of some "donor"-card would be easier than finding a new one, it most likely would not nail it. Seems to be some special breed of G70, as it could safely run 475 core / 700 memory vs. 440/650 for the reference cards. And yes, i tried to downclock it when problems began. But clocks did not seem to be the reason. 😟

In all it’s glory...

Bliss.jpg


Would have been nice to see it finally run to it’s full potential after all these years! 😥
 
Last edited:
  • Love
Reactions: dextructor
Even the eBay link to the card you posted says it's G71, but the seller may not know. However I know many( most ) 512MB 7800GS cards you can find really use G71 and that doesn't work with PPC Mac's FCODE ROM, yet.

actually the €250 one IS a G70 card

look at the BIOS version and note it has 70 as its GPU type string "5.70.02.13.00"

if it was G71 it would be something like "5.71.02.13.00" :)

(unless on this particular card someone made a typo?)


but it is worth noticed a few years ago that GPU-Z seems to ID ALL 7800 GS's as having G71 GPU's regardless of actual type
 
actually the €250 one IS a G70 card

look at the BIOS version and note it has 70 as its GPU type string "5.70.02.13.00"
Hmmm, kinda strange indeed!

GPU says G71, but BIOS Version says 5.70. ...

GPU-Z.jpg


Also clocks are much lower than those of my card. Even lower than G70 reference.
 
It is, there was a windows tool made for nVidia's board partners for the GeForce2 that could edit all the properties of the BMP, but I never had a copy of it, Arti did, and I just never asked for it as it didn't work for later cards.

I assume such a tool exists for the laters cards, just it's never been leaked.

Closest thing to open source tools I know was nvclock, sadly Thunderbird who wrote it has gone off the grid like Atri,gotch, and Aquamac.

If we could dump the properties of the BMP on x86 and compare them to PPC we could likely have a go at the Die Shrink cards based on the G7x, but I don't know of any tools that can dump that the way we can dump properties OF builds in the Device-Tree.
It's a property the IOReg gains from OF, I doubt x86 OS X has it, and I don't have any hardware that could run the 7600GT anymore for OS X.

But if we could find someone that had an Intel iMac with one, or a Hackintoch:

Code:
ioreg -lw0 | grep NVDA,BMP
If you know what bytes matter in NVDA,BMP, then you know what bytes to change in the BIOS firmware.

Code:
0 > lspci
00:0b.0         [106b:0020] [060000] 6b10200016003022000000060810000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000040080000000000000200000e00000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200100003020007000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00:10.0         [10de:0221] [030000] de1021020400b002a100000300f8000000000092080000a00000009100000000000000000000000000000000de10100000000090600000000000000000010501de101000020030001702001f000000000100000000000000ced623000f0000000144020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010440c100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
                                     00008010:92000000.ff000000
                                     00008014:a0000008.e0000008
                                     00008018:91000000.ff000000
                                     00008030:90000000.fffe0001
 ok

See attached textfile.
Looks good. The BAR1 (xxxxxx14) shows e00000000 -> 512MB and the address a0000000 is a multiple of 512MB. The reg and assigned-addresses also show 20000000=512MB.

I got a little more than without the patch in the Sawtooth. But the screen was completely garbeled and OS did not bootup.
Not sure what you mean. Need more context in your statements. You're talking about your G5? I guess it might need a patch.

What's the best way to dump the BootROM in a G5? Can this be done from the OS or from OF?
I would do it from OF. map-in the ROM, then dump it as hex. See See "Dumping the New World Rom.txt" in the attachment at #137


That's what I get on my PCI 6200 card with 512MB, so maybe there is hope that an edit to the soft strap will fix that and a nvram patch for 512MB BAR1.

My soft strap is
Code:
FF814F7E 001E8081 FFFFFF7F 00000080 2200A5D1

I think that's correct? D1 is the checksum byte? or is it just A5?

Anyway, @joevt if you could help me set the bits correct for the 512MB BAR1 in the soft strap, please?
Yes, D1 is the checksum byte. I don't know what the 2200A5 bytes are for. Looks like the 23,24 bits are set for 512MB BAR1 already. Does lspci and reg and assigned-addresses not show 512MB?
Code:
thesoftstraps="FF814F7E001E8081FFFFFF7F000000802200A5D1"
dumpheading ; dumponesoftstraps "$thesoftstraps" ; echo
                                   CHECKSUM RESULT┬┐         SOFTSTRAPS0 RESULT               SOFTSTRAPS1 RESULT
                             EXPECTED CHECKSUM┬┐  ││  33222222222211111111110000000000 33222222222211111111110000000000
AND0     OR0      AND1     OR1    CHECKSUM┬┐  ││  ││  10987654321098765432109876543210 10987654321098765432109876543210
FF814F7E 001E8081 FFFFFF7F 00000080 2200A5D1  d1  00  1------11-00-----001111--------- 1-------------------------------

Also I think the G5's made before 2004 need the 512MB nvram patch too.
its worth noting that, G4's and G5 machines BootROM revisions where there own thing,

in that think of the 5 as G5 and 4 as G4, rather then 5 being ahead of 4 if that makes sense

for example the PowerMac7,3 of June 2004, BootROM 5.1.8 does not support the ud alias (USB Disk) but the PowerMac7,3 G5 of Early 2005, BootROM 5.2.something! does support the ud alias :)

and the same happened on the G4 side, 4.8.x BootROMs dont have the ud alias, but 4.9.x BootROM's do :)

so if the support for a 512MB BAR was only introduced in 2004 machines, then it makes sense that 2003 PowerMac G5 would not have it
Interesting. For G5s, I only have my G5 Quad rom to look at. I'll look at any ROMs I don't have if someone will post them or a url.
As I showed in that list of Open Firmware versions #604 , 512MB support was added for G4s some-time after 4.6.0f1 2003 during or before 4.8.7f1 2004.
 
Looks good. The BAR1 (xxxxxx14) shows e00000000 -> 512MB and the address a0000000 is a multiple of 512MB. The reg and assigned-addresses also show 20000000=512MB.
Nice! Thanks again!
Not sure what you mean. Need more context in your statements. You're talking about your G5? I guess it might need a patch.
Sorry for not beein precise in this point. Yes, i was talking about the G5. With the Sawtooth, Straps adjusted but without the patch, i got the display initialized but only a dimm black screen thereafter. With the G5, instead of the black screen, i got some garbled unreadable picture. In both cases the machines did not fully boot up in the background.

But sadly i cannot dump the ROM anymore as the little G5 passed away today from the RAM-slot-disease. This announced itself for some time by sticks randomly beeing recognized and then again not. But now i get only the led above the power button blinking three times. And thats it. All this moving and shaking and swapping in and out of vid-cards must have been to much...after 19 years.

Maybe, i have a look around for some cheap AGP G5 as a replacement. But for now i'm out of the game. 😥
 
Last edited:
Looks like the 23,24 bits are set for 512MB BAR1 already.
So I applied your patch for my MDD from post #487, and that did the trick after I loaded the ROM from disk I'm able to boot OS X now and the card no longer has the garbled screen.

All 512MB are now working and properly reported in ASP and OGLDM, sadly we don't have a version of nvflash that works with this card and supports FCode ROM's.

Did you ever get a chance to try and stitch the PC and Mac ROM's together for this card?

It likely still won't flash it, the version of nvflash that works for this card is aware of multi images in the ROM FILE as it supports some UEFI images as well, but maybe it would work, worth a try with this 512k EEPROM.

Anyway, thank you for your hard work here Joe, really cool how you were able to figure all this stuff out. I'll dump my G5 and my QS ROMs so you can add those patches to your list.
 
  • Like
Reactions: flyproductions
...sadly we don't have a version of nvflash that works with this card and supports FCode ROM's.
Don't know, which card you have. But i'm using nvFlash 5.31 with all this options to ignore as much errors/missmatches as possible, -4 -5 -6 -j, and never had any issues flashing whatever i wanted to PCI/AGP-cards.
 
Don't know, which card you have. But i'm using nvFlash 5.31 with all this options to ignore as much errors/missmatches as possible, -4 -5 -6 -j, and never had any issues flashing whatever i wanted to PCI/AGP-cards.
I think I asked you to upload the version before, but re-upload it and I'll give it a go.....
 
I always wanted to try it in the 2.7Ghz G5 AGP, but those are so rare to find in working condition.
Just checked ebay-Kleinanzeigen (don't know, what it is called in English) yesterday for spareparts to eventually revitalize my deceased 1.8 Single. So i came across a guy, selling a 2.7 for 100 Euros. I offered 80 and ar now waiting for a reply. 😊
 
  • Like
Reactions: LightBulbFun
I think I asked you to upload the version before, but re-upload it and I'll give it a go.....
Maybe, i just missed it. If, then sorry!

Here it comes. The command, i use, is
Code:
nvflash --index=[number of card] yourrom.rom -4 -5 -6 -j

If only one NV-card present, the "--index..."-part of course is obsolete.
 

Attachments

  • nvFlash 5.31.zip
    230 KB · Views: 95
Just checked ebay-Kleinanzeigen (don't know, what it is called in English) yesterday for spareparts to eventually revitalize my deceased 1.8 Single. So i came across a guy, selling a 2.7 for 100 Euros. I offered 80 and ar now waiting for a reply. 😊
Hope you are able to snag it, would be cool to see how fast this AGP system really could be.
 
Hope you are able to snag it, would be cool to see how fast this AGP system really could be.
Yes, i hope to hear from him. Would even pay 100. Would have to drive 200 kilometers one way to collect it anyway. But the per core fastest PPC ever is still missing in my collection. First i would check, if the cooling is leaky...
 
Last edited:
So I applied your patch for my MDD from post #487, and that did the trick after I loaded the ROM from disk I'm able to boot OS X now and the card no longer has the garbled screen.

All 512MB are now working and properly reported in ASP and OGLDM
Nice.

sadly we don't have a version of nvflash that works with this card and supports FCode ROM's.

Did you ever get a chance to try and stitch the PC and Mac ROM's together for this card?
I'll make a script that will stitch the roms together.

Thanks, sadly it doesn't support the EEPROM.
What about these versions https://www.techpowerup.com/download/bios-modding/
There's 67 versions of nvflash (some for Linux) https://www.techpowerup.com/download/nvidia-nvflash/

What about Graphiccelerator 1.3.4? Is that too old? It includes NVFlashUtility which includes NVUserXFlash. They don't support newer cards like the 6600 or 7800.
https://web.archive.org/web/20160307162306/http://thomas.perrier.name/graphiccelerator.html

I wonder if fwupd for linux can do Nvidia cards? https://github.com/fwupd/fwupd
I used it update firmware of DisplayPort MST hub. https://github.com/fwupd/fwupd/search?q=joevt
 
I'll make a script that will stitch the roms together.
I updated the DumpPCIRom.sh script in JoesOpenBIOSStuff.zip at #543

It can now be used to extract single PCI option rom images so they can be concatenated together into a new PCI option rom.

Use -l to list the rom images that are in a rom:
Code:
DumpPCIRom.sh -l Combined/Ge8800GTfix.rom 2> /dev/null

# part:0 type:"BIOS" indicator:"another image" offset:0 size:e600
# part:1 type:"EFI" indicator:"last image" offset:e600 size:10800
# part:2 type:"Open Firmware" indicator:"last image" offset:1ee00 size:200
Usually there will be just one image. Newer PC cards may have a BIOS and EFI image. Some Power Mac cards may have BIOS and Open Firmware images. Only the last part should have "last image"

Extract the images that you want to combine in the order that you want them to be in the final rom. Use -ea to specify the parts of each rom, and use -e for the last part.

The following fixes the above rom so that only the last part has "last image".
Code:
{
DumpPCIRom.sh -ea 0 Combined/Ge8800GTfix.rom
DumpPCIRom.sh -ea 1 Combined/Ge8800GTfix.rom
DumpPCIRom.sh -e 2 Combined/Ge8800GTfix.rom
} 2> /dev/null > Combined/Ge8800GTfixrecombined.rom

DumpPCIRom.sh -l Combined/Ge8800GTfixrecombined.rom 2> /dev/null
# part:0 type:"BIOS" indicator:"another image" offset:0 size:e600
# part:1 type:"EFI" indicator:"another image" offset:e600 size:10800
# part:2 type:"Open Firmware" indicator:"last image" offset:1ee00 size:200

Usually the BIOS image should be the first image. You can reorder them:
Code:
{
DumpPCIRom.sh -ea 2 Combined/Ge8800GTfix.rom
DumpPCIRom.sh -ea 1 Combined/Ge8800GTfix.rom
DumpPCIRom.sh -e 0 Combined/Ge8800GTfix.rom
} 2> /dev/null > Combined/Ge8800GTfixrecombined2.rom

DumpPCIRom.sh -l Combined/Ge8800GTfixrecombined2.rom 2> /dev/null
# part:0 type:"Open Firmware" indicator:"another image" offset:0 size:200
# part:1 type:"EFI" indicator:"another image" offset:200 size:10800
# part:2 type:"BIOS" indicator:"last image" offset:10a00 size:e600

If you want to combine BIOS and Open Firmware images then you would do something like this:
Code:
{
DumpPCIRom.sh -ea 0 6600_PC.rom
DumpPCIRom.sh -e 0 6600_Mac.rom
} 2> /dev/null > 6600_PCandMac.rom
Make sure both the Mac and PC images have the correct softstraps, ids, performance table, boot settings, timings table, etc.
 
  • Like
Reactions: LightBulbFun
If you want to combine BIOS and Open Firmware images then you would do something like this:
Code:
{
DumpPCIRom.sh -ea 0 6600_PC.rom
DumpPCIRom.sh -e 0 6600_Mac.rom
} 2> /dev/null > 6600_PCandMac.rom
Make sure both the Mac and PC images have the correct softstraps, ids, performance table, boot settings, timings table, etc.
I must be misunderstanding how to use this, I end up with a zero KB output file:

Code:
jam@jamess-MBP macOS % {
DumpPCIRom.sh -ea 0 PC6200(512).rom
DumpPCIRom.sh -e 0 Mac512.rom 
} 2> /dev/null > 6200_PCandMac.rom
 
I must be misunderstanding how to use this, I end up with a zero KB output file:

Code:
jam@jamess-MBP macOS % {
DumpPCIRom.sh -ea 0 PC6200(512).rom
DumpPCIRom.sh -e 0 Mac512.rom
} 2> /dev/null > 6200_PCandMac.rom
Remove the 2> /dev/null to see stderr output messages.
Do the files PC6200(512).rom and Mac512.rom exist in the current directory?

Actually, parenthesis can behave like they do in regex expression. For example, ls -d (E|N)* will list files or directories that start with the letter E or N.
Therefore, you need to escape the special characters with backslash \ or use quotes.

Code:
{
DumpPCIRom.sh -ea 0 "PC6200(512).rom"
DumpPCIRom.sh -e 0 Mac512.rom
} 2> /dev/null > 6200_PCandMac.rom
 
Remove the 2> /dev/null to see stderr output messages.
Do the files PC6200(512).rom and Mac512.rom exist in the current directory?

Actually, parenthesis can behave like they do in regex expression. For example, ls -d (E|N)* will list files or directories that start with the letter E or N.
Therefore, you need to escape the special characters with backslash \ or use quotes.

Code:
{
DumpPCIRom.sh -ea 0 "PC6200(512).rom"
DumpPCIRom.sh -e 0 Mac512.rom
} 2> /dev/null > 6200_PCandMac.rom
Well, this worked, and it didn't:

Code:
jam@jamess-MBP macOS % {
./DumpPCIRom.sh -ea 0 "PC6200(512).rom"
./DumpPCIRom.sh -e 0 "Mac512.rom"
} 2> /dev/null > 6200_PCandMac.rom

jam@jamess-MBP macOS % ./DumpPCIRom.sh -l 6200_PCandMac.rom 2> /dev/null

# part:0 type:"BIOS" indicator:"another image" offset:0 size:fa00
# part:1 type:"Open Firmware" indicator:"last image" offset:fa00 size:10000
jam@jamess-MBP macOS %

Nvfash gladly flashed this rom and I dumped it back just to ensure all the bytes were written.

Sadly this ROM makes the card pull a "no show" in the PCI slot of a PowerMac.

The "Mac512.rom" is the same rom I was able to load from disk that worked fully in the MDD with the BAR1 nvram patch installed.
 

Attachments

  • 6200 ROMS.zip
    219.7 KB · Views: 104
Well, this worked, and it didn't:

Code:
jam@jamess-MBP macOS % {
./DumpPCIRom.sh -ea 0 "PC6200(512).rom"
./DumpPCIRom.sh -e 0 "Mac512.rom"
} 2> /dev/null > 6200_PCandMac.rom

jam@jamess-MBP macOS % ./DumpPCIRom.sh -l 6200_PCandMac.rom 2> /dev/null

# part:0 type:"BIOS" indicator:"another image" offset:0 size:fa00
# part:1 type:"Open Firmware" indicator:"last image" offset:fa00 size:10000
jam@jamess-MBP macOS %

Nvfash gladly flashed this rom and I dumped it back just to ensure all the bytes were written.

Sadly this ROM makes the card pull a "no show" in the PCI slot of a PowerMac.

The "Mac512.rom" is the same rom I was able to load from disk that worked fully in the MDD with the BAR1 nvram patch installed.
Does it work in a PC?

Are you testing in the same MDD?

I'll make a similar ROM for dingusppc and try it out.
 
Does it work in a PC?

Are you testing in the same MDD?

I'll make a similar ROM for dingusppc and try it out.
Yes, the card seems to work fine in a PC, so at least we know the x86 bios works fine.

Yes, I tested in the same MDD with the nvram BAR1 patch and also a G5 without the patch. The card does not appear on the PCI bus in either.

Your DumpPCIRom.sh can't seem to read the ROM for the 9600 Mac/PC:

Code:
./DumpPCIRom.sh -l SLOT-1 ATY,AlteracParent.rom 2> /dev/null

jam@jamess-MBP macOS %

Not sure if there is anything we can learn from it, but I'll post it have incase.
 

Attachments

  • SLOT-1 ATY,AlteracParent.rom.zip
    46.6 KB · Views: 117
Your DumpPCIRom.sh can't seem to read the ROM for the 9600 Mac/PC:
I was wrong, it just didn't know what to do with the space in the file name:

Code:
 ./DumpPCIRom.sh -l ATY,AlteracParent.rom 2> /dev/null
 
# part:0 type:"BIOS" indicator:"another image" offset:0 size:d000
# part:1 type:"Open Firmware" indicator:"last image" offset:d000 size:6200
# part:2 type:"Open Firmware" indicator:"last image" offset:13200 size:20000
 

Attachments

  • SLOT-1 ATY,AlteracParent.txt
    6.7 KB · Views: 75
I was wrong, it just didn't know what to do with the space in the file name:

Code:
 ./DumpPCIRom.sh -l ATY,AlteracParent.rom 2> /dev/null
Use quotes around the file name.

Code:
# part:0 type:"BIOS" indicator:"another image" offset:0 size:d000
# part:1 type:"Open Firmware" indicator:"last image" offset:d000 size:6200
# part:2 type:"Open Firmware" indicator:"last image" offset:13200 size:20000
part2 shouldn't have been output. It can be ignored.

I don't know what's going on. Is there an nvidia device that you can do .properties with?

Maybe you can use one of the debug Mac roms to see if it's getting executed?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.