Pages:
Author

Topic: One way to undervolt R9 300 series cards by BIOS mod - page 5. (Read 27086 times)

sr. member
Activity: 283
Merit: 250
Ok. I will get it when i get off work. I hope all 12 of the cards are the same. I ordered them all from newegg only a week apart. I appreciate you doing this for me.
full member
Activity: 279
Merit: 104
I will see what happens. Will get the dump as soon as possible. Whats the best program to use for dumping sapphire cards?


Use atiflash to get the original bios of the card.  All AMD cards are the same in that respect.

atiflash -s 0 youroriginalbios.rom

or some name you choose.
This will read the bios of the card in slot 0 into that file.

Although it sounds like we have the same Sapphire card, I wont send you the roms for my card as the bioses might
be on different revision levels;  to be safe, a bios mod should be based of the card's original bios.
sr. member
Activity: 283
Merit: 250
I will see what happens. Will get the dump as soon as possible. Whats the best program to use for dumping sapphire cards?
full member
Activity: 279
Merit: 104
This is awesome guys. Just what i was looking for except the only issue is changing the hex. Im not much into code so this is a bit scary to me. I have 12 Sapphire r9 380x cards that i would love to lower the power usage on. I am currently getting around 21.5 mh with stock settings. I dont wanna be below 20mh and that 145w sounds to good to pass up. Would it be possible to get one of you guys to make this rom for me? I really hate to ask but I would rather someone that knows more than me make it.

I will pm you my email address. Then you can send me a copy of the original bios and I will reprogram it and
send you some versions you can test.
If you accept being a guinea pig.
sr. member
Activity: 283
Merit: 250
This is awesome guys. Just what i was looking for except the only issue is changing the hex. Im not much into code so this is a bit scary to me. I have 12 Sapphire r9 380x cards that i would love to lower the power usage on. I am currently getting around 21.5 mh with stock settings. I dont wanna be below 20mh and that 145w sounds to good to pass up. Would it be possible to get one of you guys to make this rom for me? I really hate to ask but I would rather someone that knows more than me make it.
full member
Activity: 279
Merit: 104
Hey Bobben2!

Thank you for your detailed explanation.

What you wrote will definitely work!

I do it a little bit different.

I modify the rom in a hex editor and change the voltage entirely.

In other words, i do not change the dpm tables, i just lower the entire voltage by -100mV (for example) so that the controller itself will automatically give the voltage that is needed.
In this case, a specific clock won't give you issues as the controller will adjust voltage for what is needed.

What you did, as said before, will definitely work, but is in a way a little more intensive, because the dpm values won't be set automatic, the controller will use what is set.

In some cases this could go wrong, for example, the card will need a specific amount of voltage, but the dpm value associated to that clock won't be able to give enough. Smiley

Regarding power, in this case it will use less power in comparison from what i do Smiley

I'm glad you worked things out!

As said before, i'm still working on it, my target is to achieve the same results as the Stilt did with his released hawaii roms from a few years ago.

Will keep you posted in this thread as well!

Greetings!


Hi ldw-com
Are you there?
I am trying to locate the actual voltage table so I can offset the values as per your suggestion.
The evv pointers are supposed to point into the actual voltage table (evv value XOR 0xFFFF I believe
will give the offset into the powertable in the bios where the voltage value is stored.  Or--?)
I am doubting this logic for 2 reasons:
byte offset whereas the actual voltage values need at least 16-bit storage.
The actual values I find by using the above logic are "all over the place".
Suggestions?

Hey Bobben,

ldw-com is me when i'm at work (just so you know)

if you open your rom with atomicbiosreader you'll get a .txt output, just scroll down check under data tables for "VoltageObjectInfo", the offset is there on the left.

Open your hex editor and go to that offset. If it's there, it'll be like so 8D 00 "YOUR VALUE HERE" 00 for memory voltage it'll be like so: 8E 00 "YOUR VALUE HERE" 00.

To change that value to -100mV you'll need to add F0 where i typed "YOUR VALUE HERE" :p ..  If you need extra explanation on how to calculate that, just ask :p

In some cases those values do not exist and you'll need to add them yourself.
In other cases it just isn't possible to edit memory voltage (like my 390 nitro's) <-- check my Nano thread "last post"


Greetings!

