Further explanation:For every 7000 series card, there are five voltages in a table for the "performance" state. You'll notice that each 7000 series card you buy doesn't necessarily have the same voltage, but the BIOS is identical. The voltage that gets used depends on the quality of the ASIC on the board. If your chip has extremely low leakage, the lowest value (of the five voltages) gets used. Highest leakage = highest value. Somewhere in the middle = one of the other three values. There is a function in GPU-Z that will read the "ASIC Quality" value of your card if you're curious.
It's even more complicated for boost BIOSes. There's *another* table of 5 values for the "boost" state. The card will switch back and forth depending on the thermal state.
On the 7990 cards, there's a THIRD leakage table (beyond the scope of what I'm writing).
If you want to change the voltage on a 7000 series card, you have to modify the extended voltage tables (referred to as LEAKID_VOLTAGE or VOLTAGE_LUT_ENTRY). You either need to modify all 5 of the values to be identical (which is wasteful if you flash it to a bunch of cards with different leakage), or you need to modify the values proportionally to be higher/lower. If it's a boost edition card, you'll need to modify the 2nd table as well. For the 7990 cards, you'll need to modify the 3rd state table as well (assuming you're keeping the card extremely cool anyways... otherwise the voltage will likely bounce around).
The cards that are "voltage locked" actually aren't technically "locked". They still have a variable VRM and can be modified. The BIOS just has a function that loops and repeatedly sets the voltage. When you change the voltage with a utility like MSI Afterburner, the voltage actually changes for a split second but it gets changed back by the card's BIOS. You can still set the voltage in the leakage tables though.
The only utility I'm aware of that will properly modify these tables is here:
http://www.techpowerup.com/forums/showthread.php?t=189089This utility will modify all 5 voltage values to be the same though. If you use this to modify your BIOS and then flash it to multiple cards, you're most likely wasting electricity because you'll set the voltage high on a low-leakage chip. Either that, or you'll flash too low of a voltage on a high leakage chip and it'll be unstable at your desired clock. In other words -- you'll need to create multiple BIOS files with different voltages and flash them according to your cards for optimal power savings (or modify the files manually with proper voltage "steps").
I spent many full days reverse engineering the 7000 series BIOSes quite a few months back. If anyone has any technical questions, feel free to post 'em.