There are 2 methods to flash the GPU. For 10,x and 11,x, GRML is probably the easiest path as GPU is easy to remove and install. 12,x GPU is difficult to remove/install so CH341A is desirable IF flashrom is not the low profile version.
For end users, this is the easiest path to flash vBIOS. Someone has already done the work to pre-make the self booting USB stick with everything on there (other than probably your GPU vBIOS). Only tricky part is screen is likely blank during the flashing process so need to remotely login from another compute to do the work. Not too hard.
Make this USB stick from pre-made bits
Find vBIOS file for your GPU card and put it on there
Plug in USB to iMac (likely disconnect SSD to force boot from USB
Remote login from another computer
Execute some command line commands (UNIX/Linux shell command exposure useful, even DOS experience is good)
Thats it, GPU vBIOS is flashed haha.
However, 1 of my 4x GRML attempt couldn't connect to GRML (I ultimated use CH341A to flash vBIOS) Here is a workaround ( link ) Flashing the card before installing is more challenging ( link ) and doesn't work for all shorter height vBIOS bootroms ( link )
Most cheap CH341A as of this post (3/24) is 5V while most flashrom are 3.3v. Its important to check flashrom data sheet to confirm data line voltage. Read post here and here. Flash directions here Additions use notes here
Basically a self booting Linux system. I guess probably started using CD media and now USB as well? Great for updating firmware a systems that say can't yet boot the main big operating system. Exactly like what these GPU upgrades need :)
https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/post-28184981
https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/post-29723850
Need to chase a few links to find this info. This link said to use GPT (GUID Partition Table) and FAT32 which worked for me. However, formatting USB drive to this spec isn't quite so easy. Here is how to use macOS Disk Utility (on Sequoia, older macOS maybe slightly different)
Need to show the USB device at the top level rather than just volumes
Select the USB device at the top level
Erase (This will set both partition table format and file system format)
On Windows, here is Rufus method. Not sure Windows <= 10 can set GPT and Win11 UI can't do FAT32 link
For nVidia, AMD is exactly same, just different tool application
https://www.youtube.com/watch?v=sn5K2SKXrJg
There are some vBIOS inside the pre-made stick image. Best to find your exact one and put it in there. I put my AMD vBIOS under AMD/AMD_GOP. Everything under flash will appear after GRML has booted and file system mounted.
When connecting to the iMac a couple of times after power on/off. Subsequent ssh connection will error with this problem. Just use the Mac direction in link to delete ssh history file ( "rm .ssh/known_hosts" in terminal app )
https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/post-33179243
https://forums.macrumors.com/threads/2011-imac-graphics-card-upgrade.1596614/post-33776440
I suggest first practice while having working original GPU with working display. This give you a sense of time delays and what is happening before doing it with blank screen after new GPU without proper vBIOS installed.
Above guideline's trick of disconnecting SSD is a good idea. Alternative is a erased and blank SSD (without EFI (boot partition) iMac will seek other boot partitions such as GRML stick)
A good practice step could be to
Read the GPU info
Read its vBIOS but don't write it yet haha
If Mac is is alive, boot and look for ethernet MAC addres. Write this down. Need to find the LAN IP address matching this MAC
If have an already dead GPU (the common thermal issue), then I compare Find iMac IP tool results and scan before and after iMac (with replacement GPU card) boots Linux with the GRML USB stick. I think GRML takes about 30s-1min to boot completely.
What tool depends on what computer you are using to remotely connect to the iMac. I used free LanScan on Mac.
Have noticed a couple of strange results LANN Scanning while booting GRML stick
2 different new IP appear when scanning. First one briefly followed by another more permanent. ssh to 2nd one worked
One iMac couldn't stay connected nor provide an IP address. Guess it could be an router issue? Was using an Apple 6th gen Airport Extreme router.