Hi Eliovp,
So its a one byte signed value?  I.e. F0 = -16 decimal.  Then I have to muliply by 6.25 to get -100mV offset value
and voila?
If that is all then I've got it and thanks a lot!
full member
Activity: 229
Merit: 100
i'll see what i can do  Wink
sr. member
Activity: 431
Merit: 250
Hey Bobben2!

Thank you for your detailed explanation.

What you wrote will definitely work!

I do it a little bit different.

I modify the rom in a hex editor and change the voltage entirely.

In other words, i do not change the dpm tables, i just lower the entire voltage by -100mV (for example) so that the controller itself will automatically give the voltage that is needed.
In this case, a specific clock won't give you issues as the controller will adjust voltage for what is needed.

What you did, as said before, will definitely work, but is in a way a little more intensive, because the dpm values won't be set automatic, the controller will use what is set.

In some cases this could go wrong, for example, the card will need a specific amount of voltage, but the dpm value associated to that clock won't be able to give enough. Smiley

Regarding power, in this case it will use less power in comparison from what i do Smiley

I'm glad you worked things out!

As said before, i'm still working on it, my target is to achieve the same results as the Stilt did with his released hawaii roms from a few years ago.

Will keep you posted in this thread as well!

Greetings!


Hi ldw-com
Are you there?
I am trying to locate the actual voltage table so I can offset the values as per your suggestion.
The evv pointers are supposed to point into the actual voltage table (evv value XOR 0xFFFF I believe
will give the offset into the powertable in the bios where the voltage value is stored.  Or--?)
I am doubting this logic for 2 reasons:
byte offset whereas the actual voltage values need at least 16-bit storage.
The actual values I find by using the above logic are "all over the place".
Suggestions?

Hey Bobben,

ldw-com is me when i'm at work (just so you know)

if you open your rom with atomicbiosreader you'll get a .txt output, just scroll down check under data tables for "VoltageObjectInfo", the offset is there on the left.

Open your hex editor and go to that offset. If it's there, it'll be like so 8D 00 "YOUR VALUE HERE" 00 for memory voltage it'll be like so: 8E 00 "YOUR VALUE HERE" 00.

To change that value to -100mV you'll need to add F0 where i typed "YOUR VALUE HERE" :p ..  If you need extra explanation on how to calculate that, just ask :p

In some cases those values do not exist and you'll need to add them yourself.
In other cases it just isn't possible to edit memory voltage (like my 390 nitro's) <-- check my Nano thread "last post"


Greetings!

I saw you also have a XFX R9 390 card. When your mod is ready, can you share with us the mod rom please?
legendary
Activity: 1050
Merit: 1293
Huh?
Hey Bobben2!

Thank you for your detailed explanation.

What you wrote will definitely work!

I do it a little bit different.

I modify the rom in a hex editor and change the voltage entirely.

In other words, i do not change the dpm tables, i just lower the entire voltage by -100mV (for example) so that the controller itself will automatically give the voltage that is needed.
In this case, a specific clock won't give you issues as the controller will adjust voltage for what is needed.

What you did, as said before, will definitely work, but is in a way a little more intensive, because the dpm values won't be set automatic, the controller will use what is set.

In some cases this could go wrong, for example, the card will need a specific amount of voltage, but the dpm value associated to that clock won't be able to give enough. Smiley

Regarding power, in this case it will use less power in comparison from what i do Smiley

I'm glad you worked things out!

As said before, i'm still working on it, my target is to achieve the same results as the Stilt did with his released hawaii roms from a few years ago.

Will keep you posted in this thread as well!

Greetings!


Hi ldw-com
Are you there?
I am trying to locate the actual voltage table so I can offset the values as per your suggestion.
The evv pointers are supposed to point into the actual voltage table (evv value XOR 0xFFFF I believe
will give the offset into the powertable in the bios where the voltage value is stored.  Or--?)
I am doubting this logic for 2 reasons:
byte offset whereas the actual voltage values need at least 16-bit storage.
The actual values I find by using the above logic are "all over the place".
Suggestions?

Hey Bobben,

ldw-com is me when i'm at work (just so you know)

if you open your rom with atomicbiosreader you'll get a .txt output, just scroll down check under data tables for "VoltageObjectInfo", the offset is there on the left.

