There are several reasons for flashing the VBIOS of a mobile GPU, for example if a newer version is available, or if you modify it for higher clocks or voltage, or maybe undervolt it for less heat… It’s a common procedure when trying to optimize your system according to your needs.
However, flashing always involves a certain risk of rendering your card useless, “bricking” it, especially when experimenting with modded VBIOS versions. That’s also how I managed to brick my 6970m in my Alienware M15x. I tried to flash it with a modded version of a VBIOS which (apparently) wasn’t suited for my card.
Sometimes it’s possible to do a so called “blind flash” to recover the card (flashing it without having any picture on the screen), however since my system didn’t even POST after flashing the experimental VBIOS I didn’t have this option.
Fortunately a card isn’t dead after flashing a VBIOS which isn’t suited for it or after a bad flash, even if the system can’t boot anymore. The problem is only caused by the firmware of the card (VBIOS) and not by hardware faults.
This means to get the card working again, it simply needs to be reprogrammed with the proper VBIOS. There are professional services which are capable of doing this for a little fee, but I decided to see whether I can fix the card myself.
The VBIOS is stored somewhere on the card in a flash memory chip. It should be a serial flash memory chip with 8 pins. Here’s the location of this chip, for the Nvidia GTX 260m, AMD 6970m and ATI 5850m (from left to right)
The memory chips are “single operating voltage serial flash memory” which use an SPI – bus.
There’s no cheap programmer available which officially supports the chip which stores the VBIOS of the 6970m, but a couple of affordable programmers that can handle very similar chips (same SPI modes, memory organization, size, etc.). After comparing some datasheets of different flash memory chips and discussing it on the forum, I came to the conclusion that it should work with a cheap programmer, even though the specific IC wasn’t supported by it.
Before and after desoldering the eeprom chip.
Desoldering the chip is the most difficult part. You don’t want to accidentally remove one of those tiny SMD parts or kill something with too much heat. Also the card, and especially these little ICs, are ESD-sensitive, this means an ESD mat and wristband are highly recommendable for this job.
I desoldered the flash chip with my hot air station, that’s much more comfortable than using a soldering iron (which of course is an option as well). Since most companies have to use lead-free solder, removing the chip needs more heat than for all the usual DIY soldering (which is mostly done with solder containing lead, at least in my case. It’s easier to handle in my opinion).
As it’s a surface mounted device, it needs to be in a socket in order to be programmed, it can’t be put in the ZIF socket of the programmer. I don’t have an SOIC socket for this size, but the programmer came with an improvised PCB – socket for 8 pin SOIC chips. This means turning on the soldering iron and solder the chip to the “socket” (see the picture on the left side).
Then I programmed the chip, it wasn’t recognized by the programmer, but choosing a chip from the list which was technically identical (same block size, interface, etc.) allowed me to erase the flash memory and write and verify the original VBIOS data.
After doing the whole soldering procedure in reverse order I was finally able to boot the system again with the card.
Tech|Inferno member AssimilatorX also suggests to reflash the VBIOS again per DOS and ATIflash, just to make sure that there’s definitely no error in the stored VBIOS.
So operation “GPU reviving” was successful. This should work for most mobile GPUs I guess, since all cards I’ve seen so far use similar flash memory chips. Though it can still depend on the programmer.
What’s needed is a steady hand, proper soldering equipment, ESD-protection and a programmer.
Here’s a pic of my soldering workplace:
Feel free to contact me at the forum if you have any specific questions or in case you need help reviving a bricked card from a bad flash or similar (my username at the forum is svl7).
It doesn’t matter whether it’s a desktop or a mobile GPU, as long as I can program the VBIOS chip.