Overclock.net banner

Would appreciate help in finding / editing the voltage offset in the RX480 Bios

68K views 219 replies 42 participants last post by  chris89 
#1 ·
I have a Sapphire Nitro 480 OC (1342mhz stock), and am familiar with WattTool / Polaris bios Editor, but I'm trying to find a permanent solution, and want to up the default voltage offset. Currently, the bios is set to +25mv stock, and am looking for help finding the offset so I can change it.

Reason is, I have a full cover block on it, and currently need to use Wattman to bring the voltage up to 1175mv, then increase the offset in afterburner, those stack. So I assume they use different methods to apply voltage.

I have attached the current bios I am using if one of you need it as a reference to find the offset, but would really like being able to do it myself, since I want to learn as I go. Voltage change in the bios I found to be unreliable and find it more unstable, but if I were able to overclock using a single tool, it would be ideal.

All your help / info / pointers are all greatly appreciated!

Cheers

01.24.2017mod.rom 109k .zip file
 

Attachments

#2 ·


MSI AB, etc can store info on ROM, so best to delete/uninstall those apps without keeping any profiles,etc prior to flashing and reinstall after new flash done.

Once you flash a modified ROM where IR3567B is being reprogrammed do power down and up PC fully so it gets reintialised with new data.

Also you may have to either reset driver to factory defaults or uninstall and reinstall if anomaly occurs.

WattMan alters VID, technically software PowerPlay AFAIK.

MSI AB alters the VDDC offset in IR3567B via driver, through SMC messaging, which then does I2C command to IR3567B AFAIK.

As I use OC SW in OS very little, I can not say if using both in OS leads to issues. You can do both in ROM and have no issue AFAIK with cards like Hawaii/Fiji I have had.
 
  • Rep+
Reactions: jeb101
#3 ·
Quote:
Originally Posted by gupsterg View Post



MSI AB, etc can store info on ROM, so best to delete/uninstall those apps without keeping any profiles,etc prior to flashing and reinstall after new flash done.

Once you flash a modified ROM where IR3567B is being reprogrammed do power down and up PC fully so it gets reintialised with new data.

Also you may have to either reset driver to factory defaults or uninstall and reinstall if anomaly occurs.

WattMan alters VID, technically software PowerPlay AFAIK.

MSI AB alters the VDDC offset in IR3567B via driver, through SMC messaging, which then does I2C command to IR3567B AFAIK.

As I use OC SW in OS very little, I can not say if using both in OS leads to issues. You can do both in ROM and have no issue AFAIK with cards like Hawaii/Fiji I have had.
Wow, thanks for the quick response! I thought I had at least a basic understanding, then I tried to understand Two's Complement, now I'm not quite sure the value to change. Please pardon my lack of knowledge (the stupid question). If I get this right, would updating the 04h be the area where I'd want to increase the multiplier, so for example, if I'd want 10 (example), I'd change the value to 0Ah? But I simply don't have a grasp of Two's Complement.. I am reading into the wiki, and some more info online. But I believe I may of jumped into something little above my head here, at least to have an understanding / have confidence in the work I'm doing. Last thing I want to do is burn out the card of course.

Thanks again for all your help, it's very informative and useful!
 
#4 ·
No problem on help
smile.gif
, happy to share what I can
wink.gif
.

Yep changing 04h to 0Ah will yield you 10x multiplier of VDDC step
wink.gif
.

0Ah = 10 (decimal) , 10 x 6.25mV = +62.5mV VDDC Offset.

This video I did for someone in Fiji bios mod will help you
wink.gif
.

You could always also set a VMAX in ROM / IR3567B. This will limit VDDC to preset value from a table of selectable values, so if you make a mistake in ROM or even in OC SW in OS GPU will never get more than that VDDC limit. I do this on cards I meddle with
wink.gif
.
 
#5 ·
Quote:
Originally Posted by gupsterg View Post

No problem on help
smile.gif
, happy to share what I can
wink.gif
.

Yep changing 04h to 0Ah will yield you 10x multiplier of VDDC step
wink.gif
.

0Ah = 10 (decimal) , 10 x 6.25mV = +62.5mV VDDC Offset.

This video I did for someone in Fiji bios mod will help you
wink.gif
.

