Inspired by the excellent work recently by Eliovp (Thread on undervolting Nano cards),
I set fore to find out if I could successfully undervolt my R9 380X and 390 cards by
modding the cards bios.
The short answer is Yes in both cases.
THe background I wanted to save some Watts while mining Eth. I had successfully undervolted
my 280X cards earlier.
You can do the same!
If you are willing to mess with the BIOS of your card to save some Watts, then please
read on, but consider the risk. You can brick your card, i.e. your computer wont start
after BIOS flash. You will need to understand the risk and know how to recover a
bricked card. Also, consider that you will void any warranty on your card when
you flash the BIOS. I will not be held responsible.
If you are still reading, then I assume you are fine with the above warning.
Here is a brief how to undervolt the 390.
You need the following software: ATIflash and HawaiiBiosReader.
You can download the latest ATIflash from TechPowerUp. Version 2.71 works fine.
Download HawaiiBiosReader from GitHub. Google it to find it.
You should already be familiar with how the ATIflash tool works. I wont go into
the detail here. Instead you can read Eliovp's thread. He describes it in detail.
TBH I didn't use the HawaiiBiosreader myself. I ended up creating my own utility to
alter the voltage tables myself. But the effect is the same and this description assumes HawaiiBiosReader.
1. Get the stock bios from the card: atiflash -s 0 card390_orig.ROM
This cmd will read the BIOS from card in slot 0 and store it in the file card390_orig.rom
Backup this file so you can restore the original BIOS to the card later.
2. Run HawaiiBiosReader. Open file card390_orig.ROM.
You will need to modify the voltage values in 6 tables. Note that the voltage
values you choose will have to be the same in all the 6 tables. And for each row,
the next value will have to be same as previous or increase.
There are two tables under the Powerplay tab and 4 tables under the Limit tables tab.
The values you want to change are in the vol column in all the 6 tables.
You may leave the value in the first row in all tables as is.
The other values are pointers into the BIOS voltage table. Those values depend on
the chip quality. Dont worry about that.
You will replace these pointers with real voltage values (in mV).
At this point you will have to take great care!
The voltage values you are about to enter will have to be values divisible by 6.25
(socalled SVI2). For example, you should not enter 1111, but 1112 is near enough, so it is fine.
Here are the values I finally loaded into the tables for my Sapphire R9 390 Nitro
and that I found is working great at stock frequencies 1040/1500.
1000
1000
1050
1050
1100
1100
1100
1106
You may want to start off using higher values. For example, try 1150 in the DPM7 row.
Then gradually work your way down.
Do not change anything else other that the voltage values. When done, save to a file,
for example card390_1150.rom
3. Flash the card: atiflash -p 0 card390_1150.rom
This assumes the card you want to modify is in slot 0.
You might want to try the -f switch if atiflash complains.
Sit back and wait for the flash to complete. Then reboot your computer and
test. You may want to run your miner for a good few hours before you can conclude
on stability and whether you can undervolt further.
For the R9 380X card the procedure is similar, but again I ended up writing my own
utility to modify the BIOS. I studied the code that was written by Hedzin.
At stock frequencies I was able to reduce power consumption of the 380X by 40Watts
and the 390 by ~48Watts. Specific power consumption: 380X ~140W, 390: ~167W
380X is hashing at 20MH/s (7Ws/Mh), 390 is hashing at 27MH/s (6.18Ws/Mh)
NB! You may not be able to undervolt further in Afterburner, Trixx, etc.
Depending on your card you may not be able to overclock the core after
you have done undervolting.
Happy mining!
EDIT: I just checked the temperature of my single 390 mining at 1040/1500.
Sensor 0: Temerature - 58.00 C
Fan speed: 38%
Ambient temperature: 23 C.
I tribute the low temperature to the excellent tri-fan cooler of the Sapphire card, and of course the lower voltage.
EDIT2:
For those interested in Hawaii bios editing in general you can read this very comprehensive writeup
by gupsterg. I find that guide very valuable.
http://www.overclock.net/t/1561372/hawaii-bios-editing-290-290x-295x2-390-390x
EDIT 20160816:For thos of you who happen to have the Sapphire 380X or 390 Nitro cards I here provide som ROMs
that you can try on your own cards. If you are running with stock BIOS then these will save you 40 Watts per card easy.
You should be familiar with atiflash and aware of the risk involved in
flashing the BIOS of your card. I bear no responsiblity for any damage.
Sapphire 380X Nitro 1081mV ROM:
https://www.dropbox.com/s/fmgva4twgukbrl1/sapp380x_1081.rom?dl=0
Sapphire 380X Nitro 1100mV ROM:
https://www.dropbox.com/s/irt9dup5mwuxqbj/sapp380x_1100.rom?dl=0
Sapphire 390 Nitro 1100mV ROM:
https://www.dropbox.com/s/gw0lhozg4hskz2a/sapp390_1100.rom?dl=0
Sapphire 390 Nitro 1106mV ROM:
https://www.dropbox.com/s/3yybo5kxcet7mba/sapp390_1106.rom?dl=0