Open your hex editor and go to that offset. If it's there, it'll be like so 8D 00 "YOUR VALUE HERE" 00 for memory voltage it'll be like so: 8E 00 "YOUR VALUE HERE" 00.

To change that value to -100mV you'll need to add F0 where i typed "YOUR VALUE HERE" :p ..  If you need extra explanation on how to calculate that, just ask :p

In some cases those values do not exist and you'll need to add them yourself.
In other cases it just isn't possible to edit memory voltage (like my 390 nitro's) <-- check my Nano thread "last post"


Greetings!
full member
Activity: 279
Merit: 104
Hey Bobben2!

Thank you for your detailed explanation.

What you wrote will definitely work!

I do it a little bit different.

I modify the rom in a hex editor and change the voltage entirely.

In other words, i do not change the dpm tables, i just lower the entire voltage by -100mV (for example) so that the controller itself will automatically give the voltage that is needed.
In this case, a specific clock won't give you issues as the controller will adjust voltage for what is needed.

What you did, as said before, will definitely work, but is in a way a little more intensive, because the dpm values won't be set automatic, the controller will use what is set.

In some cases this could go wrong, for example, the card will need a specific amount of voltage, but the dpm value associated to that clock won't be able to give enough. Smiley

Regarding power, in this case it will use less power in comparison from what i do Smiley

I'm glad you worked things out!

As said before, i'm still working on it, my target is to achieve the same results as the Stilt did with his released hawaii roms from a few years ago.

Will keep you posted in this thread as well!

Greetings!


Hi ldw-com
Are you there?
I am trying to locate the actual voltage table so I can offset the values as per your suggestion.
The evv pointers are supposed to point into the actual voltage table (evv value XOR 0xFFFF I believe
will give the offset into the powertable in the bios where the voltage value is stored.  Or--?)
I am doubting this logic for 2 reasons:
byte offset whereas the actual voltage values need at least 16-bit storage.
The actual values I find by using the above logic are "all over the place".
Suggestions?
sr. member
Activity: 431
Merit: 250
But the memory controller load is usually over 90% if I set the frequency to be 1250 MHz. I think Etehreum uses a lot of memory access.
full member
Activity: 279
Merit: 104
OP, thanks for sharing. You used
1000
1000
1050
1050
1100
1100
1100
1106

For frequency from 800 to 1040. For the lower frequency, are the voltage too high?

How do you change the memory voltage?

Hi Next BillG
The first voltage value in the stock BIOS was 1000 mV.  Therefore, I started with 1000.  I've seen ASUS BIOS start at 900mV.  I am not concerned about it.  It is the DPM7 value that will matter to miners.
Idk how to change the memry voltage.  However, I am able to change the voltage of the mem controller.
For my Sapphire card I changed it from 1050 to 1025 mV.

How do you change the memory controller voltage? Are they the same as the memory voltage? How much power saving did you get?

You can change the memcontroller voltage in HawaiiBiosReader.  If you look in the PowerPlay tab.
Table VDDCI states.  The rightmost value is the controller voltage.
If it is already at 1000 (mV), then I dont think it can go much lower.
I dont think there is much to save lowering this value, but I might be wrong.

Is that the same as aux voltage? I changed that with -100mV in the MSI afterburner. It save about 1W power.

Yes,  I believe that is the one.  The mem controller will be sitting mostly idle when mining Eth.  If you try mining DCR
then its a different story.
sr. member
Activity: 302
Merit: 250
OP, thanks for sharing. You used
1000
1000
1050
1050
1100
1100
1100
1106

For frequency from 800 to 1040. For the lower frequency, are the voltage too high?

How do you change the memory voltage?

Hi Next BillG
The first voltage value in the stock BIOS was 1000 mV.  Therefore, I started with 1000.  I've seen ASUS BIOS start at 900mV.  I am not concerned about it.  It is the DPM7 value that will matter to miners.
Idk how to change the memry voltage.  However, I am able to change the voltage of the mem controller.
For my Sapphire card I changed it from 1050 to 1025 mV.

How do you change the memory controller voltage? Are they the same as the memory voltage? How much power saving did you get?

You can change the memcontroller voltage in HawaiiBiosReader.  If you look in the PowerPlay tab.
Table VDDCI states.  The rightmost value is the controller voltage.
If it is already at 1000 (mV), then I dont think it can go much lower.
I dont think there is much to save lowering this value, but I might be wrong.