You could always also set a VMAX in ROM / IR3567B. This will limit VDDC to preset value from a table of selectable values, so if you make a mistake in ROM or even in OC SW in OS GPU will never get more than that VDDC limit. I do this on cards I meddle with
wink.gif
.
Ah, very nice, glad I got that one figured out! Thanks!!

So, this VMAX, would you be able to give me the offset for this one? Sounds like a very good idea to set it at a decent voltage, like 1375mv or something..

Edit: I am looking over your Fiji stuff, many things still relevant to Polaris. This is great stuff, thanks!!

Cheers!
 
#6 ·


The VoltageObjectInfo in your ROM does not have the VMAX register, so it must be set in "memory feature" of voltage control chip.

I can mod your ROM to have VMAX, then what is in ROM takes precedent over "memory feature" of voltage control chip
wink.gif
.

What VMAX do you wish to have set?

Yep Fiji uses same revision of PowerPlay as Polaris
wink.gif
.

IR3567B was used on Fiji and Hawaii
wink.gif
, Hawaii bios mod thread has info as well which can be useful
smile.gif
. If you wish to do VoltageObjectInfo mod search Hawaii bios mod thread for fSW mod and use the info in the context of VMAX, VMAX register is 3Dh .
 
#7 ·
Awesome,
Quote:
Originally Posted by gupsterg View Post



The VoltageObjectInfo in your ROM does not have the VMAX register, so it must be set in "memory feature" of voltage control chip.

I can mod your ROM to have VMAX, then what is in ROM takes precedent over "memory feature" of voltage control chip
wink.gif
.

What VMAX do you wish to have set?

.
Wow, so much reading to do! This is quite exciting!! If you don't mind, I'd love the VMAX set to 1.363, as it seems to be the highest one I'd be willing to play with, 1.475 seems a little hot, but I guess once it's there it should be a matter of simply updating the bios again.

Out of curiosity, once I applied the change to my bios, I opened and saved it in the polaris bios editor to have a valid sig, this is the right way to go right?

Cheers
 
#9 ·

Attachments

#10 ·
This is your stock Nitro ROM with VMAX of 1.36875V for GPU
smile.gif
. It also has a custom UEFI/GOP module which Lordkag of Fernando's Win-RAID forum made me
smile.gif
. This custom ROM will work with CSM off on mobo UEFI, so you have pure UEFI mode running if required
wink.gif
, fast boot can also be on but secure boot can not be on.

StockModROM.zip 111k .zip file
 

Attachments

  • Rep+
Reactions: jeb101
#12 ·
No you will not break UEFI/GOP
wink.gif
, do any mods as you require to ROM just like before
smile.gif
.
 
#13 ·
Quote:
Originally Posted by gupsterg View Post

This is your stock Nitro ROM with VMAX of 1.36875V for GPU
smile.gif
. It also has a custom UEFI/GOP module which Lordkag of Fernando's Win-RAID forum made me
smile.gif
. This custom ROM will work with CSM off on mobo UEFI, so you have pure UEFI mode running if required
wink.gif
, fast boot can also be on but secure boot can not be on.
Hi, any chance to make a negative offset for my RX480 Sapphire? I see no such place with registers/data as for jeb101`s bios

 
#15 ·
Quote:
Originally Posted by jeb101 View Post

What offset are you looking for?
which doesn`t really exist in my bios version (I assume...) may be it`s because of my sapphire RX480 nitro is in first bios position - silent state
rolleyes.gif

I`ll take a look at your one - I need negative offset, for ex. "-10" (eng. calc-vers. gives me a F6 raw data value)
 
#17 ·
Now, I am not 100% if this is correct, but I believe, with 2'sC, -8, would be F8, which would mean -50mv, and FC for -25mv. If you try these out, I'd make sure to use the bios he posted, as it has a hard limit for voltage, don't want to risk a spike in voltage that would kill the card, but 1.36v should be fine, maybe not under load on air, but should be fine to boot.

Again, I am not sure if I am right, I am just getting to understand how this works, so please use at your own risk.
 
#18 ·
@gupsterg

Hey, I managed to edit my voltage offset via hex edit. I was wondering, could you point me towards adding LLC and max voltage options to my rom? As far as I understood this would be the same process of Hawaii Bios and you wrote a lot of material about it, but I am not able to sort everything out as I'm probably missing the basics. Could you show me the way? Thank you.
 
#19 ·
I will do a screen video guide as soon as I can, as it needs to be added to Hawaii/Fiji bios mod threads. It has been on my "to do" list for a while and I keep doing other things
redface.gif
.
 
#20 ·
Note: This guide is for where IR3567B is used on PCB as Voltage Control Chip.

Link to video.

Attached is guide.txt seen in linked video.

guide.txt 3k .txt file


GoogleDoc link to IR3567B registers I'm aware of.

Note: Use above GoogleDoc information with caution as potential for killing card.
 

Attachments

  • Rep+
Reactions: Loladinas
#22 ·
I could take a look at your bios but as I see all other comments about more voltage in the 65288 positions place.

Basically you can't set higher voltage than 65288 basically because really you want to clock it to 65288 stable.

For my reference visiontek rx480 on 65288 is 1.250v, meaning 1250 in place of 65288 is the max I can boot the system at. Any higher set in that position, black screen upon windows.

I suppose the solution is "decrease" even further the vddci offset, though not ideal. Done in hex. To boot up higher.

To determine your 65288s max true real voltage, is try setting 1250 in place of 65288. Boot up, and don't set core clock too high. Something like 1415mhz up to 1466mhz works fine for me stock voltage.

If you think the card stock has +25mv then try 1275mv in place of 65288. I'll tell you if you can boot into windows on 1275 in place of 65288, then your GPU is very special.

If you need assistance, I can help but I didn't want to help if it's already been resolved.

By the way to answer what is safe max on these cards is no less than 900mv vddci offset value of -350 or -351 decimal to hex which is FE A1 flipped to A1 FE for reference. Which is 1250mv - 900mv vddci offset equals -350, in hex is -351 ie A1 FE. You can push the VDDCI offset up safely 100mv, to 1000mv vddci. Which if we kept the A1 FE value, new 65288 value of 1350mv - 350 (ie A1 FE) = 1000mv vddci offset.

That's a crazy amount of voltage for core but it's a known stable value while maintaining stock -351 decimal to hexadecimal value A1 FE. I would say that if this GPU can do easily 1400mhz on 1250mv stock 65288 and 900mv vddci offset. Then 1350mv on 1000mv vddci offset could yield as high as 1512Mhz.

To achieve 1563Mhz, mathematically it would call for 1395.53571mv on -351 ie A1 FE for VDDCI offset of 1045.53571mv VDDCI offset. Totally safe if taking extra special measures in the thermal department.
 
#23 ·
Hi,

thanks for your answer. This is the part that correspond to VoltageObjectInfo in my ROM:

Code:

Code:
42 00 03 01 01 03 0E 00 08 96 10 00 00 00 00 00 FF 00 01 07 0C 00 06 00 00 00 00 00 00 00 04 00 24 00 00 04 00 00 02 80 10 00 00 00 10 00 52 03 02 00 00 00 84 03 02 00 10 00 B6 03 00 80 10 00 E8 03
If I understand well, in order to add an VDDC offset register, I have to add :

Code:

Code:
8D 00 xx 00
before :

Code:

Code:
FF 00 01 07 0C
.

If now I want to also add a VDDCI offset register, I suppose that I have to add also :

Code:

Code:
8E 00 xx 00
So now my ROM is :

Code:

Code:
42 00 03 01 01 03 0E 00 08 96 10 00 00 00 00 00 8D 00 xx 00 8E 00 xx 00 FF 00 01 07 0C 00 06 00 00 00 00 00 00 00 04 00 24 00 00 04 00 00 02 80 10 00 00 00 10 00 52 03 02 00 00 00 84 03 02 00 10 00 B6 03 00 80 10 00 E8 03
I have then to update the length of the table, that's ok. And next, I have to update the pointer to i2c programming. In my case it has a "0E" value on the orginal rom.

Since I have now two registers, to which one I must refer ? To the value corresponding to "8D" register or the "8E" register ?

I hope I have been clearer.

And as a matter of fact, in my case, I try to undervolt the card in order to reduce the power consummation. What value could I try, do you think ?

Thanks.
 
Top