Is that the same as aux voltage? I changed that with -100mV in the MSI afterburner. It save about 1W power.
full member
Activity: 279
Merit: 104
OP, thanks for sharing. You used
1000
1000
1050
1050
1100
1100
1100
1106

For frequency from 800 to 1040. For the lower frequency, are the voltage too high?

How do you change the memory voltage?

Hi Next BillG
The first voltage value in the stock BIOS was 1000 mV.  Therefore, I started with 1000.  I've seen ASUS BIOS start at 900mV.  I am not concerned about it.  It is the DPM7 value that will matter to miners.
Idk how to change the memry voltage.  However, I am able to change the voltage of the mem controller.
For my Sapphire card I changed it from 1050 to 1025 mV.

How do you change the memory controller voltage? Are they the same as the memory voltage? How much power saving did you get?

You can change the memcontroller voltage in HawaiiBiosReader.  If you look in the PowerPlay tab.
Table VDDCI states.  The rightmost value is the controller voltage.
If it is already at 1000 (mV), then I dont think it can go much lower.
I dont think there is much to save lowering this value, but I might be wrong.
sr. member
Activity: 302
Merit: 250
OP, thanks for sharing. You used
1000
1000
1050
1050
1100
1100
1100
1106

For frequency from 800 to 1040. For the lower frequency, are the voltage too high?

How do you change the memory voltage?

Hi Next BillG
The first voltage value in the stock BIOS was 1000 mV.  Therefore, I started with 1000.  I've seen ASUS BIOS start at 900mV.  I am not concerned about it.  It is the DPM7 value that will matter to miners.
Idk how to change the memry voltage.  However, I am able to change the voltage of the mem controller.
For my Sapphire card I changed it from 1050 to 1025 mV.

How do you change the memory controller voltage? Are they the same as the memory voltage? How much power saving did you get?
full member
Activity: 279
Merit: 104
The second table is the mem freq table. Should that have the same voltage value as the GPU Freq Table?

Yes.  All 6 tables should have identical values.
full member
Activity: 279
Merit: 104
OP, thanks for sharing. You used
1000
1000
1050
1050
1100
1100
1100
1106

For frequency from 800 to 1040. For the lower frequency, are the voltage too high?

How do you change the memory voltage?

Hi Next BillG
The first voltage value in the stock BIOS was 1000 mV.  Therefore, I started with 1000.  I've seen ASUS BIOS start at 900mV.  I am not concerned about it.  It is the DPM7 value that will matter to miners.
Idk how to change the memry voltage.  However, I am able to change the voltage of the mem controller.
For my Sapphire card I changed it from 1050 to 1025 mV.
full member
Activity: 279
Merit: 104
Hey Bobben2!

Thank you for your detailed explanation.

What you wrote will definitely work!

I do it a little bit different.

I modify the rom in a hex editor and change the voltage entirely.

In other words, i do not change the dpm tables, i just lower the entire voltage by -100mV (for example) so that the controller itself will automatically give the voltage that is needed.
In this case, a specific clock won't give you issues as the controller will adjust voltage for what is needed.

What you did, as said before, will definitely work, but is in a way a little more intensive, because the dpm values won't be set automatic, the controller will use what is set.

In some cases this could go wrong, for example, the card will need a specific amount of voltage, but the dpm value associated to that clock won't be able to give enough. Smiley

Regarding power, in this case it will use less power in comparison from what i do Smiley

I'm glad you worked things out!

As said before, i'm still working on it, my target is to achieve the same results as the Stilt did with his released hawaii roms from a few years ago.

Will keep you posted in this thread as well!

Greetings!

Hi ldw-com.
Yes, you are right.  Probably the "correct" way of doing it is to offset the values in the BIOS instead of overwriting the pointer values..  However, I could not mind to find the correct entries in the BIOS.  At least, what I have works ok at stock frequency.

sr. member
Activity: 431
Merit: 250
The second table is the mem freq table. Should that have the same voltage value as the GPU Freq Table?
sr. member
Activity: 431
Merit: 250
OP, thanks for sharing. You used
1000
1000
1050
1050
1100
1100
1100
1106

For frequency from 800 to 1040. For the lower frequency, are the voltage too high?

How do you change the memory voltage?
Pages:
Jump to: