# [BIOS Mod] RX480 -> RX580 Conversions + How-to RX470/RX480 -> RX570/RX580



## hellm

Original Conversions RX 480 -> RX 580 ..based on the original 480 bios. It behaves like a real 580 BIOS. With all the extra ports working.

sub-vendor AMD/ATI (reference only) 
added 1000MHz memory step
lowered idle voltage to 750mV 
fixed GOP/UEFI ("secure boot" has to be disabled) 
1200mV, 1340MHz, powerlimits at RX580 stock 
PBE editable; UEFI will still work afterwards 
RX480 Reference
RX480 Reference XTR Edition (1225mV, 200W, 1366MHz)

Asus RX480 Strix 8G

XFX RX480 GTR BE/XXX 8G

MSI RX480 Gaming X 8G

Sapphire RX480 Nitro+ 8G

Gigabyte RX480 G1 8G

PowerColor RX480 Red Devil 8G

HIS RX480 IceQ X² 8G


----------



## hellm

How-to Conversions RX470/RX480 -> RX570/RX580

The BIOS can either be read with Atiflash or GPU-Z. It does not matter whether the image size is 512kB or 256kB, the second half only consists of placeholders.
*!!!!*Before flashing the modded BIOS, open the BIOS with the Polaris Bios Editor and run "Update CRC".*!!!!*
*FAQ*


Spoiler



*Why the number 580?*
Because the driver does not check the RX580 for a signed BIOS. All other Polaris10 / 20 cards will be rejected by the driver if the BIOS has been modified. No negative consequences are known, the GPUs and the existing BIOS structures are identical.
Update: since the 590, the driver compares the shaders/revision of the GPU. So, only the 480 can be switched to 580 with the no-patch benefit. All other SKU's have to patch the driver.
https://www.monitortests.com/forum/Thread-AMD-ATI-Pixel-Clock-Patcher
*Why is a "magic" UEFI necessary?*
If booting in UEFI mode, the signature of the BIOS is checked via the GOP. The system then refuses to boot if this check fails. The GOP was modified by lordkag to always return the value "true". This is only a few bytes (and a lot of work ..), by the compression in the BIOS itself, however, the "magic version" appears very different.
*1000MHz Memory State*
https://www.overclock.net/forum/67-...rx470-rx480-rx570-rx580-100.html#post27826668



To convert a 480 BIOS into a 580 BIOS, only one byte at offset 0xD6 needs to be changed from 0xC6 to 0xE6.
In addition, ELLESMERE should be changed to POLARIS20, both 9 bytes long, so only copy&paste.

For a 470/570 to 580 conversion the byte at offset 0xD7 has also to be changed from 0x0F to 0x07.
offset 0xD4-0xD7:
470:
F0 7D C6 0F
570:
F0 7D E6 0F
580:
F0 7D E6 07
590:
F0 7D E6 01 (doesn't work for Polaris10/20, GPU Stepping recognized)

*Vcore:*
search for these bytes:
0C 01 03 06
The following 3 bytes correspond to the maximum Vcore indicated in mV x100. The minimum Vcore is right next to it. From these values the P-States are calculated.

(^^ 480 version)
example:
1125mV: 112500 -> 1B774 -> 74 B7 01
1150mV: 115000 -> 1C138 -> 38 C1 01
1175mV: 117500 -> 1CAFC -> FC CA 01
1200mV: 120000 -> 1D4C0 -> C0 D4 01
In addition, this value needs to be adjusted, not too far away:
(Don't change any other bytes than the "xx xx" mV values)
480:
8A 00 F1 FF FF FF xx xx
580:
8A 00 EB FF FF FF xx xx
1125mV x4 -> 4500 -> 1194 -> 94 11
1150mV x4 -> 4600 -> 11F8 -> F8 11
1175mV x4 -> 4700 -> 125C -> 5C 12
1200mV x4 -> 4800 -> 12C0 -> C0 12
25mV steps only.

*VDDCI*


mynm said:


> [..]I have explained in this thread, two more ways to modify it if gpus haves dynamic vddci.
> 
> If you see into the VOI vddci control by svid2, you can modify it with the powerplay values.
> 
> If you see GPIO control, you can modify it in the VOI.
> 
> But according to one Buildzoid's video, it seems that is risky to increase it. So maybe this is only safe if it is reduced.[..]


https://www.overclock.net/forum/67-...-rx470-rx480-rx570-rx580-98.html#post27791442

*sub vendor:*

Red is the sub id: *2 and the half byte of 2*0* belongs to it as well; little-endian format.
The sub vendor is a little more complex: *4 +2, and then another half byte, or you could also calculate x40h + 22h.
example:
XFX: 0x1682 => 0x1682 *4 = 0x5A08 => +2 = 0x5A0A => *A*2 *A0* 4*5*
Powercolor: 0x148C => *4 = 0x5230 => +2 = 0x5232 => *2*2 *23* 4*5*
AMD/ATI: 0x1002 => *4 = 0x4008 => +2 = 0x400A => *A*2 *00* 4*4*
PCI Vendor Id's

*Fan Settings*
search for these bytes:
01 17 00 00 02

contributed by *DrathVader*
Relevant for custom fans:
max fan speed, target RPM, idle PWM;
Zero Fan can also result in the maximum speed, and should be disabled in this case.
Fuzzy / Legacy = 01 / 00 -> between max temp and max PWM; has to be assumed "00" -> the values in the grey box apply.
Before the "max fan speed" (0x34) is the minimum fan speed. Both are for display purposes only.

*"magic" UEFI:*
(done by *lordkag*, tested by *gupsterg*, ..copied by me)
For these GOP UEFI files the signature check was overridden. But they also lost their signature, so no secure boot is possible.
The files are universal, they can be used with all R9/RX up to the 580 (as long as the device ID is adjusted accordingly); with Vega a new UEFI was introduced.
Version 1.60 doesn't actually know a 580, but it works just as well, since the device ID for 470/570/480/580 is identical.
Search for the GOP UEFI part in the BIOS, then copy the complete content of the GOP.efirom and overwrite the original one. Do not change the the length of the rom file!

AMDGOP1.60.0.15.50
the new versions have a length of 0xE600; the remaining bytes of the original UEFI/GOP have to be overwritten with "FF" placeholders if necessary. (0x200 length max)
AMDGOP1.63.0.15.50
AMDGOP1.65.0.15.50
AMDGOP1.66.0.15.50
AMDGOP1.67.0.15.50
AMDGOP1.69.0.15.50


----------



## rastaeyes

Thanks for posting this resource.

I have a few questions, and I'm hoping to flash my RX480 to an RX580, and minimize incompatabilities.

I have already flashed my MSI RX480 Gaming X 8GB with the official RX580 BIOS of the same card but I encountered the following pros and cons.

Cons:
Power usage under load seems unstable, drawing too much power on the VRM, and core at times. Wattage and voltage appear to be a lot higher than on the 480 BIOS which is alarming.

Pros:
Memory now overclocks to 2250mhz from crashing at 2050 on 480 FW, which nets more FPS.
Power usage when idle or light load, are much more efficient, with more frequency steps. This includes video use.
Card is now an RX580(!)

So ideally I would like to figure out how to resolve the power draw problem, it appears to be due to the changes in the VR controller? It will require an unofficial BIOS it seems, but I'm hoping to have it work without disabling the driver signature checks (read that the 580 doesnt have this check), and keeping UEFI and secure boot turned on for this system. Also it currently boots to stock 1380 core, 2000 memory with stock voltage (card seems to be a good sample).

After reading your post here it looks like it's possible to fix the problem, but since I'm not very experienced in BIOS modification I would really appreciate your input if possible. It looks like I need to modify the IR controller as detailed in post 1 to achieve this result?

Thank you.


----------



## hellm

I will try to explain this. Every graphics card has a PWM voltage controller, and it is programmed to fit the special needs of the cards VRM. And those can be very different. A wrong programmed controller might cause instabilities, different power draw and even damage over time.

580 needs no signature; this, and the fact that better power managemnet is apparently driver related, is the whole idea behind the switch.

For the 480 Gaming X, you don't need to modify anything, since all the work is already done. just give it a try.


----------



## rastaeyes

Great, thank you!









So I should flash msi480-580.1.0009.rom.zip 109k .zip file?

I noticed it says "("secure boot" has to be disabled)", will the system not boot if it's enabled?

I would like to have the core at 1380mhz, because it works on my card, and it's the default for the 580 Gaming X model so I should be able to just change that number in polaris bios editor?

Thanks again, I appreciate your help.


----------



## hellm

Yes, yes, and yes!








You can also try the original conversion, if you have any trouble with ports or just for testing. It is the official 480 BIOS with the mods done as seen in post#3, along with some minor stuff like name, etc..


----------



## soxfor

Thanks for all the info and modded BIOSes @hellm.

Could you clarify the diff between the IR Controller and Original ones, what were the source/used-as-base BIOS files in each case? The specific card vendor one (eg. for the MSI RX580 GX 8G you used the MSI RX480 GX 8G as the base and added stuff) or something else?


----------



## hellm

Yes, the original ones are based on the respective 480 BIOSes of the same card, the real conversions are mostly based on the Gigabyte Aorus BIOS, the Asus and both PowerColors on the BIOS of their successor.

I have learned something with the latest asus update on their 480 cards. It's mostly a 580 bios, and it could tell me more abnout structures and i may even find the ports. then it wouldn't matter anymore where the BIOS came from; and even now my real conversions are just AMD builds with very few settings of the subvendors work left; and those are the ports, nothing else.
but i am very busy at the moment, finishing my bachelor thesis.. so it might take some time until the next updates..

oh, and about the numbers:
X.xxxx for the donor card, x.XXxx for the Build#, and x.xxXX is my version number.


----------



## rastaeyes

Okay, so I flashed the new BIOS successfully and performed the same benchmarking as before, but the results were very different to what I expected.

480 stock bench +bios https://imgur.com/a/54G1v

580 official bench +bios https://imgur.com/a/G6oQZ

580 hellm bench +bios https://imgur.com/a/3kEJy

So in short, with each step the fps went down, the voltage and wattage went up, and I think it comes down to the powertune settings??
With those kind of power draws and voltages I'm getting scared about wrecking my card, and mobo.
Should I copy the powertune settings from the 480 BIOS and reflash? I'm hoping to lower that voltage and wattage significantly, but if it's not possible I'll have to revert to the stock 480 bios.

I'm also thinking of copying the ROM IDs across so that the card looks the same as before in device manager.

About secureboot, the motherboard started CSM so I didn't have to disable it.


----------



## hellm

If the power draw goes up and your fps down, the card is throtteling because of temps or powerlimit. check vcore, powerlimit, cooling.
You can change Vcore with offset or modding the max voltage (post#3).
Please read PBE Notes and only change sub id and sub vendor as seen in post#3.

for power draw comparsion between 580/480, take the original conversion at exact same voltage/clocks (watman or software). Afterburner delivers more reliable values.
for exact values (without driver related don't knows), take the wattage of the whole system with a ammeter or something.

for the strix someone measured this:


Spoiler: Warning: Spoiler!



Quote:


> Stock Strix 480 Bios (1310 MHz)
> Desktop = 81,1W
> -Heaven 4.0 = 288.4W
> -Undervolt Heaven 4.0 = 258.6W
> --Heaven points = 2526
> 
> Stockstrix 580 Bios (1360 MHz)
> Desktop = 72,6W
> -Heaven 4.0 = 326.8W
> -Undervolt Heaven 4.0 = 288.2W
> -Heaven points = 2602
> 
> Your Strix Bios 480-580 1.0008 (1340 MHz) with 3.1 timings.
> Desktop = 72,4W
> -Heaven 4.0 = 312.2W
> -Undervolt Heaven 4.0 = 285.7W
> -Heaven points = 2762
> 
> For comparison with Powercolor R9 280X (1030 MHz)
> Desktop = 102,3W
> -Heaven 4.0 = 331.6W
> -Undervolt not measured
> --Heaven points = 2306






for any worries about vrm, it works as intended (i2c proofen), so any more wattage is coming from more Vcore and the demands of the GPU. You won't kill your card as you could with a 580 BIOS from another card. So, whatever some software-tool is telling you, the power draw should be at least with the original conversion the same.


----------



## PPBottle

Has anyone tested changing the VDCCI value with Hex and how it behaves with memory overclocks?

For my 470 XFX single fan, the On Semi controller measures it (while IR's dont show it, at least on HWinfo) and it was 0.9v, which isnt any of the values the other bioses in this thread have. From what I gather on earlier Radeon IMCs, more doesnt always mean better and too much can also be hurtful to memory stability.

Also, is this value the actual VDCCI or the pointer thingy that was discussed in the other thread? Thanks in advance!


----------



## davidm71

Will this work on a RX460 as well? Got a XFX Double Disappation RX460. Be fun to turn it into a 560 if possible?


----------



## hellm

Quote:


> Originally Posted by *PPBottle*
> 
> Has anyone tested changing the VDCCI value with Hex and how it behaves with memory overclocks?
> 
> For my 470 XFX single fan, the On Semi controller measures it (while IR's dont show it, at least on HWinfo) and it was 0.9v, which isnt any of the values the other bioses in this thread have. From what I gather on earlier Radeon IMCs, more doesnt always mean better and too much can also be hurtful to memory stability.
> 
> Also, is this value the actual VDCCI or the pointer thingy that was discussed in the other thread? Thanks in advance!


too tired to answer that in detail, i think mynm solved that and i allowed myself do add vddci. and i think i was right; but it is the pointer, the value for vddci is also found in the bios, it is right next to the pointer:
Quote:


> Originally Posted by *post#1*
> 00 0C B6 03


means 950mV.. ok let's have a closer look:

Code:



Code:


typedef struct _PolarisMemClkDepRecord
{
        uint8_t VDDC;
        uint16_t VDDCI;
        int16_t VDDCGFXOffset;
        uint16_t MVDD;
        uint32_t MemClk;
        uint16_t Reserved;
}

Code:



Code:


0C B6 03 00 00 E8 03 40 0D 03 00 00 00

0C - > "The Pointer" is VDDC, cause it actually points to a VDDC voltage, but it's IMC/VDDCI cap something..
B6 03 -> VDDCI (950mV)
00 00 -> VDDCGFXOffset
E8 03 -> MVDD (1000mV) this is the value PBE reads as mem voltage..
40 0D 03 00-> MemClk (2000MHz x100)
00 00 -> Reserved

this is the same for all 580 and 480 BIOS, only VDDC voltage table has changed, so 0C means 1000mV for the 580 BIOS and 1050mV in a 480 version. ok, that was some detail









no one ever experimented with that. would be happy for some data.









Quote:


> Originally Posted by *davidm71*
> 
> Will this work on a RX460 as well? Got a XFX Double Disappation RX460. Be fun to turn it into a 560 if possible?


someone tried in another thread. didn't went that well..


----------



## jdraco

hi i flashed the xfx 580 bios on my 480 gtr black edition, in intensive games i have no problems playing, however in games that do not require much graphical power(league of legends) i get flickering screens while playing in windowed mode, freesync is off what could be the problem?


----------



## hellm

i am guessing u are using the dvi port? the three DP and one HDMI should work fine, with the other ports, i will fix that in the future.

try using the original conversion; there shouldn't be any problems with that one.


----------



## jdraco

im actually using 1 dp and 1 hdmi port. but i will try the original conversion


----------



## jdraco

Quote:


> Originally Posted by *jdraco*
> 
> im actually using 1 dp and 1 hdmi port. but i will try the original conversion


Just tried the original xfx bios, has a weird 28watt usage in idle and crashes almosot instantly when trying to start a game. My gpu model is XFX RX 480 GTR Black edition.


----------



## hellm

Funny. Just today i had a PM that the same problem (flickering on the DVI with a XFX GTR) doesn't appear with the XFX GTR BIOS from post#2. Should definitely work fine.

You can post your original BIOS to clarify things. If you also had trouble with the other ports, and the original convertions made things worse, u might have the wrong card. My GTR conversions doesn't work with the RS version, if you have one of those -> post#3.


----------



## jdraco

Here is the rom, not too sure why i cannot upload my bios to overclock.net.

https://drive.google.com/open?id=0B-kGo4gLXyMIbDFQTWpKTTBEV0E


----------



## hellm

this is a different bios than. what i used; and i know pretty sure i used the right one, the HIS is almost the same, and i had many people downloading it, no issues; and this one also has support for hynix ram..
also mine came not from tpu, i think someone send me that file..

i don't have the time right now, i will look into this next week; but it seems u have found another card. post#3 will work for you, but i don't have a file right now.


----------



## jdraco

Mine is the black edition of the gtr, guess thats what made the bios have a slight difference. But theoretically my black edition is just a better binned normal gtr isnt it?


----------



## hellm

It's not a thing about binning, BIOS stays the same for XXX and BE, only clockrates are different.
And i still don't know what card you have, maybe XFX switched the GTR and made a BIOS with Hynix memory support, but it shouldn't be there. clockrates fit, yes, but the voi table is different. And it is different than any of the XFX GTR BIOS versions found on tpu.

where did you bought your card and when?


----------



## jdraco

Bought it this year early april in singapore. Probably a model directly imported from hongkong.


----------



## jdraco

My card has samsung memory your wondering


----------



## hellm

i see. well, this is one of the special special versions traded in china only. Many manufacturers do that, but you don't have a GTR BE, you have a special GTR BE.

i'm sorry, my conversions don't fit. but you can mod your BIOS yourself, as seen in post#3.


----------



## jdraco

I will try that, once im done with it i will post ithere incase anyone needs it.


----------



## jdraco

i tried making a bios using the tutorial on post 3, the results is exactly the same as the xfx 580 original bios, weird 28watt idle and almost instant crash in a intensive game.


----------



## hellm

that is really odd. so far, every 470/480 had no problem with it, afaik. It is always the same GPU, and your BIOS has the same identy code: F0 7D C6 07

you cleaned your system with DDU?


----------



## rastaeyes

I've spent some more time figuring this out and I have an idea of what I would like to do, but I have a couple questions as to if it will work.

I was looking at the different BIOS to modify the vcore, and you say "In addition, this value needs to be adjusted, not too far away:
8A 00 F1 FF FF FF F8 11" but I could only find this value in the 480 BIOS, and it wasn't in the official 580 BIOS or the BIOS you uploaded here for the MSI Gaming X. Where can I find it, or what is the changed value?

So next I'm going to try changing the powertune settings with PBE to see how it behaves (wattage/voltage) with different limits set.

Is it possible to write the official 580 GOP back over the BIOS you have provided here? I would like to do this because I prefer having secureboot/uefi turned on, and on some systems the graphics card may become incompatible.

Also, in the BIOS you uploaded, are the memory timings using uber mix, or are they set as stock?

Thank you for all you work, and help here!


----------



## hellm

this thread wasn't planned as a new version of the Polaris Bios Editing thread, so i spared the info.
http://www.overclock.net/t/1604567/polaris-bios-editing-rx5xx-rx4xx/3790#post_26174416
the 580 ones look different, but the value is there.

the magic uefi is version 1.6.. and that is the same found in the 580. it is a one4all, so it will work on any card up to polaris i think.
you would want to use the hacked version.


----------



## davidm71

Quote:


> Originally Posted by *hellm*
> 
> someone tried in another thread. didn't went that well..


Got a link to that thread? Sounds risky fwiw..

Also assuming success how you get your drivers installed? I thought AMD drivers were picky. For example
theres a 896 to 1024 core mod out there for my rx460 and you got to mod the drivers to get it to work..

Thanks


----------



## F3r0x

I am considering flashing my XFX Rx 480 8gb to 580 bios. I bought the Best buy version which is the 1288mhz XXX edition. Would the Bios in OP work for me? Before finding this post i was going to just try the official XFX 580 bios. The XFX Best buy edition 580 appears to be identical to my 480.


----------



## hellm

Quote:


> Originally Posted by *davidm71*
> 
> Got a link to that thread? Sounds risky fwiw..
> 
> Also assuming success how you get your drivers installed? I thought AMD drivers were picky. For example
> theres a 896 to 1024 core mod out there for my rx460 and you got to mod the drivers to get it to work..
> 
> Thanks


http://www.overclock.net/t/1633317/wip-rx460-to-rx560-conversion-pack-asus-gigabyte-msi-powercolor-sapphire-and-xfx/70#post_26224953 der8auer's mods are not signed? i don't know anything about that, sorry.
Quote:


> Originally Posted by *F3r0x*
> 
> I am considering flashing my XFX Rx 480 8gb to 580 bios. I bought the Best buy version which is the 1288mhz XXX edition. Would the Bios in OP work for me? Before finding this post i was going to just try the official XFX 580 bios. The XFX Best buy edition 580 appears to be identical to my 480.


the RX models don't have a IR controller; my conversions are only for the GTR's .. and apparently not for the chinese ones..
but modding your original BIOS should work fine, see post#3;


----------



## NeoReaper

Question about the Gigabyte G1 ones, how/or did you manage to change the VRM's voltage? As far as I am aware from personal experience and asking in the official Polaris thread its a pain in the -insert profanity here- to change the voltage due to the regulators being completely different from all other models of 480.


----------



## F3r0x

Quote:


> Originally Posted by *hellm*
> 
> http://www.overclock.net/t/1633317/wip-rx460-to-rx560-conversion-pack-asus-gigabyte-msi-powercolor-sapphire-and-xfx/70#post_26224953 der8auer's mods are not signed? i don't know anything about that, sorry.
> the RX models don't have a IR controller; my conversions are only for the GTR's .. and apparently not for the chinese ones..
> but modding your original BIOS should work fine, see post#3;


I did not realize there was a major difference. My Card is an RX 480 RS 8gb XXX 1288mhz edition with hard swap fans. It physically looks identical to the xfx 480 GTS. I have verified that i am running samsung memory.


----------



## hellm

Quote:


> Originally Posted by *NeoReaper*
> 
> Question about the Gigabyte G1 ones, how/or did you manage to change the VRM's voltage? As far as I am aware from personal experience and asking in the official Polaris thread its a pain in the -insert profanity here- to change the voltage due to the regulators being completely different from all other models of 480.


The Gigabyte RX480 G1 uses the IR3567B, so offset is pretty easy; asic_profiling_info, there would be the max Vcore as seen in post#3, is the same for all cards and therefore would also work on the NCP81022 controller (i think you meant that one?), and it doesn't programm an offset.
Quote:


> Originally Posted by *F3r0x*
> 
> I did not realize there was a major difference. My Card is an RX 480 RS 8gb XXX 1288mhz edition with hard swap fans. It physically looks identical to the xfx 480 GTS. I have verified that i am running samsung memory.


GTS is not the GTR; my mods are only for tthe GTR XXX and BE
http://www.xfxforce.com/en-us/products/amd-radeon-rx-400-series#RX-480-8gb
..i think there is no GTS 480?
.. oh i mistyped.. i meant the the *RS* models


----------



## F3r0x

Quote:


> Originally Posted by *hellm*
> 
> The Gigabyte RX480 G1 uses the IR3567B, so offset is pretty easy; asic_profiling_info, there would be the max Vcore as seen in post#3, is the same for all cards and therefore would also work on the NCP81022 controller (i think you meant that one?), and it doesn't programm an offset.
> GTS is not the GTR; my mods are only for tthe GTR XXX and BE
> http://www.xfxforce.com/en-us/products/amd-radeon-rx-400-series#RX-480-8gb
> ..i think there is no GTS 480?
> .. oh i mistyped.. i meant the the *RS* models


I meant to say GTR not GTS. Mine is the Best buy version listed in the link you posted.

I have successfully OC'd to 1375 core 2200 memory clock and it runs pretty stable. I was considering flashing to the RX 580 1366/2000 bios. Do you think there is any risk in trying this without editing anything with PBE?


----------



## hellm

sorry i lost u there.. what are you trying to do? To flash the GTR version on a RS won't work, at least not good. And there would be the risk and fact you damage it over time. Same goes for any other BIOS of another card. Has to fit your card, and therefore the mods. If it would be easy to programm, i would have done a conversion for the RS, too. So i guess u have to mod your Bios like seen in post#3.


----------



## F3r0x

Quote:


> Originally Posted by *hellm*
> 
> sorry i lost u there.. what are you trying to do? flash the GTR version on a RS XFX won't work, at least not good. and there would be the risk and fact you damage it over time. same goes for any other bios of another card.


I was going to try and flash the bios from the XFX RX 580 8 GB BIOS. https://www.techpowerup.com/vgabios/193530/193530

Those bios list the same samsung memory timings im currently running and the card has the same output layout of 3x display port, 1x hdmi, 1x dvi


----------



## hellm

Bad idea.
As i said, best bet is post#3. You can learn how to programm your controller, and then mod the VOI table. But u can't just copy and paste, and you cant just use the one from another card. If u do, there will be consequences, instability, and damage over time.


----------



## F3r0x

Quote:


> Originally Posted by *hellm*
> 
> Bad idea.
> As i said, best bet is post#3. You can learn how to programm your controller, and then mod the VOI table. But u can'tz just copy and paste, and you cant just use the one from another card.


Thats why i asked before trying. So basically i gather from post 3 that were just changing values in our origional bios to make drivers recognize the card as a 580 instead of a 480? are performance gains really mostly driver related then? The main reason im looking into a bios mod is because Wattman only allows me a 20% power increase instead of 50% as most people have shown.

Here is a pic of what kind of voltages im running on stock performance xfx bios overclocked to 1375/2200.


Spoiler: Warning: Spoiler!


----------



## hellm

the switch cancels the signature check and yes, powermanagement in idle is driver related. performance gains are only because of the higher voltage of the 580 BIOS.

The max powerlimit (your 20%) is found in the PowerPlay table. You can change this with PBE or adjust TDP, TDC, etc. And if u switch to 580, no driver patch is needed to make your modded bios working. To have UEFI afterwards, you need to use the magic one.


----------



## F3r0x

Quote:


> Originally Posted by *hellm*
> 
> the switch cancels the signature check and yes, powermanagement in idle is driver related. performance gains are only because of the higher voltage of the 580 BIOS.
> 
> The max powerlimit (your 20%) is found in the PowerPlay table. You can change this with PBE or adjust TDP, TDC, etc. And if u switch to 580, no driver patch is needed to make your modded bios working. To have UEFI afterwards, you need to use the magic one.


Thank you for the information. If i change my original bios will i still need to change anything with the sub vendor id?


----------



## hellm

no, of course not. stays the same, for the 580 swap it would be enough to change the byte at offset D6.

only if u want to. so far no one tried 3dfx.. hehehe, i don't know if the driver would recognize such a card, or if 3dmark would have a 3dfx card in their results then


----------



## F3r0x

Quote:


> Originally Posted by *hellm*
> 
> no, of course not. stays the same, for the 580 swap it would be enough to change the byte at offset D6.
> 
> only if u want to. so far no one tried 3dfx.. hehehe, i don't know if the driver would recognize such a card, or if 3dmark would have a 3dfx card in their results then


It worked! GPU Z recognizes as a 580. Im working on testing overclocking limits. At 1400/2200 im able to complete a firestrike run and a 3d mark test no problem. Although i did note 5 errors reported in hwinfo.

do you see any problems with current or voltages at these settings?


Spoiler: Warning: Spoiler!


----------



## hellm

sure.









can't see any trouble ahead.


----------



## rastaeyes

I got a little further with my project, but then I'm stuck.

I changed the GOP to the 1.6 'magic' mod, and it runs, but still secureboot has to be disabled, from reading around it looks like the UEFI segment reads a signature from the legacy section, so it's maybe impossible to have CSM disabled, secureboot enabled AND run a modified BIOS. I might test it out some more, but I can't see a work around yet.

I did at least get the ubermix timings working, but now the core seems to be throttling at 1380mhz since the GOP change, it was stable before.


----------



## hellm

that uefi is hacked by lordkag, and @gupsterg had also his hands on it? from what i know, yes it is impossible, secure boot has to be disabled. But it shouldn't throttle anything, for me it works as before, since it is just hacked, not modified? i don't know details, that is way over my head.


----------



## PPBottle

Quote:


> Originally Posted by *F3r0x*
> 
> It worked! GPU Z recognizes as a 580. Im working on testing overclocking limits. At 1400/2200 im able to complete a firestrike run and a 3d mark test no problem. Although i did note 5 errors reported in hwinfo.
> 
> do you see any problems with current or voltages at these settings?
> 
> 
> Spoiler: Warning: Spoiler!


Mind uploading your BIOS? I want to check what VDCCI and VDMEM your bios has, and since your VRM controller outputs the VDCCI in hwinfo I can check what value actually alters VDCCI and if that can help overclocking 4GB cards.


----------



## F3r0x

Quote:


> Originally Posted by *PPBottle*
> 
> Mind uploading your BIOS? I want to check what VDCCI and VDMEM your bios has, and since your VRM controller outputs the VDCCI in hwinfo I can check what value actually alters VDCCI and if that can help overclocking 4GB cards.


Sure thing. All i did was follow post 3 to mod my bios with PBE and a hex editor. I will note that i am still testing stability with these bios. Running overclocked seemed fine at first but after trying a few rounds of PUBG i had to lower my core clock and memory clock to keep it stable.

I for whatever reason cannot upload to this post. Whenever i try to attach and submit a file i get an error saying " 
AJAX response unable to be parsed as valid JSON object."


----------



## hellm

make a zip file
http://www.7-zip.org/


----------



## F3r0x

I used winrar to put it in an archive when i first tried to post. Even trying it now i still get the same error.


----------



## hellm

i tried it; everything that not ends .zip will give you that error.

so just zip it.


----------



## b0ne

Really cool mods. Tried the original conversion stock edition on my reference RX480 8GB with the newest driver but WattTool doesn't work properly. Changes to memory addresses?

EDIT: reverted to stock bios, WattTool still funky. They changed something in the 17.7.2 driver.


----------



## NeoReaper

Sorry, just a few things I am unsure about before flashing my card (I have flashed my card before so I am aware of the obvious risks):

-So when you said "Turn off secure boot" does this mean I will no longer be able to use secure boot at all with the vbios? I currently use UEFI with Secure boot on.

-Will I not be able to set a downvolt for the lower states without causing the card to drop out of the 1200mv in Wattman if I set the voltage to manual? The reason why this one is a bit of a bigger issue is the card tends to get stuck around 50*C with the fan stop on and without a undervolt on the lower states the card bounces the fans off and on often.


----------



## hellm

Quote:


> Originally Posted by *b0ne*
> 
> Really cool mods. Tried the original conversion stock edition on my reference RX480 8GB with the newest driver but WattTool doesn't work properly. Changes to memory addresses?
> 
> EDIT: reverted to stock bios, WattTool still funky. They changed something in the 17.7.2 driver.


thx! u r welcome! and yes, they did something to the p-states. so far no oc software works.

Quote:


> Originally Posted by *NeoReaper*
> 
> Sorry, just a few things I am unsure about before flashing my card (I have flashed my card before so I am aware of the obvious risks):
> 
> -So when you said "Turn off secure boot" does this mean I will no longer be able to use secure boot at all with the vbios? I currently use UEFI with Secure boot on.
> 
> -Will I not be able to set a downvolt for the lower states without causing the card to drop out of the 1200mv in Wattman if I set the voltage to manual? The reason why this one is a bit of a bigger issue is the card tends to get stuck around 50*C with the fan stop on and without a undervolt on the lower states the card bounces the fans off and on often.


Yes, as i said on the last page, unfortunately secure boot has to be disabled.

if u set 1200mv in the last p-state, wattman will accept it. The values wattman shows when u set to manual are not the auto setting, for most cases it shows 1150 in the last 3 states; but that isn't the auto-setting, if someone gets confused. until now wattman never got that right, but accepts all values up to 1200mV. You just have to adjust them manually.

If you have issues with the fan, here is a way to figure out the right settings:
http://www.overclock.net/t/1609782/watttool-a-simple-tool-that-combines-overclocking-with-vrm-monitoring-tweaking-for-rx-400-series/240#post_25834851
and, since it is a copy from the BIOS on your card, u can find the exact same bytes there and change them on your behalf.


----------



## NeoReaper

Quote:


> Originally Posted by *hellm*
> 
> if u set 1200mv in the last p-state, wattman will accept it. The values wattman shows when u set to manual are not the auto setting, for most cases it shows 1150 in the last 3 states; but that isn't the auot-setting, if someone gets confused. at least until now wattman never got that right, but accepts all values up to 1200mV. You just have to adjust them manually.
> 
> If you have issues with the fan, here is a way to figure out the right settings:
> http://www.overclock.net/t/1609782/watttool-a-simple-tool-that-combines-overclocking-with-vrm-monitoring-tweaking-for-rx-400-series/240#post_25834851
> and, since it is a copy from the BIOS on your card, u can find the exact same bytes there and change them on your behalf.


Thanks, I should not need to modify the bios as long as I can change the lower states which stops the card switching the fan off and on. I have had this issue with this card ever since I have had it and even on the stock clocks/voltage the fan does it.


----------



## hellm

maybe the start/stop temps are too close, you could change that easily, i just wanted to say that. maybe i will add that info to post#3, sometime..


----------



## NeoReaper

I have noticed ever since flashing the new bios, under the same clock and voltage my 3DMark score has dropped about 700-800 on the graphics score.


----------



## hellm

there is also a funny story to this, with the original XFX BE reference BIOS (which had a bug in graphics test 2 firestrike) and the updated version without csm bug from xfx themselves. The update had less FPS in test 2, therefore a little lower score, but it was everything as it should be.

700-800 points is much more, and indicates throttling. shouldn't happen at the same clocks, never, because i can say that vrm works the same on every card..

but lets go into detail, what card, what rom file?


----------



## NeoReaper

Gigabyte G1 Gaming 4GB Hynix with bios file from first post. The old bios I have attached (Don't worry about the ".F5" part, thats just Gigabyte being awkward).

Bios.zip 110k .zip file

EDIT: Temperatures are good/normal before and after flash.


----------



## hellm

most important, i did no mistake in the voi table, VRM works as it should.
might be because of memory, but if u don't get a lot of mem errors, everything should be fine.
temp target maybe? i think the card is throtteling, and powerlimit / temperature might be involved. power readings can also differ a little, driver thing..

i might come up with updates at least this month. or very new programmed BIOS files, @Vento041 and me are on it.


----------



## NeoReaper

I definitely think its a core power issue. My Vram has always been at [email protected] and rarely spits out errors. I noticed the card didn't last 10 minutes in Ark Survival Evolved (My stress test since its the only game that creates magical stability errors) And I played GTA V for well over 4 hours and as I went to QUIT the game it crashed on the pause menu which was quite hilarious because of the timing. GPU Temps hit around 72*C and VRM's around 80*C (Which is perfectly normal for them) Unigine Heaven no crashes but stalls around the night time scenes, possible pointer that its a power limiting problem? Card never used to have these issues though so I don't know why its happening.


----------



## hellm

Quote:


> GPU Temps hit around 72*C and VRM's around 80*C (Which is perfectly normal for them)


that would mean they burn the same amount of power as usual. i thought our problem where less FPS, not instability?
Quote:


> My stress test since its the only game that creates magical stability errors


what kind of errors? if it is unstable in a very demanding game, it is unstable. That errors might only occur sometimes, but that could be a reason for crashes in gta; the card heats up, uses more power, gets "unstabler"

usually, the 580 conversions have a impact on power consumption and cooling, because of the higher powerlimit and vcore.
even at the same voltage, the powerlimit might be increased, so the card doesn't throttle at full load and high temps as it might have before -> unstable.
The lower points, less FPS, might also because of errors, or temp limits, i don't know.

if you have only trouble, try modding your original bios.


----------



## F3r0x

Sorry for losing track of this thread. Here is the copy of my modded bios as requested earlier.

rs1288m.zip 109k .zip file


----------



## NeoReaper

Quote:


> Originally Posted by *hellm*
> 
> Quote:
> 
> 
> 
> GPU Temps hit around 72*C and VRM's around 80*C (Which is perfectly normal for them)
> 
> 
> 
> that would mean they burn the same amount of power as usual. i thought our problem where less FPS, not instability?
> Quote:
> 
> 
> 
> My stress test since its the only game that creates magical stability errors
> 
> Click to expand...
> 
> what kind of errors? if it is unstable in a very demanding game, it is unstable. That errors might only occur sometimes, but that could be a reason for crashes in gta; the card heats up, uses more power, gets "unstabler"
> 
> usually, the 580 conversions have a impact on power consumption and cooling, because of the higher powerlimit and vcore.
> even at the same voltage, the powerlimit might be increased, so the card doesn't throttle at full load and high temps as it might have before -> unstable.
> The lower points, less FPS, might also because of errors, or temp limits, i don't know.
> 
> if you have only trouble, try modding your original bios.
Click to expand...

Sorry, by 'magical' I mean't its the only game (Hours of firestrike and GTA are normally fine) that creates problems with driver crashes (17.7.2).
If I can't find a "common ground" with the current vbios I will try modifying Gigabytes original vG14 vbios that was on my card. (Originally vG12 was on my card when I brought it but was not flashed correctly so the wrong vbios version would show up everywhere)


----------



## F3r0x

As a quick update for those looking into modding their 480 bios like i did. So far after some testing i have been able to get 1410/2200 stable at +66mv core and 1100mv memory voltages. I have only tested these frequencies via Firestrike , timespy, or Performance test 64. and will be further stress testing today Via PubG, Overwatch, and Battlefield 1.

As a side note. I am running 17.7.2 drivers, I am only able to overclock like most people with Wattman but have to up core voltage and fan profiles with MSI Afterburner. Memory voltage adjustments seem to work fine with Wattman but core voltage adjustments are either not happening or are unstable in Wattman.

With these bios i am getting a Firestrike score of 12030 - 12050.


----------



## hellm

Quote:


> Originally Posted by *F3r0x*
> 
> As a side note. I am running 17.7.2 drivers, I am only able to overclock like most people with Wattman but have to up core voltage and fan profiles with MSI Afterburner. Memory voltage adjustments seem to work fine with Wattman but core voltage adjustments are either not happening or are unstable in Wattman.


@NeoReaper ur problems are maybe related to this, if u used manual voltage..


----------



## NeoReaper

The issue is if that is the case, I can't use anything to control the voltage, Afterburner is straight out incompatible with my VRM's and I have tried everything to get it to work.


----------



## F3r0x

Quote:


> Originally Posted by *NeoReaper*
> 
> The issue is if that is the case, I can't use anything to control the voltage, Afterburner is straight out incompatible with my VRM's and I have tried everything to get it to work.


I have found that under these drivers Afterburner is only good on my rig to control fan curves and core voltage only. If i put AB in unofficial overclocking mode and try to overclock with it, my drivers crash.

I have also found that voltage adjustments in Wattman are pretty broken. Any adjustments i make to core voltage either don't actually work or they aren't scaling correctly with the P states. Also if I up the wattage on my memory to 1100 mv and apply via wattman, it up's both the memory and gpu core voltage to 1100mv. After messing around i noticed after changing the core clock and applying in wattman, the core voltage returns to normal so I have a certain order in which i OC my card after startup that seems to work well. Also, Afterburner doesn't always apply my core voltage the first time i apply it. Most of the time i have to change and apply the votage 2-3 times before i will see it actually apply and change in hwinfo64 or in Afterburner itself.

I start with hwinfo64 open to monitor my temps and voltages. I open wattman and up my memory clock and voltage to desired number. (2200mhz/1100mv) then apply. I then up my Core clock and power limit in wattman and apply those settings. At this point i have Memory clock, Core clock and memory voltage where i want it. After this I open Afterburner and up my core voltage and Im good to go.


----------



## F3r0x

After some testing last night I have had to back the core clock off to 1390mhz. At 1410 I kept getting driver crashes or "Rendering device lost"

I am thinking this weekend i will Roll back to 17.7.1 and see if that's any better. As I was testing last night I could barely make 2 minutes into a round of Overwatch before the drivers would crash but i managed 30 - 40 minutes of PubG before it also crashed. I tried raising the core voltage but couldn't get it stable. The thing that throws me off is that my temps were a max of 78 even at +100mv to the core so I feel the drivers are more to blame for performance issues than anything. My brother has a MSI Twin Frozer 390 and with 17.7.2 installed he has no ability to overclock his core or up the voltage. Afterburner for pre polaris cards seems to be completely broken. In fact, Wattman only gives him the ability to control fans after he uninstalls AB.

After moving down to 1390mhz on the core at +66mvi played both PubG and Overwatch for several hours last night without issues. Hit a max temp of 80 and hwinfo64 showed a maximum core voltage of 1.268 volts but an average of 1.89v.


----------



## hellm

Quote:


> Originally Posted by *F3r0x*
> 
> hwinfo64 showed a maximum core voltage of 1.268 volts but an average of 1.89v.


..that average makes no sense if max was lower.

WattTool can't change clockrates now either. Vcore offset works, of course (i2c);

AMD did something to the P-States; i don't know a thing about it, but i am sure all the oc software will get updates.
If u have trouble, fallback is a good option. Maybe the driver itself is buggy somehow, i read a lot of complains about it..


----------



## NeoReaper

I have set everything to auto/default in wattman for now and am going to ride out any instability until 17.8.1 is released, looks like wattman is indeed borked on 17.7.2.


----------



## F3r0x

Quote:


> Originally Posted by *hellm*
> 
> ..that average makes no sense if max was lower.
> 
> WattTool can't change clockrates now either. Vcore offset works, of course (i2c);
> 
> AMD did something to the P-States; i don't know a thing about it, but i am sure all the oc software will get updates.
> If u have trouble, fallback is a good option. Maybe the driver itself is buggy somehow, i read a lot of complains about it..


Im sorry, i meant 1.189


----------



## MiladEd

I have got a Gigabyte RX 480 G1 Gaming 8 GB, using Samsung memory. Which conversion BIOS do you recommend to use?


----------



## hellm

no recommendations; only conversions.









those from post#1 are made from a real 580 BIOS, those from post#2 are made from the original 480 version of the same card. They are all meant to give you the possibility of modding your BIOS as you need.


----------



## paih85

Quote:


> Originally Posted by *hellm*
> 
> How-to Conversions RX470/RX480 -> RX570/RX580
> 
> The BIOS can either be read with Atiflash or GPU-Z. It does not matter whether the image size is 512kB or 256kB, the second half only consists of placeholders.
> Before flashing the modded BIOS, the file must be opened with the Polaris Bios Editor and "Update CRC" has to be executed.
> 
> To convert a 470/480 BIOS into a 570/580 BIOS, only one byte at offset D6 needs to be changed from C6 to E6.
> In addition, ELLESMERE can be changed to POLARIS20, both 9 bytes long, so only copy&paste.
> 
> 
> *Vcore:*
> search for these bytes:
> 0C 01 03 06
> The following 3 bytes correspond to the maximum Vcore indicated in mV x100. After this value the P-States are calculated.
> example:
> 1150mV: 115000 -> 1C138 -> 38 C1 01
> 1175mV: 117500 -> 1CAFC -> FC CA 01
> 1200mV: 120000 -> 1D4C0 -> C0 D4 01
> In addition, this value needs to be adjusted, not too far away:
> 8A 00 F1 FF FF FF *F8 11*
> 1150mV x4 -> 4600 -> 11F8 -> F8 11
> 1175mV x4 -> 4700 -> 125C -> 5C 12
> 1200mV x4 -> 4800 -> 12C0 -> C0 12
> 25mV steps only.
> 
> *sub vendor:*
> 
> Red is the sub id, x2 and and the half byte of 20 belongs to it as well.
> The sub vendor becomes more complicated. x4 +2, and then another half byte, or you could also calculate x40h + 22h.
> example:
> XFX: 1682 => 1682 *4 = 5A08 => +2 = 5A0A => A2 A0 45
> Powercolor: 148C => *4 = 5230 => +2 = 5232 => 22 23 45
> AMD/ATI: 1002 => *4 = 4008 => +2 = 400A => A2 00 44
> or, untested:
> PCI Vendor and Device Lists
> 3dfx: 0x121A => 4868 +2 => 486A => A2 86 44
> 
> *"magic" UEFI:*
> The corresponding section of the length E800 must be marked in the bios and the complete content of the GOP / UEFI.rom copied over it. Do not change the length of the rom file!
> 
> 
> AMDGOP1.60.0.15.50_signed_DF3D9980_compr.efirom.zip 58k .zip file


need ur help. here my bios.
https://drive.google.com/file/d/0B4JqVya1W3PmSGkwcGJQaDRLSkU/view?usp=sharing


----------



## hellm

and how can i help u? do all the work for u? sorry, busy at the moment.. but i have time for questions.


----------



## paih85

Quote:


> Originally Posted by *hellm*
> 
> and how can i help u? do all the work for u? sorry, busy at the moment.. but i have time for questions.


haha. sorry hellm. already tried follow ur guide but for voltage part im noob.


----------



## hellm

Quote:


> Originally Posted by *paih85*
> 
> haha. sorry hellm. already tried follow ur guide but for voltage part im noob.


no problem, let's get through it. it's not rocket science, so i am sure we can clear things up; for u and anyone else.

you have a Hex-Editor? I can recommend HxD. But any editor would fit, i guess; u just have to search for the hex-value (!) "0C 01 03 06" to find the first part of Vcore.
The second part (that x4 control thing) should be already on the screen, it is about 15 rows below.


----------



## paih85

Quote:


> Originally Posted by *hellm*
> 
> no problem, let's get through it. it's not rocket science, so i am sure we can clear things up; for u and anyone else.
> 
> you have a Hex-Editor? I can recommend HxD. But any editor would fit, i guess; u just have to search for the hex-value (!) "0C 01 03 06" to find the first part of Vcore.
> The second part (that x4 control thing) should be already on the screen, it is about 15 rows below.


ok. noted. what i need to do to make my final core clock 1120MHz (underclock using PBE) working @ 950mv?


----------



## F3r0x

Quote:


> Originally Posted by *hellm*
> 
> no problem, let's get through it. it's not rocket science, so i am sure we can clear things up; for u and anyone else.
> 
> you have a Hex-Editor? I can recommend HxD. But any editor would fit, i guess; u just have to search for the hex-value (!) "0C 01 03 06" to find the first part of Vcore.
> The second part (that x4 control thing) should be already on the screen, it is about 15 rows below.


Just out of curiosity, in what event is the board allowed to surpass the voltage limits set in bios? When I converted mine i set both to 1200mv and my core, as we've already seen, has reached as high as 1.268v. Is this where the +50% power limit comes in? Im wondering if maybe i set my maximum too low and that's why im having issues running above 1400mhz in game.


----------



## hellm

Quote:


> Originally Posted by *paih85*
> 
> ok. noted. what i need to do to make my final core clock 1120MHz (underclock using PBE) working @ 950mv?


omg, a miner!







..should have known.









no, got no problem with that; but there might be a problem to what u r doing, IMC can't be higher than Vcore, so you would have to find the pointer for IMC and lower it to 950mV.

in your 470 bios:

Code:



Code:


0B 84 03 00 00 E8 03 98 AB 02

0B - > "The Pointer"
84 03 -> VDDCI (900mV)
00 00 -> VDDCGFXOffset
E8 03 -> MVDD (1000mV) this is the value PBE reads as mem voltage..
98 AB 02 -> MemClk (1750MHz x100)

0A for the pointer would be 950mV, +/-50mV with every +/-1. The minimum for the pointer would be 08 before you hit the Vcore. It points on a VDDC voltage.. you don't need to know that.

and of course, Vcore would be 950x100 in hex -> little ending and so on, as seen with the other voltages.

Quote:


> Originally Posted by *F3r0x*
> 
> Just out of curiosity, in what event is the board allowed to surpass the voltage limits set in bios? When I converted mine i set both to 1200mv and my core, as we've already seen, has reached as high as 1.268v. Is this where the +50% power limit comes in? Im wondering if maybe i set my maximum too low and that's why im having issues running above 1400mhz in game.


i thought u gave +66mV? that would fit. Other than that, those Vcore values have to be the same. If u set the x100 to 1200mV, and the x4 to 1300mV, it will give u a max voltage somewhere in between. so make sure those values match.
power limit is not related to voltages.


----------



## F3r0x

I set +66mv in Afterburner. I was just curious as to how the rules work when it comes to violating the maximum voltages. Was thinking maybe with these current drivers the core may not always be getting as much power as it needs via the +66mv if the max in bios is set to 1200mv. which may explain why even though i have seen a max of over 1.25v my avg is still under 1.9v


----------



## paih85

Quote:


> Originally Posted by *hellm*
> 
> omg, a miner!
> 
> 
> 
> 
> 
> 
> 
> ..should have known.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> no, got no problem with that; but there might be a problem to what u r doing, IMC can't be higher than Vcore, so you would have to find the pointer for IMC and lower it to 950mV.
> 
> in your 470 bios:
> 
> Code:
> 
> 
> 
> Code:
> 
> 
> 0B 84 03 00 00 E8 03 98 AB 02
> 
> 0B - > "The Pointer"
> 84 03 -> VDDCI (900mV)
> 00 00 -> VDDCGFXOffset
> E8 03 -> MVDD (1000mV) this is the value PBE reads as mem voltage..
> 98 AB 02 -> MemClk (1750MHz x100)
> 
> 0A for the pointer would be 950mV, +/-50mV with every +/-1. The minimum for the pointer would be 08 before you hit the Vcore. It points on a VDDC voltage.. you don't need to know that.
> 
> and of course, Vcore would be 950x100 in hex -> little ending and so on, as seen with the other voltages.
> i thought u gave +66mV? that would fit. Other than that, those Vcore values have to be the same. If u set the x100 to 1200mV, and the x4 to 1300mV, it will give u a max voltage somewhere in between. so make sure those values match.
> power limit is not related to voltages.


haha.. just for fun. mining when not in gaming. 1 card only.


----------



## hellm

Quote:


> Originally Posted by *F3r0x*
> 
> I set +66mv in Afterburner. I was just curious as to how the rules work when it comes to violating the maximum voltages. Was thinking maybe with these current drivers the core may not always be getting as much power as it needs via the +66mv if the max in bios is set to 1200mv. which may explain why even though i have seen a max of over 1.25v my avg is still under 1.9v


no, if it wasn't getting the power, the voltage would drop somehow -> crash
it's more a indicater for throtteling; more likely u hit temp or power limit.

and, under load the voltage is a little lower, due to LLC; depends on the card and their vrm, but most of the time it is about 25mV lower;

Update:
i tried to hack the GOP found in the recent Asus update:
*removed* see post#3
i really don't know if it works; someone has to test it; it has a length of E600, not E800; so you have to fill the rest with FF placeholders, do not change the length of the BIOS file!


----------



## NeoReaper

So update on before, after leaving the voltage on auto and increasing only the memory clocks the card seems to be 100% stable apart from a few titles where the card seems to perform considerably worse but then in other titles performs marginally better than before... Seems like its driver-related?


----------



## hellm

some games might draw more power than others, and the driver could be a problem itself; there is a newer beta or what for RX Vega, but i don't think it has the new p-state-stuff implemented yet. just a guess..

anyone with a BIOS-switch want to test the 1.63 UEFI? i am up in work, and can't brick my card every day..









*update:*
conformation received!







1.63 works fine.







you can find it in post#3 now. updates are coming someday; me and Vento are on it, as i said, but we also have other things to attend to..

*update2:*
there was a problem with 1.63.xx.xx; fixed now.


----------



## kilogrm70

Quote:


> Originally Posted by *hellm*
> 
> no recommendations; only conversions.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> those from post#1 are made from a real 580 BIOS, those from post#2 are made from the original 480 version of the same card. They are all meant to give you the possibility of modding your BIOS as you need.


Hellm, I have a bios from the MSI Radeon RX 580 8G graphics card which is modeled off the reference design of the Reference RX 480 card
https://us.msi.com/Graphics-card/Radeon-RX-580-8G.html#hero-overview

It is identical in every way to include using the blower style cooler, having 3 display ports, 1 hdmi port, and no dvi port. The only difference that I can see is that it has an 8 pin power connector, while the Reference RX 480 has a 6 pin power connector. Do you think it would be more closely compatible to a reference rx 480 compared to what you currently have already?


----------



## hellm

Quote:


> Originally Posted by *kilogrm70*
> 
> Hellm, I have a bios from the MSI Radeon RX 580 8G graphics card which is modeled off the reference design of the Reference RX 480 card
> https://us.msi.com/Graphics-card/Radeon-RX-580-8G.html#hero-overview
> 
> It is identical in every way to include using the blower style cooler, having 3 display ports, 1 hdmi port, and no dvi port. The only difference that I can see is that it has an 8 pin power connector, while the Reference RX 480 has a 6 pin power connector. Do you think it would be more closely compatible to a reference rx 480 compared to what you currently have already?


never seen this card before.. looks like a reference, but i would have to take a look at the pcb to know how close it is to the ref 480. could also be quite different.

can you share your Bios pls?

..and updated UEFI on all files.


----------



## kilogrm70

Quote:


> Originally Posted by *hellm*
> 
> never seen this card before.. looks like a reference, but i would have to take a look at the pcb to know how close it is to the ref 480. could also be quite different.
> 
> can you share your Bios pls?
> 
> ..and updated UEFI on all files.[/quote
> 
> Here's the bios for it.
> 
> msi580ref.zip 110k .zip file


----------



## hellm

From what i can say from your BIOS (thx +rep), it has a IR controller, most likely the IR3567B; still the Aorus VRM seems to be closer to the ref 480. Mosfets must be different.
Samsung GDDR5, same as usual..

i have a closer look, maybe i can learn something... thx again









update:
there is not much difference between the Aorus BIOS i used for most of the 580 conversions and this msi BIOS; and that means more information for me.


----------



## MixedC

Quote:


> Originally Posted by *hellm*


*Edit:
OMG, sorry my message it is too long,








TLR I give some info from HWinfo with RX580 bios and asking what is wrong with MSI Gaming X RX480's Power Draw readings and What to trust I2C VRM readings or GPU Readings?*

Hellm first thanks for all these bioses, I have flashed my MSI RX480 Gaming (non-x, same pcb cooler) to 580, I actually didn't wanted to do it but with 480 bios I had strange HWinfo (and others) readings both on I2C VRM VID and GPU VDDC. Spikes upto 1.35v even at stock or even at undervolt, didn't matter. And it kept spiking while video playback, playing once in a while to 1.25ish,
With your bios it rarely spikes that high anymore like never. So thanks again.

I was reading the polaris bios editing thread and have seen your post about "MSI power draw issue" with RX580 bios and it already being bad in 480 bios.

(your assumption about someone else might read and learn from your porsts but not post, you were right, I want all the details







)

I have seen another user with RX480 Gaming X on reddit report MSI card showing more power draw than it actually does in hwinfo. (he compared hwinfo reading with gigabyte one and wall reading and also flashed another bios) so on HWinfo MSI showed about 30W higher, but at wall it was 10W lower than Giga and with a different bios it was showing correct in Hwinfo.

Another user on reddit mentioned that MSI is trying to report total board power instead of core power like others does???

So here I am, can you please explain what is different with MSI one? in 480 bios and what is wrong in your RX580 bios?
I know the reported power draw can be changed from bios, but I have to learn better what I am dealing with.

*More data with your RX580 bios on my 480 Gaming:*
Wattman Settings: 1.2v 1400mhz and Memory 2200mhz/975mv and 25% power limit (1169mv-1175mv under load)

(Using HWInfo,100ms pulling rate, Average size 100 samples.)
(Readings not from I2C) Gpu core power peaks at 270W and Chip Power Peaks at 180W~~ in HWinfo. Averages show 150~~ for Core and 180~~ for Chip.

I2C readings (VRM Reading) VRM Power Out stays 130W+-10 and VRM power In stay about 150W +-10
VRM reports way lower and it is confusing me.

and same goes for Currents as high as 250A on Gpu core current (upper part of HWinfo) while I2C VRM Current out is at 120A Peak.

so I am really confused which one to trust? isn't 250W peak a little bit high? 250A peak? or is it just 120A as VRM I2C reports?
and again what is wrong with power draw readings on RX480 Gaming X? Should I be concerned about that crazy numbers?









I am also confused because VRM on this card for core is pulling from 8 pin connector, I can see temperatures for 2 VRMs but not Powers.
I can say that 130W and 150W figures are Of course from 8pin core VRM, but what are those 250Watts from then?

A long post, sorry for that, tried to give all the info I found


----------



## MixedC

I had a quite long post but it now says
"MixedC's post is deleted. deleted by mixedc (Click to hide)" after I edited it more than 4 times, not sure if I clicked delete button or not








and don't want to double post it, It said something like "you are new here so it'll get aproved by moderation first then be shown) but it was already shown here, till I edit









This is copy of my previous post (Sorry If I break a rule or something, I don't know what I triggered in the earleir post):
Edit:
OMG, sorry my message it is too long, tongue.gif
TLR I give some info from HWinfo with RX580 bios and asking what is wrong with MSI Gaming X RX480's Power Draw readings and What to trust I2C VRM readings or GPU Readings?

Hellm first thanks for all these bioses, I have flashed my MSI RX480 Gaming (non-x, same pcb cooler) to 580, I actually didn't wanted to do it but with 480 bios I had strange HWinfo (and others) readings both on I2C VRM VID and GPU VDDC. Spikes upto 1.35v even at stock or even at undervolt, didn't matter. And it kept spiking while video playback, playing once in a while to 1.25ish,
With your bios it rarely spikes that high anymore like never. So thanks again.

I was reading the polaris bios editing thread and have seen your post about "MSI power draw issue" with RX580 bios and it already being bad in 480 bios.

(your assumption about someone else might read and learn from your porsts but not post, you were right, I want all the details biggrin.gif)

I have seen another user with RX480 Gaming X on reddit report MSI card showing more power draw than it actually does in hwinfo. (he compared hwinfo reading with gigabyte one and wall reading and also flashed another bios) so on HWinfo MSI showed about 30W higher, but at wall it was 10W lower than Giga and with a different bios it was showing correct in Hwinfo.

Another user on reddit mentioned that MSI is trying to report total board power instead of core power like others does???

So here I am, can you please explain what is different with MSI one? in 480 bios and what is wrong in your RX580 bios?
I know the reported power draw can be changed from bios, but I have to learn better what I am dealing with.

More data with your RX580 bios on my 480 Gaming:
Wattman Settings: 1.2v 1400mhz and Memory 2200mhz/975mv and 25% power limit (1169mv-1175mv under load)

(Using HWInfo,100ms pulling rate, Average size 100 samples.)
(Readings not from I2C) Gpu core power peaks at 270W and Chip Power Peaks at 180W~~ in HWinfo. Averages show 150~~ for Core and 180~~ for Chip.

I2C readings (VRM Reading) VRM Power Out stays 130W+-10 and VRM power In stay about 150W +-10
VRM reports way lower and it is confusing me.

and same goes for Currents as high as 250A on Gpu core current (upper part of HWinfo) while I2C VRM Current out is at 120A Peak.

so I am really confused which one to trust? isn't 250W peak a little bit high? 250A peak? or is it just 120A as VRM I2C reports?
and again what is wrong with power draw readings on RX480 Gaming X? Should I be concerned about that crazy numbers? biggrin.gif

I am also confused because VRM on this card for core is pulling from 8 pin connector, I can see temperatures for 2 VRMs but not Powers.
I can say that 130W and 150W figures are Of course from 8pin core VRM, but what are those 250Watts from then?

A long post, sorry for that, tried to give all the info I found rolleyes.gif


----------



## hellm

It's ok, i read it..

why is it so hard for everyone to write hellm, and not Hellm, or even Helm








..well i guess i have to live with that..lol

to your question:
i think the i2c readings should be more reliable; should be. How exactly are you reading the i2c power draw?
also, if i switch a 480 to a 580 BIOS (only changed BIOS id, seen in post#3), i see a slight increase in these power readings. therefore i think it is also driver related.
If you want to be absolutely certain, you have to measure the power draw with other, more decent tools. not software.

for the i2c, i made sure everything is fine; the monitoring data differs a little, but this is also due to the different voltages of a 580 BIOS; i never tested that with a switched 480 BIOS, though.

i completely forgot the non-X; 4 or 8 GiB?
..u had spikes? with your original BIOS? and you bought that card new?
your BIOS should be that one:
https://www.techpowerup.com/vgabios/190029/190029
and the VOI table is excatly the same, so my roms fit perfect to the non X Version


----------



## MixedC

I got the readings I2C readings from HWinfo.

also I used the Post#1 conversions and yes I bought card as new and it spikes all over the place with stock bios. even undervolted, I used it undervolted and noticed spikes 3 months later actually.
I would have spotten them way earlier I think they recently started to occur.

but again, doesnt occur with post 1 bios.

edit: 8GB version, it is the same PCB right? Afaik it is same.

edit:
The card is just 4 months old, and that spikes are up to 1.35v watching vids, palying games etc.
RX580 bios, just happened once or twice total less than 10 since I flashed and been 5 days.

setting p5 0.06mv higher than p6 and p7 has a postivie effect on fixing it.
ex: 1066 1060 1060

1 more question:
Wasnt that spikes normal? VRM temps are below 80C all the time btw
I have read some messages from other users, some mentioned same behaviour. I still wanted to fix it tho, and I knew 580 had better power management, and it worked.


----------



## hellm

unfortunately i don't have much time looking into this, right now; used all my spare time for UEFi and Vega and what not, but i will have more time when i am finished my bachelor thesis. but this has to be on top now..









me and Vento are gaining more and more info; thanks to Asus and differnet BIOS versions from users like kilogrm70 (^^) we should be able to find out some more; even without proper documentation on the command tables. But it will take some time, as i said..

about the spikes, do you have your original BIOS? cause the Gaming and Gaming X are the same regarding VRM stuff; so i don't have an explanation yet.


----------



## MixedC

Yes I have my original bios, I'll attach it.
but the one you sent seems to be correct, I checked speeds.

Spikes Doesnt happen with your Post#1 580 bios, they happen with my 480 bios.

Tested twice, tested ton 17.4.4, 17.7.2, 17.7.1

But I always run hwinfo but I am still not sure if spikes were there all along or they have just started, sadly I cannot be sure about this.
I guess this is sign of a bad VRM, well I was always unlucky with GPUs had to send my giga 280x to RMA 6 times, they couldnt fix it, according, to them there was no problem with the card.









*Anyway I am really thankful to you for that 580 bios, it doesn't spike with it* (Just dont want you to get it wrong, it is fine with 580 bios, spikes with 480 stock bios). *There is no problem with your 580 bios, it actually fixes spikes on my card.*

But I am still curious about That high Power Draw Spike Readings I see in HWinfo.
I don't really beleive that readings, (VRM readings report way lower as I mentioned in earlier post. 150W input, 130W output.) and that should be GPU Core VRM only.
and there is no sensing on Aux VRM and Memory VRM I think. Considering MSI's PCB and power layout.

bios.zip 110k .zip file


----------



## hellm

hm. VOI table is the same, so there shouldn't be any bad stuff happening to your VRM. if it stays below 100°C..

you are right, could also be a software problem, if you are running some other monitoring software like afterburner at the same time. ..wait, no, i did that plenty of times..

i wouldn't rack my brain too much; push the card to the limits, so if it goes boom, you still have waranty. if not, everything is fine.


----------



## MixedC

Actually if it goes boom, I no longer have warranty if I cannot flash back







, they will see it after repair.

so That is why I didnt want to convert to 580 bios, (if there was a bios switch, I would switch and send that way if anything happens).
but eventually that voltage spikes made me worry enough, I pulled the trigger on 580 conversion









1.2v should be safe afaik, but 270W peak power figure still freaks me out

I'll keep 580 bios and I'll keep the card voltage spike-free. I rather do not RMA it, if that spikes are real, they are bad (bad experiences).
also I beleive those spikes were indeed real, my card was able to do 1360 mhz on 1096mv (load), dropped to 1350, 1340 and after 4 months now 1340 crashes rarely.
so initial break in shouldnt take this long afaik, this might be actual degradedation.(typo







) bcz of spikes.


----------



## hellm

Quote:


> Originally Posted by *MixedC*
> 
> Actually if it goes boom, I no longer have warranty if I cannot flash back
> 
> 
> 
> 
> 
> 
> 
> , they will see it after repair.
> 
> so That is why I didnt want to convert to 580 bios, (if there was a bios switch, I would switch and send that way if anything happens).
> but eventually that voltage spikes made me worry enough, I pulled the trigger on 580 conversion
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 1.2v should be safe afaik, but 270W peak power figure still freaks me out
> 
> I'll keep 580 bios and I'll keep the card voltage spike-free. I rather do not RMA it, if that spikes are real, they are bad (bad experiences).
> also I beleive those spikes were indeed real, my card was able to do 1360 mhz on 1096mv (load), dropped to 1350, 1340 and after 4 months now 1340 crashes rarely.
> so initial break in shouldnt take this long afaik, this might be actual degradedation.(typo
> 
> 
> 
> 
> 
> 
> 
> ) bcz of spikes.


i don't think they check defect cards for BIOS mods.. would be too much money, it is cheaper for them to replace the few cards. and if they do, they would see it is one of mine, and not some random 580 BIOS









see page 2, i posted some power readings another user made in a german hardware forum.

the power increase will only be related to the higher voltage/clockrate.depending on the quality of your GPU, it does have an impact, but if your cooling can handle it, it shouldn't be that much higher than before.
so, if you want to compare readings vs. stock, try also the rom from post#2. but only take those values seriously, if you got them from a DMM or something like that.


----------



## MixedC

I have to rely on software reading but yeah, if I had a bios switch or a UPS.
Card is cooler than many if not all, realy 69C when I set 1200mv in wattman and VRM 80C at most, and not maxing the FAN speed.

Everytime I flash a bios, I am afraid because there is a chance that electricity might go off.
it actually happened tonight while playing, lasted roughly 1 seconds, but would be enough to ruin my day







, You can never know...

also backplate, so shorting 1+8 is not soemthing I want to do, I did it on my giga motherboard tho







, so I know how to do it.

I think they'll see that bios is one of yours and it'll be fine









More info for you and everyone:
When I first flashed your bios and didnt touch wattman, spikes were gone but it eventually did it once after an hour in Rainbow Six Siege (menus low P-state, game high P-state switches).

Then I realized 1156-1150-1150 in wattman, I thgouht this might be the culprit because card is switching between states. set it to 1121-1115-1115, no spikes anymore! after hours and hours.

Flashed back to RX480 bios (still wants to keep it under 100% warranty) tried same trick,
it helped a lot, but then it spiked again less frequently but it did while watching or playing.
but not as often. to about 1.35v~~ 1.38v was all time record.
(both VRM and GPU reports these spikes, one reports while other doesnt, or vice versa, sometimes both catch it at the same time, so they seem quite real also mentioned degradation that happened)

Flashed back to 580 bios, set everything, no spikes, when I set p5-p6-p7 to 1200mv (because can't do 1206) it actually spiked just once to 1.356v, so I really need that 6mv higher p5 state (it just has to be 1 notch higher I guess). But after that one spike, it was fine on 1200mv all day long no spikes, so might be one time thing.

Right now running 1300mhz 1066-1060-1060 and no spikes at all 0. been playing all day.
My card was able to run 1320 @ 1065mv, poor thing in 4 months running at stock 1.096V shouldn't degrade this much, I cannot understand this GPU







I don't want to blame it on spikes, but might be related.
performance at 1300 vs 1400 is 5% lower, but voltage is 13% lower and power draw is 25%~~ lower.
My enthisuast self wants to push 1.3V, but I am a student as you are (bachelor) so I don't have $$$ in case anything goes bad









so anybody reading this, if you have those voltage spikes give this a try, if it helps I'll be really happy.


----------



## hellm

I think i have an idea what causes those spikes. In the early 480 BIOS versions, the pointer (same we discussed here) for IMC was 0F. They fixed that later to 0B (480 not 580) which points exactly on 1000mV; 0F will give you also 1000mV IMC, but back when overvoltage via PowerPlay was possible, with 0F you had IMC=Vcore as soon as you changed Vcore, it was driver handled or something...

So, a BIOS update from MSI, or maybe a X BIOS (since the card apper to be the same) with the pointer changed to 0B might also do the trick. A SoftPowerPlay registry hack is also an option.


----------



## MixedC

Hmm..
I can either flash an X bios and avoid atikmdag patcher, or do a soft powerplay hack and keep orginal bios, or stay at 580 bios.
Btw I also had to edit 2000mhz strap on your 580 bios to my stock 480 bios, there was only 1 timing difference but it caused problems to me at 2200mhz even tho there arent many errorr (same amount of errors) 580 bios, edit free, no patches Yay!

I would like to test that soft powerplay hack with 480 bios and also 480 Gaming X bios with fixed pointer. But I'll need your help for both.








I'll start looking at it myself now tho, I might be able to figure it out.

(I am still afraid to flash a bios tho, anything can happen, I have no UPS







, I'll do it when I feel brave enough







, don't want to take off backplate or wait for RMA, I bought this card thinking it had no backplate but gaming X did, well surprise it has one, and I had mixed feelings







)

I checked there are no updates for Gaming version, so it is left to spike and spike faster









Edit:
Hmm, Can we simulate it with soft powerplay hack on 580 bios? What if I change 0B to 0F and see if there are spikes or not?
Afaik I had to install MSI AB for that and create tables, then edit. I will do it when I make sure I can revert back the changes, I don't want that table but want to test









BTW with rx480 my Wattman default is 975mv for IMC, but probably it is just like vcore so just a placeholder number.

edit:
in the first post 0B shows 950mv and 0C is 1000mv, am I understanding it wrong?
edit2:
with my stock rx480 bios, at 9DB5, it has "00", I guess it is in a different place in stock bios?










Yeah in your edited 580 bios, it has "0C", so "0C" is 1000mv indeed.

so question is where do I find this in stock bios? I'll give it a try when I get a simple UPS (working on it







).


----------



## hellm

you have to search for the bytes, the offset is not the same for every BIOS. In your 480 stock BIOS it is found at 9E4A (0F B6 03 00 00 E8 03 40 0D 03)

yes, not only in your BIOS 0F is really 975mV; my old XFX 480 ref BIOS is the same; i had 1000mV as far as i remember..? and, yes, not Vcore but IMC; but i can't think of anything else that causes this; maybe they changed something in the driver..


----------



## MixedC

I don't know anything anymore, I already knew little









so in my bios 0F points to 975mv, so it is different? ... Your REF XFX also had 975mv? afaik Sapphire Nitro 480 has it on 1000MV default.

so we are back to square one for Voltage spikes? or are we?







, Really happy with 580 bios I am not going back.
Hmm.. I can actually conver 480 bios into a 580 bios and see if it is driver related or bios related but don't we already know 580 drivers only control 2D states?
I need to find or make a UPS for myself







really curious now.

offset is also different between Gaming X bios I found on TPU and My bios, so they aren't the same.

edit:
one more question.
Does my original bios pointing at 975mv instead of 1000mv for 0F affect your VRM Register fixes for 1st Post bioses?
if Mine and Gaming X stock 480 is different, your 580 VRM fixes is based on 480 Gaming X? (actual bios is from Gigabyte I think?) so
that might be fixing the spikes all along.

You know better, it is obvious I have to put some more time and reading into editing bioses and hex editor and I will.

*Bottom Line:*
Anyone with MSI RX480 Gaming (Non-X) please check for spikes on stock 480 bios, if you have I suggest flashing to 580. If you do not please report back








Actually I think everyone (all cards) should check for it to see if something is wrong (spikes are both visible from hwinfo and GPU-Z, but with HWinfo you can increase refresh interval for sensors and also get VRM readings).


----------



## hellm

"The pointer" points on a VDDC voltage; it is this little list, also found in PoerPlay table:
20 03 00 00 00 00 00 00 02 FF 00 00 00 00 00 00 03 FF 00 00 00 00 00 00 04 FF 00 00 00 00 00 00 05 FF 00 00 00 00 00 00 06 FF 00 00 00 00 00 00 07 FF 00 00 00 00 00 00 08 FF 00 00 00 00 00 00 52 03 00 00 00 00 00 00 84 03 00 00 00 00 00 00 B6 03 00 00 00 00 00 00 E8 03 00 00 00 00 00 00 1A 04 00 00 00 00 00 00 4C 04 00 00 00 00 00 00 7E 04 00 00 00 00 00 00 CF 03

00 points to 20 03 -> 0x320 -> 800mV
01 points to 02 FF -> these is another pointer to another table; not replaceable anymore
...
07 points to 08 FF -> highest Vcore from highest p-state
...
0B points at E8 03 -> 0x3E8 -> 1000mV
...
0F points to CF 03 -> 0x3CF -> 975mV

and this list appears to be the same in every 480 BIOS. And yes, my old XFX has this too, and i never saw these 975mV, was always 1000mV.. i can't explain that either. i know, that before 17.4.1 you could replace the 0x FF pointers to a real voltage and it worked, but if u had that 0F pointer for IMC, it wasn't 1000mV as before. you had the same voltage as you had put in for Vcore.

so.. if you change that byte with softpowerplay on the original BIOS, i still think it will fix this weird problem.


----------



## MixedC

Wait I am lost,









so that powerplay table is same for ALL RX480s including mine? if so how you have never seen 975mv?
To understand better I checked My Bios, MSI RX480 Gaming X bios,
XFX RX480 and Sapphire Nitro rx480
They all also has the same table, so 0F -,> CF 03 -> 0x3CF -> 975mv

so far I learned this table is just a table to point at and same on all RX480 bioses, okay.
Your edited Msi rx580 bios does not have exact copy of that table, nor Sapphire 580 nor Asus 580 original bioses from TPU.

Then I opened up MSI Gaming X bios and My Gaming bios first and checked for
0F B6 03 00 00 E8 03 40 0D 03, This exist on both Gaming X and Gaming on MSI "0F". and MSI Ref even has "0F"
Then I opened up XFX and Sapphire 480 bioses (all 8gb from TPU)
SURPRISE IT HAS 0B and XFX 480 Suırprise it has 0B









so I wonder what bad effect it had on my GPU and IMC. I didnt really overvolt (much...) but it spiked on its own quite often till I realize.
and there are still no Bios Updates from MSI for my card.

If you remember from my previous posts, I said, I would notice it if the spikes were there since beginning, so there is a big chance they got introduced after 17.4.1 (I actually recently updated drivers) but I couldn't say it for sure, it might have been after all. I only reverted back to 17.4.4

*Quick Edit:*
I bought the card around 10-12 April,, it seems driver version 17.4.4 was not released yet, so I was probably on 17.3.3 till I have updated to 17.7.2.
I thought I was on 17.4.4 all along, that was why I reverted back to 17.4.4 (sadly I deleted AMD folder so cannot check what I have in there) so odds are getting stronger.

I can kinda read that powerplay table and understand how to find what points to what and convert it to hex than decimal.

I am really confused now, which RX480 has what









Correct me if I am wrong now,
if it is 0F, now, updated everything it'll be same as what Vcore is and spikes might be happening because of it. Am I right? There is something different now and MSI bios got affected badly by it?
0B is 1000Mv fixed (not like 0F) and should fix it and might be the cause of no spikes after flashing 580 bios.
Even tho 0F is pointing at 975 why does it get set as same as Vcore tho? just because of new drivers? did I get it right? (I hope)

Last question then,
so powerplay table is different in RX580 bios, but how much?

My English isn't the best but I hope people can understand me good enough








I also hope this is a good discovery and culprit, I'll try 0B as soon as I can and report back the results with stock bios.
If this is broken, this has to be fixed, spikes are not going to kill the Chip but they aren't joke either and after all I think we all like our voltages and clocks "stable".


----------



## MixedC

Edit:
Nevermind


----------



## hellm

these voltages are inside the VDDCLookup table, a part of the PowerPlay table; and yes, it is slightly different in a 580 BIOS. you can find the Pointer in every 480 or 580 BIOS, just search for the rest of these bytes, without the pointer. i explained here.
There are also a lot of differences between cards, fan table especially; it is alos part of the powerplaytable.

because of the difference between 580 and 480, 1000mV on a 580 is the pointer 0C, stock 580 is 0B and 950mV.

the old version of 480s had 0F, the newer newer ones 0B. the MSI Gaming X from post#2 is from another user, it is a msi update. they have a update tool, i think this is how you update their cards. U can also find older versions, with 0F at tpu.


----------



## MixedC

Yeah those people apperantly didn't care about their "Gaming" GPU so there was no updates checked. (ofc checked with stock bios before flashing 580)

Sad, They did the work for gaming x and left Gaming untouched like they didn't sell that one.
I probably have to go myself and tell MSI about this so they might update rx480 Gaming...
as high as 1.4v spikes are no joke for me.

I'll keep using your 580 bios at 1400mhz 1.175mv (load) hellm thanks for all these work and also answers.
Do we have an MSI Rep around here that we can mention?


----------



## hellm

a what?

oh representative.. i see.. don't know.. guess not..


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> a what?
> 
> oh representative.. i see.. don't know.. guess not..


if I knew they didn't fix Gaming X I wouldn't be pissed off and go ask for an update, but I am actually pissed off right now becaues they knew about it but didn't put a simple bios update for non-x version.

I wonder if they have updated even cheaper Armor and Armor OC, they are better known than Non-x version.

Edit:
Yep checked more than 5 bioses from TPU all have 0F but there are updated versions for other cards.

Anyway, this is slightly going off-topic


----------



## hellm

whatever, it's my thread, so...









i would definitely contact msi support. just write an email, there has to be some way u can get in contact with them. tell them about those spikes and ask for a BIOS-update. let's see what they have to say about that.

u tried this?
https://us.msi.com/Graphics-card/support/Radeon-RX-480-GAMING-8G.html#down-utility
msi update tool?


----------



## Espinosidro

Hello, I just tried flashing my MSI RX 480 Gaming X (8GB Samsung) with the "msi480-580.1.0010" BIOS that you had listed in the first page and it bricked, I followed your steps but when I tried restarting the PC couldn't display anything (the mobo also turned on the "no-VGA" light).

Did I did something wrong? I missed something?


----------



## hellm

Quote:


> Originally Posted by *Espinosidro*
> 
> Hello, I just tried flashing my MSI RX 480 Gaming X (8GB Samsung) with the "msi480-580.1.0010" BIOS that you had listed in the first page and it bricked, I followed your steps but when I tried restarting the PC couldn't display anything (the mobo also turned on the "no-VGA" light).
> 
> Did I did something wrong? I missed something?


did you run your PC in UEFI only mode? Maybe left secure boot on?

in all my tests the 1.63.xx.xx UEFI ran fine. and at least one other did confirm that. so i guess u did overlooked something.

it could also be a bad flash. the error message from atiflash is easy to miss. can happen if some other software is running in the background, especially monitoring software.

update:
rechecked it; did nothing wrong; didn't hear similar reports, and that file was already downloaded a few times;


----------



## NeoReaper

Flashed the new bios version, everything is working fine this end. I still find that to avoid any stability issues I should just not touch the core clock/voltages and stick to overclocking the memory only for now. I still hope AMD fix the wattman-related issues along with other problems but considering Vega is rolling out now I don't even know if they are going to pay attention to the RX 4xx 5xx cards anymore.


----------



## Espinosidro

Quote:


> Originally Posted by *hellm*
> 
> did you run your PC in UEFI only mode? Maybe left secure boot on?
> 
> in all my tests the 1.63.xx.xx UEFI ran fine. and at least one other did confirm that. so i guess u did overlooked something.
> 
> it could also be a bad flash. the error message from atiflash is easy to miss. can happen if some other software is running in the background, especially monitoring software.
> 
> update:
> rechecked it; did nothing wrong; didn't hear similar reports, and that file was already downloaded a few times;


Secure boot was the problem, I didn't had a clue it could do that. cleared CMOS and everything is working fine as far as I can tell!


----------



## hellm

Quote:


> Originally Posted by *NeoReaper*
> 
> Flashed the new bios version, everything is working fine this end. I still find that to avoid any stability issues I should just not touch the core clock/voltages and stick to overclocking the memory only for now. I still hope AMD fix the wattman-related issues along with other problems but considering Vega is rolling out now I don't even know if they are going to pay attention to the RX 4xx 5xx cards anymore.


u can always use PBE, Vcore Offset, Vcore (post#3), ...
Quote:


> Originally Posted by *Espinosidro*
> 
> Secure boot was the problem, I didn't had a clue it could do that. cleared CMOS and everything is working fine as far as I can tell!


----------



## MixedC

Guys do you see such power draw peaks like me?
vcore is set to 1200mv (msi rx480 gaming)



Look at differences between readings Gpu Core Power / Current vs VRM Current In-Out / Voltage In-Out

afaik 192A @ 100C continious so higher at 80c is possible and I think those 284W 243A readings are actually wrong.

I already brielfy asked about this earlier, but this time wanted to share a screenshot.


----------



## hellm

added some corrections to "Fan Settings" in post#3.

big thx to @DrathVader for this information.









..and added some info to Vcore post#3


----------



## MiladEd

Finally gathered enough courage to flash my Gigabyte RX 480 G1 Gaming to RX 580 Gaming. I've seen a couple of positive effects, like power draw seems less (according to HWiNFO), the fans are quieter (seems like it!), and idle voltage is considerably lower. There is a bug, however, GPU-Z cannot read GPU utilization correctly, it's stuck on 16%, but HWiNFO seems to be working fine. I've not tried overclocking it more, but I'll get to it now.


----------



## hellm

Yes, GPU and Memory Load doesn't work and it is driver related (post#1, known issues). On reddit some users with real 580 graphic cards complaint about it, so..


----------



## kilogrm70

Quote:


> Originally Posted by *hellm*
> 
> From what i can say from your BIOS (thx +rep), it has a IR controller, most likely the IR3567B; still the Aorus VRM seems to be closer to the ref 480. Mosfets must be different.
> Samsung GDDR5, same as usual..
> 
> i have a closer look, maybe i can learn something... thx again
> 
> 
> 
> 
> 
> 
> 
> 
> 
> update:
> there is not much difference between the Aorus BIOS i used for most of the 580 conversions and this msi BIOS; and that means more information for me.


So would you say that if someone had a reference RX 480 and flashed this MSI RX 580 reference bios on to their card that there should not be any issues since it's identical to the aorus one that you use in your conversions?


----------



## hellm

no, it is not identical. i would say the Aorus fits better, since there is only one register with the wrong value.
also, there is more that needs to be modded to make the BIOS fit the card you want to flash it on, even in the voi table.

use my conversions, i made them for a reason.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> no, it is not identical. i would say the Aorus fits better, since there is only one register with the wrong value.
> also, there is more that needs to be modded to make the BIOS fit the card you want to flash it on, even in the voi table.
> 
> use my conversions, i made them for a reason.


just asking, what about the people who flashed their cards with actual 580 bioses?
I'll use MSI as example (because I know for sure), 480 and 580 has the same PCB. but Afaik there are others sharing same PCB.

I am really curious.

I know little but, I know voltage tables are different between 480 and 580 (I was messing with bioses as you know), but why does it matter if after all the PCBs are exactly the same?
Wouldn't it just work exactly the same way as the 580 chip set to work on same PCB? 480=580 afaik.

Like what is the difference between de-soldering 580 GPU from MSI RX580 Gaming X and soldering a 480 GPU and firing it up?
If it is all fine then, there shouldn't be any issues on identical PCBs.
But apperantly there is as I remember you mentioning it in one of your posts somewhere







so I am confused.

I'll take a rough guess but,
does IR controller have some kind of ROM on their own and can't be flashed
It has different ROM between 480 and 580 PCB revisions so different values,
and the bios itself is referencing to the values hold / Initiaded in IR Controller?

because if they are 100% identical physically but they are actually different, this is only thing I can come up with.
This way soldering a 480 onto a 580 PCB (or vice versa) would work flawless, but flashing a 580 bios on a 480 PCB even tho it works, might not work flawless.


----------



## hellm

the msi 580 gaming uses a different pwm controller, therefore, it is not (!) the same pcb, even if the rest of the components are.

so, it would make a huge difference; the "program" stored in the bios is different and your controller will have a different configuration (very bad). u can check that with an i2c dump.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> the msi 580 gaming uses a different pwm controller, therefore, it is not (!) the same pcb, even if the rest of the components are.
> 
> so, it would make a huge difference; the "program" stored in the bios is different and your controller will have a different configuration (very bad). u can check that with an i2c dump.


This is new, wherever I look, it was said the both PCBs are same. This ofc makes them different.
Thanks hellm. Do you know which controller it uses?

edit:
Found it, uP9505P.

edit2:

Hellm apperantly MSI put uP9505P and IR3567B! in RX480 8Gs
also apperantly they might have put IR in 580s.

https://forum-en.msi.com/index.php?topic=287768.0

I know mine is IR because I have i2C in wattool, afaik wattool doesnt support I2C for other ones but you might put a warning in post#1.
I looked into it on google and looks like such thing exists.


----------



## hellm

yeah, apparently they release all sorts of cards in china. there is an "ir controller only" info in OP. i leave it that way for now.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> yeah, apparently they release all sorts of cards in china. there is an "ir controller only" info in OP. i leave it that way for now.


People might not know, because on review sites or in buildzoid's video it is told to be IR controller.
VRMTool shows if you have an IR controller or not, I think you can put that info in there. It is really easy.


----------



## hellm

that user might not even had a gaming x, could also be another msi.. but i added the info to OP.


----------



## rastaeyes

Hello hellm

Thanks again for all the work you've done here.

I noticed the MSI Gaming X 580 bios file is now version 10, whereas I flashed version 9 when you first posted here.
Can you say what the new version changes?

Also I was interested by this other user who had issues with high power draw, because I have the same issue, and would love to fix it.

Cheers!


----------



## hellm

just UEFI updated..

no one has issues with high power draw, only the readings are off. as i said, try BIOS from post#2, if it has the same power draw, you can't do anything about that. or me. there will be future updates, but i am up in work.

for the ref, original conversion has 10% higher power draw readings as the original, and both have the same command/data tables.


----------



## MiladEd

So I tried overclocking the GPU core a bit more after flashing my 480 to 580. I was stable already at 1370 MHz on stock voltages, and semi stable on 1380 (did get some colored screen crashes in a few games, like Overwatch and Hitman) but it was fine mostly. Now, I bumped it up to 1390 MHz, and it's running fine so far. Temp aren't any different either, if not a bit (1 or 2 C) lower. I think I can go over 1400 MHz, on stock 580 voltages.

One thing that I hoped for, was being able to overclock the VRAM higher, but I still get memory error on anything higher than 2150 MHz (I have 8 GB Samsung VRAM) anything that can be done for this? Polaris is highly bandwidth starved.


----------



## MixedC

Quote:


> Originally Posted by *MiladEd*
> 
> So I tried overclocking the GPU core a bit more after flashing my 480 to 580. I was stable already at 1370 MHz on stock voltages, and semi stable on 1380 (did get some colored screen crashes in a few games, like Overwatch and Hitman) but it was fine mostly. Now, I bumped it up to 1390 MHz, and it's running fine so far. Temp aren't any different either, if not a bit (1 or 2 C) lower. I think I can go over 1400 MHz, on stock 580 voltages.
> 
> One thing that I hoped for, was being able to overclock the VRAM higher, but I still get memory error on anything higher than 2150 MHz (I have 8 GB Samsung VRAM) anything that can be done for this? Polaris is highly bandwidth starved.


So, you are already into bios modding, just edit your 2000mhz memory strap ^^
with 1750 Timingso n 2000mhz it is ~~3GB/S faster at same memory clock, you can try 1625 strap or even ubermix (ubermix extreme was worst for me, but should actually be better)

For an example, with 1750 strap @ 2150 mhz I get 97FPS, with stock 2000mhz strap on 2200mhz I get 96 FPS and more errors.
They only reach about 350-400 in 2 hours but time to time, they don,'t get corrected and screw the screen up. (bad geometry, colors etc.)

with 1750 strap @ 2125mhz, I get same FPS as 2000 strap on 2200mhz and no errors, maybe 1 or 2 in hours and hours.

so you basically should experiment with different timings, go to main polaris bios editing thread, check timings in the 1st post.
also download OCLmembench from 1st post so you can benchmark the bandwitdh. (if 64bit fails, try 32bit version, that is odd but works for me)

If you do not have a second bios on your card or a UPS, I wouldn't risk flashing too many bioses, a power shortage might ruin your day.
anyway go to that thread and try timings in 1st post, if they make it worst for you just slap 1750 strap on 2000 and run at 2100, you should get better performance than 2150 @2000strap anyway.
Good luck.


----------



## hellm

u can also try the UberMix 3.1 (or 2.3) timings. u can't oc that high, but it is already much faster at 2000MHz. i use them, never got a problem with them. Polaris Bios thread page1, linked it in post#1.


----------



## soxfor

Quote:


> Originally Posted by *MixedC*
> 
> if I knew they didn't fix Gaming X I wouldn't be pissed off and go ask for an update, but I am actually pissed off right now becaues they knew about it but didn't put a simple bios update for non-x version.
> 
> I wonder if they have updated even cheaper Armor and Armor OC, they are better known than Non-x version.
> 
> Edit:
> Yep checked more than 5 bioses from TPU all have 0F but there are updated versions for other cards.
> 
> Anyway, this is slightly going off-topic


Quote:


> Originally Posted by *hellm*
> 
> whatever, it's my thread, so...
> 
> 
> 
> 
> 
> 
> 
> 
> 
> i would definitely contact msi support. just write an email, there has to be some way u can get in contact with them. tell them about those spikes and ask for a BIOS-update. let's see what they have to say about that.
> 
> u tried this?
> https://us.msi.com/Graphics-card/support/Radeon-RX-480-GAMING-8G.html#down-utility
> msi update tool?


I have the Gaming X SKU and while on the .153 BIOS no new updates show up on the live update utility. So all available BIOS are using the 0F.

Also having the same issue as you @MixedC with the voltage spiking upwards to 1.35 volts.. no bueno.

@hellm, could you share that BIOS provided by an user? Is it also the .153 or .154+?

-- edit --
The 1.002 from post#2 also has the 0F , "0F B6 03 00 00 E8 03 40 0D 03"

Since I'm pretty much a noob in hex, couple sort of offtopic questions:

Being 0xf the pointer in dec 15, 0xb the pointer would be 11 , hence going backwards on the list i should be reading them 0x3cf 975mv (15), 0x47e 1150mv (14), 0x44c 1100mv (13), 0x41a 1050mv (12), 0x3e8 1000mv(11)?
Is this sort of correct?


----------



## MixedC

Quote:


> Originally Posted by *soxfor*
> 
> I have the Gaming X SKU and while on the .153 BIOS no new updates show up on the live update utility. So all available BIOS are using the 0F.
> 
> Also having the same issue as you @MixedC with the voltage spiking upwards to 1.35 volts.. no bueno.
> 
> @hellm, could you share that BIOS provided by an user? Is it also the .153 or .154+?
> 
> -- edit --
> The 1.002 from post#2 also has the 0F , "0F B6 03 00 00 E8 03 40 0D 03"
> 
> Since I'm pretty much a noob in hex, couple sort of offtopic questions:
> 
> Being 0xf the pointer in dec 15, 0xb the pointer would be 11 , hence going backwards on the list i should be reading them 0x3cf 975mv (15), 0x47e 1150mv (14), 0x44c 1100mv (13), 0x41a 1050mv (12), 0x3e8 1000mv(11)?
> Is this sort of correct?


You can flash 580 bios and it'll be fine, but I guess you want to keep rx480, hellm will probably provide that bios to you when he is online.
*The spikes to 1.35V+ still happen on RX580 bios tho with fixed values, when card starts hitting power target and thorthles (by default it does)*
Undervolting or increasing power target fixes it, but occasionally they happen once or twice in a week, well way better than it used to be sitll I don't like what I am seeing but at least it doesn't spike if not throttling.

(spikes happen say, if GPU goes under heavy load but one of a sudden you remove the load, voltage overshoots, this is normal but 1.37V is too high I think.)
so normally it doesnt happen


----------



## soxfor

Thanks @MixedC. Yeah I've tried the 580 BIOS but since I was losing a couple of fps I went back to the 480 bios.

I didn't try the original conversion, it was the one from post#1.

From your testing should changing the pointer to 0B have any effect on the spikes?


----------



## MixedC

Quote:


> Originally Posted by *soxfor*
> 
> Thanks @MixedC. Yeah I've tried the 580 BIOS but since I was losing a couple of fps I went back to the 480 bios.
> 
> I didn't try the original conversion, it was the one from post#1.
> 
> From your testing should changing the pointer to 0B have any effect on the spikes?


I didn't test, but it is what hellm found.

BTW, I have tested several times RX580 bios from *post#1* gives exact same FPS @ exact same gpu/memory speeds. You shouldn't lose performance and you won't









Just flash it. If you'll have to RMA flash back your original bios.







You'll also get benefit of steady clocks and voltages while playing videos and browsing the internet. (0.750v)
Let alone that stops voltage spikes, because while watching videos it also spiked a lot in some video players (html5/flash).

I am running 1150MV 1350mhz, I was initially able to hit 1410 @ 1175mv but my card degraded quite dramatically in 5 months, reason unknown. My be spikes under load.
They were really frequent.

*While posting this, I mean right now,* it spiked 1.373v it shouldn't have (because I know how it behaves now it was odd anyway it happened) so I am not sure why, but as you see it still happens. Shouldn't be a big problem tho as long as it is not under load and voltage is not enough high to kill it.
(there is a point where even without load, the voltage will kill it).
With old bios, It was spiking quite often under load, it was concerning me a lot, what happened now is meh still not good but fine.
as I said happens once or twice a week.


----------



## hellm

sorry, have not really timne right now. what BIOS should i share?

since the last UEFI update, i have much more fps with the 580 Bios.. was a little different before 17.8.2, i don't know when this happend. but i have 15k graphics score with only 1388MHz know







.. and 3.1 timings










back to the spikes, my hwinfo never reported any issue. are u using afterburner at the same time? maybe this is some software issue? i think you can use gpu-z with 0.1sec update rate, that should also report any spikes.

and yes, good chance that in a 480 Bios 0B will make things better. you can also test this with a SoftPowerPlay registry binary.


----------



## MixedC

Nope HWinfo alone or GPU-Z alone or Afterburner Alone or Trixx, all will report that spikes, tested.
He wants you to upload 480 gaming x bios with 0B.

btw why would UEFI effect FPS really? It might be 17.8.2 because apperantly it has some improvements.

Spikes with 580 bios isn't as easy to replicate, I tried for almost 30 minutes to make it spike while watching videos, it didn't spike, so it is really rare.

you have to make it throttle under load to get spikes happen. It is the easiest way.
Otherwise it is really so rare but still happens.

as long as it isn't hitting power limit, it doesn't spike underload.

BTW your card does 1380 @ 1175mv? Exactly same lol.


----------



## hellm

yes, i don't think it was the UEFI, but, i used 1.60 with the 580s before, and those came with 1.61; now it is 1.63..

the 580s benefit from driver improvements, the 480s do not.

http://www.overclock.net/t/1609782/watttool-a-simple-tool-that-combines-overclocking-with-vrm-monitoring-tweaking-for-rx-400-series/240#post_25834851
^^try this to change the pointer..

..a gaming X 480 Bios with 0B, ok, the newest i got also has 0F.. ..was just a thougt; and still could make things better.

maybe someone should tell some manufacturer support about those spikes, they might have more insight..


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> yes, i don't think it was the UEFI, but, i used 1.60 with the 580s before, and those came with 1.61; now it is 1.63..
> 
> the 580s benefit from driver improvements, the 480s do not.
> 
> http://www.overclock.net/t/1609782/watttool-a-simple-tool-that-combines-overclocking-with-vrm-monitoring-tweaking-for-rx-400-series/240#post_25834851
> ^^try this to change the pointer..
> 
> ..a gaming X 480 Bios with 0B, ok, the newest i got also has 0F.. ..was just a thougt; and still could make things better.
> 
> maybe someone should tell some manufacturer support about those spikes, they might have more insight..


I am flashing new version from post#1 with ubermix latest right now, I tried ubermix before and lost FPS. I'll give a second try.
Will report back later. I am on 17.7.1.

The spikes are LLC overshooting voltage when gpu starts frequent switches between high and low clock states.
Can it actually might disappear with a different GPUs VRM configration with same IR controller? I don't know







The other components are way different than other cards besides controller.









Flash is complete btw, I gonna restart wish me luck

edit:
Done. Now I'll see what I get with ubermix again.
Wow, yeah is already higher than 2200mhz @ 2000 strap or [email protected] 1750 strap with no Errors @ 2000mhz.
I'll check for FPS soon.

edit2:
Indeed *Bandwidth is higher but FPS is LOWER* just like previous time. Ubermix might not be good for gaming I guess.
Lost 3 FPS just like before compared to 2000 strap and lost 4 compared to 1750 Strap.
*I can use ubermix @2000mhz and it gives 10GB/S more 227~~ GB(S than 1750 strap actually, but FPS is lower in 3D applications I have tested.*

Try and see it yourself. Unigine Valley is not really consistent but with 3 runs and taking average should do.
I am using PUBG's main menu, it is really consistent at giving exact same FPS everytime and Using Valley to double check.

1 Last thing I have to try, hibernate and wake up.
Last Update:
Yes, after hibernating and waking up now Ubermix gives higher FPS (+2 oer 2000, +1 over 1750 strap) as it should. Apperantly I had to hibernate and wake-up








*How high of a IMC voltage is safe enough? Guess 1050 should be quite fine.* I can get it stable at 2050 with more IMC voltage, so I need to know.


----------



## hellm

well i disabled hibernate









never lost FPS with 3.1 or 2.3, quite the opposite, with valley or superpos or any 3dmark..

if higher IMC voltage does anything to you, keep it. i tried once to get rid of 2-3 meme errors over time, didn't do the trick.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> well i disabled hibernate
> 
> 
> 
> 
> 
> 
> 
> 
> 
> never lost FPS with 3.1 or 2.3, quite the opposite, with valley or superpos or any 3dmark..
> 
> if higher IMC voltage does anything to you, keep it. i tried once to get rid of 2-3 meme errors over time, didn't do the trick.


Well last time I tried, it got rid of errors, this time it didn't









anyway ı got it 0 errors at 2020mhz, it starts throwing them like 4-5 each second even at 2025. I remember being stable at 2050mhz with higher IMC, I guess I copied wrong strap last time I tried or something esle happened, I still have the old one, I can open with PBE and check but meh, anyway







.

I am not going to say no for 10 more GB/S and 2 more FPS







, some people report 2100mhz with ubermix it should be amazing 

I am going easy on this gpu now after many tries and thinking.
Running [email protected] (-25 under load)

@soxfor
Well you are lucky







Mine was able to hit 1400 @ 1150mv(unger load), but *well it WAS xD* still don't know why it has degraded so fast.
It was also able to hold 1360-1350-1340 @1.096V (stock load voltage). As you see it degraded down from 1360. Now It cannot do 1340 after 2 months of 1340.
I hope it will stop at some point









Here flash this one if you are going to:
*MSI Gaming X RX480 -> 580 with Ubermix v3.1* (based on hellm's msi480-580.1.0010.rom.zip) *Samsung 8GB with IR Controller Only*

new580ubermix.zip 108k .zip file


*In case, if you have msi AB or something else settings your memory clock high, reset your overclocks, Ubermix might make you crash.*
*Everything hellm warned about in 1ST post still applies, turn off monitoring software and such and as always do it at your own risk







*


----------



## soxfor

@hellm, yeah if the one you got for the RX480 had the 0B from manuf. I was asking if you could share it







But since it's also 0F, no point in that. Ty anyway!
I also saw improved performance on test#1 of 3DMark Fire Strike on the 17.8.2 (~74fps @ 1380/2100) but rolledback the driver because of non-sticking manual voltage in Wattman.

@MixedC, I might give it a go (flashing BIOS from post #1) again and check.

Just for reference since you guys were sharing







, mine did 1380 on the few weeks after receiving it at 1110mv (stock is 1303 @ 1090mv), with 1137 set in Wattman on most games it hovers around the 1.111v sometimes going for the 1.137~1.138v.


----------



## MixedC

Quote:


> Originally Posted by *soxfor*
> 
> @hellm, yeah if the one you got for the RX480 had the 0B from manuf. I was asking if you could share it
> 
> 
> 
> 
> 
> 
> 
> But since it's also 0F, no point in that. Ty anyway!
> I also saw improved performance on test#1 of 3DMark Fire Strike on the 17.8.2 (~74fps @ 1380/2100) but rolledback the driver because of non-sticking manual voltage in Wattman.
> 
> @MixedC, I might give it a go (flashing BIOS from post #1) again and check.
> 
> Just for reference since you guys were sharing
> 
> 
> 
> 
> 
> 
> 
> , mine did 1380 on the few weeks after receiving it at 1110mv (stock is 1303 @ 1090mv), with 1137 set in Wattman on most games it hovers around the 1.111v sometimes going for the 1.137~1.138v.


I updated my previous post for you


----------



## MixedC

@hellm found something new,
While watching twitch Memory Clock jumps between 300mhz and 1000mhz, gpu clock stays 300mhz.
When Memory hits 1000mhz, GPU Voltage jumps to 1150mv, this might be the culprit of that "rare" spikes.
(you asked if anyone have seen that 1000mhz as far as I remember







it also stays at 1000 in Rainbow Six Siege Menu)

Can we change voltage of 1000mhz memory and prevent it going up to 1150mv?
or all 2D clocks and voltages are Driver controlled?

it goes 800mv-1150mv back and forth, and memory goes 300-1000 back and forth.
*I have no spikes right now*, I would have with RX480 tho, rx480 would act the same and boost up to 2000mhz and spikes would occur over 1150mv..
I am just asking if I can change this behaviour or not.

edit:
Lol I can kind of workaround it this way:
Set 1200MV in Wattman, give -50mv offset from Trixx so I can keep it at 1150mv like I would but have spikes only upto 1100mv








and everythign else is the same as they should.

Down side of this is, I cannot set voltages higher than 1200mv, I should set voltage to 1250mv and give -50mv, so I get 1200 I want and also get 1100MV while video playback.

Actually if I could set voltage in Wattman to 1300MV and give -150MV offset (which trixx can) I could endup @ 1125mv under load (like now) and 1000MV while watching videos and memory hits 1000mhz.

The more I play with GPU, the more I learn about its weird behaviours.
so can I get 1300mv voltage limit somehow so I can accomplish this?
Lol this GPU is so funny, like should it be this weird and strange in the first place?








Cmon, what was wrong with OLD way? like say 7970 Way of handling clocks and voltages?


----------



## hellm

definitely not here


Spoiler: gpu/mem states



Code:



Code:


typedef struct _PolarisCoreClkDepRecord
{
        uint8_t VDDC;
        int16_t VDDCOffset;
        uint32_t CoreClk;
        uint16_t EDCCurrent;
        uint8_t ReliabilityTemperature;
        uint8_t CKSOffsetAndDisable;                    // bits 0-6: volt offset, 7: enable/disable
        int32_t SClkOffset;                                             // Polaris only!
} PolarisCoreClkDepRecord;

typedef struct _PolarisCoreClkDepTable
{
        uint8_t RevisionID;
        uint8_t NumEntries;
        PolarisCoreClkDepRecord Entries[1];
} PolarisCoreClkDepTable;

Code:



Code:


typedef struct _PolarisMemClkDepRecord
{
        uint8_t VDDC;
        uint16_t VDDCI;
        int16_t VDDCGFXOffset;
        uint16_t MVDD;
        uint32_t MemClk;
        uint16_t Reserved;
} PolarisMemClkDepRecord;

typedef struct _PolarisMemClkDepTable
{
        uint8_t RevisionID;
        uint8_t NumEntries;

        PolarisMemClkDepRecord Entries[1];
} PolarisMemClkDepTable;





maybe here?

Code:



Code:


typedef struct _PolarisMMDepRecord
{
        uint8_t VDDC;
        int16_t VDDCGFXOffset;  // Offset relative to VDDC
        uint32_t DClk;                  // UVD D-clock
        uint32_t VClk;                  // UVD V-clock
        uint32_t EClk;                  // VCE clock
        uint32_t AClk;                  // ACP clock?
        uint32_t SAMUClk;
} PolarisMMDepRecord;

typedef struct _PolarisMMDepTable
{
        uint8_t RevisionID;
        uint8_t NumEntries;
        PolarisMMDepRecord Entries[1];
} PolarisMMDepTable;

i don't think changing that would do any good


Spoiler: vce



Code:



Code:


typedef struct _PolarisVCEStateRecord
{
        uint8_t VCEClockIdx;            // References MM dep table, the VCEDependencyTableOffset value
        uint8_t Flag;                           // 2 bits indicates memory p-states?
        uint8_t SCLKIdx;
        uint8_t MCLKIdx;
} PolarisVCEStateRecord;

typedef struct _PolarisVCEStateTable
{
        uint8_t RevisionID;
        uint8_t NumEntries;
        PolarisVCEStateRecord Entries[1];
} PolarisVCEStateTable;





to find those subtables:


Spoiler: PowerPlay header



Code:



Code:


typedef struct _PPTableHeader
{
        AtomBIOSCommonTableHeader CommonTblHdr;                 // Offset: 0x00

        uint8_t DataRevision;                                                   // Offset: 0x04
        uint16_t DataSize;                                                              // Offset: 0x05

        uint32_t GoldenPPID;                                                    // Offset: 0x07
        uint32_t GoldenRevision;                                                // Offset: 0x0B
        uint16_t FormatID;                                                              // Offset: 0x0F

        uint16_t VoltageTimeInus;                                               // Offset: 0x11
        uint32_t PlatformCapabilities;                                  // Offset: 0x13

        uint32_t MaxODCoreClk;                                                  // Offset: 0x17
        uint32_t MaxODMemClk;                                                   // Offset: 0x1A
        uint16_t PowerControlLimit;                                             // Offset: 0x1E
        uint16_t UlvVoltageOffset;                                              // Offset: 0x20

        // Table locations (offsets)
        uint16_t StateArrayOffset;                                              // Offset: 0x22
        uint16_t FanTableOffset;                                                // Offset: 0x24
        uint16_t ThermalControlOffset;                                  // Offset: 0x26
        uint16_t Reserved0;                                                             // Offset: 0x28
        uint16_t MemClkDepTableOffset;                                  // Offset: 0x2A
        uint16_t CoreClkDepTableOffset;
        uint16_t VDDCLookupTableOffset;
        uint16_t VDDCGFXLookupTableOffset;
        uint16_t MMDependencyTableOffset;
        uint16_t VCEStateTableOffset;
        uint16_t PPMTableOffset;
        uint16_t PowerTuneTableOffset;
        uint16_t HardLimitTableOffset;
        uint16_t PCIETableOffset;
        uint16_t GPIOTableOffset;
        uint16_t Reserved1[6];
} PPTableHeader;





if we find something with gpu state 0, mem state 1 and 1150mV...


----------



## MixedC

I will first try to understand what is going on there better, then I might try to find something with gpu state 0 and mem state 1









edit:
Ah, now I understand what I am looking at. I'll tell you if I find anything, reading the whole thing from github right now.

MemClkDepTableOffset;

might be related, I am not really good at this tho







.

because what about

Code:



Code:


typedef struct _PolarisMemClkDepRecord
{
        uint8_t VDDC;
        uint16_t VDDCI;
        int16_t VDDCGFXOffset;
        uint16_t MVDD;
        uint32_t MemClk;
        uint16_t Reserved;
} PolarisMemClkDepRecord;

if it is not all driver controlled, it is going to look at some Voltage table after all and that is also what you find at first.

BTW after noticing that 800-1150mv back and forth changes, since then I am watching twitch so been some hours by now, and no spikes.
So I guess either this wasn't the trigger (for 580 bios, it definately does it with 480 I know) or it is damn rare









I know another trigger on 580 bios, mentioned earlier, by default with 580 bios Card under load
goes between 1340-1300mhz hitting power limit (by about 5W) and back-forth-back-forth eventually it spikes to 1350+mv.

Fix is easy, up the power limit. You can also undervolt.
So this is not a big deal, fix is easy.

so I am going after this spike thing just because I am curious now, it is not really a problem with 580 bios.
I guess same applies to you @hellm


----------



## hellm

since there is no register info in the Voltage Object Info table in the MSI Gaming X vanilla bios, i had a look at i2c dumps.
0x33 = OVP threshold is 79
try and use vrmtool to set this register to 72. this is what caused spikes with the vanilla Aorus bios on a reference card.

if this works i will add it to the voi table.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> since there is no register info in the Voltage Object Info table in the MSI Gaming X vanilla bios, i had a look at i2c dumps.
> 0x33 = OVP threshold is 79
> try and use vrmtool to set this register to 72. this is what caused spikes with the vanilla Aorus bios on a reference card.
> 
> if this works i will add it to the voi table.


I have to go back to RX480 bios to give it a proper test, but I'll trigger the voltage spikes the way I mentioned with and without it and see what happens.
Will report when I am done.

Why would you keep over voltage protection higher if it is possible to keep it lower anyway? Not asking to you, just asking.

I am trying to get them spikes up right now, nothing as of yet. They are really harder to reproduce with 580 bios.

Update:
Okay I got those spikes now







, I had to edit voltages in wattman to get them going. But they happen even when all set default, I remember it. It was just easier this way.

Currently spiked twice over 1.35v in 1 minute and stopped. I'll get a better understanding of it, change OVP and try again.
So I have to give each run at least 5 mins and do each at least 3 times. Here it goes 3rd spike over 1.3v and 4th spike, under full load it is actually really bad for my GPU







VRM is hotter and spikes are more frequent now VRM at 86C


----------



## hellm

Quote:


> 0x33 = OVP threshold, bits [7:5] 0=150mV 1=200mV 2=250mV 3=325mV 4=350mV 5=375mV 6=400mV 7=500mV. Loop 1 per-phase OCP threshold, bits [4:0] is, 2A/code


i think 79 is even lower?

wouldn't recommend to tamper with the 7, cause it is related to switching freq and mosfets and what not?

i have no idea, just repeated what i am told. still have no spikes with my ref card. not that i noticed...


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> i think 79 is even lower?
> 
> wouldn't recommend to tamper with the 7, cause it is related to switching freq and mosfets and what not?
> 
> i have no idea, just repeated what i am told. still have no spikes with my ref card. not that i noticed...


Yeah I stopped after it spiked 10 times in 2 minutes. Basically if I don't raise power limit and let it go through bunch of P-States, it keeps spiking.
Spikes used to happen with RX480 while browsing internet because it kept going through P-States while watching video.

so the underlaying cause is still there I think, it just doesnt show often anymore because p-states are more stable and smooth now.


----------



## MixedC

Well,
I had a small heart-attack.
GPU was under load, just running a game in the background. (just normal, I wasn't even testing for spikes)
VRMTool was running, i clicked scan I2C bus and read I2Cdevice just to see. Nothing it was running fine.

My GPU shut itself down like driver crash but it doesnt recovers it happens time to time, I restarted like usual.
Well, PC didn't boot from my GPU, instead it booted from iGPU (connected to 2nd screen), a small heartattack,
a proper shut down, power up again restart and working









Don't do this to me GPU, you gonna kill me









I would say it overheated but it wouldn't, was just running 1125mv with stock fan profile, like usual. VRMs were 90C ish.
and it didnt come back after restart, fishy.
I still don't know why it shut down, but well was scary.

BTW *ignore my PM*, I found the other thread where you got the info from and read it.








*
Update:
About OVP*

so 74h is 01110010
and 79h is 01111001

(I have read the other thread)

bits 5 to 7 represents OVP so 011 for both.
011 converts to 3 so, according to that table +325mv

Apperantly bits 0 to 4 are related to over current protection.
so without changing "7", the 011 cannot be changed.
Quote:


> AFAIK OVP is relative to VID, so for example say GPU is requesting VID of 1.3V then IR3567B will allow a swing up of +325mV = 1.3325V, if I was meddling with LLC/slope I'd probably lower OVP to keep overshoot in control if you get what I mean.


(gupsterg)

Isn't this calculation wrong? Am I missing something?
1.3v -> 1300mv+325mv ->1.625mv too much, he might have done a typo but well.
so with polaris 1150mv+325mv -> 1475mv? too much again.

But indeed I want to lover the OVP








I think for now it is best for anyone with Gaming / Gaming X with spiking problem to flash the 580 bios and set their Power limit High Enough, so they don't throttle and trigger the spikes. When VRM reached 90C, it started to go 1.37v almost once every 10-20 seconds under 100% load.

I would run 1.35v for benching only, not that of a big deal but in long term, it might be.


----------



## hellm

well, i have it under water, and my ref doesn't throttle. so that might be one reason i don't see any spikes?

the IR3567B only delivers 1.55V max, not relevant, i know..

yes, why wouldn't it boot, i don't have an answer. what psu are u using?

right know i would say "observe". i don't have an answer to this problem. still would be interesting to hear what msi would have to say to this.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> well, i have it under water, and my ref doesn't throttle. so that might be one reason i don't see any spikes?
> 
> the IR3567B only delivers 1.55V max, not relevant, i know..
> 
> yes, why wouldn't it boot, i don't have an answer. what psu are u using?
> 
> right know i would say "observe". i don't have an answer to this problem. still would be interesting to hear what msi would have to say to this.


Throttling is about Chip power reading (as far as I observed), so it hits 185W by default on 580 bios, and it is set to 180W in bios.
How is yours doing? Being cold enough might help like 5-10 Watts maybe?
Have you ever checked your chip power under heavy load?
I checked again and my average is 185W under load at 1200mv(1175mv under load). My power limit is set to 25% but well 5% would be enough.
Running 1390mhz, it is about 190W, rarely throttles with 10%, so setting to 20% is more than fine.
I think I can drop IMC voltage to 950mv, should even lower it. (edit: well it doesn't change anything)

My psu is actually an overkill one







, it is Evga Supernova 850G2.
My PC Boot, the GPU didn't, and I got the post screen on my 2nd monitor which is connected to iGPU.
Then I shut it down completely and power on again, and seeing that red led on my monitor turn White was really reliefing









GPU was underload but I was done testing, so It wasn't spiking or I didn't pass any values to it from VRMTool before making sure.
so it was operating just like normal at 1125mv.

I guess it has something to do with VRMTool and me clicking read couple of times and also clicking scan, I don't know.
Screen goes black, I restart, boots from iGPU, I shut down and power on again, works.
These are bad signs









Only other thing can be overheating, if it have overheated it wouldn't boot when I restart.
The thing is I waited enough long between restart and black screen (like 10-20 secs) so it would have been cooled enough down to at least boot.
so I don't think it was overheating and it shouldn't anyway @ 1125mv (I am sure it was running 1125mv)

and the last possible thing, After flashing bios, I did a normal Restart, didn't power PC down. Might be related to that.
but as I said not good signs, I remember my previous GPU (280x) and these are not good signs


----------



## hellm

yeah, the supernova should be good enough. very stable voltages, have one myself: G3 550W









with all the copper in the gpu, lower temps do way more than 5-10W. i don't have numbers, sry, but it is a lot more









maybe it is the driver? wattman? try and edit Vcore like in post#3


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> yeah, the supernova should be good enough. very stable voltages, have one myself: G3 550W
> 
> 
> 
> 
> 
> 
> 
> 
> 
> with all the copper in the gpu, lower temps do way more than 5-10W. i don't have numbers, sry, but it is a lot more
> 
> 
> 
> 
> 
> 
> 
> 
> 
> maybe it is the driver? wattman? try and edit Vcore like in post#3


Superflower's Leadex Platform is nice







and you know what? 850 G2 was actually cheaper when I bought it compared to other rather crappy to Okay ones







guess not many really pays attention to ther PSU and they get away with printing 850W GOLD and overpricing it.
Quote:


> maybe it is the driver? wattman? try and edit Vcore like in post#3


Are you refering to my boot problem? It was 1 time thing, that was why it freaked me out.
Happened like 5 minutes after I have messed with VRMTool (only read, didn't write anything tho). So I am quite sure it was some odd bug happened.


----------



## MixedC

Something weird is going on,
After messing with firefox enabling, disabling HWacceleration.
I didn't touch the GPU at all but now listen this,

Memory still goes back and forth between 300mhz and 1000mhz as usual.
Voltages doesn't exceed 800mv anymore.

Watching exactly same stream on twitch running exactly same tabs.
I'll let it loose, this is so weird.

Like I am still using twitch, still viewing [email protected] same stream, still using HWacceleration, it still goes back and forth between memory speeds but voltage is stable this time.

It kind of has its own mind








so somehow it wasn't related to Memory Clocks then? anyway case closed.
because somehow it is fixed and I cannot break it -_-"
so say I got windows reinstalled, I don't know what to do








I hate, I really hate obscurities.


----------



## soxfor

Hey guys.

So I tested with the original conversion .0002 for the msi rx 480 and changed it to the 0B pointer.

While the voltage seemed more stable (played around ~1h30 Dirt 4 and also ran FireStrike before) but launching any hardware accelerated video I was getting total system freeze/lockup, so I went ahead and flashed your modded one without the 0B pointer (default 0F) and also got the total system freeze/lockup.

Back to RX 480 bios I am. lol









@MixedC, oh I know about the UberMix and resetting the OC, I've tested them when drivers didnt need patching









@hellm, what would I need to change in your IR controller only modded BIOSes to have the original fan behavior on this card? Remember testing that BIOS (the .0009) and fan was always spun-up.

Might give that a try and see what behavior I get on accelerated video content.


----------



## hellm

If you have problems with the gaming X bios, i mean like freezes, and you had a different fan setting (it is a 1:1 copy in the conversion), i believe u have a different card..
besides that, the fan table is fully described in post#3


----------



## MixedC

Quote:


> Originally Posted by *soxfor*
> 
> Hey guys.
> 
> So I tested with the original conversion .0002 for the msi rx 480 and changed it to the 0B pointer.
> 
> While the voltage seemed more stable (played around ~1h30 Dirt 4 and also ran FireStrike before) but launching any hardware accelerated video I was getting total system freeze/lockup, so I went ahead and flashed your modded one without the 0B pointer (default 0F) and also got the total system freeze/lockup.
> 
> Back to RX 480 bios I am. lol
> 
> 
> 
> 
> 
> 
> 
> 
> 
> @MixedC, oh I know about the UberMix and resetting the OC, I've tested them when drivers didnt need patching
> 
> 
> 
> 
> 
> 
> 
> 
> 
> @hellm, what would I need to change in your IR controller only modded BIOSes to have the original fan behavior on this card? Remember testing that BIOS (the .0009) and fan was always spun-up.
> 
> Might give that a try and see what behavior I get on accelerated video content.


Okay to clear everything up for you,
The bios in 1ST post is all fine.
My fans doesn't spin up before 60C, just like rx480 bios.
I hit exact same clocks at exact same voltages, just like RX480 bios.
It is better when idle and also under load, more stable voltages and no spiking, no crashing etc.
I don't know what you have flashed previously but, Fans go to 0RPM with my card, and I actually set custom profiles to spin them at 50C instead of 60C









You have gone ahead and flashed twice but didn't try the one from 1ST post or the one I shared? (same as 1st post with ubermix)
Can you check which voltage controller your card actually has with VRMTool, if it has IR controller it gonna show the name of it in the little command box.

Only other thing that can explain your lock-ups while playing videos is this and this is most likely, if you have IR controller.
750mv-800mv isn't enough for your GPU for video playback (actually I can't believe it is not).
You can do this,
set voltages for last 3 p-states to 1150MV from Wattman, open trixx and set +50mv offset, so you get 1200mv default voltage again.
You can also use wattool to apply offset voltage, trixx is easier. *One thing in trixx, you have to change gpu clock once like 1mhz to get offset applies.*
(if offsett voltage in trixx is broken showing something like 372999, move it to 0, apply, restart trixx, fixed)

You have flashed original conversions so you didn't have 1000mhz step (correct me if I am wrong @hellm), so I have read a guy had problems with 1000mhz but it cannot be the case for you.

Long story short,
Download VRMTool, check if your card has IR controller, (few pages back I have uploaded a picture of it)
if No, report back, if yes (IR Controller).

1-Reset all your overclocks and make sure your mem is 2000mhz, flash the one I shared with ubermix, check if you get any memory errors.

*if you get memory errors @2000mhz, flash the one from 1st post* and test your gpu.

*if your card crash again* try what I've mentioned above, set 1150MV in wattman and give +50mv offset by the tool of your choice and test again.
if it works after you put +50mv offset, we can put it into a bios and you can flash it


----------



## hellm

new gpuz 2.3.0 and the gpu and memory load is now working. i believe that was also changed with 17.7.2 and hwinfo also shows correct GPU utilization.


----------



## PPBottle

Quote:


> Originally Posted by *hellm*
> 
> too tired to answer that in detail, i think mynm solved that and i allowed myself do add vddci. and i think i was right; but it is the pointer, the value for vddci is also found in the bios, it is right next to the pointer:
> means 950mV.. ok let's have a closer look:
> 
> Code:
> 
> 
> 
> Code:
> 
> 
> typedef struct _PolarisMemClkDepRecord
> {
> uint8_t VDDC;
> uint16_t VDDCI;
> int16_t VDDCGFXOffset;
> uint16_t MVDD;
> uint32_t MemClk;
> uint16_t Reserved;
> }
> 
> Code:
> 
> 
> 
> Code:
> 
> 
> 0C B6 03 00 00 E8 03 40 0D 03 00 00 00
> 
> 0C - > "The Pointer" is VDDC, cause it actually points to a VDDC voltage, but it's IMC/VDDCI cap something..
> B6 03 -> VDDCI (950mV)
> 00 00 -> VDDCGFXOffset
> E8 03 -> MVDD (1000mV) this is the value PBE reads as mem voltage..
> 40 0D 03 00-> MemClk (2000MHz x100)
> 00 00 -> Reserved
> 
> this is the same for all 580 and 480 BIOS, only VDDC voltage table has changed, so 0C means 1000mV for the 580 BIOS and 1050mV in a 480 version. ok, that was some detail
> 
> 
> 
> 
> 
> 
> 
> 
> 
> no one ever experimented with that. would be happy for some data.
> 
> 
> 
> 
> 
> 
> 
> 
> someone tried in another thread. didn't went that well..


Sorry if it has been a long time after your reply to my post in this thread, but I wanted to make an update to what I have found with this particular GPU (XFX 470 single fan) BIOS, considering your information and how it behaves in my testing with VDCCI:

- The actual string for my PolarisMemClkDepRecord is as follows and it is located in the 9E50 offset (in case you want to add this info to the first post, I know this particular model is kind of garbage but who knows if will be useful to someone lol):

0B 84 03 00 00 E8 03 98 AB 02 00 00 00

VDDC pointer thingy: 0B -> 950mv
VDDCI: 84 03 ---> 900mv
VDDCGFXOffset 00 00
MVDD : E8 03 -> 1000mv
MemClk: 98 AB 02 00 -> 1750x100
Unused 00 00

From what I gather, VDDCI is on point to what the real VDDCI is while at P0 memory (1750mhz), but there are some caveats:

- On P1 memory (300mhz) there is another VDDCI value (850mv real)
- When you overclock the core and you go to 1150mv, VDDCI goes to 950mv

I could test beyond 1150v on core but I need to take the necessary precautions because this GPU has really poor VRM (max 128A @ 100c) and I dont even have a software VRM temp sensor.

I will try to add 25mv steps and see how it behaves, but I have an hypothesis already and it is that VDDC pointer thingy can actually deviate from what wattman shows (I mean, it is obvious the moment wattman reads 1000mv for memory and my bios VDCC pointer is 0B/950mv) and probably this is some sort of cap of real VDDCI in overclocking scenarios (have yet to test it, if my VDDCI at 1175mv core goes to 975mv for example, this is rendered invalid).

But it is definitely progress in regards to knowing how the IMC area of Polaris works, my next step will be testing other voltages scenarios and see how OhGodATool modifies VDDCI and how it changes into actual Hex values.


----------



## PPBottle

Also I like to add that for example my Hynix Armor 570 4GB have 0A in the VDDC pointer value, and these GPUs come with a Wattman memory voltage default of 900mv. Cant really test the VDDCI without using a voltimeter ATM but will do so in the future. Also 3 of these GPUs seems to like 1950mhz on the memory a lot better than my other 470 nitro+ (0B VDDC pointer) and 480 dual (also 0B), all hynix.


----------



## hellm

thx for testing and your reply, +rep


----------



## PPBottle

Quote:


> Originally Posted by *hellm*
> 
> thx for testing and your reply, +rep


Sadly there is still a lot more to do.

As I have said on the other biosmod thread, im dealing with this OhGodATool, it lets you change the values you disclosed when fiddling with hex, but there are more to what meets the eye.

For example, in your first post, you show where to find this (usually) 950mv for vddci value so people can change it, but have you wondered where is the other vddci VIDs? Well, next to the 950mv one!

For example:



On this ASUS DUAL 480 4GB hynix BIOS pm 9E10 offset you can clearly see what you have found (950mv vddci pstate), but look on the line above (9E00) you have this string:

02 00 52 03 00 00 E8 03 30 75 00 00 00 00

From here we can deduct:

02 00 --> VDDC pointer=
52 03 --> VDDCI --> 850mv
00 00 --> vddc gfx offset
E8 03 --> MVDD --> 1000mv
30 75 00 00 --> mem clock --> 300x100
00 00 --> unused

Short version of the story: VDDCI is not an static value, I know there are some bios editing tools out there that modify it as an static value (doktor83's to name one), but there are more caveats to VDDCI:

- as OhGodATool points out, you have at least 2 VDDCI VIDs on 4xx or 3 on 5xx GPUs (one for each mem pstate)
- Each one has a VDDC pointer, but I think it is something else to what you have deducted: I think the VDDC pointer is a "minimum vcore" value that once exceeded, the VDDCI VID it is associated triggers (this would explain for example why going from 1100mv to 1150mv in my XFX 470 single fan makes the VDDCI go from 900mv to 950mv without touching anything VDDCI related)
- Oh GoodATool shows that these VDDC pointers refer most of the time to these 2values (using the ASUS 480 DUAL as an example):

Memory state 0:
VDDC: 800
VDDCI: 850
VDDC GFX offset: 0
MVDD: 1000
Memory clock: 300

Memory state 1:
VDDC: 65282
VDDCI: 900
VDDC GFX offset: 0
MVDD: 1000
Memory clock: 1750

This text extract comes straight from this tool, and I think what it did is just to "translate" the hex values we were looking to into actual information, most of it we did know but it is good to know how things work anyways.

So the "0B" on the string in the image attached above may refer to "minimum 800mv vcore" without knowing to what exactly points out, whereas the VDDC 65582 is an EVV value that is determined by the GPU.

What I can do to prove or disprove this is to go to my GPU, check what 65292 EVV vcore is, try setting it 6.25mv below and above it and see if VDDCI goes from 850mv to 900mv.

EDIT: Also thinking about this VDDC pointer thing, when I found all my 4xx cards that all had 0B at VDDCI for memory state 1 and only the 5xx ones had 0A for the same memory state (300mhz mem clock), my take is this is changed to reflect that the idle vcore for 5xx is 750mv and 800mv like it is on 4xx cards, so probably 0A references a VDDC of 750mv and 0B refers to 800mv VDDC

This is what it shows on my 570 4gb AFR ARMOR cards:

Memory state 0:
VDDC: 750
VDDCI: 800
VDDC GFX offset: 0
MVDD: 1000
Memory clock: 300

Memory state 1:
VDDC: 65282
VDDCI: 850
VDDC GFX offset: 0
MVDD: 1000
Memory clock: 1000

Memory state 2:
VDDC: 65283
VDDCI: 900
VDDC GFX offset: 0
MVDD: 1000
Memory clock: 1750

Here it shows that 65282 EVV would trigger VDDCI 850mv (have to test if it also triggers the corresponding clock associated with that pstate, but my gut tells me no as I have BF1 loading screens with P0 clock and idle memory clock and still the VDDCI used is the one for memory state 1 or 1750mhz in that particular GPU) associated with the 1000mhz memory clock introduced with 5xx for better accelerated video efficiency, while the 65283 one is saved for the VDDCI of 900mv.


----------



## hellm

i do know the memory states and where the vddc lookup table is; from my state of view i didn't care about other states than Pmax. And those VDDCI values are the same for 580 and 480 BIOS in the last memory state.
But there is more, not only VDDCLookup changed, also the MM dependency table.

Btw, after over a year AMD finally managed to fix the idle behaviour for the 480, almost flat 300MHz now, as the 580.


----------



## PPBottle

Quote:


> Originally Posted by *hellm*
> 
> i do know the memory states and where the vddc lookup table is; from my state of view i didn't care about other states than Pmax. And those VDDCI values are the same for 580 and 480 BIOS in the last memory state.
> But there is more, not only VDDCLookup changed, also the MM dependency table.
> 
> Btw, after over a year AMD finally managed to fix the idle behaviour for the 480, almost flat 300MHz now, as the 580.


Yeah I wasnt questioning your knowledge on this particular subject, more like trying to get to a common point regarding VDDCI "public knowledge" because as you can see, even if you see only 2 or 3 VDDCI VIDs corresponding each memory pstate (4xx/5xx series), there still this 50mv overvolt that happens when you cross certain VDDC threshhold, my bet it is 65288 EVV value (for my XFX card 1024mv, it would explain why it is 900mvVDDCI at user defined 1000mv VDDC for 1200mhz core and how it changes to 950mv as soon as i hit 1100mv VDDC for 1300mhz core clock).

If this overvolt happens regardless of what you set in the memory state 1 VDDCI, then it would be wise to at least refrain from setting that VDDCI over 1000mv as for example Buildzoid bricked his 480 GTR for good because he hardmodded it to 1100mv VDDCI, which is really high. 1000mv VDDCI + that 50mv that happens when you hit high VDDC values means 1050mv already.

Please let me know if you know more about where this overvolt could come from, probably it is even near the hex offset values we were discussing for memory states in the other posts. Also, if you had success editing the VDDC pointer to change what it looks in the VDDCLookup table, or if changing the VDDC from EVV values to user defined ones would also apply the change to the VDDCI "minimum VDDC voltage" that I discussed above.


----------



## hellm

There is the lack of info again. i don't know what MMDependency table exactly does, and i don't have info about the ASIC_Profiling table as well.

ASIC_ProfilingInfo; // New table name from R600, used to be called "ASIC_VDDCI_Info" for pre-R600

i know that the P-State voltages are somehow found there, also max and min voltage, but i don't have the time right now to look over it.


----------



## nolive721

@hellm,

if you remember me on the POLARIS thread mentioning that my red devil 480 would not go back to 300Mhz at idle on my triple monitor set-up if I was using modded BIOS (being 480 modded or 580 conversion)

Actually, I found the root cause and a fix somehow recently. When you set Eyefinity, a monitor has a little asterik in its left corner. If you apply your main display as the same than this one, boom, memory clock at idle stay stable at 300Mhz

it worked for me if that can help and being confirmed by others.


----------



## MixedC

There is something I want to report, I didnt really carea bout it much thinking it can be driver related but it started to happen after bios update.

When I disconnect the DVI-D cable, and reconnect. GPU crashes (probably whole system, power down button doesnt shut down normally so...), it works after a restart.
as long as I do not remove and re-plug DVI-D cable.

Can somebody else using bios from 1st post test and report back?
anyway I also upgraded drivers with bios update so I suspect it is driver related (17.7.1), so I'll update later when I update drivers.

edit:
forgat to add, it doesnt happen always, (I had to connect disconnect screens a lot, that is how I discovered it)







so Try Twice.
also happens when you windows+P and switch between mods enough. Whole system locks up.


----------



## hellm

Yes, the ports, i can't do anything about the second row of display ports, sorry. the 3x DP and 1x HDMI should work fine, though.

If anyone has trouble, i recommend the original conversion (post#2 / #3).


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> Yes, the ports, i can't do anything about the second row of display ports, sorry. the 3x DP and 1x HDMI should work fine, though.
> 
> If anyone has trouble, i recommend the original conversion (post#2 / #3).


it's not about that with mine, the output layout is same and all work (besides Display Ports, I cannot test them)







,
I think it is Driver related or something because it also happened switching between display mods (extended, duplicated) so neverming.


----------



## Michailov

Hi. Could you help me with edit my RX 480 to RX 580? I have XFX reference card but reference BIOS from #1 and #2 posts are not working on my GPU. When I flash some of them and run 3D application I got a black screen and must hard reset my PC. My BIOS:

48M8BFA1.zip 110k .zip file


It have strange memory state - 601MHz not 300 as other reference cards. I will be very grateful for any help.


----------



## hellm

Sorry, i am really up in work, no time..

Maybe someone could help u with post#3 and how the work has to be done. and i have room for some answers here and then..


----------



## Michailov

Thanks for you reply. I change VCore as describe at #3 and change power limits and memory timmings. But I have problem that on my dual monitor configuration I got a 1050 mV VDDC on IDLE. Maybe you or someone can help me what is going on? IT is definitly too much for rx480.


----------



## hellm

And you didn't had that much voltage in your original BIOS i assume. Well, let's go through it, you changed the max x100 mV value and maybe forgot about the x4 check value? made something different than a 25mV step? changed the voltage next to max x100? (Which would be the actual min voltage)


----------



## Michailov

I didn't forget about change X4 and do not made different than 25 mV. On original BIOS I have lower voltage as you say.


----------



## MixedC

Quote:


> Originally Posted by *Michailov*
> 
> Thanks for you reply. I change VCore as describe at #3 and change power limits and memory timmings. But I have problem that on my dual monitor configuration I got a 1050 mV VDDC on IDLE. Maybe you or someone can help me what is going on? IT is definitly too much for rx480.


I think I can help on that one







Not a bios level fix but your card does that because of memory controller voltage.
Go into radeon wattman and change memory voltage (it is actually cntroller voltage) to 975mv or 1000mv. Whatever you set there, it'll be the new core voltage when you are in idle.
Core voltage doesnt go below IMC voltage on polaris


----------



## Michailov

Ok. I will try this solutions. But could you tell me why there is no option to set IT properly on BIOS?


----------



## MixedC

Quote:


> Originally Posted by *Michailov*
> 
> Ok. I will try this solutions. But could you tell me why there is no option to set IT properly on BIOS?


There is, I am just not that good at it and don't want to tell something wrong to do to you








so someone who is sure what has to be changed will tell you what do change in bios, wait for hellm or go ask in polaris bios editing thread,
you'll probably will get an answer.


----------



## Michailov

Ok. So I will wait for hellm response.


----------



## hellm

i honestly don't know why your card doesn't clock the memory down. and because the max memstate, the Vcore has to be higher than that voltage we call imc.

my suggestion is to make changes step by step. if u only make the 480-580 switch, with no other mods, and it will show that 2000Mhz memory in idle, then this is a driver thing. i don't know how to get past that, but worry about that when we know. if i have more time, i will look into that weird 601MHz idle memory state, maybe it is because of that.


----------



## Michailov

I try only 480-580 switch and that is the same situation. I always remove driver by DDU after flash news BIOS do that couldnt be I thing a driver issue. I found that when I unplug second monitor the memory go down to 601 MHz but there is still a higher voltage 850mV instead of 800mV. I will be very grateful when you can take a look on IT.


----------



## MixedC

Do you by any chance run dual screens? or something like that?


----------



## Michailov

Yes on dual screen I have memory clock and voltage on 2000MHz/1050mV


----------



## MixedC

Quote:


> Originally Posted by *Michailov*
> 
> Yes on dual screen I have memory clock and voltage on 2000MHz/1050mV


When you run dual screen, your memory clock doesnt go below last state so 2000mhz, sorry for late answer I wasn't here.
You can windows+p when you dont use the 2nd display and disable from there

Or you have couple of things that can be done
if you have intel 3XXX series or higher (IVY or higher) you can connect other screen to iGPU, it'll still work in extended display mode but your ram will stay on lowest state.
The only downside I have come so far with this, rendering a game on 2nd display has about 15-20% performance hit, so don't let any 3D or 2D (video etc.) application run on the screen which is connected to iGPU while gaming.
for example, while using OBS (open broadaster software), when you put it in 2nd screen (iGPU connected) and enable preview mode, it lowers about 15% performance depending on ho big you
set the preview screen.

again you can use ctrl+p

or you can set 2D/3D profiles in MSI Afterburner (not recomended)

or you can (I do this one) lower your Memory Voltage (actualy IMC) from Wattool to something 925-950mhz and use it that way.
this way your Vcore will stay at whatever your IMC is set.

If you do not have to run a fullscreen preview of OBS on the 2nd screen like I have to and have intel IVY or higher, enable HD graphics and do 1st option. It is the best one.


----------



## Michailov

Thanks for you reply. I will try that solutions. I know that you dont have enought time do tell me is someone WHO can help me prepare a rx580 BIOS base on my original BIOS?


----------



## hellm

Yeah sorry, up in work, as i said.
Quote:


> repare a rx580 BIOS base on my original BIOS?


i thought you already have done that?

tell what u want to do, i will answer that questions from time to time.

first, min voltage should be 800mV on a 480. it is found next to the max Vcore (x100, no x4 value for min). Also the PowerPlay table has to be changed, because there might be other VDDC voltages in the VDDCLookup table.
https://github.com/OhGodACompany/OhGodATool/blob/master/ohgodatool-common.h

for the 2000MHz with the second monitor, i don't know how to fix this. we could add a 3rd mem state, that is possible, but it is not done by copy and paste. and there is no guarantee it will work.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> Yeah sorry, up in work, as i said.
> i thought you already have done that?
> 
> tell what u want to do, i will answer that questions from time to time.
> 
> first, min voltage should be 800mV on a 480. it is found next to the max Vcore (x100, no x4 value for min). Also the PowerPlay table has to be changed, because there might be other VDDC voltages in the VDDCLookup table.
> https://github.com/OhGodACompany/OhGodATool/blob/master/ohgodatool-common.h
> 
> for the 2000MHz with the second monitor, i don't know how to fix this. we could add a 3rd mem state, that is possible, but it is not done by copy and paste. and there is no guarantee it will work.


Mine also stays at 2000 mhz with 2 screens and it actually bugs me.
What is that 2nd Memory step used for AMD?







I would at least prefer it to stay at 1000mhz with 800mv IMC voltage.
so adding a memory step doesnt fix, but I would really love to have a better workaround than the ones I have listed.

I undervolted IMC to 925MV and using it that way all the time 2020mhz memory, I dont like it.


----------



## Michailov

I would like do something like you done at post #1 not post #2 and #3.


----------



## hellm

Then you have to know what kind of PWM voltage controller your card is using. Then you have to program this controller in the right way, to fit your card and the 580 voltages on a 580 Bios (ideally from a 580 with the same controller). after you edited the voltage object info table with that information, you have to adjust powerplay table as well. And don't forget about the memory.


----------



## MiladEd

I've discovered something rather... strange about my Gigabyte RX 480, which I've flashed to 580. On stock 480 voltages, I can OC up to 1370 MHz completely stable, 1380 MHz sorta stable, with some issues in DX12 games. On stock 580 voltages however, I can't pretty much OC at all, even 1360 is not really stable, with numerous glitches, even in non-demanding games like Civilization V. So, I undervolted to stock 480 voltages, and I can still OC like I used to. Haven't tried 1175 mv, but seems like my GPU just doesn't like 1200 mv. Isn't this odd?


----------



## hellm

i am very busy at the moment, but will come back to this.

did you undervolt with wattman or did you change Vcore like in post#3?

that is what i use, 1175mV maximum in the BIOS, and 3.1 timings. no issues, no errors. 1200mV gives me only a few MHz more, and a lot more power draw and heat.


----------



## MiladEd

Neither, I used a 3rd party app, Sapphire TRIXX. I had issues with Wattman when I first got my 480, and haven't used it since.

And yes, my max temp was at least 4 to 5 degrees higher on 1200 mv. 1150 mv is fine, like it used to. But I really like the lower power draw with lower idle votlages of 580, makes my GPU truly silent while idling, due to temps being lower than 50, before it used to constantly rev up fans since it hit 51, then 50, then 51 again, and so on.


----------



## Black Flag

I own a Sapphire RX 480 4G Nitro+ for a year now. Is there a bios that it will "upgrade" my card without issues?


----------



## hellm

Quote:


> Originally Posted by *Black Flag*
> 
> I own a Sapphire RX 480 4G Nitro+ for a year now. Is there a bios that it will "upgrade" my card without issues?


my conversions from post#1 might have issues, as long as you want to use the ports of the 2nd row. if you want them working correctly, u should try post#3 or the better custom bios project from vento041. He also added the 1000MHz step, but it is still based on the original nitro+ BIOS. You might have to copy&paste the vram info table from your BIOS, you need atombiosreader and a hex-editor for this.


----------



## kilogrm70

Quote:


> Originally Posted by *hellm*
> 
> my conversions from post#1 might have issues, as long as you want to use the ports of the 2nd row. if you want them working correctly, u should try post#3 or the better custom bios project from vento041. He also added the 1000MHz step, but it is still based on the original nitro+ BIOS. You might have to copy&paste the vram info table from your BIOS, you need atombiosreader and a hex-editor for this.


Any idea how he was able to add the 1000MHZ memory step to his RX 480 Bios?


----------



## hellm

sure, he told in his thread. it isn't just copy and paste, you have to adjust the complete header of the power play table, and some stuff at the end of it; and add the step, of course.

and, there was a little update.. added -50mV IMC for the 1000MHz step. more stability..


----------



## jasonx20ac

Hey Guys i have a small problem i have flashed XTR Edition ref480-580.xtr.1.0013.rom.zip on my Reference RX480 but in Games and Furmark the Clock Speeds are Fixed to 300mhz.
What have i done wrong?



Is this driver related or have i broke my Card.

THX for answers

Edit: stock bios solved the problem.
my fault sorry for the stupid post


----------



## hellm

it's ok, the 300MHz only problem appeared to me when i was trying to overclock with software and 17.7.2; but i thought they fixed it by now..

so, u really have a problem with the xtr or what was your fault again? i don't think there is something wrong with the xtr ed., but if there is..


----------



## jasonx20ac

My first fault an xtr ed was that i forget to look what Settings was in MSI Afterburner. ( only 670mhz)
When i located the first Problem than i hat only 300mhz in Games.
Than i installed the Stock version from you and now it works normaly.
Maybe it was because MSI Afterburner set up on Windows start, when i will have time i will try the xtr Version one more time.

THX


----------



## hellm

I believe it was the Afterburner. I almost forgot i also use the XTR ed., a custom version, with only 1175mV max; no problems.

@anyone who experienced mem errors, those are gone now. was the 1000MHz step, the 480 prefers +50mV for that one too, not only for the 2000MHz max.

@anyone with custom cooling on the reference card, i removed zero fan. It caused the fan to spin at max in idle, cause that is the way the pwm signal gets interpreted from standard fans.
if you want to adjust the fan table to your custom cooling: post#3, fan settings, adjust "max fan speed", "target RPM" and "idle PWM". i might add some notes for that in post#1 or something in the future..


----------



## Nightfallx

can I flash my 580 to a 580 xtr?


----------



## hellm

The BIOS files i made are for specific cards only. But if you have a 580 already, go ahead and change the voltage to 1225mV (post#3). You don't need a conversion, definitely no need for driver patching, u can mod what u want in your original BIOS.


----------



## ZoomThruPoom

Nitro 8g bios from post #1 causes volt spikes on my card on idle or low load situations. Spikes up to 1.275mv









At first thought it was only spiking during video playback, but happens at web surfing, photoshop, and idle too. Only getting a few spikes a night and they don't seem to ever happen during benching or gaming.

The spikes must be for only a split second cause the temps don't jump and the volt averages in HWinfo don't rise much. Only tried this bios on 17.9.1 and 17.9.3 drivers btw.

Would it be possible to get a 8g Nitro bios exactly like post #1, but with the 1000mhz memory strap removed?? For testing purposes


----------



## MixedC

[
Quote:


> Originally Posted by *ZoomThruPoom*
> 
> Nitro 8g bios from post #1 causes volt spikes on my card on idle or low load situations. Spikes up to 1.275mv
> 
> 
> 
> 
> 
> 
> 
> 
> 
> At first thought it was only spiking during video playback, but happens at web surfing, photoshop, and idle too. Only getting a few spikes a night and they don't seem to ever happen during benching or gaming.
> 
> The spikes must be for only a split second cause the temps don't jump and the volt averages in HWinfo don't rise much. Only tried this bios on 17.9.1 and 17.9.3 drivers btw.
> 
> Would it be possible to get a 8g Nitro bios exactly like post #1, but with the 1000mhz memory strap removed?? For testing purposes


if you go few pages back, you'll see that was what happening to my GPU with its stock MSI RX480 bios. I used it that way for about 2-3 months, and it was spiking upt o 1.35, 1.37V under load and video playback, so I think it kind of degraded the GPU (I game a lot, and it was spiking while gaming when I notice what's going on, it has already been 2-3 months).

We tried to find what is causing it but failed. hellm had a good guess on it but I stopped testing it, it would be good if others would check and see if theirs spike and report back.
*Anyway with 580 conversion, it still spikes but when Power Limit isn't enough and card starts to throttle.* This applies for underload situations.
Also I found out leaving state 5 1156MV, state 6 1150mv and state 7 1150mv helps stop spiking.

I reduced HWinfo update interval to 1000MS from 100ms and havent seen any spikes for quite a while now (a month?+). I changed it back to 100MS for you, so I can tell you if I have the spikes
with 580 bios mod after increasing power limit and doing what I told you /1156-1150-1150).

I'll come back and edit my post couple hours later.
Look from good side, at least yours didn't spike up to almost 1.4V for 3 months from factory


----------



## MixedC

@ZoomThruPoom
Running 1200-1200-1200 set in AMD Overdrive.
With
MSI AB
-48mv on core
(end result under load is 1125mv, Spikes up to 1150Mv at most (default 1200mv for 580 bios while GPU is switching p-states. 700mv while idle instead of 750mv)
+20% power limit
1360mhz core

No spikes, *if I flash RX580 bios over and leave it default, it throttles and spikes.*
so try changing your power limit and voltage.

@hellm
I think I forgat to tell you.
MSI RX 580 bios that I still use (post#1) throttles under load by default and causes spikes under load.
it is set to 180W in bios but well, it goes to 183-185 maybe 190 around 65C,
Others might have the same problem.


----------



## hellm

spikes? again? i don't think it is caused by anything i have done. but i will definiteley look into it, maybe i can tweak the asic_profiling, but that would be a mod. i still don't have any with 1175mV max Vcore on the reference 480.

for the power draw:
https://www.youtube.com/watch?v=ka6mptREMVY
and i can't do anything about the extreme numbers on the msi for now.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> spikes? again? i don't think it is caused by anything i have done. but i will definiteley look into it, maybe i can tweak the asic_profiling, but that would be a mod. i still don't have any with 1175mV max Vcore on the reference 480.
> 
> for the power draw:
> https://www.youtube.com/watch?v=ka6mptREMVY
> and i can't do anything about the extreme numbers on the msi for now.


*No, no I don't have any spikes when I increase the power limit about 10%.*

I said ZoomThruPoom might be having same problem with his sapphire card.
*Increasing power limit gets rid of spikes*
I know the reason behind spikes,
180W with 1.2v (so 1175mv under load) at about 65C uses around 185W and causes throttling, and throttling back and forth causes voltage spikes time to time while siwtcing p-states back and forth.


----------



## hellm

should i raise the power limit to 200W? maybe leave a beware-of-the-spikes info?

changing P5, P6 and P7 did something? i could maybe change something to the way the default voltages are calculated, but that would be a mod, for now it is all original, what most 580s have.

really AMD, what is this all about?


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> should i raise the power limit to 200W? maybe leave a beware-of-the-spikes info?
> 
> changing P5, P6 and P7 did something? i could maybe change something to the way the default voltages are calculated, but that would be a mod, for now it is all original, what most 580s have.
> 
> really AMD, what is this all about?


No idea,
PStates at default 1200mv, doesnt do anything. There are couple of different spikes. I was refering to old rx480 spikes when talking about power states.
with 580 bios, stopping throttling gets rid of it.

I'll for sake of testing again will reset my overdrive and disable msi afterburner, reset my system, boot up a game and see if it throttles or not.
I'll even do a complete restart, without windows 10 fast startup.
Just to make sure, it has been a while so I might remember wrong. Gonna report back in 30 minutes.


----------



## MixedC

Something is wrong, my Voltage tops at 1150mv now when I set everything to default, something doesnt save. (default is as you know 1200mv)
I'll figure it out and report back, I need mpre than 30 minutes.

AB is reset and turned off, Crimson if factory defaults double checked.
There is no negative voltage offset on card 0.750mv idle, so it must be Overdrive p-states stuck at 1150mv even tho I turned overdrive off.
Have to find a way to reset.

I know it is not the 17.9.3 driver, because just this morning I was running 1.2v default







so I ma 100% sure something is bugged.

Edit: Yeah it was AMD drivers, now it is fine. I'll restart and try now.


----------



## Nightfallx

how is the Gigabyte AUROS 580? I heard it was one of the better ones so that's why I bought it.


----------



## hellm

Definitely one of the better ones. I would have to ask for pics and then ask buildzoid if it comes to mosfets and VRM, but it shouldn't be bad. and the voltage controller is the ir3567B, which is always a good choice. And it has a BIOS switch?

There is one thing i need to know, has the Aorus 580 a BIOS switch? Because there should be a "gaming" mode with 1365MHz and an "oc mode" with 1380MHz? If that is the case, can u pls extract both BIOS using atiflash and post it here? If there is only one, i also could use the atiflash extracted BIOS. Would be much appreciated.


----------



## MixedC

Here is data, This is a long post so forgive me but try to pay attention to it guys, because I usually get misunderstood probably because of my English







.
Test Run #1

MSI RX 480 ->580 conversion from #1 Post, All stock no overclocking.
Driver 17.9.2
Gpu under full load, HWinfo reset after loading GPU so min-max can be seen in the picture hence throttling.

*Cleaned outdated wrong info*

Update:*
I kept testing for longer and it spiked while not even throttling to 1.356V.
I never ever let it get this hot, but did sake of testing.
Power limit was 20%, so spike happened while GPU wasn't throttling.


I'll try to get it spike again will let it run 10 mins with 20%+ Power limit and 10 mins with 0% power limit.*


----------



## hellm

just don't kill your GPU.. this is with your original 480 BIOS i assume? and there was an update, HWiNFO now reads the correct GPU/Mem load values.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> just don't kill your GPU.. this is with your original 480 BIOS i assume? and there was an update, HWiNFO now reads the correct GPU/Mem load values.


No this is with 580 bios, I am on 580 bios, as long as I don't mention 480, I am always talking about 580 bios.
This is a mess, now I cannot get it to spike again.

I told you about spikes on 580 bios, but they are rare, and this far I only hav eeen them while GPU is throttling.
This spike happened while not throttling, so this is first time thing but VRM was quite hot 90C+ should be fine for a VRM tho.


----------



## Nightfallx

Quote:


> Originally Posted by *hellm*
> 
> Definitely one of the better ones. I would have to ask for pics and then ask buildzoid if it comes to mosfets and VRM, but it shouldn't be bad. and the voltage controller is the ir3567B, which is always a good choice. And it has a BIOS switch?
> 
> There is one thing i need to know, has the Aorus 580 a BIOS switch? Because there should be a "gaming" mode with 1365MHz and an "oc mode" with 1380MHz? If that is the case, can u pls extract both BIOS using atiflash and post it here? If there is only one, i also could use the atiflash extracted BIOS. Would be much appreciated.


no problem, I haven't received it yet. It comes in today, I bought the 4gb edition because I game at 1080p and 8GB is more expensive and a little excessive at this point in time. I needed some extra money so I sold my Nvidia 1080 because it's to much card for a 1080p monitor lol.


----------



## MixedC

(to clarify, Talking about *RX580* bios)
Well VRM 92C GPU 72C I have never run this hot and it doesnt spike, but it did once as seen in picture.
I don't really know what anymore







Bios Related? Driver Related? Hardware Related? I am lost.
Everytime I jump to a conclusion, it just proves me wrong









*but What I can tell you for 100%*
Card throttles with 180W limit on 1.2V. My GPU hits 202-203Watts at most with it. it used to make it spike like crazy, it didn't spike today but it used to with 17.7.x driver.
I am 100% sure on that I remember it used to spike when it switched back and forth in p-states.

The spike I have seen today (one in picture) was first ever time I have seen it spike *while not throttling* (power limit was 20%+) and i have to admit, I might have forgetten to reset HWinfo so it might be left there from Throttling run right before I upped power limit, hence it spiked.

*Because today I have run 2 hours of load test with 20% power limit and it didn't spike once using 100ms update interval in HWinfo.*
I havent seen a single spike since I upped power limit so been more than a month. Using 1000MS update interval in HWinfo, it would have catched at least one I think even 1000MS interval.

*So Fixing Throttling removed spiking for me.*
I'll set my voltages and power limit to 1200mv, 25%+ and 1390mhz and use my pc for couple days.
(I normally run 1200mv -48mv Offset 1360mhz and 20%+ Power limit)
HWinfo at 100ms uses 6% of my CPU but I'll leave it be this way and use my PC for couple days and try to catch another spike.

if you want me test anything else, just tell me. I'll dedicate next 2 days to testing but I wanna avoid bios flashing







. Dangerous with no UPS and Bios Switch







it gives me small heart attacks.


----------



## MixedC

*Test Run #2*
MSI RX580 Bios from #1 Post,
Running under 100% Load for 40 Mins+ 1200MV, 1393mhz, Power Draw 20%+, Fan Speed 1800RPM, 63C on Core, 79C on VRM, Avarage Total Power Draw is 200W.
100MS Update Interval Not a single spike.

@hellm
This further proves removing thorttling gets rid of spikes.
I'll let the test run for longer.

Edit:
Been an hour, no Spikes.

Edit:
3 hours 20 minutes later,
still no spikes.

As I predicted, fixing Throttling gets rid of those rare spikes.


----------



## hellm

Thank you, that is very helpful.









one reason i don't have those spikes might be, my card doesn't throttle.

When it is just a fake reading, ok, but if there are actual spikes on many Polaris cards out there... and AMD doesn't care? it's ok, if ur polaris card dies, just buy a sh.. vega. i don't know what they are thinking in Raja's club..


----------



## ZoomThruPoom

I have the 1306 8gb Nitro 2000mem. Not the the OC+ 1342mhz Nitro. I've heard the pcb's between the two are not exactly the same??
1342 bios' work great on my card though.

No overclocking on this card other than to 1342. Max clocks I can pull from my card @1150 is 1360mhz.. 1.2v won't even get me 1370mhz stable, so I just stay at 1342. This is consistent across every bios I've tried on my card. No memory oc at all yet, so always ran stock mem at 2000mhz and default IMc volts 1000mv. Power slider in Wattman is always set to 50%.

Can believe p state switching could cause the card to volt spike. Almost seems like that's whats happening, but I couldn't seem to make the card spike no matter what I did. It would do it randomly, and only maybe 4-5 times in the course of 6-8 hours. It must be split second spikes too. It doesn't cause a temp increase it seems. I can't catch them in the act, but have caught HWinfo report max gpu clocks of 900 with a voltage max of 1.83v and the like at times. Other times it's 1342mhz at 1.2+v. The HIGHEST spike I've seen is 1.275v.

Hard to believe it's throttling related unless it throttles at the lower p state clock speeds. At load the card always shows a max voltage in HWinfo respective of what it's set to in Wattman +25mv. Regardless of temps. Witcher 3 for hours and HWinfo reports nothing of interest. Same with Tomb Raider and any benches, consistent max voltage that reflects Wattman setting +25mv. Firestrike or Timespy 40 run loop and nothing crazy shows in HWinfo and that's when my card is the hottest.

Sit idle long enough, web surf, watch VLC player or anything not higher gpu load is the only time I catch weird max voltage higher than what it's set in Wattman.
This happens with the latest two Crimson drivers and I do have HWinfo (nonbeta) up to date as well.


----------



## ZoomThruPoom

Also to add I am currently back on Vento's 480-580 pulse mod bios, and this bios spikes also, in the same way, just never higher than what is set in wattman +25mv. I currently get spikes on this bios under idle or low load but only to 1150v or 1175v depending on what I set voltage to in Wattman.

This bios seems to respect the max Wattman voltage setting even with spikes. However this bios will cause unnecessary high gpu usage when it's not supposed to as well as wattman controlled volt spikes. It's a double spiker bios. Just idle in Windows, and watch this bios make my gpu usage rev up to 80-90% for no reason.

Your bios does not do this. No unneeded gpu usage spikes. Only voltage.

Maybe volt spikes could be tamed to respect wattman settings?


----------



## MixedC

Quote:


> Originally Posted by *ZoomThruPoom*
> 
> I have the 1306 8gb Nitro 2000mem. Not the the OC+ 1342mhz Nitro. I've heard the pcb's between the two are not exactly the same??
> 1342 bios' work great on my card though.
> 
> No overclocking on this card other than to 1342. Max clocks I can pull from my card @1150 is 1360mhz.. 1.2v won't even get me 1370mhz stable, so I just stay at 1342. This is consistent across every bios I've tried on my card. No memory oc at all yet, so always ran stock mem at 2000mhz and default IMc volts 1000mv. Power slider in Wattman is always set to 50%.
> 
> Can believe p state switching could cause the card to volt spike. Almost seems like that's whats happening, but I couldn't seem to make the card spike no matter what I did. It would do it randomly, and only maybe 4-5 times in the course of 6-8 hours. It must be split second spikes too. It doesn't cause a temp increase it seems. I can't catch them in the act, but have caught HWinfo report max gpu clocks of 900 with a voltage max of 1.83v and the like at times. Other times it's 1342mhz at 1.2+v. The HIGHEST spike I've seen is 1.275v.
> 
> Hard to believe it's throttling related unless it throttles at the lower p state clock speeds. At load the card always shows a max voltage in HWinfo respective of what it's set to in Wattman +25mv. Regardless of temps. Witcher 3 for hours and HWinfo reports nothing of interest. Same with Tomb Raider and any benches, consistent max voltage that reflects Wattman setting +25mv. Firestrike or Timespy 40 run loop and nothing crazy shows in HWinfo and that's when my card is the hottest.
> 
> Sit idle long enough, web surf, watch VLC player or anything not higher gpu load is the only time I catch weird max voltage higher than what it's set in Wattman.
> This happens with the latest two Crimson drivers and I do have HWinfo (nonbeta) up to date as well.


Well if it happens in loewr p-states while clock is steady, It is not what I have.
But I had my clocks fluctrate with 480 bios and spike while browsing the internet, check if your clocks are switching frequently while browsing / watching.

I hope that 1.83V is not VCORE and a Typo or Misread by hwinfo.

Spikes up to default max p-state voltage is normal with polaris. So it should have been spiking up to 1.2V at most with bioses from this thread.
That is why I run 1200MV in Wattman and -50mv offset in Afterburner. Spikes to 1.5V instead of 1.2V


----------



## ZoomThruPoom

1.183v yeah typo.

Normally see the default voltages max at their set clocks for the lower pstates in hwinfo. Like 1.113v @ 1255mhz max

It's stuff like max clock 900mhz, max voltage 1.183 max, that seems wrong. Or 1145mhz @ 1.2v, or 1342 @ 1.275

HWinfo could just be wrong and I'm falling hard for it.







Maybe I'll update to a beta.


----------



## MixedC

Quote:


> Originally Posted by *ZoomThruPoom*
> 
> 1.183v yeah typo.
> 
> Normally see the default voltages max at their set clocks for the lower pstates in hwinfo. Like 1.113v @ 1255mhz max
> 
> It's stuff like max clock 900mhz, max voltage 1.183 max, that seems wrong. Or 1145mhz @ 1.2v, or 1342 @ 1.275
> 
> HWinfo could just be wrong and I'm falling hard for it.
> 
> 
> 
> 
> 
> 
> 
> Maybe I'll update to a beta.


Check I2C readings also if you can monitor VRM itself, for me it was also reporting that spikes time to time.

P-states for me arent really important my card either stays at 0.750mv or 0.800mv and while gaming it is always at last state.
so Try settings your last 3 states 1156-1150-1150 and different clocks like 1280-1300-1340 and see what happens.

I put that 1156, not a typo. It used to really help with my 480 bios when it was spiking. Give this a try.


----------



## hellm

If u see only 900MHz, it doesn't mean that the clockrate wasn't at max; HWiNFO might not have seen this, cause it only was for a short time.
As long as the max voltage is under 1200mV, which is also the max wattman for my 580 conversions (unmodded from the original 580s), everything is fine.

If there are spikes beyond max voltage, we are not fine.


----------



## Nightfallx

Quote:


> Originally Posted by *hellm*
> 
> Definitely one of the better ones. I would have to ask for pics and then ask buildzoid if it comes to mosfets and VRM, but it shouldn't be bad. and the voltage controller is the ir3567B, which is always a good choice. And it has a BIOS switch?
> 
> There is one thing i need to know, has the Aorus 580 a BIOS switch? Because there should be a "gaming" mode with 1365MHz and an "oc mode" with 1380MHz? If that is the case, can u pls extract both BIOS using atiflash and post it here? If there is only one, i also could use the atiflash extracted BIOS. Would be much appreciated.


I didn't notice a switch but here is the bios.

AUROS_580.zip 110k .zip file


----------



## hellm

I hoped for the 8G Version, but thank you anyway, i always need more Aorus roms.


----------



## Nightfallx

Quote:


> Originally Posted by *hellm*
> 
> I hoped for the 8G Version, but thank you anyway, i always need more Aorus roms.


after owning a 1070, and a 1080 I didn't realize how weak the 580 is, don't get me wrong for the price it's great.


----------



## hellm

If you had own a 1060, you would have experienced otherwise. The 1070/80 have clearly more Power than any Polaris card. The price, yeah, it is normal again? But still higher than on 480 release i guess..


----------



## Nightfallx

Quote:


> Originally Posted by *hellm*
> 
> If you had own a 1060, you would have experienced otherwise. The 1070/80 have clearly more Power than any Polaris card. The price, yeah, it is normal again? But still higher than on 480 release i guess..


in most games I don't notice much of a performance hit, but when I play PUBG I notice an impact lol.


----------



## MixedC

Quote:


> Originally Posted by *Nightfallx*
> 
> in most games I don't notice much of a performance hit, but when I play PUBG I notice an impact lol.


I play pubg at all very low, for better visibility anyway and also run reshade it hits 30FPS yet @1080p, I still get fps in 80-120 range as long as I am not CPU bound, it is 4.6ghz 4690K.
I wasn't really impressed by 480 after my 280x, but I was forced to upgrade so, I cannot really say money well spent but still about 30% faster.


----------



## MiladEd

So... After downvolting my RX 580 flashed Gigabyte RX 480 G1 Gaming 8 GB video card to original 480 voltages, I'm running fine while gaming, but I've got a few issues in desktop while idling.

See, I used Sapphire TRIXX to downvolt and set my core and VRAM OC, as Wattman cannot set max load voltage to 1150 mv, as it already shows 1150 mv but it's actually 1200. Anyway, the issue is, TRIXX set the downvolt for all load stages, and while it works fine for gaming, and I get much lower temps compared to original 580 voltages, it raises some issues while idling, as 0.700 mv is a bit low for idling, and causes a few glitches.

So, is there anything I can do, short of modifying the current BIOS and flashing it? I won't feel competent modifying the BIOS.


----------



## MixedC

Quote:


> Originally Posted by *MiladEd*
> 
> So... After downvolting my RX 580 flashed Gigabyte RX 480 G1 Gaming 8 GB video card to original 480 voltages, I'm running fine while gaming, but I've got a few issues in desktop while idling.
> 
> See, I used Sapphire TRIXX to downvolt and set my core and VRAM OC, as Wattman cannot set max load voltage to 1150 mv, as it already shows 1150 mv but it's actually 1200. Anyway, the issue is, TRIXX set the downvolt for all load stages, and while it works fine for gaming, and I get much lower temps compared to original 580 voltages, it raises some issues while idling, as 0.700 mv is a bit low for idling, and causes a few glitches.
> 
> So, is there anything I can do, short of modifying the current BIOS and flashing it? I won't feel competent modifying the BIOS.


I dont get what is wrong with AMD Overdrive for you? You are just unlucky if it doesnt work at 0.7V, mine does.
Try OverdriveNTool to set voltages, it might work. (p-states overclocking)


----------



## MiladEd

Quote:


> Originally Posted by *MixedC*
> 
> I dont get what is wrong with AMD Overdrive for you? You are just unlucky if it doesnt work at 0.7V, mine does.
> Try OverdriveNTool to set voltages, it might work. (p-states overclocking)


Dunno, my chip has sort of a limited operational voltage range. It can't run at 1200 mv at even with a tiny OC, while it can OC successfully up to 1380 MHz on 1150 mv.

Thanks, I'll give that think a try.


----------



## MixedC

Quote:


> Originally Posted by *MiladEd*
> 
> Dunno, my chip has sort of a limited operational voltage range. It can't run at 1200 mv at even with a tiny OC, while it can OC successfully up to 1380 MHz on 1150 mv.
> 
> Thanks, I'll give that think a try.


my MSI rx480 does the same thing,i I beleive it is temperature related.
Can OC to 1393 mhz @ 1156mv (load), goes unstable at 1175mv (load).








Temps are affecting this GPU more than I am used to with other ones, I guess polaris is heat sensitive.


----------



## hellm

Quote:


> Originally Posted by *MiladEd*
> 
> So... After downvolting my RX 580 flashed Gigabyte RX 480 G1 Gaming 8 GB video card to original 480 voltages, I'm running fine while gaming, but I've got a few issues in desktop while idling.
> 
> See, I used Sapphire TRIXX to downvolt and set my core and VRAM OC, as Wattman cannot set max load voltage to 1150 mv, as it already shows 1150 mv but it's actually 1200. Anyway, the issue is, TRIXX set the downvolt for all load stages, and while it works fine for gaming, and I get much lower temps compared to original 580 voltages, it raises some issues while idling, as 0.700 mv is a bit low for idling, and causes a few glitches.
> 
> So, is there anything I can do, short of modifying the current BIOS and flashing it? I won't feel competent modifying the BIOS.


i changed the max Vcore to 1150mV. (as seen in post#3)

giga480-580.1150.1.0010.rom.zip 108k .zip file


----------



## MiladEd

Quote:


> Originally Posted by *hellm*
> 
> i changed the max Vcore to 1150mV. (as seen in post#3)
> 
> giga480-580.1150.1.0010.rom.zip 108k .zip file


Thanks a lot man, I'll flash and report


----------



## Klamatiel

Finally took the courage to fix my bricked vbios (which was OC, 1306Mhz, RX 480 NITRO+, 4GB GDDR5, Samsung memory https://www.techpowerup.com/vgabios/187623/sapphire-rx480-4096-161002). Then i flashed a Gigabyte Rx580 bios https://www.techpowerup.com/vgabios/194108/194108 (i know crossflashing works between different models). All good so far, lower temps, higher clocks, but lower score in 3dmark? What can i do to optimize it more while retaining higher clocks and lower temp? Power management seems so much better in 580, no more max clocks when watching 1080p movies, lower idle power consumption and so on.
PS : i also want to mod it back to a Sapphire id and such.
PPS : i'm not interested in mining, only gaming.


----------



## hellm

If you flash the BIOS of a different card, the VRM doesn't work as it should, because the PWM controller hasn't the right programming. This could cause damage over time.

There is no way to achieve lower temps AND higher performance. When the VRM works as intended, it will get hotter when put more current through it, and that is what your GPU needs to obtain higher clocks, even without more voltage.

Try my conversion from post#1, or you can redo my work if u feel better.


----------



## rootmoto

@hellm How to hex edit the temperature target in the VBIOS? Also how would I be able to fix the GOP driver in the VBIOS cause mine doesn't work. Thanks


----------



## hellm

Temperature target is part of the fan table, that info is found in post#3 under fan settings. The GOP/UEFI part has to be hacked to work with a modded rom, there are two working versions found in post#3. Usually you have to disable secure boot, but someone told me 1.63 works even when secure boot is activated. wouldn't believe it till i saw it myself, though.


----------



## MiladEd

Hey, I flashed the new BIOS with 1150 mv load voltage you provided, thanks. It all seems to be working fine. I appreciate it.


----------



## PPBottle

Has anyone tried doing it the other way around, and having a 5XX card have it's ID string modded into 4XX series so the driver recognizes it as such? I'm stumbling to this weird bug where my Ultrawide 25UM58P monitor @75hz has the load memclock bug at idle/desktop, whereas my 4XX cards didn't experience such behaviour. I haven't touched the stock Vback Porch value when OCing my monitor, so we can't blame that (on AMD changing Vback porch usually leads up to this dreaded bug).

Has anyone experience the change and how the driver honors the modified ID string? My bet AMD just loads different memory pstate triggers depending on the generation, as the 5XX cards have this new 1000mhz pstate for accelerated video and 4XX do not, and 4XX cards have this "power efficiency" mode that 5XX don't have on Crimson Settings.


----------



## rootmoto

Thanks for the guide, it works well on my RX 470 flashed with a RX 580 BIOS. I've modded my BIOS with 1.3v, 300w power limit and Temperature Target of 94 degrees Celsius. Right now, I'm on 1425MHz, I'm going to test higher clocks later on and see how far I can go on my Gigabyte RX 470 G1 Gaming 4GB.


----------



## rastaeyes

Thanks for updating this hellm, I'm still using the BIOS you provided for the MSI Gaming X RX580 8GB. Going to update now, add UberMix 3.1, and add the new GOP table to see if I can bypass the UEFI check.


----------



## hellm

add the UberMix timings in the 2000er strap and 1750 strap as well; for some reasons it eliminates the last occuring mem errors..

Quote:


> Originally Posted by *rootmoto*
> 
> Thanks for the guide, it works well on my RX 470 flashed with a RX 580 BIOS. I've modded my BIOS with 1.3v, 300w power limit and Temperature Target of 94 degrees Celsius. Right now, I'm on 1425MHz, I'm going to test higher clocks later on and see how far I can go on my Gigabyte RX 470 G1 Gaming 4GB.


I should put a warning anywhere., it is fine your card runs with the BIOS of a different card, but that could cause damage over time, especially when u overvolt that high.
The VRM needs programming, to fit mosfets and what not on the pcb. If your PWM controller gets a different programming, it could get ugly. very ugly.

But i think your gigabyte 470 has an IR controller, so i think it could be very easy to adept the 580 BIOS you are using. if you give me your original BIOS and the BIOS you flashed your card with, i could help u with that.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> add the UberMix timings in the 2000er strap and 1750 strap as well; for some reasons it eliminates the last occuring mem errors..
> I should put a warning anywhere., it is fine your card runs with the BIOS of a different card, but that could cause damage over time, especially when u overvolt that high.
> The VRM needs programming, to fit mosfets and what not on the pcb. If your PWM controller gets a different programming, it could get ugly. very ugly.
> 
> But i think your gigabyte 470 has an IR controller, so i think it could be very easy to adept the 580 BIOS you are using. if you give me your original BIOS and the BIOS you flashed your card with, i could help u with that.


wait,
did you really get less errors when you put ubermix into 1750 strap as well?
I can clock mine to 2020mhz no error, if I can get higher, it would be amazing.

and did you update MSI bios? What is new?


----------



## hellm

No, it does not get you better oc. it just eliminates those rare, few mem errors hwinfo might log. those are gone, yes, i don't know why.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> No, it does not get you better oc. it just eliminates those rare, few mem errors hwinfo might log. those are gone, yes, i don't know why.


Thx, I don't need it then.
I get 0 at 2020 and it is about 228MB/S, I would only dream to get 235


----------



## rootmoto

@hellm It's the Gigabyte RX 580 Gaming BIOS. It's this one here: https://www.gigabyte.com/Graphics-Card/GV-RX580GAMING-4GD-rev-10-11
This is the RX 470 G1 Gaming: https://www.gigabyte.com/Graphics-Card/GV-RX470G1-GAMING-4GD#kf
I have the one with Hynix GDDR5. Pretty much a rebadged G1 Gaming RX 480. The RX 470 G1 Gaming had a similar PCB design except one less phase on the memory.


----------



## hellm

it has an ir controller, so i made another conversion. i think i can do that for the 470 nitro+ as well.

Gigabyte RX470 G1

giga470-570.4G.hynix.rom.zip 108k .zip file


----------



## tweezlednutball

Hey guys I've flashed my 2 reference rx480's to 580's. When I install drivers they install just fine but I get an application crash as soon as i click restart. its repeateable. anyone else having this issue? the drivers seems to install fine i just force close the driver install and click restart myself and after that everything seems to be working just fine games good and benchmarks run just fine for extended time. (I used the bios from the front page that has slightly higher volts and 2000 mhz memory instead of 2200, i was getting artifacting with that one.) is there a better bios I could be using?

EDIT: Correction, im using the bios from the front page of the other rx480>580 thread.


----------



## kilogrm70

Quote:


> Originally Posted by *tweezlednutball*
> 
> Hey guys I've flashed my 2 reference rx480's to 580's. When I install drivers they install just fine but I get an application crash as soon as i click restart. its repeateable. anyone else having this issue? the drivers seems to install fine i just force close the driver install and click restart myself and after that everything seems to be working just fine games good and benchmarks run just fine for extended time. (I used the bios from the front page that has slightly higher volts and 2000 mhz memory instead of 2200, i was getting artifacting with that one.) is there a better bios I could be using?
> 
> EDIT: Correction, im using the bios from the front page of the other rx480>580 thread.


I have a reference RX 480 as well. I'm using Hellm's bios from post #1, which is ref480-580.1.0013.rom.zip and have not had any issues at all. Everything works fine.


----------



## tweezlednutball

Quote:


> Originally Posted by *kilogrm70*
> 
> I have a reference RX 480 as well. I'm using Hellm's bios from post #1, which is ref480-580.1.0013.rom.zip and have not had any issues at all. Everything works fine.


Thanks for the advice I'll try it out.


----------



## kilogrm70

This may have been covered earlier, but does anybody know why the fans on the card spin up to 100% briefly as you boot into windows and if so how to stop it?


----------



## hellm

in the fan table (post#3) are a few values between idle PWM and zero fan enable/disable; in almost every 480 BIOS it is 64, but there are also found different values in some 580s, like 96 or 78. I think it is some spin cycle i-don't-know, you have to try and error. maybe changing the first two values, but again, i really don't know.


----------



## rastaeyes

Just an update for anyone it may save time.

I'm on MSI Gaming X RX 580, 8GB.

Flashed v11 (latest as of writing), added ubermix 3.1, and stock clock rates, then I used the new magic GOP in hopes of getting through UEFI check.

The new GOP doesn't bypass UEFI, I have to enable CSM mode, not sure who said that it can do so, but it is not working for me.

Everything else is working fine, but I sometimes get screen flickering every hour or so, I assume it's the VRAM timings slightly unstable or just another AMD driver bug.

Edit: Do I need to copy Ubermix 3.1 to 1750 strap from 2000, or was that comment directed at another user with a different setup?


----------



## hellm

The 1.63 "magic" UEFI/GOP is thoroughly tested and in use by a lot of people now. And, of course, it is already to be found in the newest versions of all my conversions.
So, you were about to copy 1:1 over same bytes, but i guess something went wrong.

For the UberMix, it is like i said above.


----------



## Michailov

Hi,

I gave up with edit my own BIOS. I have a random blue screen or device driver crash. I flash RX480 Reference BIOS (ref480-580.1.0013.rom.zip) and those situation did not exists. Now my problem is a big throttling. When I play games or run benchmark the core clock is fluctuate over 1100-1150 mHz and the performance is not too high. Could you help me resolve this problem? I would like to have a stable core clock when card is loaded.

Thanks you in advance for any help.
Michailov


----------



## MixedC

@hellm

Do you plan to change default power limit on MSI card? As I reported 180 -> Thorttling.

For info about actual 580 Gaming X,
I have found a video of actual card somewhere running in OC mode 1393 mhz. (I think my card cannot







)
it uses 1175mv default and drops to 1150mv under full load.
We cannot know its tdp because MSI does OC mode Slient mod thing a little different as you might now. So there is no bios, it is just software overclocking.

This is not a problem for me because I underclock to 1150mv anyway, but it might be better for some other users who wants it to just run 1360mhz and don't touch anything.


----------



## hellm

Quote:


> Originally Posted by *Michailov*
> 
> Hi,
> 
> I gave up with edit my own BIOS. I have a random blue screen or device driver crash. I flash RX480 Reference BIOS (ref480-580.1.0013.rom.zip) and those situation did not exists. Now my problem is a big throttling. When I play games or run benchmark the core clock is fluctuate over 1100-1150 mHz and the performance is not too high. Could you help me resolve this problem? I would like to have a stable core clock when card is loaded.
> 
> Thanks you in advance for any help.
> Michailov


What card are u using? And what is exactly the problem with your original rom?
As i said many times, it is not a good idea to use the BIOS of a different card. Performance loss is the least of it..

Quote:


> Originally Posted by *MixedC*
> 
> @hellm
> 
> Do you plan to change default power limit on MSI card? As I reported 180 -> Thorttling.
> 
> For info about actual 580 Gaming X,
> I have found a video of actual card somewhere running in OC mode 1393 mhz. (I think my card cannot
> 
> 
> 
> 
> 
> 
> 
> )
> it uses 1175mv default and drops to 1150mv under full load.
> We cannot know its tdp because MSI does OC mode Slient mod thing a little different as you might now. So there is no bios, it is just software overclocking.
> 
> This is not a problem for me because I underclock to 1150mv anyway, but it might be better for some other users who wants it to just run 1360mhz and don't touch anything.


Yes, the Gigabyte support already gave me a hint, oc-mode is software based. Load line up to -25mV is customary for Polaris.
I don't know if i should raise that to 200W, maybe i leave a note somewhere about those damn spikes and where in the thread to read about it. i think that would even better.


----------



## Michailov

I use XFX RX480 XXX card model 48M8BFA1. On my original BIOS modified as shown at post 3 I have random blue screen or device driver crash.


----------



## hellm

Can you pls check with vrmtool if you have the IR3567B controller? Just start the programm and see what happens.
vrmtool

still wouldn't explain why you have trouble after switching. i hope you extracted your original rom, not downloaded anything you suppose it is the right one? sorry, have to ask.

The BIOS you uploaded is not a reference nor is it a GTR. But it should have the IR3567B, i just don't know about that XFX card. The RS models don't have an IR controller, so..


----------



## Michailov

I start the program and see:

Capture.PNG 40k .PNG file

On log window there is output:
Detected IR3567B VRM controller chip

Loop 1 voltage VID: 1.00000V (reg 0x93=0x58 RO | 1.55V-X*0.00625V)
Loop 1 voltage offset: +0.00000V (reg 0x8D=0x00 RW | X*0.00625V, 0x00=default)
Loop 1 output voltage: 1.04688V (reg 0x9A=0x86 RO | X*(1/128)V)
Loop 1 output current scaling: ? (reg 0x4D=0x60 RW | 0x60=default, 0x20=lower reported current)
Loop 1 phase 1+2 load distrib.: ? (reg 0x1E=0x00 RW | 0xdd=default=more load on PCIe, 0x00=equal)
Loop 1 phase 3+4 load distrib.: ? (reg 0x1F=0x00 RW | 0xd0=default=more load on PCIe, 0x00=equal)
Loop 1 loadline slope: 0.700mOhm (reg 0x24=0x1c RW | X*0.025mOhm, 0x1C=default)
Loop 1 loadline enable: 1 (reg 0x38=0x81 RW | bit7, 0x81=on/default, 0x01=off)
Loop 1 PWM frequency: 303.8kHz (reg 0x22=0x9e RW | (1/(X*20.83ns))kHz, 0x9E=default)
Loop 1 temperatur: 28C (reg 0x9E=0x1c RO | X*1C)

My origin BIOS:

48M8BFA1.zip 109k .zip file


My card is XFX RX 480 Tuned by XFX - Custom Backplate XXX OC - reference cooler and custom backplate.
On origin BIOS I have throttling - when i set 50% Power Limit core clock still lower than 1288 MHz.
When I modify BIOS like describe in post 3 so change that card is recognise as RX580 and increase Voltage and TDP, TDC, Power Limit with Polaris Bios Editor there is no throttling but got a black screen and must reset PC from button, got blue screen or driver crash. On card I have a water cooler on core and radiators on VRM - temp not higher than 60C.
I need help to prepare a BIOS without throttling and any other issue which I describe. Maybe you can look at attached BIOS file and prepare somethin for me please?


----------



## hellm

the "XFX RX 480 Tuned by XFX - Custom Backplate XXX OC" is nothing but a reference design. I have the BE Edition of that card, i have to know.
XFX also says this card has a different number: RX-480M8BFA6
http://www.xfxforce.com/en-us/products/amd-radeon-rx-400-series/rx480xxx-rx-480m8bfa6

i just call it the russian xfx then.. and since it has uses an IR3567B controller, it doesn't matter anyway, i have the original BIOS and can provide a BIOS that fits your card.
it has one more register than the reference card, 0x26, which is supposed to be the voltage offset for both loops.. i don't know why that should be a reason if u have trouble with the ref BIOS..hmm.. register 62 we don't know but it is totally different.. and the PowerPlay table is at 0x1000 higher offset than on any other 580 and 480 BIOS.. weird thing you have there. Where did u buy this card?

anyway, give this one a try:

xfx.russian.480-580.1.0010.rom.zip 108k .zip file


----------



## Michailov

Thanks for BIOS file. I will try it and give you feedback.
I am from Poland and buy that card in local shop. From begin I know that this card is different than standard reference card. For example the low memory state is 601 MHz but on standard reference is 300. I regret that not buy any other model because with that I have a lot od trouble.


----------



## rastaeyes

I have seen a lot of people mentioning this zero fan disable, but I don't really understand why people want to do it?

I just set a custom fan curve in MSI Afterburner, and have no issues with the fan or temperatures, is there something I'm missing as to why people want to remove zero fan?


----------



## MixedC

Quote:


> Originally Posted by *rastaeyes*
> 
> I have seen a lot of people mentioning this zero fan disable, but I don't really understand why people want to do it?
> 
> I just set a custom fan curve in MSI Afterburner, and have no issues with the fan or temperatures, is there something I'm missing as to why people want to remove zero fan?


Yeah, I also wonder.
Running MSI AB with custom profile but I still stop fans below 50C


----------



## Michailov

@hellm I played a all day FIFA 18 and everything looks fine. But after 8h I got error:

The same problem I got on any other rx580 BIOS. I play on celan system( I do Windows reinstall after flash).


----------



## hellm

There is something complete different about your card, i don't know how to solve this problem. If you have problem after switching the original BIOS to a 580, we just can't do anything about that.

Wait, there is a thing, SoftPowerPlay:
http://www.overclock.net/t/1609782/watttool-a-simple-tool-that-combines-overclocking-with-vrm-monitoring-tweaking-for-rx-400-series/240#post_25834851

i am sorry i can't help u with a BIOS-mod for this card. Maybe i will have an idea, but i doubt it.


----------



## Michailov

Ok. I understand. The problem is that on original BIOS card not work good. Probably I musy l sell it and buy sonething more userfrendly. Thanks for help.


----------



## MixedC

I can't understand why his card cannot work with a ref bios using same voltage controller? I wonder what is so different about his card.
I have seen this error in some games in past, not sure if it is really related to gpu bios or not.

8 hours is a long time for an error to occur.
Maybe change what you do, get directX from another game or source and re-install and don't install / play apps or games you used to.
Instead try something new for a while and see.

I used to see that error somewhere, sometime in past and it wasn't related to gpu itself.
I remember something but it is really not clear, if you have an iGPU, can you try disabling it?

also that error might have happened if your GPU isn't stable. We already have seen a case with @MiladEd,
according to him, his card doesn't work with 1200mv but as far as I remember, you have tried the method in post-2 and didn't work again.


----------



## Michailov

Yes. I have trouble with modified BIOS but also in original. Now when I play CS GO the gamę close. Without any error. And the reason for sure is GPU because on previous I do not have that situation.


----------



## Karunious

I've had the exact same card as Michailov for about a year now (the RX-480M8BFA6 version.)

Hellm: The Reference and XFX GTR 480 > 580 BIOS worked perfectly fine for it, but I went ahead and tried the "Russian" variant. I can't really tell the difference, but it did make my custom fan work correctly without adding the zero fan modification. Before it would just be at 100% on P0 state (I've got an Arctic Accelero Mono on the card and cut a part of the backplate casing so they can both fit together.)

Michailov: I'd recommend playing around with it a bit more, normally if you've played around 8 hours constant it could have been the Core/VRM getting way too hot. The default fan is awful unfortunately. Maybe lower the core clock and play around with the voltage, as each card is going to be different. Alternatively you can try the other low powered reference BIOS on hellm's post (1266MHz @ 1150mV) that also flashes with no problems. Just make sure to downvolt that as 1150mV is insanely high for that speed, and was also what the original BIOS was set at @ 1288MHz. It can easily go down to 1110mV or prehaps lower.


----------



## Michailov

@Karunious I have mounted Arctic Accelero Hybrid II something like:

But with radiators on memory and VRM section. The temperature is not higher than 60C. On my card on original BIOS or @hellm reference I have throttling and core clock is not stable 1266(1288) MHz but oscilate about 1100 MHz.When I flash GTR and increase power limit 50% I got black screen and driver crash. Maybe I must decrease clock from 1340 to 1288 on russian BIOS and try that work correctly. So I have problem with correct working on original BIOS and I thought that change BIOS to 580 may resolve some problems. Maybe my card is broken and that I dont have a guarantee beter flash oroginal BIOS and sold it.


----------



## Karunious

@Michailov Thanks for the update. I'm a little confused though, the fan cooler sticker says "Sapphire" on it. The XFX model should have looked like this.

Can you double-check it's the XFX RX-480M8BFA6?

EDIT: Sorry, I think I made a mistake, that image looks like an older Youtube video lol. I'm guessing you have an XFX card









I'd recommend giving the Ref or Russian BIOS another go and try what you suggested: Edit hellm's BIOS to the original core speed of the card (1288MHz) and undervolt the card to around 1115mV using Wattman or Watttool. See if it's stable/throttling using that and go from there (keep the TDP, TDC and Max Power Limit the same as if it were an RX 580.)


----------



## rootmoto

@hellm Which offset do I mod in the vBIOS to turn on LLC and how to adjust PWM frequency? What would be a safe PWM switching frequency for my RX470?


----------



## alienalvan

Quote:


> Originally Posted by *hellm*
> 
> RX480 -> RX580 (IR Controller only) -> Post#1
> RX480 -> RX580 Original Conversions -> Post#2
> RX470/RX480 -> RX570/RX580 How-to -> Post#3
> 
> It is not necessary to patch the driver since the 570s/580s are not checked for signed BIOS.
> (17.9.3)
> 
> 
> 
> Spoiler: Flash How-to
> 
> 
> 
> atiflash_277.zip 1189k .zip file
> 
> 
> open command prompt (cmd.exe) as admin (do not run applications in the background (hwinfo, etc ..))
> save the original bios with "atiflash -s *nr.* *bios.rom*". ("atiflash -i" shows the number of the card under "adapter", with only one card it is 0)
> flash BIOS file with "atiflash -fs -p *nr.* *bios.rom*"
> uninstall the driver before reboot, then run a clean deinstall with DDU in safe mode (Safe Mode W10).
> 
> 
> 
> 
> Real RX 480 to RX 580 conversions (IR Controller only)
> 
> VRM-register fixed
> IMC 1000mV (RX480 standard)
> sub-vendor fixed / reference AMD/ATI
> fixed GOP/UEFI ("secure boot" has to be disabled)
> fan settings and temp target fixed
> 1200mV, 1340MHz, powerlimits fixed (at least RX580 stock)
> PBE editable; UEFI will still work afterwards
> Wattman shows only 1150mV, but auto setting is 1200mV, which is also the maximum.
> Please make sure the right GDDR5 manufacturer (GPU-Z) is supported. If not specified, it's Samsung.
> Also, check with vrmtool if ur card is what it's supposed to be and has an IR controller.
> 
> RX480 Reference
> 
> ref480-580.1.0013.rom.zip 108k .zip file
> 
> Stock Edition (1150mV, 110W, 1266MHz)
> 
> ref480-580.stock.1.0013.rom.zip 108k .zip file
> 
> XTR Edition (1225mV, 200W, 1366MHz)
> 
> ref480-580.xtr.1.0013.rom.zip 108k .zip file
> 
> 
> Asus RX480 Strix 8GiB
> 
> strix480-580.1.0010.rom.zip 108k .zip file
> 
> 
> MSI RX480 Gaming X 4/8GiB
> 
> msi480-580.1.0011.rom.zip 108k .zip file
> 
> 
> msi480-580.4G.hynix.1.0011.rom.zip 108k .zip file
> 
> 
> Sapphire RX480 Nitro+ 4/8GiB
> 
> nitro480-580.1.0010.rom.zip 108k .zip file
> 
> 
> nitro480-580.4G.hynix.1.0010.rom.zip 108k .zip file
> 
> 
> nitro480-580.4G.samsung.1.0010.rom.zip 108k .zip file
> 
> 
> XFX RX480 GTR BE/XXX 8GiB
> 
> xfx480-580.1.0010.rom.zip 108k .zip file
> 
> 
> HIS RX480 IceQ X² 8GiB
> 
> his480-580.1.0010.rom.zip 108k .zip file
> 
> 
> Gigabyte RX480 G1 4/8GiB
> 
> giga480-580.1.0010.rom.zip 108k .zip file
> 
> 
> giga480-580.4G.hynix.1.0010.rom.zip 108k .zip file
> 
> 
> PowerColor RX480 Red Devil 8GiB
> 
> devil480-580.2.0008.rom.zip 109k .zip file
> 
> 
> PowerColor RX480 Red Dragon 4/8GiB
> 
> dragon480-580.2.0008.rom.zip 109k .zip file
> 
> 
> dragon480-580.4G.samsung.2.0008.rom.zip 108k .zip file
> 
> 
> 
> 
> Spoiler: Vcore Offset
> 
> 
> 
> open the .rom-file with a hex-editor, and change the marked byte at the specified address:
> 8D 00 *00* 00 -> hex value x * 6,25mV
> 4 -> +25mV, 8 -> +50mV, 10 -> +100mV
> negative: FF - x +1
> FC -> -25mV, F8 -> -50mV
> Then open the file with Polaris Bios Editor -> Update CRC -> done.
> 
> RX480 Reference
> 
> v1.0013 -> A97C
> 
> Asus RX480 Strix
> v1.0010 -> A952
> 
> MSI RX480 Gaming X 4/8GiB
> v1.0011 -> A95C
> 
> XFX RX480 GTR 8GiB
> v1.0010 -> A96C
> 
> Sapphire RX480 Nitro+ 4/8GiB
> v1.0010 -> A974
> 
> Gigabyte RX480 G1 4/8GiB
> v1.0010 -> A97C
> 
> HIS RX480 IceQ X² 8GiB
> v1.0010 -> A96C
> 
> PowerColor RX480 Red Devil 8GiB
> v2.0008 -> AC98
> 
> PowerColor RX480 Red Dragon 4/8GiB
> v2.0008 -> ACA0
> 
> 
> 
> 
> 
> Spoiler: IMC (Integrated Memory Controller)
> 
> 
> 
> open the .rom-file with a hex-editor, and change the marked byte at the specified address:
> 00 *0C* B6 03
> 0B -> 950mV
> 0C -> 1000mV
> 0D -> 1050mV
> 0E - > 1100mV
> 0F is max, not tested, could also result in 950mV or max Vcore
> Then open the file with Polaris Bios Editor -> Update CRC -> done.
> 
> RX480 Reference
> 
> v1.0013 -> 9DB5
> 
> Asus RX480 Strix
> v1.0010 -> 9D8B
> 
> MSI RX480 Gaming X 4/8GiB
> v1.0011 -> 9DB5
> 
> XFX RX480 GTR 8GiB
> v1.0010 -> 9DB5
> 
> Sapphire RX480 Nitro+ 4/8GiB
> v1.0010 -> 9DB5
> 
> Gigabyte RX480 G1 4/8GiB
> v1.0010 -> 9DB5
> 
> HIS RX480 IceQ X² 8GiB
> v1.0010 -> 9DB5
> 
> PowerColor RX480 Red Devil 8GiB
> v2.0008 -> 9D83
> 
> PowerColor RX480 Red Dragon 4/8GiB
> v2.0008 -> 9D83
> 
> 
> 
> 
> 
> Spoiler: Memory Timings
> 
> 
> 
> Polaris Bios Editing ( RX5xx / RX4xx )
> R_Timings - Encode/Decode RX/R9 Memory Straps
> 
> 
> 
> 
> 
> Spoiler: PBE Notes
> 
> 
> 
> 
> The red fields should not be changed, either it doesn't work or the card is not booting at all.
> The voltages are marked yellow; these values should also not be changed. The memory voltage has never been working (it is some cap), and since 17.4.1 that also applies to the pointers (6528x) of the Vcore.
> How to change the voltages, see Vcore Offset, post#3 and IMC.
> 
> 
> 
> 
> 
> Spoiler: known issues
> 
> 
> 
> 
> On some cards, the ports are not recognized in the correct order. On the Nitro+ one of the two HDMI is recognized as DVI.
> 
> 
> 
> 
> special thx to @gupsterg, @Vento041, @mynm and lordkag from win-raid forum.


Hi there,

I'm having a PowerColor RX480 Red Devil 8GiB can i flash it with Gigabyte RX580 8GiB bios? Thanks


----------



## rootmoto

@alienalvan I think you shouldn't because the PCB is different even though they both use the IR3567B voltage controller but have different mosfets and PWM's which could damage the card like @hellm said at the top. Better to do the conversion or see if there's a PCB review of the equivalent RX 580 card of your RX 480 card.


----------



## Michailov

Yeah that is sample image from web presents my cooling solutions. So I will try to reduce core clock to XFX original - 1288 MHz without decrease a voltage and check that works. If works next increase a core clock to get a border stable value. Now I use a russian @hellm BIOS ant it will be base BIOS for testing.


----------



## kilogrm70

Quote:


> Originally Posted by *alienalvan*
> 
> Hi there,
> 
> I'm having a PowerColor RX480 Red Devil 8GiB can i flash it with Gigabyte RX580 8GiB bios? Thanks


I would go with hellm's 480 to 580 conversions, which he made for a series of 480 cards, for best results, which for your card would be devil480-580.2.0008.rom.zip and can be found back at the beginning of the thread.


----------



## hellm

Quote:


> Originally Posted by *Karunious*
> 
> Hellm: The Reference and XFX GTR 480 > 580 BIOS worked perfectly fine for it, but I went ahead and tried the "Russian" variant. I can't really tell the difference, but it did make my custom fan work correctly without adding the zero fan modification. Before it would just be at 100% on P0 state (I've got an Arctic Accelero Mono on the card and cut a part of the backplate casing so they can both fit together.).


i added that info in post#3, a custom fan might interpret the zero PWM signal as maximum speed.
Quote:


> Originally Posted by *rootmoto*
> 
> @hellm Which offset do I mod in the vBIOS to turn on LLC and how to adjust PWM frequency? What would be a safe PWM switching frequency for my RX470?


I was told i shouldn't play with the pwm frequency, makes things unstable.
If you want to do that, you would have to add the register to voltage object info table, and then recalculate table length. if you have an IR3567B, for non-IR controllers, i can't tell.
try to check with vrmtool
i can help you with editing voi table, but first make some serious testing. Carefully, VRM looses efficiency, more heat.
Quote:


> Originally Posted by *alienalvan*
> 
> I'm having a PowerColor RX480 Red Devil 8GiB can i flash it with Gigabyte RX580 8GiB bios? Thanks


Already answered, use devil480-580.. if you want to change subvendor, see post#3.


----------



## MixedC

I am still not sure if MSI RX 480 Gaming has same PCB as Gaming X, but I am fine since flash so I guess it does.
It is realy almost impossible to find English information about RX480 Gaming 8G, there must be german and russian sources, but I don't speak those languages.

Because of my curiosity, I have tried to install "MSI Gaming APP" so I can activate OC Profile and change color of the LED on the GPU.
It didn't work, said somthing implying I don't have a compitible GPU, wonder what I have to change. It must be something in the bios like serial number, GPU code something probably simple.


----------



## MixedC

I have found an app for changing leds on MSI cards, works on mine.
https://github.com/Vipeax/MSI-LED-Tool/releases

reddit page:
https://www.reddit.com/r/nvidia/comments/51kxyj/alternative_to_control_leds_on_msi_cards/


----------



## hellm

Gaming and Gaming X should have the same PCB, the important part in the BIOS is the same. So, no concerns here.


----------



## rootmoto

@hellm My card uses the IR3567B voltage controller (I have the Gigabyte RX 470 G1 Gaming) so there is a way to turn on LLC in the BIOS for that voltage controller? So what do you want me to test in vrmtool?


----------



## hellm

the settings for your PWM. and Load Line.

again, i think der8auer said this in one of his vids, not sure, but changing PWM frequency has an impact on other settings; so, this might lead to instability or even damage.
for my testing: 360khz brought me a red screen, and no better oc results. i recommend you test it before making it permanent with a BIOS-mod.

with vrmtool, you can change the same register values.
Quote:


> Originally Posted by *gupsterg*
> 0x22 = fSW Loop 1, see notes below.
> 0x24 = Loadline slope Loop 1, (x*0.025mΩ), min 0.0mΩ max 6.375mΩ.
> 0x38 = Loadline calibration, 80h or 81h = normal operation (ie vDroop), 01h = no vDroop.
> 
> VRM switching frequency (fSW):
> Converting hexadecimal to kHz
> ((10^6)/(((10^6/48000)*x)))
> Converting kHz to decimal for setting hexadecimal
> (((10^6)/x)/((10^6)/48000))
> F0h = 200kHz
> A0h = 300kHz
> 78h = 400kHz
> 60h = 500kHz
> 50h = 600kHz
> 3Ch = 800kHz
> 30h = 1000kHz
> Note: IR3567B supports 200kHz to 2000kHz but most common gate drivers max 1000kHz.


For the load line: no real use. just add more Vcore..

But i will help you with editing VOI table and change table length. if you realy want to do that.


----------



## rootmoto

@hellm Yes please on learning how to edit VOI table. Will get a vrmtool dump soon.


----------



## hellm

*62* 00 03 01 01 03 *2E* 00 08 96 10 00 00 00 00 00 29 00 24 00 2B 00 2C 00 33 00 72 00 24 00 1C 00 14 00 22 00 39 00 BE 00 61 00 03 00 62 00 7E 00 FF

this is the relevant first part of the VOI table. To find the voltage object info table, use atombiosreader, it is one of the data tables. or just search for "03 01 01 03"

if you add more bytes you have to adjust both length values i marked above.
add 4 bytes -> 0x62 + 4 = 0x66, and 2E +4 = 32.

the bytes for a register are 2 shorts, first byte register, 00 byte, value, 00 byte:
example pwm 400kHz:
22 00 78 00
add the bytes before the FF placeholder.

to adjust table length, goto last spoiler:
http://www.overclock.net/t/1561372/hawaii-bios-editing-290-290x-295x2-390-390x
it is the same for polaris.

after you added bytes, you have to make sure the UEFI/GOP is at the right offset, so delete the same amount of placeholder "FF" bytes found before the GOP. This will also fix file length.

Update CRC, done.


----------



## rootmoto

@hellm How did you managed to convert 400khz to get the hex values you listed there and also where to insert into? Also in VRM tool you can disable loadline which would result in a register 01h and changed the VID, is there a way to change in the actual BIOS ?


----------



## hellm

No, 0x01 is not the register, that would be 0x38. to set this register from 0x81 to 0x01 turns load line off. It is that simple.
If you change PWM to 400KHz with vrmtool, you see that the register 0x22 change from 0x9E to 0x78. How to get those hex-values we know thx to gupsterg, i posted the calculations above^^.

Those registers are not present in the BIOS, they are set by default. If you want to change that value, you have to add the register to voi table, like i explained.


----------



## MixedC

something have changed.
my voltage under load is no longer 1125mv, it is now 1119mv (as we all know it has 6mv steps).
I am on latest driver, guess if it is driver related or something else?
I get -31mv drop now, it used to be -25mv.

VRM cannot be aging this fast, they stay at 70C LOL.

edit:
wow, wow there is soemthing wrong. VRMs hit 94C?!? since how long? what?
I have to look into this, something is wrong














(I know 90C is fine for them







)
Everything is now back to normal, temperatures are important


----------



## hellm

Better stay away from 17.10.2, there are more and more people complaining about crashes and what not.

Was unstable for me too, crashed my mouse driver, had a black screen at startup and AMD settings crashed.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> Better stay away from 17.10.2, there are more and more people complaining about crashes and what not.
> 
> Was unstable for me too, crashed my mouse driver, had a black screen at startup and AMD settings crashed.


Yeah I have read about those.
I have tried the mentioned crashes such as Rainbow 6, doesnt happen for me neither I have ever had mouse corraption.
Guess I am lucky.


----------



## rootmoto

@hellm So if I want to disable Vdroop and set VID to 1.25v, what would be the hex values for me to edit the BIOS? I understood the concept adding it before FF and deleting an FF before the GOP driver for every byte added in.

EDIT: Don't worry now I managed understand on how to the register and values thing now, just need to understand on how fix the table length now, I'm kind of lost on that.

EDIT No. 2: Don't worry managed to solve the rest myself now after re-reading and digesting the information I've managed to do all the VID and Vdroop stuff. Thanks for the help hellm.
















EDIT No.3: How do I get my IMC voltage to be 1.1v? This is the offset in my BIOS: 00 0A 84 03


----------



## hellm

are you using the conversion i made? everything fine with it?

*0B* 84 03 00 00 E8 03 98 AB 02

^^these are the bytes for the last mem step in my giga470-570. 0B +/- 1 changes IMC +/-50mV.
It is only a cap of somehow, cause to low Vcore also creates mem errors; doesn't have any impact on OC afaik.


----------



## rootmoto

@hellm I'm using the original Gigabyte RX 570 Gaming BIOS that's been modded.


----------



## rastaeyes

Quote:


> Originally Posted by *MixedC*
> 
> I am still not sure if MSI RX 480 Gaming has same PCB as Gaming X, but I am fine since flash so I guess it does.
> It is realy almost impossible to find English information about RX480 Gaming 8G, there must be german and russian sources, but I don't speak those languages.
> 
> Because of my curiosity, I have tried to install "MSI Gaming APP" so I can activate OC Profile and change color of the LED on the GPU.
> It didn't work, said somthing implying I don't have a compitible GPU, wonder what I have to change. It must be something in the bios like serial number, GPU code something probably simple.


The MSI App isn't very good for doing this. If you play around enough you will find a small .exe file called LED.exe or something similar, that let me change my LEDs sometimes, but it doesn't always work, and it doesn't save the settings on boot until you are logged into Windows which for me made it useless.


----------



## rastaeyes

I flashed the v xx.11 MSI Gaming X RX580 8GB BIOS again, I kept the UEFI the same, changed clocks to match regular 580, and added UberMix timings to 2000, 1750, strap.

The screen flashing problem seems to be solved by adding the timings to the lower straps, I think the AMD driver was switching the memory timing and due to the memory errors it was causing brief bouts of screen corruption/static.

That said the "Magic" UEFI isn't working, I still have to enable CSM to get through the boot process.


----------



## rastaeyes

Quote:


> Originally Posted by *MixedC*
> 
> I have found an app for changing leds on MSI cards, works on mine.
> https://github.com/Vipeax/MSI-LED-Tool/releases
> 
> reddit page:
> https://www.reddit.com/r/nvidia/comments/51kxyj/alternative_to_control_leds_on_msi_cards/


Thanks for posting this it looks useful; however, it doesn't work on my RX480>RX580 MSI Gaming X 8GB.

It makes the MSI logo turn green regardless of the settings, and running the .exe again with other settings doesn't do anything. It's possible the program only likes stock cards or that the BIOS flash changes some references to the LED codes /hwids.


----------



## hellm

1.63 works. just deactivate secure boot.
you could also try 1.60, but i doubt that would bring any changes. I don't know why you have troble with that, but if you are using one of my conversions, i guess it is secure boot. or something different in your system.
Quote:


> Originally Posted by *rootmoto*
> 
> @hellm I'm using the original Gigabyte RX 570 Gaming BIOS that's been modded.


That is what i did. If you made your own BIOS, take a look at the VOI table in my giga470-570.
You should use this one for your modding.


----------



## swknf

Hi !

I own a MSI RX 580 Gaming X 4GiB with Samsung RAM K4G41325FE so I used the bios you provided for Hynix Ram and replaced the ram module réf and recopied timings from stock RX480.
Now the card is working but it lack MSI Gaming APP support which is usefull to control the FAN or the LED.

MSI RX480 Gaming X 4/8GiB

msi480-580.4G.hynix.1.0011.rom.zip 108k .zip file

Is there a way to recover MSI Gaming APP functionnality ?

Here is th bios I used

msi480-580.4G.samsungFE.1.0011.rom.zip 108k .zip file


Thanks for the great work !


----------



## MixedC

Quote:


> Originally Posted by *swknf*
> 
> Hi !
> 
> I own a MSI RX 580 Gaming X 4GiB with Samsung RAM K4G41325FE so I used the bios you provided for Hynix Ram and replaced the ram module réf and recopied timings from stock RX480.
> Now the card is working but it lack MSI Gaming APP support which is usefull to control the FAN or the LED.
> 
> MSI RX480 Gaming X 4/8GiB
> 
> msi480-580.4G.hynix.1.0011.rom.zip 108k .zip file
> 
> Is there a way to recover MSI Gaming APP functionnality ?
> 
> Here is th bios I used
> 
> msi480-580.4G.samsungFE.1.0011.rom.zip 108k .zip file
> 
> 
> Thanks for the great work !


Don't use MSI gaming APP,, control fans with anything like MSI AB or Speedfan or anything.
Go a page back, or 2 and you'll see I have shared a github project and a reddit page, it is for controlling the LEDs and it works.
Works better than GamingAPP uses less CPU.

I don't use the app because my GPU is invisible inside the case anyway, but I have tried the APP for science and sake of Information.
It works just fine.

Tip:
If you run it once, don't run it again unless you end the process from Task Manager. It has no GUI or anything. You set what you want in Config file, click the .exe and it runs.
You can also make it start at Windows Start, you have to modify the REG file in the folder and just run it once.


----------



## swknf

Yeah but the led app found on github doesn't work either. As stated on previous posts it just give a green led and that's it, can't do nothing else.


----------



## hellm

You could try and use the sub-id of the msi 580 gaming X (post#3, sub-vendor). There is only one sub id for the 480s(13 34), but i found 2 for the 580s (17/19 34).
I used the original sub id of the 480 to prevent this, worked for the nitro+ afaik.


----------



## swknf

Ok, I'll try that !


----------



## MixedC

Quote:


> Originally Posted by *swknf*
> 
> Ok, I'll try that !


Noı Led APP works, if that people paid attention to it, or you.
I explained, you have to change config file.

I used it, I have same GPU, it works. I also said that, it works and bunch of other stuff.

It shows green because it is by default set to temperature based led color, that is a thing with that APP.
you set the temps and it goes green to red depending on temperature.


----------



## asotos13

hi i had saphire 480 nitro+ 4g.
i flash it with bios of 480 nitro+ 8g and it works perfect.Now i want to flash it bios from nitro+ 580, the memory of my card is samsung.
can i flash it with the bios 8g or i have a problem?
what did you think?
sorry for my english and thanks for your help


----------



## hellm

Don't flash a BIOS from a different card! EVER!

I made the conversions for a reason, so use 4G version for the right mem manufacturer.


----------



## swknf

Quote:


> Originally Posted by *MixedC*
> 
> Noı Led APP works, if that people paid attention to it, or you.
> I explained, you have to change config file.
> 
> I used it, I have same GPU, it works. I also said that, it works and bunch of other stuff.
> 
> It shows green because it is by default set to temperature based led color, that is a thing with that APP.
> you set the temps and it goes green to red depending on temperature.


My bad the tool is working. Now understand that animation = 6 is for temp led control.


----------



## swknf

Quote:


> Originally Posted by *hellm*
> 
> You could try and use the sub-id of the msi 580 gaming X (post#3, sub-vendor). There is only one sub id for the 480s(13 34), but i found 2 for the 580s (17/19 34).
> I used the original sub id of the 480 to prevent this, worked for the nitro+ afaik.


Hi hellm,

Ok so I used 1734 and 1934 subid and MSI app still not know the card. But I may have a hint :

your modded bios lack of what it seems to be "card model" like MS-V34113-F0 which is referenced in MSI app config file.
your bios instead provide a xxx-xxx-xxx which i tried to replace but I ended up with an invalid bios.

You can take a look at what I try to explain with this two file :

https://www.techpowerup.com/vgabios/195890/195890
this is your modded bios with modified RAM type to match my card. It's working but model = xxx-xxx-xxx

https://www.techpowerup.com/vgabios/191759/191759
this is a stock RX 580 Msi gaming X 4G rom file with model MS-V34113-F1

any clue on how to put that value in my bios without destroying it ?


----------



## swknf

Quote:


> Originally Posted by *MixedC*
> 
> Noı Led APP works, if that people paid attention to it, or you.
> I explained, you have to change config file.
> 
> I used it, I have same GPU, it works. I also said that, it works and bunch of other stuff.
> 
> It shows green because it is by default set to temperature based led color, that is a thing with that APP.
> you set the temps and it goes green to red depending on temperature.


EDIT.

I have managed to put the value ( corresponding to Parts# in GPU-Z ) but still not working.
As I can see it seems that de vendor offset is not right on your modded bios since it display 4952 instead of 1002 ( also 67df is on the next offset). I may be wrong but if I compare with stock bios the offset seems to be wrong. I have tried to set it back where it should ( imho ) but then I get the right value displayed in bios editor but error division by 0 and crash. So I'm not doing the right thing here.

EDIT 2

Nevermind it's ok for the value...
The last thing that need to be modified is the sybsys under windows device manager. It report 34131462 ( 3413 1462 ) instead of 34171462 ( 3417 1462 ) on the real one.
An idea where to mod this ??


----------



## Rexer

I was hanging out at the Vega Owner's club the last couple of hours and it's like a flashback of the old 290x posts. Techies and Clock Busters are having a lot of teething problems going on running games, temps and clocks, crashing and freezes. Sort of disappointed but new technology seems to always have a lot of bugs.
I've been waiting for Vega since last January but purchased a 580 8gb in mid May after destroying my 390x. I almost didn't get the 580 8gb due to the mining junkies buying up the 8gb cards. But everyday that goes by, I feel like I've make the best choice under God, with liberty and justice for all.
For a Sapphire 580 Nitro+ 8gb @$259.00, this was a superior buy. I've never gone beyond 62c temps. In fact, 52c-55c has been the norm. It just flies. True, it doesn't render super fine detail like the 390x does but it's hardly noticeable. I'm a heavy multiplayer guy and sometimes speed is more important than detail. Being online with 64 guys in Battlefield 1, 3, 4 and Call of Duty Ghost, AW, and Infinity sometimes turning down detail (from ultra to high) helps reveal and distinguish moving objects better. Sort of uncovers a hidden enemy.
Best senero, I beat down my Nvidia 1070 & 1080 friends with better scores. It's hilarious. And I haven't touched the clocks yet!
Yeah, I may not buy Vega soon since I'm relishing the 580. I've decided to wait for all the driver bugs and updates in Vega to be fixed. That might be another 4 to 6 months. It may be when the they introduce 2 gen AIB cards.
In the meantime, I just purchased 2 Asus 580 8gb @ $299.00 as gifts for friends in my clan running old HD7950's. 580 Nitro+ @ gotta be the best overall buy. I can't stop gushing about it.


----------



## hellm

Quote:


> Originally Posted by *swknf*
> 
> The last thing that need to be modified is the sybsys under windows device manager. It report 34131462 ( 3413 1462 ) instead of 34171462 ( 3417 1462 ) on the real one.
> An idea ??


Windows Device Manager has this number from the BIOS itself. Maybe you did something wrong with those check bytes in the header. Else i don't know, those numbers are only stored there.
1462 is for MSI, in the BIOS 62 14, and the bytes at offset 80-82 is A2 18 45
3417 the new sub id, BIOS 17 34, offset 78-7A should be 2E 68 20


----------



## swknf

Quote:


> Originally Posted by *hellm*
> 
> 3417 the new sub id, BIOS 17 34, offset 78-7A should be 2E 68 20


I missed that one ! Thanks a lot !

Now it's working the card is recognized by MSI Gamin APP like a real 580.

Bios here

MSIRX480GamingX4GtoRX580.zip 108k .zip file


MSI RX480 Gaming X 4G ( with Samsung K4G41325FE RAM ) modded to RX 580 Gaming X 4G fully working MSI Gaming APP


----------



## SSBrain

A few days ago I tried modifying some values in the RX480 bios (as suggested in one of the first posts in this thread) to make the driver recognize the card as an RX580. Apparently just doing this skews a little GPU power draw readings in the driver (higher power draw detected, especially at idle - although in practice it's actually the same). It appears that this time GPU load and Memory Controller utilization are being correctly displayed, compared to a few months ago.

I've also noticed that the maximum voltage one can set through Wattman is still 1.175v. By using the entire RX580 conversion BIOS this becomes 1.200v as far as I recall. Has this been investigated yet? It looks like Wattman is not limiting the maximum voltage just by looking at the GPU model.


----------



## hellm

That is because power draw readings on Polaris cards are never going to deliver exact values. That is because of the way they are calculated and there is no real measurement data in the first place.
https://www.youtube.com/watch?v=ka6mptREMVY

little update:
- added msi 4G samsung
- changed sub id for msi and xfx to 580


----------



## alienalvan

Hi guys,

Another quick question whereby I found one of my old PowerColor RX480 which is a 6 pins model, so can I flash it with the PowerColor RX580 bios?

Thanks


----------



## MixedC

Quote:


> Originally Posted by *alienalvan*
> 
> Hi guys,
> 
> Another quick question whereby I found one of my old PowerColor RX480 which is a 6 pins model, so can I flash it with the PowerColor RX580 bios?
> 
> Thanks


it must be reference design right?
use reference one for that.


----------



## alienalvan

Quote:


> Originally Posted by *MixedC*
> 
> it must be reference design right?
> use reference one for that.


Well I'm not really sure what's a reference design means but I can show you some pictures of it, it just look identical as the other piece of my RX480 just that it's only having a 6 pins which worries me if I flash it into PowerColor RX580 will it brick.


----------



## hellm

this one looks like a PowerColor Red Dragon. I made conversions for the 4 and 8 GiB model.

Oh, wait, it says Dataland, i think they are the same, don't know for sure.


----------



## alienalvan

Quote:


> Originally Posted by *hellm*
> 
> this one looks like a PowerColor Red Dragon. I made conversions for the 4 and 8 GiB model.
> 
> Oh, wait, it says Dataland, i think they are the same, don't know for sure.


We'll surely it's a PowerColor Red Dragon ? based on checking it's some sort of manufacturer of PowerColor which means they're producing the GPU for them ? I get this from Taobao around $210 USD which I find quite affordable, but I was expecting to get 2 piece of 8 pins rather than 1 piece of 8 and the other was 6 pins.?


----------



## kilogrm70

Quote:


> Originally Posted by *alienalvan*
> 
> We'll surely it's a PowerColor Red Dragon ? based on checking it's some sort of manufacturer of PowerColor which means they're producing the GPU for them ? I get this from Taobao around $210 USD which I find quite affordable, but I was expecting to get 2 piece of 8 pins rather than 1 piece of 8 and the other was 6 pins.?


Dataland is a subsidiary of Powercolor, so I see no reason why flashing a red dragon bios on the card wouldn't work. Just make sure to use either the 4GB version or the 8GB version of Hellm's conversion depending on your card type.


----------



## alienalvan

Quote:


> Originally Posted by *kilogrm70*
> 
> Dataland is a subsidiary of Powercolor, so I see no reason why flashing a red dragon bios on the card wouldn't work. Just make sure to use either the 4GB version or the 8GB version of Hellm's conversion depending on your card type.


Well I did flash the other piece of 8 pins RX480 into PowerColor Red Dragon RX580 and it seems run perfectly fine, I benchmark it with heaven and let loop for half an hour seems ok for now. Need to do more stress test with 3Dmark once I've attach the water block to it ?


----------



## hellm

pieces of eight

If one card has an 8pin, and the other one don't, the cards are different. And you don't know what other things of the VRM are different, so just flashing a BIOS and hope for the best is maybe not a very good idea.
From your location, there are all kind of weird cards sold in china, there might be some special models.

We should take a look at the "Voltage Object Info" table, if you extract them from the original BIOS (use atombiosreader), we could make sure the BIOS fits your cards.

Update:
MSI Gaming APP should work now.


----------



## Loladinas

With the few of the latter drivers my 480 started to spike more than it used to (or maybe it's just the age of the thing, and the abuse it took, even tho I always kept core and VRM below 60C). It used to be it spiked up to 1.15V, but recently I caught a couple of spikes going up to 1.3V. Under/overvolting or messing with power limits and p-states didn't seem to fix it. Flashed the BIOS to 580, set it up as I had done previously and the spikes are mostly gone. Only goes up to 1,1V, from set 1V, occasionally.

Everything seems to work fine now, but I did get a roughly 0,7-1% decrease in benchmark scores. Is this normal or am I missing something? Also the stock voltage table seems to be 13mV higher on your BIOS than my card had. Either way, thanks for your work.


----------



## MixedC

Quote:


> Originally Posted by *Loladinas*
> 
> With the few of the latter drivers my 480 started to spike more than it used to (or maybe it's just the age of the thing, and the abuse it took, even tho I always kept core and VRM below 60C). It used to be it spiked up to 1.15V, but recently I caught a couple of spikes going up to 1.3V. Under/overvolting or messing with power limits and p-states didn't seem to fix it. Flashed the BIOS to 580, set it up as I had done previously and the spikes are mostly gone. Only goes up to 1,1V, from set 1V, occasionally.
> 
> Everything seems to work fine now, but I did get a roughly 0,7-1% decrease in benchmark scores. Is this normal or am I missing something? Also the stock voltage table seems to be 13mV higher on your BIOS than my card had. Either way, thanks for your work.


I have done extensive tests, performance is 100% same on same clocks, try hibernating your PC and waking it up whenever it happens, hibernation fixes it for me and it is driver related. Used to happen with RX480 too when I OC or Crash drivers.

580 bios really takes spikes away, but you'll still find it spike up to 1.2V time to time, because 1.2v is default for latest P-state. It is normal and it doesnt really spike to 1.2v much with latest drivers.

As long as I do not hit power limit, my card doesn't spike with rx580 bios, so you should set your power limit accordingly.


----------



## Loladinas

Quote:


> Originally Posted by *MixedC*
> 
> I have done extensive tests, performance is 100% same on same clocks, try hibernating your PC and waking it up whenever it happens, hibernation fixes it for me and it is driver related. Used to happen with RX480 too when I OC or Crash drivers.
> 
> 580 bios really takes spikes away, but you'll still find it spike up to 1.2V time to time, because 1.2v is default for latest P-state. It is normal and it doesnt really spike to 1.2v much with latest drivers.
> 
> As long as I do not hit power limit, my card doesn't spike with rx580 bios, so you should set your power limit accordingly.


I'll try to run more benchmarks over the weekend if I find the time, but I'm pretty confident my scores dropped. Of course 1% being just ~half of frame per second in this case it might just be the margin of error. Either way it's not a big issue, even if there is one at all.

I've set up my power limits to stay within spec of the relative components, since cooling isn't the limiting factor here. Should be good enough.

So if the last P-state is set to 1.2V in BIOS, it should be possible to edit it and set it to something a bit more tame, right?


----------



## MixedC

Quote:


> Originally Posted by *Loladinas*
> 
> I'll try to run more benchmarks over the weekend if I find the time, but I'm pretty confident my scores dropped. Of course 1% being just ~half of frame per second in this case it might just be the margin of error. Either way it's not a big issue, even if there is one at all.
> 
> I've set up my power limits to stay within spec of the relative components, since cooling isn't the limiting factor here. Should be good enough.
> 
> So if the last P-state is set to 1.2V in BIOS, it should be possible to edit it and set it to something a bit more tame, right?


IT is, you can find some info either in this or polaris bios editing thread, you have to change the voltage pointer according to the voltage table.

1.2v is fine as default, use latest drivers and it doesn't really go up to 1.2v for me anymore after Fall Creators Update Drivers.

but eişther rx480 or rx580, it used to go up to 1.15v for 480 and 1.2v for 580 when playing back video voltage will raise for a split second. This was accepted as normal.
so don't bother with it, because as far as I can tell, it doesn't act like that anymore.

and if you even wanted to run your car @1.2v under load, it is fine anyway let alone a rare spike.


----------



## ZoomThruPoom

Even with my hex editor dyslexia I was able to use page #1 of this thread and cap the voltage of my card at 1.175 on hellm's bios and it works flawless.

I run 1.156 in wattman and HWinfo reports occasional spikes to 1.175 (instead of 1.2) as per the bios edit. All is normal here.

My earlier issues with spikes I was able to narrow it down when I went back to the stock 480 bios and still had volt spiking.

http://www.overclock.net/t/1634872/bios-mod-rx480-rx580-conversions-how-to-rx470-rx480-rx570-rx580/220#post_26374869

Seems the last three or so drivers before the FallCreatorsUpdate beta driver was the culprit. All has been well since 17.10.x drivers for me.

Back on Hellm's Nitro bios with ubermix timings running superb.

Really want to update the Nitro bios with the latest GOP and I tried, but ...well...

Low I.Q. and all couldn't get it done.


----------



## rastaeyes

Quote:


> Originally Posted by *MixedC*
> 
> Noı Led APP works, if that people paid attention to it, or you.
> I explained, you have to change config file.
> 
> I used it, I have same GPU, it works. I also said that, it works and bunch of other stuff.
> 
> It shows green because it is by default set to temperature based led color, that is a thing with that APP.
> you set the temps and it goes green to red depending on temperature.


For me it partially works, I can set the LED manually, but the settings to autostart the LED don't do anything on startup.


----------



## rastaeyes

I'm running v12 now; on the RX 580 MSI Gaming X 8GB and it all seems good. The screen flickering is still fixed since placing the ubermix timings onto the 1750mhz memory strap.

I think maybe their was some confusion earlier about this 'magic' GOP. I read that it passes the UEFI check, but I have to enable CSM to boot into Windows otherwise it fails the VGA check.


----------



## alienalvan

Hi hellm,

Attached with the ROM file. Thanks









OriginalROM 6k .txt file


----------



## hellm

Quote:


> Originally Posted by *rastaeyes*
> 
> I'm running v12 now; on the RX 580 MSI Gaming X 8GB and it all seems good. The screen flickering is still fixed since placing the ubermix timings onto the 1750mhz memory strap.
> 
> I think maybe their was some confusion earlier about this 'magic' GOP. I read that it passes the UEFI check, but I have to enable CSM to boot into Windows otherwise it fails the VGA check.


As i said, multiple times, both GOP files boot nicely without CSM. For anyone else on this planet but you. I guess it is secure boot or any other thing with your system that is preventing this.
Quote:


> Originally Posted by *ZoomThruPoom*
> 
> Back on Hellm's Nitro bios with ubermix timings running superb.
> 
> Really want to update the Nitro bios with the latest GOP and I tried, but ...well...


If u use one of my files, they all use 1.63, no need for updates.
Quote:


> Originally Posted by *alienalvan*
> 
> Hi hellm,
> 
> Attached with the ROM file. Thanks
> 
> 
> 
> 
> 
> 
> 
> 
> 
> OriginalROM 6k .txt file


maybe it will take a few days, but i will have a look.


----------



## ZoomThruPoom

Quote:


> Originally Posted by *hellm*
> 
> If u use one of my files, they all use 1.63, no need for updates.


Ha, just goes to show I shouldn't be playing around too deep with the hex editor....









Oh, and this Nitro bios works with secure boot and the last three CSM options enabled on my Saberkitty bios.


----------



## alienalvan

Quote:


> Originally Posted by *hellm*
> 
> maybe it will take a few days, but i will have a look.


No problem take your time, but i've a good feeling about this since i just notice even GPUZ was showing PowerColor as sub-vendor


----------



## Loladinas

Is there any way to set P7 below 1150mV? Changing the numbers after 0C 01 03 06 and 8A 00 EB FF FF FF to, say 74 B7 01 and 94 11, still results in the upper end being 1150mV. What am I missing?


----------



## hellm

for 1125mV it should look like this:
0C 01 03 06 *74 B7 01*
and:
8A 00 EB FF FF FF *94 11*


----------



## Loladinas

Quote:


> Originally Posted by *hellm*
> 
> for 1125mV it should look like this:
> 0C 01 03 06 *74 B7 01*
> and:
> 8A 00 EB FF FF FF *94 11*


I've figured that much. It does something to the voltage curve in the sense that it reduces P7 voltage you get under load, but it doesn't "properly set" P7 voltage, in the sense that it still spikes to 1150mV. If you set whe you set 1150, 1175 or 1200 it spikes to 1150, 1175 and 1200, respectively.


----------



## hellm

hm, you are the first one who told me about that. I never experienced any differences with higher values than 1150mV, since the 580 has 1200mV max as stock and everything else is stock. So are these two values:
ULONG ulEvvDefaultVddc;
ULONG ulEvvNoCalcVddc;
both 1150mV, in this case 115000 -> 38 C1 01 00

here is the vanilla 580 ASIC Profiling Info table:
0C 01 03 06 C0 D4 01 00 F8 24 01 00 38 00 06 0A 6A 24 09 00 80 1A 06 00 E8 03 00 00 0C 01 18 08 20 03 00 00 B0 04 00 00 38 C1 01 00 38 C1 01 00 00 00 00 00 00 00 00 00 00 00 00 00 34 C4 01 00 43 01 00 00 00 00 00 00 00 00 00 00 C0 FF 08 0F 08 31 AC 10 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 4B 00 00 00 00 00 00 00 2B 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 9B 02 00 00 03 00 00 00 EA 01 00 00 8A 02 00 00 34 03 00 00 7E 04 00 00 EC 04 00 00 50 05 00 00 B4 05 00 00 E6 05 00 00 B0 71 0B 00 00 35 0C 00 60 1F 0D 00 98 E0 0E 00 70 B7 0F 00 E0 C8 10 00 00 17 11 00 30 8C 11 00 29 01 00 00 A2 04 00 00 BE 01 00 00 1B 00 B8 0B 00 00 6B B6 43 F8 B5 9C 05 00 7A 28 FF FF 00 00 00 00 F3 0D 03 00 7F 60 FE FF 00 00 00 00 23 FF 58 00 00 00 00 00 00 00 8A 00 EB FF FF FF C0 12 00 01 00 01 00 01 00 00

maybe those have to be lower or equal to max VDDC. In the 480 BIOS, both are also 1150mV.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> hm, you are the first one who told me about that. I never experienced any differences with higher values than 1150mV, since the 580 has 1200mV max as stock and everything else is stock. So are these two values:
> ULONG ulEvvDefaultVddc;
> ULONG ulEvvNoCalcVddc;
> both 1150mV, in this case 115000 -> 38 C1 01 00
> 
> here is the vanilla 580 ASIC Profiling Info table:
> 0C 01 03 06 C0 D4 01 00 F8 24 01 00 38 00 06 0A 6A 24 09 00 80 1A 06 00 E8 03 00 00 0C 01 18 08 20 03 00 00 B0 04 00 00 38 C1 01 00 38 C1 01 00 00 00 00 00 00 00 00 00 00 00 00 00 34 C4 01 00 43 01 00 00 00 00 00 00 00 00 00 00 C0 FF 08 0F 08 31 AC 10 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 4B 00 00 00 00 00 00 00 2B 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 9B 02 00 00 03 00 00 00 EA 01 00 00 8A 02 00 00 34 03 00 00 7E 04 00 00 EC 04 00 00 50 05 00 00 B4 05 00 00 E6 05 00 00 B0 71 0B 00 00 35 0C 00 60 1F 0D 00 98 E0 0E 00 70 B7 0F 00 E0 C8 10 00 00 17 11 00 30 8C 11 00 29 01 00 00 A2 04 00 00 BE 01 00 00 1B 00 B8 0B 00 00 6B B6 43 F8 B5 9C 05 00 7A 28 FF FF 00 00 00 00 F3 0D 03 00 7F 60 FE FF 00 00 00 00 23 FF 58 00 00 00 00 00 00 00 8A 00 EB FF FF FF C0 12 00 01 00 01 00 01 00 00
> 
> maybe those have to be lower or equal to max VDDC. In the 480 BIOS, both are also 1150mV.


Actually I gave him the tip to stop voltage spikes to 1.2v, but I didn't test under 1150mv so I didn't know he cannot get them under 1150mv, even if he sets p7 voltage to something lower than 1150mv in bios.

I don't know why wouldn't it go below 1150mv, even if p7 is set to 1100mv by default. because from 1150 upwards, it spikes up to whatever is set in p7 in bios.
might be driver limited?...


----------



## Loladinas

Quote:


> Originally Posted by *MixedC*
> 
> Actually I gave him the tip to stop voltage spikes to 1.2v, but I didn't test under 1150mv so I didn't know he cannot get them under 1150mv, even if he sets p7 voltage to something lower than 1150mv in bios.
> 
> I don't know why wouldn't it go below 1150mv, even if p7 is set to 1100mv by default. because from 1150 upwards, it spikes up to whatever is set in p7 in bios.
> might be driver limited?...


I'm looking into right now, gonna share whatever comes of it. I mean, it's really a non issue, because it only "spikes" up to a safe voltage, but I'm curious as to why it's happening at all.

EDIT: alright, it's kind of curious. Now doing what @hellm suggested did actually set the P7 to a voltage under 1150 (1100 in this case), however running a youtube video, it would still go up to 1150.



And yet if you used the vddc offset, it affects how high up the "spikes" go. Here with a -25 offset, it peaks at 1125.


----------



## hellm

Those 2 voltages i mentioned, i don't think they are responsable for any spikes. From what i know 1125mV works fine with them being at stock, as any other voltage. So, if nothing changed with that, maybe something else is causing this. I still haven't seen more than my 1175mV (GPU-Z, 0.1sec).


----------



## Loladinas

Quote:


> Originally Posted by *hellm*
> 
> Those 2 voltages i mentioned, i don't think they are responsable for any spikes. From what i know 1125mV works fine with them being at stock, as any other voltage. So, if nothing changed with that, maybe something else is causing this. I still haven't seen more than my 1175mV (GPU-Z, 0.1sec).


I feel like there's a bit of miscommunication going on.

Like I said, if I set any voltage higher than 1150 using only the two addresses it works just as I set it and is just fine. If I set it any voltage lower than 1150 it does alter the voltage I get under load (for example, setting it at 1150 results in [email protected], setting it at 1125 results in [email protected], and this is with no offset), but it does not change what voltage software displays for P7 state. So if I open up WattMan, WattTool or whatever, and look up P7 voltage I see 1150. Under video/2D load it occasionally would go up to 1150, regardless of what voltage I would get under 3D load. If I left it idling over night, next morning I'd find a "spike" or two going up to 1150 as well.

After setting voltage at those two additional addresses you pointed out, P7 shows the voltage that is actually set, and it is the voltage I get under 3D load. For example, last night I left it set to 1075, my displayed by WattMan P7 voltage was 1075, my 3D load voltage was 1075. Left it idling overnight, highest recorded was 1075. I can still get it to spike for 100ms up to 1150 if I open up a bunch of Youtube videos at once and switch between tabs quickly.

And I'm curious as to why is it happening.

I'm sorry if this coming off a bit frustrating, but I wasn't any not good with hex to begin with, and now I'm just getting back into it after a 6-9 month long hiatus.

EDIT: one additional thing, setting an offset seems to affect the "spikes"; if I use a -25 offset, it only goes up to 1125, -50 offset - only 1100, and so on.


----------



## MixedC

Quote:


> Originally Posted by *Loladinas*
> 
> I feel like there's a bit of miscommunication going on.
> 
> Like I said, if I set any voltage higher than 1150 using only the two addresses it works just as I set it and is just fine. If I set it any voltage lower than 1150 it does alter the voltage I get under load (for example, setting it at 1150 results in [email protected], setting it at 1125 results in [email protected], and this is with no offset), but it does not change what voltage software displays for P7 state. So if I open up WattMan, WattTool or whatever, and look up P7 voltage I see 1150. Under video/2D load it occasionally would go up to 1150, regardless of what voltage I would get under 3D load. If I left it idling over night, next morning I'd find a "spike" or two going up to 1150 as well.
> 
> After setting voltage at those two additional addresses you pointed out, P7 shows the voltage that is actually set, and it is the voltage I get under 3D load. For example, last night I left it set to 1075, my displayed by WattMan P7 voltage was 1075, my 3D load voltage was 1075. Left it idling overnight, highest recorded was 1075. I can still get it to spike for 100ms up to 1150 if I open up a bunch of Youtube videos at once and switch between tabs quickly.
> 
> And I'm curious as to why is it happening.
> 
> I'm sorry if this coming off a bit frustrating, but I wasn't any not good with hex to begin with, and now I'm just getting back into it after a 6-9 month long hiatus.
> 
> EDIT: one additional thing, setting an offset seems to affect the "spikes"; if I use a -25 offset, it only goes up to 1125, -50 offset - only 1100, and so on.


Yes, offset would do. I used offset for a while for my dual display setup to keep card at lower voltage.
I put 1200MV with -100 offset









so you can go -50mv with 1150, if you are lucky your gpu can idle at 0.650 and run 2D at 0.7v- 0.75v, mine can.


----------



## Loladinas

Quote:


> Originally Posted by *MixedC*
> 
> Yes, offset would do. I used offset for a while for my dual display setup to keep card at lower voltage.
> I put 1200MV with -100 offset
> 
> 
> 
> 
> 
> 
> 
> 
> 
> so you can go -50mv with 1150, if you are lucky your gpu can idle at *0.650 and run 2D at 0.7v- 0.75v*, mine can.


There's no need for luck, I'm pretty sure you can bring up the low end of the voltage curve the same way you can bring down the top end, if need be.

I suppose I'll try to see if I can make it work with a 1150 limit and a -87.5-93.75 offset tonight.


----------



## MixedC

Quote:


> Originally Posted by *Loladinas*
> 
> There's no need for luck, I'm pretty sure you can bring up the low end of the voltage curve the same way you can bring down the top end, if need be.
> 
> I suppose I'll try to see if I can make it work with a 1150 limit and a -87.5-93.75 offset tonight.


I have seen some rx480s that cannot run lower idle clocks, so it happens.


----------



## Loladinas

Quote:


> Originally Posted by *MixedC*
> 
> I have seen some rx480s that cannot run lower idle clocks, so it happens.


Well, maybe. I've set the lower end to 825, and used an -75 offset. Not ideal, but acceptable. Gives me a range of 750 to 1075. I think it should be OK, based on what voltages various pstates show, and my previous testing. Passed benches, watched a few videos. Seems OK. Might crash at some point in the future. Guess I'll have to wait and see.


----------



## rastaeyes

Quote:


> Originally Posted by *hellm*
> 
> As i said, multiple times, both GOP files boot nicely without CSM. For anyone else on this planet but you. I guess it is secure boot or any other thing with your system that is preventing this.
> If u use one of my files, they all use 1.63, no need for updates.
> maybe it will take a few days, but i will have a look.


I don't really have the answer. I have a very standard system, Intel 6600k, Asus Z170-P, DDR4 RAM, so unless there is some wrong setting it doesn't really make sense.

I think it's a bit far fetched to say I'm the only one on the planet with this issue, my system is very standard, and I'm sure someone else has the same problem, it's just that this bios mod is very niche so there's a small sample size skewing your bias.


----------



## MixedC

Quote:


> Originally Posted by *rastaeyes*
> 
> I don't really have the answer. I have a very standard system, Intel 6600k, Asus Z170-P, DDR4 RAM, so unless there is some wrong setting it doesn't really make sense.
> 
> I think it's a bit far fetched to say I'm the only one on the planet with this issue, my system is very standard, and I'm sure someone else has the same problem, it's just that this bios mod is very niche so there's a small sample size skewing your bias.


IT is strange that you have to enable CSM to boot into windows, and otherwise your system fails to boot..
I am running MSI 580 bios as well, my mobo is Gigabyte and I simply either run "Other OS" in bios, or "Windows 8" with no CSM support, and both boots into windows 10.


----------



## hellm

Quote:


> Originally Posted by *rastaeyes*
> 
> I don't really have the answer. I have a very standard system, Intel 6600k, Asus Z170-P, DDR4 RAM, so unless there is some wrong setting it doesn't really make sense.
> 
> I think it's a bit far fetched to say I'm the only one on the planet with this issue, my system is very standard, and I'm sure someone else has the same problem, it's just that this bios mod is very niche so there's a small sample size skewing your bias.


i didn't want to sound rude, but so far no one had a problem, runs fine for everyone.
and those bits i changed (which originally came from lordkag), either it works, or it does not, afaik. And that should apply to every system, meaning it runs on one system, it runs on every system.

I am sorry i can't help you, but i am sure there is a reason for it. Maybe some strange BIOS setting?


----------



## rastaeyes

Quote:


> Originally Posted by *hellm*
> 
> i didn't want to sound rude, but so far no one had a problem, runs fine for everyone.
> and those bits i changed (which originally came from lordkag), either it works, or it does not, afaik. And that should apply to every system, meaning it runs on one system, it runs on every system.
> 
> I am sorry i can't help you, but i am sure there is a reason for it. Maybe some strange BIOS setting?


No it's okay, I think some of the chat is lost in text translation.

I might try it with default BIOS settings, but for now I'm going back to the RX480 BIOS. Games like Overwatch, GTA V, and Heroes of the Storm are crashing all the time because they have bugs with overclocking, I will run stock for a while and see what happens. I think when I sell the card I will need to put it back to the RX480 BIOS anyway.

Thanks for all the help, and keeping the BIOS files updated, it has been a fun side project.


----------



## hellm

1.63 works even with other cards. so, problem has to be somewhere else.
If u enable power efficiency on the 480, you have also 300MHz flat in idle. For the unstable OC, u can't blame the 580 BIOS for that one, comes with higher cooling demands.


----------



## rastaeyes

Yeah that's right, I just can't figure it out.

That's the thing though, the OC is stable, I can run DOOM and lots of other games for hours at max settings, it is a bug specific to Blizzard games, if you overclock at all it crashes in OW and HOTS, saying rendering device lost, or d3d error, and neither Blizzard nor AMD have released any fix. The GTA thing is a similar but separate bug.


----------



## hellm

Try and integrate your oc into the BIOS, if oc with software fails somehow.

Your GPU could also be unstable. Not every Game has the same demands on the hardware. For errors like this usually oc is just too high.

Also, if you take a look at the release notes:
17.11.1-Release-Notes
Quote:


> OverWatch™ may experience a random or intermittent hang on some system configurations. Disabling Radeon ReLive as a temporary workaround may resolve the issue.


----------



## rastaeyes

Already done. I used the stock MSI Gaming X RX580 8GB settings, 1380mhz core, 2000mhz mem. I was still able to push it to 1450mhz core, and 2100mhz mem even with the ubermix 3.1 timings (no crashing in any games at that time including Overwatch), it was stable. The error isn't caused by OC instability, those games ran fine a few patches ago, something changed at driver level or inside the game engine, after 1 patch 6 months ago it started crashing a lot for many users, and then they announced the bug in the AMD driver page eventually.

I have already read about disabling ReLive, it didn't make any difference for me and a lot of other users.

https://www.reddit.com/r/Amd/comments/7ah3ch/crimson_driver_17111_is_out/dpa6yq8/

https://www.reddit.com/r/Amd/comments/6vzm38/lets_talk_about_overwatch_crashing_need_your_help/

Anyway, new problem. I went back to my stock RX480 BIOS, used the file I saved before I flashed any BIOS and it will only POST past UEFI if I have CSM disabled, so it's obvious there is something wrong with my motherboard config as you said, unless it is remembering old GOP settings or not flashing the full ROM but I doubt that.

I would try my 480 in another machine, but I don't have any other UEFI machines here to test on, so I'm not sure what to do next besides reset my motherboard BIOS settings.


----------



## rocket321

Hi,
I have one of the original XFX 480's which sold as 4GB but actually has 8GB on board. Unfortuantly, XFX never made a "stock" 8GB 480 (only the OC'd black edition) and my card does not run stable with the higher clocks.

As a result I wanted to basically take the stock 4GB BIOS and edit to keep same slower clocks but enable the full 8GB of RAM. This has posed an issue to me due to the CRC check and I would prefer to not mess with hacked drivers.

So to my question - what is the minimum I could change in the BIOS to make it register as a 580 but keep all my original clocks & voltages?

Based on the OP - could I do only these changes to my stock BIOS, keep all defaults, but register as a 580 thereby disabling the CRC check?:
Quote:


> To convert a 470/480 BIOS into a 570/580 BIOS, only one byte at offset D6 needs to be changed from C6 to E6.
> In addition, ELLESMERE can be changed to POLARIS20, both 9 bytes long, so only copy&paste.


Or, is there perhaps a better solution?
Thanks!


----------



## hellm

XFX also ha a XXX version, with a lower clockrate.
If you want to use a 480 BIOS, take the latest, and that one is from XFX support, for the Black Edition. My conversions in post#2 are based on that BIOS, you can take those. Or try the 580 BIOS from post#1, it works flawless.
You can edit clockrates with PBE. Vcore is 1200mV, if you want 1150mV back, see post#3.

But u shouldn't stick to your old BIOS, just because it has XFX as sub vendor. You can do this to any reference 480 BIOS, seen in post#3.


----------



## rastaeyes

Well I reset my motherboard BIOS and without CSM it fails to boot entirely, it just does a bootloop into the motherboard setup screen.

I will try to find another ROM for my card, and flash it again, it seems like something went wrong, or it's an incomplete BIOS flash. I don't really understand it.

I'm still getting crashing in all the Blizzard games with no overclocking, and still crashing in GTA V.

I just checked with the MSI Live Update tool and it says I have the latest BIOS version, so really, I don't know what to do next. Any ideas?

Edit: Nevermind, I think I reinstalled Windows while I had the Hellm RX580 BIOS on it, so it most likely just doesn't have the keys to boot without CSM, guess I would have to reinstall Windows. I checked the different RX480 BIOS files and there are a few different revisions, some have a more moderate powerplay table than others. I still have no idea why those games are crashing though?


----------



## palanoid

so I have my ref rx480 flashed to the 110w 580(IR controller only) BIOS, and noticed that at phase gain it's been set to equal distribution (hex value 000000).
if I left it alone, could it possibly burn my motherboard? say the power draw of the chip might spike to 180W. the pci-e slot would draw 90w or even more in that case?

my motherboard is an asrock x370 killer sli


----------



## hellm

No nothing is gonna burn. never. even if u have a very lousy mainboard, it only gets unstable.

someone tested this, it's a german vid, no english version, sorry:
https://www.youtube.com/watch?v=yNMJ5U5ZcXk
he used a very old mainboard, the pins weren even gold-plated.
i tried to translate:
Quote:


> According to the specifications are allowed to run a maximum of 1.1 amps over a pin. Even at 2.6 amps, which is just 2.4 times the overload, the PEG slot did not even get noticeably warm. The board is slightly thinner than a graphics card and the contacts are not gold plated. This results in significantly higher losses than usual in practice. With less than 300 milliwatts dissipating heat, even the heat dissipation through the graphics card exceeds the load on the slot.


oh, every PEG-Slot has 5pins 12V, specs is only 4pins. And 1pin alone would work fine.
..so, not gonna happen.









if you would also ask me about the 6pin, it is technically an 8pin. the specs for the 6pin only say 2x 12V, every decent psu comes with 3x 12V on the 6pin.
https://en.wikipedia.org/wiki/PCI_Express#Power
again, nothing to worry about there.

so, you can pull 300W, and everything is fine. specs are a little low, which is a good thing, there is plenty of room to exceed them.


----------



## palanoid

alright thank you for the detailed explanation hellm, appreciate it


----------



## HaoSs

hi there @hellm , so i'm running the nitro+480-580.1.0010 bios on my rx480 sapphire 8gb. Runs very good. managed to OC the card to 1450 for the first time, only thing that's not running properly is freesync ( over HDMI ) , know what's up with this ?


----------



## hellm

Try another HDMI, hopefully it works.

I can't fix the ports because of lack of documentation. i cannot trial and error, because i don't have a card with ports beyond 3x DP and 1x HDMI. And my reference card has a backplate and no switch, so recovering is also a problem.

So, the DVI and extra HDMI might not work correctly. i believe the second HDMI is recognized as DVI. If u can't find a workaround, i can only recommend the BIOS from post#2. This is the modded original 480 BIOS, the ports should work fine with this one.


----------



## HaoSs

i'm running the original bios port now, it works,
i will try with the other HDMI port to see if that's work with the first bios and report back ( in case it works ). thanks for quick reply

edit1: OK, so after a reflash and a reboot, freesync now work on the nitro480-580.1.0010.rom on both HDMI in ports. :| i will also do a clean driver install to make sure all it's ok, ( i was using the second HDMI in port the first time, now i'm on the first port, the one farther away from the display port )

edit2: this time around it;s working, at least for first hdmi port







going to live it be. thank you for help


----------



## vietchinh

@hellm

I might found a typo in Sub ID in your xfx conversion bios file.

It doesn't flash on my xfx 480 card because of it. I haven't tried to change it, because I'd rather ask the OP it self whether this is a simple error.



Typo.png 41k .png file


----------



## MixedC

Spikes are back, found why so edited the post.

*Firefox QUANTUM is doing it.* Tested other browsers on youtube for same videos, same quality. Chrome and Basilsk (firefox fork) doesn't. So I either turn of FF HW accel or switch browsers.
But this still doesn't change the fact that this MSI RX480 is broken.

Can you guys test youtube with FF quantum running HWinfo with 100-200ms interval?

FF Quantum on youtube keeps GPU at state 6-7 and switches constantly makes my gpu voltage spike crazy like 1.375v crazy. Been running this way for a while, I really hate this stupid thing.

Edit:
Apperantly FF Quantum adds AMD VP9, so this is why. It is a good thing for a normal GPU in a normal day.
Well not soo much for mine.
You can check, right click on video and go to "stats for nerds" and you'll see it says VP9.
and check if you'll have any spike, just play a video for 5 mins.


----------



## hellm

Quote:


> Originally Posted by *vietchinh*
> 
> @hellm
> 
> I might found a typo in Sub ID in your xfx conversion bios file.
> 
> It doesn't flash on my xfx 480 card because of it. I haven't tried to change it, because I'd rather ask the OP it self whether this is a simple error.
> 
> 
> 
> Typo.png 41k .png file


Everything is fine, i changed it from 9480 to 9580. More a cosmetical thing.
Just read the flash how-to, "-fs" should do the trick.
Quote:


> Originally Posted by *MixedC*
> 
> Spikes are back, found why so edited the post.
> 
> *Firefox QUANTUM is doing it.* Tested other browsers on youtube for same videos, same quality. Chrome and Basilsk (firefox fork) doesn't. So I either turn of FF HW accel or switch browsers.
> But this still doesn't change the fact that this MSI RX480 is broken.
> 
> Can you guys test youtube with FF quantum running HWinfo with 100-200ms interval?
> 
> FF Quantum on youtube keeps GPU at state 6-7 and switches constantly makes my gpu voltage spike crazy like 1.375v crazy. Been running this way for a while, I really hate this stupid thing.
> 
> Edit:
> Apperantly FF Quantum adds AMD VP9, so this is why. It is a good thing for a normal GPU in a normal day.
> Well not soo much for mine.
> You can check, right click on video and go to "stats for nerds" and you'll see it says VP9.
> and check if you'll have any spike, just play a video for 5 mins.


I don't update firefox before noscript is compatible. at least.
So far i don't have any spikes on my ref card, i still use gpu-z with 0,1sec update rate. Will check again after i updated to ff 57.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> Everything is fine, i changed it from 9480 to 9580. More a cosmetical thing.
> Just read the flash how-to, "-fs" should do the trick.
> I don't update firefox before noscript is compatible. at least.
> So far i don't have any spikes on my ref card, i still use gpu-z with 0,1sec update rate. Will check again after i updated to ff 57.


You have never had the spikes so this is probably a brand, or even batch spesific. I have seen only couple others with voltage spikes.
This gpu is just bad.
RMA will not acknowledge it. "Does it work Joe?", "Yes, I plugged it in and it run for 30 seconds", "Good, Send it back!"
I really beleive this is how they work, because they almost drive me insane everytime.

I have disabled VP9 for youtube and for now youtube is the only actual thing that uses VP9. I'll probably have to fiddle with it again in future.
I ran it this way for 2+ weeks and this time spikes were always too high, all in 1.35v+ range.

I am slowly going back to reference 1288mhz clock speed. This gpu was able to hit 1370mhz on 1096mv.
It hasn't ben a year and now I am hitting 1350mhz @ 1125mv..

It all is just bitter funny to me now







At least it works is my new motto.


----------



## Loladinas

Quote:


> Originally Posted by *MixedC*
> 
> You have never had the spikes so this is probably a brand, or even batch spesific. I have seen only couple others with voltage spikes.
> This gpu is just bad.
> RMA will not acknowledge it. "Does it work Joe?", "Yes, I plugged it in and it run for 30 seconds", "Good, Send it back!"
> I really beleive this is how they work, because they almost drive me insane everytime.
> 
> I have disabled VP9 for youtube and for now youtube is the only actual thing that uses VP9. I'll probably have to fiddle with it again in future.
> I ran it this way for 2+ weeks and this time spikes were always too high, all in 1.35v+ range.
> 
> I am slowly going back to reference 1288mhz clock speed. This gpu was able to hit 1370mhz on 1096mv.
> It hasn't ben a year and now I am hitting 1350mhz @ 1125mv..
> 
> It all is just bitter funny to me now
> 
> 
> 
> 
> 
> 
> 
> At least it works is my new motto.


Nice catch, I'll test it out tonight, even though I don't use Firefox as my main browser anymore (prefer an older fork of it), I still have it installed.


----------



## vietchinh

Quote:


> Originally Posted by *hellm*
> 
> Everything is fine, i changed it from 9480 to 9580. More a cosmetical thing.
> Just read the flash how-to, "-fs" should do the trick.


Interesting, thanks for the response. I'll try out later today.


----------



## Loladinas

I don't know, it's just a short test, but it only spiked once, when I launched the first video. GPU-Z didn't pick it up, HWInfo did. 1.195V isn't too bad.


----------



## MixedC

Quote:


> Originally Posted by *Loladinas*
> 
> I don't know, it's just a short test, but it only spiked once, when I launched the first video. GPU-Z didn't pick it up, HWInfo did. 1.195V isn't too bad.


1.195 is fine, mine goes to 1.375. It doesn't always happen one of a sudden, sometimes takes a while but mine always does.
you can make sure if vp9 is on or off by right clicking video and going into "stats for nerds" but from your p-state and memory clock also says VP9 is running.









and you can disable it in either firefox about:config but that might cause problems in future, some sites might only have vp9.
Instead you can get a plugin "H264ify" was its name as far as I remember, this only works on youtube.

I


----------



## poah

Trying to flash my msi gaming X 8g with msi480-580.1.00012.rom and I get SubsystemIDs mismatch. its is an 8g samsung card with the latest 154 bios.


----------



## rastaeyes

Quote:


> Originally Posted by *MixedC*
> 
> Spikes are back, found why so edited the post.
> 
> *Firefox QUANTUM is doing it.* Tested other browsers on youtube for same videos, same quality. Chrome and Basilsk (firefox fork) doesn't. So I either turn of FF HW accel or switch browsers.
> But this still doesn't change the fact that this MSI RX480 is broken.
> 
> Can you guys test youtube with FF quantum running HWinfo with 100-200ms interval?
> 
> FF Quantum on youtube keeps GPU at state 6-7 and switches constantly makes my gpu voltage spike crazy like 1.375v crazy. Been running this way for a while, I really hate this stupid thing.
> 
> Edit:
> Apperantly FF Quantum adds AMD VP9, so this is why. It is a good thing for a normal GPU in a normal day.
> Well not soo much for mine.
> You can check, right click on video and go to "stats for nerds" and you'll see it says VP9.
> and check if you'll have any spike, just play a video for 5 mins.


I have the MSI Gaming X RX480 8GB so I decided to try it out and the results for me were normal.

See my benchmark here: https://imgur.com/a/RNrUQ

I would say your card is faulty, have you tried it with a different BIOS to see if it behaves the same way?


----------



## hellm

Quote:


> Originally Posted by *poah*
> 
> Trying to flash my msi gaming X 8g with msi480-580.1.00012.rom and I get SubsystemIDs mismatch. its is an 8g samsung card with the latest 154 bios.


pls read the flash how-to in OP.
Quote:


> Originally Posted by *rastaeyes*
> 
> I have the MSI Gaming X RX480 8GB so I decided to try it out and the results for me were normal.
> 
> See my benchmark here: https://imgur.com/a/RNrUQ
> 
> I would say your card is faulty, have you tried it with a different BIOS to see if it behaves the same way?


He did. We all have no answer for that. And he is apperantly not the only one. Maybe @buildzoid could him with some tips where to stab his card with a DMM, no.. i think you would need more than this for spikes, an oscilloscope maybe..
just remember, he is no repairdroid.


----------



## Loladinas

Quote:


> Originally Posted by *hellm*
> 
> pls read the flash how-to in OP.
> He did. We all have no answer for that. And he is apperantly not the only one. Maybe @buildzoid could him with some tips where to stab his card with a DMM, no.. i think you would need more than this for spikes, an oscilloscope maybe..
> just remember, he is no repairdroid.


It's not an isolated issue, because I can also easily replicate it with VP9 video. To a lesser extent anyway. I kind of wonder if it's actually happening or if it's just software zonking out and giving wrong readings.

My MSI Gaming X running in another computer, with a different power supply also does it


----------



## poah

Quote:


> Originally Posted by *hellm*
> 
> pls read the flash how-to in OP.


Did it this time. Tells me I have an rx580 and huge increase in power draw.


----------



## MixedC

I have found another post from 8 days ago, MSI RX 480 Gaming and he mentions spiking above 1.3V.
Bios flash didn't fix it but made it better, now with stable clocks using 580 bios I do not spike.

Spikes happen 2 ways.
1 - > GPU goes into p-state 6-7 while being loaded really light like vp9 load, it uses normal voltage and one of a sudden spikes to 1.35+
2 - > GPU under load throttles, switches p-states and spikes at some point about 1.3V 1.27v, this I beleive actually degraded my card because it spikes a lot and it took me a while to notice.
and card doesn't OC near as good as it used to.

so basically the connection between VRM and GPU is just bad somehow.

With 580 bios, now I disabled VP9 on youtube, I didn't spike once since then.
But think, what if I want to sell this GPU? I cannot lie to the buyer.
but If I RMA this, they'll say it works OK.

@hellm
what if I change VRM frequency? make it faster? AFAIK it means no harm to the actual VRM but might make it run a bit hotter.
I am really not sure how to do it and if it will have any side effects.

also can it be my PSU? When I check both 12V reading from GPU and Mobo they are between 0.1% of them and GPU says 12.094V.
I am thinking if somehow PSU is cutting off " I " under light load, so " V " increases to achive rquired Watts?
I am going crazy with my little electrics knowledge









I really need to stab the GPU with a good DMM but I don't know where to stab and also really don't wanna open up my case, it is a mess.








Quote:


> Originally Posted by *rastaeyes*
> 
> I have the MSI Gaming X RX480 8GB so I decided to try it out and the results for me were normal.
> 
> See my benchmark here: https://imgur.com/a/RNrUQ
> 
> I would say your card is faulty, have you tried it with a different BIOS to see if it behaves the same way?


Can you share your bios with me? Also can you make sure it is IR controller. You can do it with VRMTool info is in the 1st post.
@hellm as far as I know, it is fine to flash his bios right? Wanna give bios' one more try with a known good bios.

Testing with VP9 again.
I think it is video dependent. It didn't spike with [email protected] It spiked 5 minutes into [email protected] to 1.365V, yes 1.365v
also while video is playing, switching tabs back and forth helps it spike. (it goes to 0.75V and the moment I switch tabs ofc wants power and overshoots)
not always, but it happen.

Edit:
I changed clocks and voltages a little bit. Reduced state-6 to 1266mhz and 1000mv, state-7 is 1350 @ 1150mv.
it doesnt spike on all videos I am still watching right now [email protected], for now I can only say it spikes when video is 60FPS and high motion. I'll keep testing.
I am also recording hwinfo screen with OBS, so I'll stop and see everything when it spikes.

Update:
It didn't spike for 30 minutes watching 1080p and [email protected], into a minute of 1080p60FPS it spiked to 1.325v. So it is also video dependent.


----------



## poah

I went back to my standard 480 bios - power consumption for the tiny amount of increased overclock wasn't worth it. appreciate the effort @hellm


----------



## hellm

Quote:


> Originally Posted by *poah*
> 
> I went back to my standard 480 bios - power consumption for the tiny amount of increased overclock wasn't worth it. appreciate the effort @hellm


http://www.overclock.net/t/1634872/bios-mod-rx480-rx580-conversions-how-to-rx470-rx480-rx570-rx580/320#post_26423449
you see a slight increase when you switch the original BIOS to 580. But that is only for the software-reported power draw.
if u measure at the wall, there will be just a slight increase because of the 25mV more Vcore. I made sure VRM is working as it should be, so at same voltage and clockrate, card will exactly consume as much power as before.

@MixedC
You can also change VRM switching frequency with vrmtool. But be carefull, someone told it would have an effect on other things, and therefore micght not be stable. I had a black screen going from 300kHz to 360kHz on my reference card.


----------



## poah

Quote:


> Originally Posted by *hellm*
> 
> http://www.overclock.net/t/1634872/bios-mod-rx480-rx580-conversions-how-to-rx470-rx480-rx570-rx580/320#post_26423449
> you see a slight increase when you switch the original BIOS to 580. But that is only for the software-reported power draw.
> if u measure at the wall, there will be just a slight increase because of the 25mV more Vcore. I made sure VRM is working as it should be, so at same voltage and clockrate, card will exactly consume as much power as before.


so the 250odd w power draw I see in afterburner is a crock of **** then lol. I did wonder how an extra 25mV vcore would cause that much increase.


----------



## rastaeyes

MixedC

Here is the readout from VRMTool

https://imgur.com/a/SxX8c

Here is the stock RX480 MSI Gaming X 8GB BIOS from my card pulled using GPU-Z.

https://ufile.io/o8zdm

I couldn't upload to techpowerup or to this forum.


----------



## poah

just thought I would update my results with the 580 bios. I have a stable 1490/2250mhz on water


----------



## MixedC

Quote:


> Originally Posted by *poah*
> 
> just thought I would update my results with the 580 bios. I have a stable 1490/2250mhz on water


Wow







what is your voltage under load?


----------



## poah

Quote:


> Originally Posted by *MixedC*
> 
> Wow
> 
> 
> 
> 
> 
> 
> 
> what is your voltage under load?


AIDA64 nurn shows 1.288V on GPU - I'm probably going to turn it down though as the difference between 1440 and 1490 isn't really much.


----------



## MixedC

Quote:


> Originally Posted by *poah*
> 
> AIDA64 nurn shows 1.288V on GPU - I'm probably going to turn it down though as the difference between 1440 and 1490 isn't really much.


that is what I did.

1430 @ 1225mv, I am running 1350 @ 1125mv not a big difference at all.


----------



## SovietDash

What about Sapphire Nitro+ 4GB 480's with Elpida memory?


----------



## hellm

right away


----------



## HaoSs

hmm, have any of you experienced black screen flashing on idle on HDMI port ?


----------



## mtrai

@Hellum just want to thank you again for all your work.

Between you ( this thread) and the other main polaris editing thread I finally reached a long term goal of mine. I have wanted to break 17000 firestirke graphic score on my Powercolor RX 480 Red Devil. Well I just did today. No artifacts but to reach it does require more voltage then I am willing to run on a daily basis. But was okay for testing. 1.3 core volts. HAHA

One observation, may or may not mean anything but my GPU could never hit anywhere near this on my old Skylake build. Ryzen build now.

Anyhow my results from a bit ago. I hit 17026 graphics score on it.

https://www.3dmark.com/fs/14313808


----------



## Loladinas

Quote:


> Originally Posted by *mtrai*
> 
> @Hellum just want to thank you again for all your work.
> 
> Between you ( this thread) and the other main polaris editing thread I finally reached a long term goal of mine. I have wanted to break 17000 firestirke graphic score on my Powercolor RX 480 Red Devil. Well I just did today. No artifacts but to reach it does require more voltage then I am willing to run on a daily basis. But was okay for testing. 1.3 core volts. HAHA
> 
> One observation, may or may not mean anything but my GPU could never hit anywhere near this on my old Skylake build. Ryzen build now.
> 
> Anyhow my results from a bit ago. I hit 17026 graphics score on it.
> 
> https://www.3dmark.com/fs/14313808


Congrats







And nope, it's not the CPU. While my 4790k might be dragging the overall score down a bit, I don't think it's impacting graphics scores in any meaningful way

also, that score is with the card throtling while hitting the 200 watt power limit.


----------



## mtrai

Quote:


> Originally Posted by *Loladinas*
> 
> Congrats
> 
> 
> 
> 
> 
> 
> 
> And nope, it's not the CPU. While my 4790k might be dragging the overall score down a bit, I don't think it's impacting graphics scores in any meaningful way
> 
> also, that score is with the card throtling while hitting the 200 watt power limit.


Do you mind sharing your bios you are using...want to check out a few things in your. Thanks.


----------



## Loladinas

Quote:


> Originally Posted by *mtrai*
> 
> Do you mind sharing your bios you are using...want to check out a few things in your. Thanks.


Sure, there's nothing special about it, it's just the BIOS that hellm made with some voltages tweaked a bit for my card. I used my daily BIOS and used software overclock for a few quick runs to compare 17.11.2 driver performance. For that particular run I used a 8x6.25 offset for 1.2V total.

RX580-136611503.1-12.rom.zip 108k .zip file


----------



## hellm

Quote:


> Originally Posted by *HaoSs*
> 
> hmm, have any of you experienced black screen flashing on idle on HDMI port ?


you shouldn't flash under load, never.








the first HDMI should work, and if there are more, they shouldn't black screen. but there were some problems with this before..
Quote:


> Originally Posted by *HaoSs*
> 
> i'm running the original bios port now, it works,
> i will try with the other HDMI port to see if that's work with the first bios and report back ( in case it works ). thanks for quick reply
> 
> edit1: OK, so after a reflash and a reboot, freesync now work on the nitro480-580.1.0010.rom on both HDMI in ports. :| i will also do a clean driver install to make sure all it's ok, ( i was using the second HDMI in port the first time, now i'm on the first port, the one farther away from the display port )
> 
> edit2: this time around it;s working, at least for first hdmi port
> 
> 
> 
> 
> 
> 
> 
> going to live it be. thank you for help


wait, that also was you, means you still got problems with the HDMI. i am very sorry, i can't help right now. maybe, maybe my team and i will figure it out some time.
Quote:


> Originally Posted by *mtrai*
> 
> @Hellum just want to thank you again for all your work.
> 
> Between you ( this thread) and the other main polaris editing thread I finally reached a long term goal of mine. I have wanted to break 17000 firestirke graphic score on my Powercolor RX 480 Red Devil. Well I just did today. No artifacts but to reach it does require more voltage then I am willing to run on a daily basis. But was okay for testing. 1.3 core volts. HAHA
> 
> One observation, may or may not mean anything but my GPU could never hit anywhere near this on my old Skylake build. Ryzen build now.
> 
> Anyhow my results from a bit ago. I hit 17026 graphics score on it.
> 
> https://www.3dmark.com/fs/14313808


happy to help giving you the control AMD had promised us at release.








..and a little update, because that is what the 580 BIOS is; plus 1000MHz mem step and the better idle and half load efficiency.


----------



## HaoSs

welli, fixed the freesync problem

The black flashing may be related to windows update, did not have any flash updating to latest win


----------



## Rexer

Black flashing or black screen flashing on idle on HDMI port? Hmm, I'm not sure exactly what you mean but I did have a black screen problem on start up with R9 390 & 390x cards. I had to restart twice. Weird. It corrected by returning to Display Port. Sorry, it has nothing to with flashing.


----------



## HaoSs

yah, screen was going black for a second, no freez no crash nothing







. but again, after windows update did not have 1 black screen today


----------



## hellm

there were black screen problems with the old windows 10 versions and 17.11.1+ drivers.


----------



## Rexer

I don't doubt Windows was your problem. I've always been suspicions about how Microsoft conducts their updates let alone business. The worse was receiving Windows 10 by accident. I was a very happy Windows 7 user and one morning I started my computer.. . Windows 10 appeared. Lol, what teething problems. Everything from crashing, unusable apps, icons and programs, etc.. I think it took a month to figure out what I was doing.
If I recall it started with a pop up window asking, "Would you like Windows 10? Click 'now' or 'later' buttons". No other choices to rid the window so I clicked 'later'. Then over the weekend, there it was.


----------



## haojiex

I have RX480 MSI GAMING 8GB and I flash it with your "Real RX 480 to RX 580 conversions (IR Controller only), msi480-580.1.0012.rom".

It bricked at the first time. I then boot with intel graphic onboard to do the flash again and it worked.

Very strange. I am newbie to this thing. So I don't know if this is just how it is.

Before, I used the official RX580 MSI GAMING rom. I couldn't have a good overclock (1393/2025) with +96mv and +50% power limit.

Now with your customerized rom, I am able to do 1430/2000 with +96/+50%, but it is not stable. Run game with artifacts and crash (can pass benchmarks).

So just a quick question, it seems a lot replies about changing memory strapes and other stuff.

Is there something I can do to actually make my rx480 to perform like rx580?

I heard the RX580 is pretty much the same hardware with just refined bios and tweak?

Thank you.


----------



## MixedC

Quote:


> Originally Posted by *haojiex*
> 
> I have RX480 MSI GAMING 8GB and I flash it with your "Real RX 480 to RX 580 conversions (IR Controller only), msi480-580.1.0012.rom".
> 
> It bricked at the first time. I then boot with intel graphic onboard to do the flash again and it worked.
> 
> Very strange. I am newbie to this thing. So I don't know if this is just how it is.
> 
> Before, I used the official RX580 MSI GAMING rom. I couldn't have a good overclock (1393/2025) with +96mv and +50% power limit.
> 
> Now with your customerized rom, I am able to do 1430/2000 with +96/+50%, but it is not stable. Run game with artifacts and crash (can pass benchmarks).
> 
> So just a quick question, it seems a lot replies about changing memory strapes and other stuff.
> 
> Is there something I can do to actually make my rx480 to perform like rx580?
> 
> I heard the RX580 is pretty much the same hardware with just refined bios and tweak?
> 
> Thank you.


It already performs like rx580, they are same. The thing is silicon lottery.
Use 580 bios, Try ubermix memory timings you are good to go.

I am running mine at 1350mhz 1125mv under load, 1400 doesnt really worth the voltage increase, hence silicon lottery.
There isnt much difference, there is difference.

1350-1450, the difference may worth it, It is 7%~ (it is less), so find best voltage for best clock.


----------



## JocPro

Hey hellm! thanks for the hard work!

Got my XFX GTR XXX flashed to the 580 BIOS, hex-modded the voltage to -50 mV offset and PBEdited to the normal clocks of my card (up to 1288 MHz). It feels faster (I think that's because of the increased power limit) and a lot more stable, and it doesn't get any noisier or hotter. It works as stock, but way better than before, when I had it with a RX 480 GTR BE BIOS (up to 1338 MHz)

Works like a charm! Should I try to ubermix the memory?


----------



## hellm

Quote:


> Originally Posted by *JocPro*
> 
> Hey hellm! thanks for the hard work!
> 
> Got my XFX GTR XXX flashed to the 580 BIOS, hex-modded the voltage to -50 mV offset and PBEdited to the normal clocks of my card (up to 1288 MHz). It feels faster (I think that's because of the increased power limit) and a lot more stable, and it doesn't get any noisier or hotter. It works as stock, but way better than before, when I had it with a RX 480 GTR BE BIOS (up to 1338 MHz)
> 
> Works like a charm! Should I try to ubermix the memory?


Yeah, it was hard. Very hard work.









With -50mV you get a very low idle voltage, too. May cause problems..
U can edit the maxVcore in 25mV steps, i explained in post#3. Maybe a better approach. Sorry, someday i make the first posting more structured or something..

And yes! u should definitely try the UberMix timings! (Remember, hwinfo -> sensors -> Gpu Memory Errors)


----------



## LordSiphi

can I use this bios mod from rx480 to rx 580 without problems?


----------



## hellm

let's hope u can. for my reference card, it works now for i don't know, 7 month? I didn't heard any real bad things about my mods so far, no dead RX480's here to report.
If you use the modded 580 BIOS from post#1, there might be issues with some of the ports. In that case, try post#2 or build your own according to post#3.


----------



## serendipity969

Is possible to mod RX 570 to become RX580 ? I have one RX 570 Nitro+ 8Gb, with Samsung memory .


----------



## hellm

you would gain nothing from that. no extra shaders to unlock. U can mod Vcore, timings, etc. the same way as with a 580 BIOS.


----------



## raclimja

I tried modding my MSI RX 470 Gaming 4GB GDDR5(Samsung) to convert to an RX 570 so the graphics driver works without the patcher.

I followed the OP post #3

I did the following
1) change the offset for D6 from C6 to E6
2) changed the ELLESMERE into POLARIS20
3) run CRC check and make sure it is at expected checksum

While GPU-Z identifies my card as RX 570, *the problem is the graphics driver won't work without the patcher which leads me to believe the card is still not recognized as an RX 570.*

I did not change the vcore as my card can do 1400Mhz Core and 2100Mhz VRAM (ubermix3.1) on stock volts.

I also did not change the sub vendor, fan settings, etc...

Also can someone explain the part about "magic" UEFI? I have no idea what being "marked" in the bios means.

my original and modded bios
http://www73.zippyshare.com/v/RzNSL0Ry/file.html


----------



## hellm

that is odd, some users told me 570 wouldn't need the patcher, too. What u can try is to also mod the sub id. Or even mod it to a 580, maybe that works.
470: F0 7D C6 0F
570: F0 7D E6 0F
580: F0 7D E6 07

When i said "marked", well, it's called "select" in english, i believe; and if u select some bytes from offset x to offset y, those bytes are highlighted.. so in a way, they are marked.
Maybe i come up with a better formulation someday, and make it more clearly..


----------



## raclimja

Quote:


> Originally Posted by *hellm*
> 
> that is odd, some users told me 570 wouldn't need the patcher, too. What u can try is to also mod the sub id. Or even mod it to a 580, maybe that works.
> 470: F0 7D C6 0F
> 570: F0 7D E6 0F
> 580: F0 7D E6 07
> 
> When i said "marked", well, it's called "select" in english, i believe; and if u select some bytes from offset x to offset y, those bytes are highlighted.. so in a way, they are marked.
> Maybe i come up with a better formulation someday, and make it more clearly..


What would changing the sub id do?

I tried modding it into a 580 by changing the D6 from 0F (RX 570) to 07 and the card is now recognized as RX 580 and doesn't require the patcher to install driver.

Still is there any way to make it work as RX 570 without patcher by modding my original BIOS?


----------



## hellm

I don't know what sub id, was just an idea. The driver would have to check that, and i don't think AMD implemented something like this.

If the card is now recognized as a 580, and don't require a patched driver, maybe AMD added the signature check for the 570s with one of the last driver releases.

I compared your BIOS files, and there is a difference in vram info table, i guess u also changed vram timings? Maybe just that one byte at offset D6 and then try, or maybe with the hacked UEFI, no that would boot only..but who knows.. no wait your 580 mod works..

so, maybe you have to go 580. Shouldn't cause any problems, though. Data and Command Tables are still the same, and it is the same GPU after all.


----------



## raclimja

Quote:


> Originally Posted by *hellm*
> 
> I don't know what sub id, was just an idea. The driver would have to check that, and i don't think AMD implemented something like this.
> 
> If the card is now recognized as a 580, and don't require a patched driver, maybe AMD added the signature check for the 570s with one of the last driver releases.
> 
> *I compared your BIOS files, and there is a difference in vram info table, i guess u also changed vram timings*? Maybe just that one byte at offset D6 and then try, or maybe with the hacked UEFI, no that would boot only..but who knows.. no wait your 580 mod works..
> 
> so, maybe you have to go 580. Shouldn't cause any problems, though. Data and Command Tables are still the same, and it is the same GPU after all.


I did apply the Uber-mix extreme v3.1 from this guide http://www.overclock.net/t/1604567/polaris-bios-editing-rx5xx-rx4xx

Also by haveing the card recognized as RX 5XX, will I get the new power optimizations from the driver on the card?


----------



## hellm

it will make the power efficiency permanent. If you had a 1000MHz step, this would also reduce power draw in mid load scenarios.


----------



## SSBrain

Just noticed this in the first post:
Quote:


> Originally Posted by *hellm*
> 
> 
> The voltages are marked yellow; these values should also not be changed. The memory voltage has never been working (it is some cap), and since 17.4.1 that also applies to the pointers (6528x) of the Vcore.
> How to change the voltages, see Vcore Offset, post#3 and IMC..


FWIW, I have a modified RX480 BIOS with modified core voltages which I tested extensively for every step, and they still work.
Is the above only valid for RX580 conversions or RX580 BIOSes?

*EDIT*: just tried the full 580 conversion BIOS for my Sapphire Nitro+ RX480 4GB, and besides that one HDMI port is recognized as DVI-D (not really a problem at the moment, although it would be nice if this could be solved), custom voltages seem to work correctly.

I need to use custom voltages because for some reason on my card with auto voltages and default clocks for this BIOS (1340 MHz for State 7), State 7 has a lower voltage than State 6. Since I am going to modify voltages manually anyway to solve this, then I might as well be using safe overclocking values that I found over time while using my card.


----------



## hellm

These values are from the Power Play table. The max voltages and States are calculated with the info stored in ASIC_Profiling info table.

But yes, they still work. But if you want to use the custom Vcore values from PowerPlay, you have to switch to manual voltage.
That way you can also use a SoftPowerPlay regkey, without a BIOS mod.

But still, offset via voltage object info table and max voltage set in the ASIC _Profiling table is the more advanced way to change voltage. PowerPlay is just some sort of override.


----------



## SSBrain

@hellm: I have a hard time figuring out what you mean exactly with editing the ASIC _Profiling table as I'm not a bios editor master, I just followed the instructions in the first 3 posts. However, from what I loosely recall, I get have to use atombiosreader to check out where data table pointers are?



Spoiler: Warning: Spoiler!



Code:



Code:


Read 40000 bytes of data from d:\bios\nitro_580_4g_ubermix.rom

Command Tables:
  0000:   aade  Len 0095  (ASIC_Init)
  0001:   ab74  Len 0057  (GetDisplaySurfaceSize)
  0002:   abcc  Len 00b7  (ASIC_RegistersInit)
  0003:   ca4c  Len 000a  (VRAM_BlockVenderDetection)
  0004:   d490  Len 0267  (SetClocksRatio/DIGxEncoderControl)
  0005:   ac84  Len 0113  (MemoryControllerInit)
  0006:   -               (EnableCRTCMemReq)
  0007:   ca56  Len 001a  (MemoryParamAdjust)
  0008:   -               (DVOEncoderControl)
  0009:   ad98  Len 00ff  (GPIOPinControl)
  000a:   ae98  Len 01ac  (SetEngineClock)
  000b:   b044  Len 0122  (SetMemoryClock)
  000c:   b166  Len 04cb  (SetPixelClock)
  000d:   b632  Len 0187  (DynamicClockGating)
  000e:   b7ba  Len 0007  (ResetMemoryDLL)
  000f:   b7c2  Len 008a  (ResetMemoryDevice)
  0010:   d206  Len 0031  (MemoryPLLInit)
  0011:   d238  Len 0010  (AdjustDisplayPll)
  0012:   bcf2  Len 0111  (AdjustMemoryController)
  0013:   be04  Len 0021  (EnableASIC_StaticPwrMgt)
  0014:   be26  Len 008e  (ASIC_StaticPwrMgtStatusChange/SetUniphyInstance)
  0015:   -               (DAC_LoadDetection)
  0016:   -               (LVTMAEncoderControl)
  0017:   -               (LCD1OutputControl)
  0018:   -               (DAC1EncoderControl)
  0019:   -               (DAC2EncoderControl)
  001a:   -               (DVOOutputControl)
  001b:   beb4  Len 02bf  (CV1OutputControl)
  001c:   -               (GetConditionalGoldenSetting/SetCRTC_DPM_State)
  001d:   -               (TVEncoderControl)
  001e:   de48  Len 009f  (TMDSAEncoderControl)
  001f:   dee8  Len 0189  (LVDSEncoderControl)
  0020:   -               (TV1OutputControl)
  0021:   c174  Len 0078  (EnableScaler)
  0022:   c1ec  Len 0074  (BlankCRTC)
  0023:   c260  Len 003e  (EnableCRTC)
  0024:   -               (GetPixelClock)
  0025:   c29e  Len 002c  (EnableVGA_Render)
  0026:   c2ca  Len 0022  (EnableVGA_Access/GetSCLKOverMCLKRatio)
  0027:   -               (SetCRTC_Timing)
  0028:   c2ec  Len 0019  (SetCRTC_OverScan)
  0029:   c306  Len 0080  (SetCRTC_Replication)
  002a:   c386  Len 00c6  (SelectCRTC_Source)
  002b:   c44c  Len 01af  (EnableGraphSurfaces)
  002c:   c5fc  Len 0049  (UpdateCRTC_DoubleBufferRegisters)
  002d:   c646  Len 00de  (LUT_AutoFill)
  002e:   e46a  Len 02f9  (EnableHW_IconCursor)
  002f:   c724  Len 003d  (GetMemoryClock)
  0030:   c762  Len 00d8  (GetEngineClock)
  0031:   c83a  Len 0153  (SetCRTC_UsingDTDTiming)
  0032:   -               (ExternalEncoderControl)
  0033:   e158  Len 01d1  (LVTMAOutputControl)
  0034:   c98e  Len 00be  (VRAM_BlockDetectionByStrap)
  0035:   e39c  Len 00ce  (MemoryCleanUp)
  0036:   ca70  Len 0231  (ReadEDIDFromHWAssistedI2C/ProcessI2cChannelTransaction)
  0037:   e072  Len 00e5  (WriteOneByteToHWAssistedI2C)
  0038:   cca2  Len 005f  (ReadHWAssistedI2CStatus/HPDInterruptService)
  0039:   cd02  Len 000a  (SpeedFanControl)
  003a:   cd0c  Len 000a  (PowerConnectorDetection)
  003b:   cd16  Len 003c  (MC_Synchronization)
  003c:   cd52  Len 01af  (ComputeMemoryEnginePLL)
  003d:   cf02  Len 0007  (MemoryRefreshConversion)
  003e:   d6f8  Len 0029  (VRAM_GetCurrentInfoBlock)
  003f:   cf0a  Len 0170  (DynamicMemorySettings)
  0040:   d07a  Len 0100  (MemoryTraining)
  0041:   d17a  Len 008c  (EnableSpreadSpectrumOnPPLL)
  0042:   -               (TMDSAOutputControl)
  0043:   d248  Len 01c3  (SetVoltage)
  0044:   -               (DAC1OutputControl)
  0045:   e32a  Len 0071  (DAC2OutputControl)
  0046:   -               (SetupHWAssistedI2CStatus)
  0047:   b84c  Len 0454  (ClockSource)
  0048:   bca0  Len 0052  (MemoryDeviceInit)
  0049:   -               (EnableYUV)
  004a:   -               (DIG1EncoderControl)
  004b:   -               (DIG2EncoderControl)
  004c:   d722  Len 0146  (DIG1TransmitterControl/UNIPHYTransmitterControl)
  004d:   d868  Len 0338  (DIG2TransmitterControl/LVTMATransmitterControl)
  004e:   dba0  Len 024c  (ProcessAuxChannelTransaction)
  004f:   ddec  Len 005c  (DPEncoderService)

Data Tables:
  0000:   -                          (UtilityPipeLine)
  0001:   -                          (MultimediaCapabilityInfo)
  0002:   -                          (MultimediaConfigInfo)
  0003:   984a  Len 00e4  Rev 01:02  (StandardVESA_Timing)
  0004:   992e  Len 006c  Rev 02:02  (FirmwareInfo)
  0005:   999a  Len 0034  Rev 02:01  (DAC_Info)
  0006:   99ce  Len 004e  Rev 01:03  (LVDS_Info)
  0007:   -                          (TMDS_Info)
  0008:   aa50  Len 0038  Rev 02:01  (AnalogTV_Info)
  0009:   -                          (SupportedDevicesInfo)
  000a:   9a1c  Len 00dc  Rev 01:01  (GPIO_I2C_Info)
  000b:   9af8  Len 000c  Rev 01:05  (VRAM_UsageByFirmware)
  000c:   9b04  Len 0020  Rev 01:01  (GPIO_Pin_LUT)
  000d:   9b24  Len 00a8  Rev 01:01  (VESA_ToInternalModeLUT)
  000e:   9bcc  Len 0018  Rev 02:03  (ComponentVideoInfo)
  000f:   9be4  Len 0341  Rev 07:01  (PowerPlayInfo)
  0010:   -                          (CompassionateData)
  0011:   aa38  Len 0018  Rev 02:01  (SaveRestoreInfo/DispDevicePriorityInfo)
  0012:   -                          (PPLL_SS_Info/SS_Info)
  0013:   9f26  Len 0005  Rev 01:01  (OemInfo)
  0014:   -                          (XTMDS_Info)
  0015:   -                          (MclkSS_Info)
  0016:   9f2c  Len 015e  Rev 01:03  (Object_Info/Object_Header)
  0017:   a35e  Len 007d  Rev 01:01  (IndirectIOAccess)
  0018:   a08a  Len 02d4  Rev 02:01  (MC_InitParameter/AdjustARB_SEQ)
  0019:   -                          (ASIC_VDDC_Info)
  001a:   a9ac  Len 0028  Rev 03:01  (ASIC_InternalSS_Info/ASIC_MVDDC_Info)
  001b:   a9d4  Len 0064  Rev 02:03  (TV_VideoMode/DispOutInfo)
  001c:   a3dc  Len 0461  Rev 02:02  (VRAM_Info)
  001d:   -                          (MemoryTrainingInfo/ASIC_MVDDQ_Info)
  001e:   -                          (IntegratedSystemInfo)
  001f:   a83e  Len 010c  Rev 03:06  (ASIC_ProfilingInfo/ASIC_VDDCI_Info)
  0020:   a94a  Len 005e  Rev 03:01  (VoltageObjectInfo/VRAM_GPIO_DetectionInfo)
  0021:   -                          (PowerSourceInfo)





I guess the relevant portion here is this?

Code:



Code:


001f:   a83e  Len 010c  Rev 03:06  (ASIC_ProfilingInfo/ASIC_VDDCI_Info)

How are the values found starting from A83E in the BIOS file decoded / to be interpreted? Did I miss something in the first posts of the thread where this was explained?

This is the bios file I'm currently using for my card:

nitro_580_4g_ubermix.zip 108k .zip file


*EDIT*: from what I could see, there don't seem to be differences between the 1306Mhz 4GB (my card) and the 1342 MHz 8GB versions of the Sapphire RX480 Nitro+ in the ASIC_ProfilingInfo table. Nevertheless the last P-state has the incorrect voltage (with auto-voltages) if I put the P-state frequencies of the 8GB version. So I guess that the difference must be elsewhere.

The BIOSes for these cards are here. https://www.techpowerup.com/vgabios/?architecture=&manufacturer=Sapphire&model=RX+480&interface=&memType=&memSize=&since=


----------



## hellm

yeah, asic_profiling is the table found in post#3 under Vcore. they are always the same, except from the max voltage, and 480 and 580 are different.
Quote:


> Originally Posted by *SSBrain*
> 
> .. for some reason on my card with auto voltages and default clocks for this BIOS (1340 MHz for State 7), State 7 has a lower voltage than State 6.


..wait.. u actually believe those values from wattman, when u hit manual voltage? I have 1150mV in the last 3 states, and 1175mV is my actual max voltage. U can check this with gpu-z or any other monitoring software under load.

Only what max voltage is found in ASIC_profiling is important, those wattman values are to be ignored.
If u want, u can edit the pointers to real values with PBE, again, they only take effect when u switch to manual.


----------



## SSBrain

Quote:


> Originally Posted by *hellm*
> 
> yeah, asic_profiling is the table found in post#3 under Vcore. they are always the same, except from the max voltage, and 480 and 580 are different.


I see.
Quote:


> ..wait.. u actually believe those values from wattman, when u hit manual voltage? I have 1150mV in the last 3 states, and 1175mV is my actual max voltage. U can check this with gpu-z or any other monitoring software under load.


I didn't check in detail, admittedly. I didn't know that automatic voltages are completely different and have no relationship with the displayed manual voltages.

Anyway, I didn't like that default manual voltages were not correct, so I changed their values in the BIOS.
Quote:


> Only what max voltage is found in ASIC_profiling is important, those wattman values are to be ignored.
> If u want, u can edit the pointers to real values with PBE, again, they only take effect when u switch to manual.


Ok, got it. A couple questions here:


What happens with automatic voltages if I set the max voltage is ASIC_ProfilingInfo to something like 1225 or 1250 mV?
Is there a way to make the pointers work properly for manual voltages, or has this not been researched yet?


----------



## hellm

Spoiler: ASIC_Profiling table



Code:



Code:


+/* for Polars10/11 AVFS parameters */
+typedef struct  _ATOM_ASIC_PROFILING_INFO_V3_6
+{
+  ATOM_COMMON_TABLE_HEADER         asHeader;
+  ULONG  ulMaxVddc;
+  ULONG  ulMinVddc;
+  USHORT usLkgEuseIndex;
+  UCHAR  ucLkgEfuseBitLSB;
+  UCHAR  ucLkgEfuseLength;
+  ULONG  ulLkgEncodeLn_MaxDivMin;
+  ULONG  ulLkgEncodeMax;
+  ULONG  ulLkgEncodeMin;
+  EFUSE_LINEAR_FUNC_PARAM sRoFuse;
+  ULONG  ulEvvDefaultVddc;
+  ULONG  ulEvvNoCalcVddc;
+  ULONG  ulSpeed_Model;
+  ULONG  ulSM_A0;
+  ULONG  ulSM_A1;
+  ULONG  ulSM_A2;
+  ULONG  ulSM_A3;
+  ULONG  ulSM_A4;
+  ULONG  ulSM_A5;
+  ULONG  ulSM_A6;
+  ULONG  ulSM_A7;
+  UCHAR  ucSM_A0_sign;
+  UCHAR  ucSM_A1_sign;
+  UCHAR  ucSM_A2_sign;
+  UCHAR  ucSM_A3_sign;
+  UCHAR  ucSM_A4_sign;
+  UCHAR  ucSM_A5_sign;
+  UCHAR  ucSM_A6_sign;
+  UCHAR  ucSM_A7_sign;
+  ULONG  ulMargin_RO_a;
+  ULONG  ulMargin_RO_b;
+  ULONG  ulMargin_RO_c;
+  ULONG  ulMargin_fixed;
+  ULONG  ulMargin_Fmax_mean;
+  ULONG  ulMargin_plat_mean;
+  ULONG  ulMargin_Fmax_sigma;
+  ULONG  ulMargin_plat_sigma;
+  ULONG  ulMargin_DC_sigma;
+  ULONG  ulLoadLineSlop;
+  ULONG  ulaTDClimitPerDPM[8];
+  ULONG  ulaNoCalcVddcPerDPM[8];
+  ULONG  ulAVFS_meanNsigma_Acontant0;
+  ULONG  ulAVFS_meanNsigma_Acontant1;
+  ULONG  ulAVFS_meanNsigma_Acontant2;
+  USHORT usAVFS_meanNsigma_DC_tol_sigma;
+  USHORT usAVFS_meanNsigma_Platform_mean;
+  USHORT usAVFS_meanNsigma_Platform_sigma;
+  ULONG  ulGB_VDROOP_TABLE_CKSOFF_a0;
+  ULONG  ulGB_VDROOP_TABLE_CKSOFF_a1;
+  ULONG  ulGB_VDROOP_TABLE_CKSOFF_a2;
+  ULONG  ulGB_VDROOP_TABLE_CKSON_a0;
+  ULONG  ulGB_VDROOP_TABLE_CKSON_a1;
+  ULONG  ulGB_VDROOP_TABLE_CKSON_a2;
+  ULONG  ulAVFSGB_FUSE_TABLE_CKSOFF_m1;
+  USHORT usAVFSGB_FUSE_TABLE_CKSOFF_m2;
+  ULONG  ulAVFSGB_FUSE_TABLE_CKSOFF_b;
+  ULONG  ulAVFSGB_FUSE_TABLE_CKSON_m1;
+  USHORT usAVFSGB_FUSE_TABLE_CKSON_m2;
+  ULONG  ulAVFSGB_FUSE_TABLE_CKSON_b;
+  USHORT usMaxVoltage_0_25mv;
+  UCHAR  ucEnableGB_VDROOP_TABLE_CKSOFF;
+  UCHAR  ucEnableGB_VDROOP_TABLE_CKSON;
+  UCHAR  ucEnableGB_FUSE_TABLE_CKSOFF;
+  UCHAR  ucEnableGB_FUSE_TABLE_CKSON;
+  USHORT usPSM_Age_ComFactor;
+  UCHAR  ucEnableApplyAVFS_CKS_OFF_Voltage;
+  UCHAR  ucReserved;
+}ATOM_ASIC_PROFILING_INFO_V3_6;




ULONG ulMaxVddc
USHORT usMaxVoltage_0_25mv
1) ^^those 2 have to be changed according to post#3, and whatever you set there will be max Vcore and auto Vcore for P7.

Since the values you get from wattman are nonsense, we don't know about the auto voltage of some power states. i think the answer lies in the ASIC_Profiling, there should be the answer behind one of these values how the voltage for the states between 0 and 7 is calculated. Since it is the same on every card, i never payed much attention to it.

2) The pointers work as intended, i believe. Before the 17.4.1 driver you could override it with PowerPlay, but since then you have to switch to manual before those values are accepted. U can even overvolt that way.
so, there was only a change in how the driver works.


----------



## SSBrain

Quote:


> Originally Posted by *hellm*
> 
> [...]
> ULONG ulMaxVddc
> USHORT usMaxVoltage_0_25mv
> 1) ^^those 2 have to be changed according to post#3, and whatever you set there will be max Vcore and auto Vcore for P7.


Ok. I thought that automatic voltages would change voltage more or less dynamically depending on actual GPU power needs (perhaps in retrospect that doesn't make much sense), since I've often seen automatic GPU voltage fluctuate slightly with the RX480 BIOS while gaming at the maximum power state. So if I set for example 1250 mV, it will stay there rather than preferentially using lower voltages, if I understand correctly?

Quote:


> Since the values you get from wattman are nonsense, we don't know about the auto voltage of some power states. i think the answer lies in the ASIC_Profiling, there should be the answer behind one of these values how the voltage for the states between 0 and 7 is calculated. Since it is the same on every card, i never payed much attention to it.
> 
> 2) The pointers work as intended, i believe. Before the 17.4.1 driver you could override it with PowerPlay, but since then you have to switch to manual before those values are accepted. U can even overvolt that way.
> so, there was only a change in how the driver works.


Perhaps if there was an application which showed a detailed overview of decoded BIOS values it would be easier to understand. It's easy to start getting confused by manually analyzing the BIOS in a hex editor.

On a related note, while trying to come up with some sort of automated tool for reading and comparing relevant BIOS values, I ended up starting to make something in Python similar to atombiosreader.

It looks like I was trying to understand BIOS information from this file:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/radeon/atombios.h

But in the post above you pointed this, which has updated information for Polaris cards, which is helpful:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/amd/include/atombios.h


----------



## hellm

Vento041 works on a BIOS editor, i think he has been busy with other stuff lately..
[WIP - Early Release] jYABE - Yet Another BIOS Editor (still not finished)
Quote:


> So if I set for example 1250 mV, it will stay there rather than preferentially using lower voltages, if I understand correctly?


No, it just raises max Vcore, and therefore Vcore on all of the states. Nothing else is changed. power limits and temp targets still apply, same way as before.


----------



## SSBrain

Quote:


> Originally Posted by *hellm*
> 
> Vento041 works on a BIOS editor, i think he has been busy with other stuff lately..
> [WIP - Early Release] jYABE - Yet Another BIOS Editor (still not finished)


I didn't know about that WIP editor, I guess today's efforts will have mostly served to learn more about Polaris BIOS internals








Quote:


> No, it just raises max Vcore, and therefore Vcore on all of the states. Nothing else is changed. power limits and temp targets still apply, same way as before.


So, for clarity: does increasing the max vcore makes the vcore higher on all power states on average, regardless of the frequency?

In other words, what I'm asking if the automatic voltage setting is sort of intelligent, or if it's "dumb" and just does a simple interpolation between min and max voltage for all power states.

I guess the only way to know for sure is testing it, but I wanted to avoid to potentially damage the card.


----------



## hellm

i think of it like a graph, min voltage is 0 and max voltage is well, max; and a line between them, where all the other 5 values for the rest of the power states are found.

if u want to investigate further, try and set max voltage to 1150, 1125, .. and see what wattman is making out of it.

..and your card is only at risk, if u set a very, very high voltage.









update:
i really shouldn't have said something about a straight line.. well, the values should, in relation, always be the same; i think % of max Vcore.. as it is always the same on every card, as i said, never got my attention; and because i have water cooling, my card never sees P6 i guess..


----------



## Zeratullo

Hello Hellm!

I'm trying to mod my XFX rx480 *RS* to a rx580, I know is a cheap gpu so I'm not searching for maximum overclock but just driver optimization, ubermix timngs (I already have those) and the driver check bypass. So I followed your guide in the third post, edited E6, POLARIS20, vcore 1200mV, and Zero Fan to disabled. Now I'm not sure what I'm supposed to do with the magic UEFI, Can you help me?

rx480bios.zip 217k .zip file


Thank you!


----------



## hellm

You already done the hard part. It is just copy&paste, only if the old GOP/UEFI is a little longer then 0xE600, you have to replace those bytes with "FF" placeholders.

So, you open the magic one in your hex editor, and search for the beginning of the GOP section in your BIOS (offest E600 in your file). Select 0xE800 bytes and replace everything with "FF", but remember the start offset.
This time select 0xE600 bytes, and copy the complete magic 1.63 over it.

xfx_rs_uefi.zip 108k .zip file


----------



## poah

is it normal for the ubermix 3.1 timings to crash when you go over a certain mhz? can do 2250 any more. I used the one click editor to change it.


----------



## hellm

Yes, of course. When you tighten the timings on your system memory, same thing will occur.

In a way, they are already overclocked.









Benefits are not only more bandwidth, also latency is reduced.


----------



## poah

I ran oclmembench and the last 5 chunks showed only 6.6 or 7.0 gb bandwith. also only allocated 4gb of my 8gb card. should I be worried about those chunks. need to work out how to change to ubermix 2.1


----------



## Zeratullo

Quote:


> Originally Posted by *hellm*
> 
> You already done the hard part. It is just copy&paste, only if the old GOP/UEFI is a little longer then 0xE600, you have to replace those bytes with "FF" placeholders.
> 
> So, you open the magic one in your hex editor, and search for the beginning of the GOP section in your BIOS (offest E600 in your file). Select 0xE800 bytes and replace everything with "FF", but remember the start offset.
> This time select 0xE600 bytes, and copy the complete magic 1.63 over it.
> 
> xfx_rs_uefi.zip 108k .zip file


Thank you!

My problem was thant I'm not familiar with hex and how it works, anyway I changed something in PBE but I can't find the "update crc" command to complete the procedure, am I using the wrong PBE version?


----------



## hellm

@poah
No, just use 3.1, they are equal to some GDDR5 standard or something, if u have problems with stability, try 1750 strap.

@zeratullo
a different version. But it should also be capable of correecting the CRC. I already did that for your file, never released any fiels without.. well i did, but only for a few minutes..








..so, if you edit the file again, CRC repair should appear; in every PBE version, except the very sh.... ones.


----------



## poah

i give it ago tomorrow and can compare firestrike scores using 2.1. @2100mhz (14017)


----------



## Zeratullo

Thank you @hellm!

Flashed and everything seems fine


----------



## hellm

happy xmess @all









Updates are coming.. first the reference, others will follow; mostly new UEFI version (now 1.65), some cards will get a newer BIOS build.

X.xxxx for the card the 580 BIOS is from, x.XXxx for the build# of the BIOS, and x.xxXX is for my mods.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> happy xmess @all
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Updates are coming.. first the reference, others will follow; mostly new UEFI version (now 1.65), some cards will get a newer BIOS build.
> 
> X.xxxx for the card the 580 BIOS is from, x.XXxx for the build# of the BIOS, and x.xxXX is for my mods.


Should I update if it is working? I guess not?
It is working as intended, should I get the new UEFI version?


----------



## hellm

No, u can do as u want, as usual.








But i am a friend of BIOS updates









msi is coming later today, nitro maybe..maybe tomorrow.. both will have a very recent build#, i don't believe we will see any later BIOS for any Polaris card.

But for my reference, yeah, no real change, no porfermance gain, but maybe more stable? who knows? i don't, that would be up to AMD, can't do everything for them.


----------



## HaoSs

waiting for nitro one







got some real good performance boost from this custom bios. my chip seems capable, probably should have ended up in a real rx580, can easy hit 1400 on core


----------



## HaoSs

is there a difference between rx580 1.1.10 and 1.1010 ? other than the name


----------



## hellm

None. It just looks better and makes more sense..


----------



## rastaeyes

I noticed that Freesync is only working some of the time for me (select titles).

Is it likely relating to this mod or something else?


----------



## hellm

Every card since GCN Gen 2 / GCN 1.1 can do Freesync 1.0 + 2.0. And since the 480 BIOS is only an "older version" of the 580 one, no, there shouldn't be any issues.

So, most likely not.


----------



## rastaeyes

I have no idea why Freesync is not working properly then.

Are the updated BIOS files still coming?


----------



## hellm

they came weeks ago? u didn't notice?
i wouldn't know what to update now.









If u r using the lower ports (3xdp/1xhdmi), u should be fine.


----------



## rastaeyes

Did you change the naming scheme? I already have v12: Build Date 2017-11-03 14:16

MSI Gaming X


----------



## ZoomThruPoom

Quote:


> Originally Posted by *hellm*
> 
> happy xmess @all
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Updates are coming.. first the reference, others will follow; mostly new UEFI version (now 1.65), some cards will get a newer BIOS build.
> 
> X.xxxx for the card the 580 BIOS is from, x.XXxx for the build# of the BIOS, and x.xxXX is for my mods.


So is the Nitro bios in post #2 more "updated" than the Nitro bios in post #1??
Quote:


> Originally Posted by *hellm*
> 
> they came weeks ago? u didn't notice?


It got a little confusing with the recent bios name layout changes.


----------



## hellm

basically a higher number means something changed, if it is the first two numbers, the BIOS has changed, the last number means i did something to it.

and nope, post #2 is the original BIOS, and the last update for the 480 nitro+ was some time ago. Build# 400237 is for the most 580 conversions now, along with the new 1.65 UEFI for everyone.
Oh, and i removed OEM info table from reference card, does nothing, though.

And i just corrected the date in all files. nothing to worry about, but it is corrected now.

There was 1 update, and then i changed "0" to "." because it all makes sense and stuff; sorry if it was too confusing.


----------



## JocPro

Well, after more than a month using this custom BIOS, I've noticed a little situation with my system:

Whenever I start the PC, my main monitor comes alive but shows nothing, then goes off, then alll of them turn on (but still blank) and finally I get to the WIndows user scrren and to the desktop. The point is, I get no feedback from the BIOS - and if I try to enter it or choose another boot device or anything, I get a blank screen.

Is it possible that this is related to the 'Magic' UEFI implementation? Is it just a byproduct of the right/wrong combination of hardware? Is anybody having the same issue?

By the way, this only happens when the three displays are connected, with the main monitor only everything works like a charm.

I'm currently using the xfx480-580.1.1.11.rom, with a 50 mV undervolt and tightened memory timings. My relevant hardware is the following:


MSI B350 Tomahawk
Ryzen R7 1700 @ stock speeds.
G.Skill Trident Z DDR4 Dual Rank Samsung B-Die 3200 MT/s CL 14 - 2 x 16 GB.
XFX Radeon RX 480 GTR XXX 8 GB w/White Hard Swap Fans
Samsung C24FG70 24" 1080p/144Hz Freesync monitor, via DP (main)
LG W2353 24" 1080p/60Hz Digital Monitor, via DVI to DP adapter.
Samsung SyncMaster S22B300 22" 1080p/60Hz Digital Monitor, via DVI to DP adapter.


----------



## hellm

The "magic" lies only in disabling the check for modded rom, the UEFI part works as it should. And the magic doesn't work with secure boot.
If u experience any problems, u can try an older version, they r to be found in post#3.

Also, the additional ports (extra hdmi, dvi) on the post#1 580 conversions might not work as intended. U can flash a original conversion of the 480 rom from post#2 (or make one according to post#3), and check if the problem stays the same.


----------



## overpower

Hi. I'm new to this.

Is it still safe to flash the custom bios for strix 8gb? Is there a newer version?

Secondly, for the cmd, i just copy and paste the commands as they are?


----------



## overpower

Nvm i did it. I found a video tutorial to help me. Great job


----------



## mtrai

Quick question for anyone..just want to check if it something I might of tweaked in Windows 10 or not. It seems that on Windows 10 insider build 17074 I cannot start atiflash 2.77. I have tried both atiwinflash and as well as using admin command prompt?

Anyone noticed this?


----------



## JocPro

Quote:


> Originally Posted by *mtrai*
> 
> Quick question for anyone..just want to check if it something I might of tweaked in Windows 10 or not. It seems that on Windows 10 insider build 17074 I cannot start atiflash 2.77. I have tried both atiwinflash and as well as using admin command prompt?
> 
> Anyone noticed this?


I think I've the current insider build installed right now. I'll check when I get home from work.


----------



## hellm

Hm, that would be really annoying.

..wouldn't concern me any more, though. My RX480 and I are going separate ways now. I wish her all the best and a long, water-cooled life.

This will most likely mean there will be no more updates. Also i doubt there will be anything more to update or tweak.


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> Hm, that would be really annoying.
> 
> ..wouldn't concern me any more, though. My RX480 and I are going separate ways now. I wish her all the best and a long, water-cooled life.
> 
> This will most likely mean there will be no more updates. Also i doubt there will be anything more to update or tweak.


What are you getting instead?







not the best time to buy a GPU.


----------



## JocPro

As feared, ATIFlash and AtiWinFlash don't work in the Insider Preview 17074
Quote:


> Originally Posted by *hellm*
> 
> Hm, that would be really annoying.
> 
> ..wouldn't concern me any more, though. My RX480 and I are going separate ways now. I wish her all the best and a long, water-cooled life.
> 
> This will most likely mean there will be no more updates. Also i doubt there will be anything more to update or tweak.


Well, I hope you enjoyed your 480 to the max


----------



## hellm

Well let's hope this is some serious bug or something.. or atiflash needs another update. Wait.. the DOS Version.. can't it be run on a boot-stick?

Well, as much fun the RX480 was, i realised with ETH that high, the graphic cards, especially Radeons won't get any cheaper soon. Then i read about the price explosion at newegg usa, i assumed that could soon happen here in Germany, too. And i was right, on the same day i ordered, the prices went up.
Good thing for me, i didn't pay too much for my new GPU and was able to sell my old one at a very decent price.


----------



## SSBrain

I'm probably too late to report this, but I noticed an interesting thing with the RX580 BIOS on my RX480.
The PCI Express link speed from GPU-Z never downshifts to lower speeds and remains fixed at PCIe 3.0 speed.
With the RX480 (original) BIOS during low load it goes to PCIe 1.1 speed.

By the way, I temporarily reverted to the RX480 BIOS because I think I am having occasional, hard to reproduce system crashes (bluescreens) due to the RX580 BIOS.


----------



## hellm

You sure that is related to the 580 BIOS?

Well, it worked just fine for the reference. With the latest drivers, there was an issue that sometimes the card didn't clock down. It stayed in P7, maybe this is what u noticed.

For the crashes, stability shouldn't be affected in any way. But i did update the Vram tables on some of the 4G versions, maybe an older version works?


----------



## SSBrain

I think these problems started occurring when I flashed the RX580 bios a few months ago (I think about three months ago). They rarely occur, but in certain periods they seem to occur more often than usual and are quite annoying as I do not only game with my system. They occur in various occasions immediately after strange runaway memory leaks that render the system inoperable into an out-of-memory condition.

Prior to using the RX580 BIOS I was using a modified RX480 BIOS, which comes with the disadvantage of having to patch the driver signature check after every display driver update/install and inferior low-load power efficiency and perhaps overclockability.

A few days ago I noticed with GPU-z that the PCI express link speed would remain constant at maximum 16x 3.0 speed, even after rebooting the system. I did recall it changing dynamically and indeed after switching to the default RX480 BIOS, now it appears to work as intended.

The latest crash I had (actually, system reboot) appears to have involved _atikmpag.sys_, _dxgkrnl.sys_ and _ntoskrnl.exe_ after analyzing the generated system minidump with BlueScreenView. Therefore I suspect that coupled with the hardware apparently not working entirely as it should, this could be related with the modified GPU BIOS. However it could be coincidental and related to something else.

I haven't had other problems with the GPU besides one incorrectly mapped HDMI port and incorrect power readings (minor issue).


----------



## hellm

I don't think the 580 BIOS can cause any crashes, only reveal them. Maybe some problems with timings or gpu stability.

If u are uncertain if anything isn't going as it should be with the 580 BIOS, try and switch your modded 480 to a 580, as explained in post#3. The GPU's are the same, and since the latest 480 BIOS from Asus we know the data and command tables were only updates. Only thing is a different power management, and the lower IMC values doesn't work for every 480, but i fixed that.

Another test is making an i2c dump using vrmtool (link post#1). The first rows of the 480 and 580 have to fit, rest is monitoring data. Then the card works as before, and there is nothing in the 580 BIOS that could do anything about that.

For the power draw readings, on AMD cards this value isn't measured. It is calculated from other readings. If you switch a 480 BIOS, u will recognize a change, because the driver is also involved.


----------



## SSBrain

I see. I'll try modding my Sapphire Nitro RX480 to 580 later on, which I have already attempted in the past. For now I'll test with my GPU at default settings and with the default BIOS to make sure if the problem is there or somewhere else.


----------



## ZoomThruPoom

Quote:


> Originally Posted by *hellm*
> 
> My RX480 and I are going separate ways now. I wish her all the best and a long, water-cooled life.
> 
> This will most likely mean there will be no more updates. Also i doubt there will be anything more to update or tweak.


You better have gotten a Vega or 1080ti to leave us like this.







This is very sad news indeed.


----------



## hellm

Where would i have found a Vega? At an affordable price?









So, yeah, i am back with the greens again. I had to buy Pascal, even if the next Geforce isn't too far away. There will be not much GPU's left out there till AMD gots his sh.. stuff together and nvidia ordered enough nextgen chips from TSMC.

Oh, and i bought a 1070 Ti. Prefered it over the 1080, cause GDDR5X is not that attractive to miners. If i have to sell it someday..


----------



## MixedC

Quote:


> Originally Posted by *hellm*
> 
> Where would i have found a Vega? At an affordable price?
> 
> 
> 
> 
> 
> 
> 
> 
> 
> So, yeah, i am back with the greens again. I had to buy Pascal, even if the next Geforce isn't too far away. There will be not much GPU's left out there till AMD gots his sh.. stuff together and nvidia ordered enough nextgen chips from TSMC.
> 
> Oh, and i bought a 1070 Ti. Prefered it over the 1080, cause GDDR5X is not that attractive to miners. If i have to sell it someday..


Good choice, sadly I cannot find literally anything so I will hold onto my "580" for quite a while, and I hope it can handle me for a while.









I think of selling it, but cannot find a replacement so I cannot sell.


----------



## LordSiphi

+ Hellm,
Tell me a bios for msi rx480 Gaming x 8gb? for 480 to 580 Gaming x 8gb


----------



## MixedC

Quote:


> Originally Posted by *LordSiphi*
> 
> + Hellm,
> Tell me a bios for msi rx480 Gaming x 8gb? for 480 to 580 Gaming x 8gb


I am using the bios from 1st post, an older version of it for months now, all is good.


----------



## DAM20

Hi, I'm new here and first time dealing with this kind of stuff.
I have a XFX RX480 GTR BE 8GB, now for what I understood, I have to follow Post #1, but I don't know if I have to just flash the bios and done, or flash plus Vcore,IMC and Memory Timings.
I'm currently lost, what to do?


----------



## hellm

What you want.









You can just flash the 480-580 BIOS, but it is inevitable you follow the flash instructions. Once you have a 580 installed, you can make changes, flash and reboot. Beware not to brick your card, it is recoverable, but not a good experience.









The offset stuff is for people who want to change Vcore not only in 25mV steps (see post#3). I mean, if you want a specific Vcore, it is possible. I have to update OP, but u can find the offset bytes in every BIOS by searching for "8D 00 00 00 FF".

The timings are highly recommended, u should try them, UberMix for your card.

And you can change the fan table, if u wish. And everything PBE offers, well almost, see post#1; the rest is found in post#3.

But for beginners, just flash the rom. Note that wattman does not tell you the max 1200mV that are stock, but accepts all values up to that. If you know your card better, you maybe want to make some changes, and i hope also others will help you. since i am retired and all..


----------



## DAM20

So, I've installed the new BIOS, uninstalled drivers, reboot, DDU, reboot and installed drivers but my screen started turning black and froze then i got a blue screen with some vid error.
Now I'm with the second BIOS, what I did wrong?


----------



## DAM20

I used the XFX one, should i try others?


----------



## LordSiphi

Quote:


> Originally Posted by *MixedC*
> 
> I am using the bios from 1st post, an older version of it for months now, all is good.


Thanks


----------



## SSBrain

hellm said:


> I don't think the 580 BIOS can cause any crashes, only reveal them. Maybe some problems with timings or gpu stability.


Update: I experienced the same random issue also after reverting the GPU to an unmodded, non-overclocked state, so it's most probably not the GPU or the BIOS mod.


----------



## SSBrain

I found that on my card the likely reason why the voltage of the last P-state wouldn't previously be automatically configured to a proper value with the RX580 bios was that it needed more voltage that the BIOS couldn't provide due to lower limits. I've increased the max voltage to 1250 mV as suggested in one of the first comments (and as discussed/requested here), and this is what I obtain by showing the automatic values:










The last P-state is 1212mV. With auto voltages enabled I get lower effective voltages at that frequency, though.
Other than this, the voltage at lower frequencies is fine. So the higher limit just gives the card a higher margin for automatic voltage adjustment when increasing frequency, and it works great (although it appears to give more voltage than I thought would be ideal).


----------



## Loladinas

SSBrain said:


> I found that on my card the likely reason why the voltage of the last P-state wouldn't previously be automatically configured to a proper value with the RX580 bios was that it needed more voltage that the BIOS couldn't provide due to lower limits. I've increased the max voltage to 1250 mV as suggested in one of the first comments (and as discussed/requested here), and this is what I obtain by showing the automatic values:
> 
> 
> 
> Spoiler
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> The last P-state is 1212mV. With auto voltages enabled I get lower effective voltages at that frequency, though.
> Other than this, the voltage at lower frequencies is fine. So the higher limit just gives the card a higher margin for automatic voltage adjustment when increasing frequency, and it works great (although it appears to give more voltage than I thought would be ideal).


Now that's a lot of voltage... Anyway, that voltage table isn't really used until you manually apply it with overclocking software. The usable automatic voltage is calculated with your cards "ASIC quality" in mind, within the min-max limits you set in the BIOS. That, combined with LLC is why you're getting lower voltage under load, than 1212mV.


----------



## SSBrain

Loladinas said:


> Now that's a lot of voltage... Anyway, that voltage table isn't really used until you manually apply it with overclocking software. The usable automatic voltage is calculated with your cards "ASIC quality" in mind, within the min-max limits you set in the BIOS. That, combined with LLC is why you're getting lower voltage under load, than 1212mV.


My GPU's ASIC quality is 72.7%.

I've made a graph of the automatic VDDC obtained from GPU-z while varying core clock speed. It increases more or less linearly:










It seems to stop increasing at 1225 mV even though I set the card to a maximum allowable voltage of 1250 mV (which I could manually on Wattman set if I wanted). I can increase clock speeds further and sometimes I see 1231-1237 mV, but it feels like something is holding the card back from automatically giving more voltage. However at this moment the stability limit on my card (with fully overclocked memory) seems to be 1415-1420 MHz, which is also what I tested in the past, so I'm not expecting to obtain much more than this with the default air cooling.

I like however the fact that now the card automatically applies additional voltage as needed when overclocking and that it seems to be stable up to the above mentioned clock limit. This is the way it should be, it's really hassle-free overclocking.

As a further observation, I don't know if it's the BIOS or the newest drivers (18.1.1), but I noticed that the card won't lock up when it gets throttled heavily compared to what I used to experience with overclock tests with the old RX480 BIOS (I hadn't done yet such extensive tests with the RX580 bios mods I installed recently). Now I can set up a lower temperature limit safely without fearing system freezes. I suspect that in the past when the temperature limit was lowered, the GPU shutdown temperature also was.


----------



## LordSiphi

hellm when using msi bios rx 480/580 gamingx 8gb IR Controller only my bandwidth gets 120?

when using msi bios rx 480/580 gamingx 8gb Original Conversions minuha bandwidth gets 64

can solve samsung memory ok


----------



## manotroll

would it be possible to convert this bios from rx 480 to 580?


----------



## hellm

@LordSiphi
sorry, can't help you with that. Usually bandwidth should stay the same, unless you change timings.
@manotroll
Only cards with IR controller. You can check with vrmtool, link in OP.
If you have a Gaming or Gaming X, you can use the conversions i made. Unless you have some chinese card, those are the only ones with IR controller from MSI besides the reference design.
If you have something different, you can convert your original rom, see post#3.


----------



## Loladinas

Yup, I've tried converting my Gaming X to 580 as well. Haven't looked into it yet, but and I too get the memory bandwidth cut in half.


----------



## SSBrain

Are you getting bandwidth readings from GPU-z? It sounds like it's calculating it from the 1000 MHz memory power state.
Try some memory bandwidth-sensitive benchmark like Unigine Valley. It should be immediately clear if the memory is running at only half the effective bandwidth.


----------



## Loladinas

SSBrain said:


> Are you getting bandwidth readings from GPU-z? It sounds like it's calculating it from the 1000 MHz memory power state.
> Try some memory bandwidth-sensitive benchmark like Unigine Valley. It should be immediately clear if the memory is running at only half the effective bandwidth.


Yeah, the performance is lower, as expected, as well.


----------



## manotroll

hellm said:


> @LordSiphi
> sorry, can't help you with that. Usually bandwidth should stay the same, unless you change timings.
> @manotroll
> Only cards with IR controller. You can check with vrmtool, link in OP.
> If you have a Gaming or Gaming X, you can use the conversions i made. Unless you have some chinese card, those are the only ones with IR controller from MSI besides the reference design.
> If you have something different, you can convert your original rom, see post#3.


https://i.imgur.com/UTLXJX4.png
https://i.imgur.com/URX5ezg.png
these are the data
I found a BIOS with only Samsung chip I will test to see if it will give video


----------



## hellm

i compared the voi_tables and you can use the msi gaming x version, no problem.

well, there should be no problem, reports coming in the bandwidth is cut in half? ..so, someone flashed the msi and now has a poor performing card?

I am sorry, i can't test anything, sold my card. My last update worked perfectly fine. If there is a problem with the msi from post#1, i should be able to fix it. Unless it is some new driver related stuff..


----------



## manotroll

I have a msi gaming card
its bios does not work in msi oc


----------



## manotroll

I edited according to the 3 post and in gpu-z it was like this
https://i.imgur.com/LZc6NxC.gif
https://i.imgur.com/QO1f5EI.gif


----------



## hellm

i guess they activated signature check on the 580. If that is a beta driver, with 18.1.1 it worked.


----------



## SSBrain

I'm using 18.1.1 without problems with my RX480->RX580, for what it's worth.


----------



## rootmoto

Hello, this isn't related to the Polaris series but more of ASIC profiling editing, how would I be able edit the voltages in a R9 Fury vBIOS?


----------



## hellm

There is also a very good Fiji BIOS Thread:
http://www.overclock.net/forum/67-a...-editing-fury-fury-x-nano-radeon-pro-duo.html
..but yes, should be the same way. But it is a different table revision, so you have to find the right specs. Or at least the max voltage and this x4 value.

thx @SSBrain for clearing things up.
@manotroll
ok, i made a msi.oc rom, if this file won't work with your card, i am maybe out of options.

and i made an update for the russian XFX XXX 480.. if someone needs it..


----------



## hellm

I need some stability testing. I added the 1000MHz mem step to the original conversions, i also lowered the idle voltage to 750mV. Can't test anything, lack of Polaris cards.


----------



## Cheffy

hellm said:


> I need some stability testing. I added the 1000MHz mem step to the original conversions, i also lowered the idle voltage to 750mV. Can't test anything, lack of Polaris cards.


Hi hellm,

Do you have an updated original conversion for the gigabyte g1 8 GB? I can help test it.

Been doing a lot of reading recently on rx480 bios modding and 580 conversion. Firstly, thank you for your selfless contributions. 

I tried the 480-580 bios conversions from post 1 and 2. Both worked, but I found that they required a little more voltage to be stable for the same clock speeds than my rx480. For example, I could run 1350 MHz stable at 1090 in firestrike on my 480 bios but required 1100 mv. Manual voltage values entered in wattman. However, for the same voltage, the 580 bios would use 2-3 fewer Watts than the 480 bios. 

Thoughts?


----------



## hellm

Your Vcore is the same as before, only this time the BIOS has no offset programmed. Some custom cards realize the 1175mV max Vcore with an offset of 25mV on the Core. Software Tools should report the xeakt same voltage as before, when you add 25mV in Wattman. So, if you only added 10mV, your card is actually more stable. Which it shouldn't be, GPU and VRM works as before.

i added the rest of the files to post#2.. at least i am gonna try it.. damn new look..


----------



## Cheffy

hellm said:


> Your Vcore is the same as before, only this time the BIOS has no offset programmed. Some custom cards realize the 1175mV max Vcore with an offset of 25mV on the Core. Software Tools should report the xeakt same voltage as before, when you add 25mV in Wattman. So, if you only added 10mV, your card is actually more stable. Which it shouldn't be, GPU and VRM works as before.
> 
> i added the rest of the files to post#2.. at least i am gonna try it.. damn new look..


I set my voltages and core manually in wattman, and do most of my benchmarking using firestrike (including the demo), as it is especially demanding. I log the data using msi afterburner, and analyse it in excel. From that output, the average vcore when the core clock was at P7 was identical for the original rx480 bios and your 480-580 bios when they were set to the same manual voltage in wattman (vdroop = ~0.025 mv). For the same clock speed at P7, the card would run stable at ~10-15 mv lower using the rx480 bios than the 480-580 bios, especially at higher clocks.

For example, with P7 set to 1350 Mhz and 1085 mV, firestrike will complete a run with the rx480 bios with vcore ~1060 mv (it's barely stable, but finishes). In comparison, the 480-580 bios would not complete a run unless set to 1095 mV (vcore ~1070). At 1400 Mhz, the 480 bios will consistently finish firestrike set at 1160 mV (vcore 1135 mv), while the 480-580 bios would typically crash below 1170. I've can run 1425 Mhz at 1200 mV with the 480 bios (vcore 1175 mv), but the same clock would crash at 1225 mv using the 480-580 bios. However, for the same vcore, the 480-580 bios would consistently use about 2-3 watts less power. (had to use watt tool to get above 1200 mv).

I admit this is only using a few runs, but the trend was consistent. Assuming afterburner is giving me accurate vcore measurements, it seems the 480-580 bios is less stable at the same voltages. However, perhaps the fact that the 480-580 bios seems to use slightly less power for the same displayed vcore suggests it is actually running a lower vcore than I'm seeing from afterburner.

I will try your updated 480-580 bios and test again. I want you to know that I really appreciate and admire the huge amount of effort you've put into this project over the past year. I'm impressed how there are some members of this community that put a great deal of their personal time into helping others and advancing the overall knowledge and understanding of these things for all users.


----------



## Cheffy

hellm said:


> Your Vcore is the same as before, only this time the BIOS has no offset programmed. Some custom cards realize the 1175mV max Vcore with an offset of 25mV on the Core. Software Tools should report the xeakt same voltage as before, when you add 25mV in Wattman. So, if you only added 10mV, your card is actually more stable. Which it shouldn't be, GPU and VRM works as before.
> 
> i added the rest of the files to post#2.. at least i am gonna try it.. damn new look..


I set my voltages and core manually in wattman, and do most of my benchmarking using firestrike (including the demo), as it is especially demanding. I log the data using msi afterburner, and analyse it in excel. From that output, the average vcore when the core clock was at P7 was identical for the original rx480 bios and your 480-580 bios when they were set to the same manual voltage in wattman (vdroop = ~25 mv). For the same clock speed at P7, the card would run stable at ~10-15 mv lower using the rx480 bios than the 480-580 bios, especially at higher clocks.

For example, with P7 set to 1350 Mhz and 1085 mV, firestrike will complete a run with the rx480 bios with vcore ~1060 mv (it's barely stable, but finishes). In comparison, the 480-580 bios would not complete a run unless set to 1095 mV (vcore ~1070). At 1400 Mhz, the 480 bios will consistently finish firestrike set at 1160 mV (vcore 1135 mv), while the 480-580 bios would typically crash below 1170. I've can run 1425 Mhz at 1200 mV with the 480 bios (vcore 1175 mv), but the same clock would crash at 1225 mv using the 480-580 bios. However, for the same vcore, the 480-580 bios would consistently use about 2-3 watts less power. (had to use watt tool to get above 1200 mv).

I admit this is only using a few runs, but the trend was consistent. Assuming afterburner is giving me accurate vcore measurements, it seems the 480-580 bios is less stable at the same voltages. However, perhaps the fact that the 480-580 bios seems to use slightly less power for the same displayed vcore suggests it is actually running a lower vcore than I'm seeing from afterburner.

I will try your updated 480-580 bios and test again. I want you to know that I really appreciate and admire the huge amount of effort you've put into this project over the past year. I'm impressed how there are some members of this community that put a great deal of their personal time into helping others and advancing the overall knowledge and understanding of these things for all users.


----------



## Cheffy

Sorry for the double post, I can't find a way to delete or edit posts. Mods could you please delete the first post?


----------



## hellm

well, it shouldn't be like that. i tested this thoroughly with the reference edition. If there is something different, be sure it is not related to cooling or something else. Stability is a relative thing, might only need enough load..

but, we don't have to rely on feelings here. make an i2cdump with vrmtool with the 480 and then with the 480-580 BIOS. Or, test the original conversion, if there is something different. Could be different BIOS releases or something like that.


----------



## Cheffy

I can't explain it, just noting what I observed. I have very minimal knowledge about the specifics here, only an in-depth knowledge of how my card performs under different clock speeds with respect to voltages.

> make an i2cdump with vrmtool with the 480 and then with the 480-580 BIOS. Or, test the original conversion, if there is something different. Could be different BIOS releases or something like that.

I'll try that and get back to you. I'm not familiar with what an i2Cdump is specifically, but I understand it is for diagnosing problems and I've seen instructions on how to do it.


----------



## hellm

yes, u can do that either with vrmtool or afterburner. 




the first few rows are about your PWM voltage controller, if there are differences, something indeed isn't right. if not, well, then everything is right.


----------



## Cheffy

OK I tried the ic2dump using afterburner as in the video. It started and kept going and going, eating up 30% of the cpu. After 30 minutes I just shut it down through task manager as there was no end in sight and for others it only took 2-3 minutes.

I can't figure out how to use vrmtool to log an ic2dump.


----------



## hellm

just press the "read i2c device" button and copy all of the content appearing in the window on the right.


----------



## Cheffy

hellm said:


> just press the "read i2c device" button and copy all of the content appearing in the window on the right.


Hmm, I tried that, not much appeared. Maybe I should've waited longer. I'll try again.


----------



## Cheffy

OK so I tried the updated OG 480-580 bios. Flashes and boots fine, reloaded radeon software after using DDU, etc. 

Tested performance again using firestrike - same issue - unstable at same voltages as with 480 bios. Tried 1090, 1095, and 1100 mV for 1350 Mhz - all crashed. Set voltage to auto in wattman, no crashing, but vcore is 1125 mv (P7 defaults to 1150 mv). Tried 1375 at 1130 mv, rock solid on the 480 bios - crashed on the 480-580 bios. I don't have the patience to find exactly what voltage works with this bios, especially since it is less efficient than my 480 bios.

One weird note - after a crash that caused a reset in wattman, the memory was stuck running at 300 Mhz until I reset the computer.

I did an I2Cdump for the original 480-580 bios using afterburner. Finished in under a minute, but the output file doesn't contain a table, just lists:

Probing device 4e...
Invalid device
Probing device 4f...
Invalid device
Scanning GPU VEN_8086&DEV_5912&SUBSYS_7A691462&REV_04&BUS_0&DEV_2&FN_0... (this is where it ends).

I also tried using vrmtool but all it says is:

"Dumping 00 00 00"

I'm going to try your gigabyte 580 bios (15.1.1.10) again. I seem to recall it being a little better than the original 15.0.0.3/4 bios (it did complete firestrike at 1095 mv for 1350). If that doesn't work out, I'm just going to mod my original 480 bios to raise the default P7 core clock to 1375.


----------



## Cheffy

I tried the 580 bios from the first post - same deal - less stable at the same voltages, crashing at very stable voltages for the rx480 bios.

I modded my 480 bios so that the P7 state is 1375, which is a rock solid everyday OC for me. 1400 Mhz ran well at 1160 mv, though I'd set it to 1170 for regular use to be certain.

For now, I can't see any point in using the 580 bios on my 480 - it works, but consumes more power for the same performance. I really appreciate the effort you've gone to here though. Good luck with your new card!


----------



## hellm

I think it's safe to say now that you don't have a Gigabyte G1, not even a card with an IR Controller. So, yeah, post#3 is the way to go.


----------



## MixedC

What is the point of 480-580 original conversion with 1000mhz step? Just getting the not working ports working? 
Because that is not an issue with MSI RX480-580 afaik. and I know you already replaced the PWM controller sections of 580 bioses with their 480 ones.

and also for a month or two, now I have -31mv drop instead of -25mv, which I don't know why so setting 1150 actually gives 1119mv.


----------



## MixedC

double post


----------



## hellm

I added it. Because i can. 

someone asked me because of the less power cosumption with multi-monitor and video stuff:
http://www.tomshardware.com/reviews/amd-radeon-rx-580-review,5020-6.html
..and he was in need of the extra HDMI and DVI port.

Yes, the real 580 BIOS should be just a newer version at this point. With the extra ports possibly not working..

Update:
there is one issue, GPU and Memory Load are stuck again. Since they solved this bug month ago for the 580 BIOS, it now affects the old 480 versions, if switched to 580.


----------



## MixedC

for multi monitor, I had the same thing going with memory clocks and it stays at 2000 not 1000mhz sadly. I have read if both screens have same resolution it is supposed to go below 2000mhz but couldnt give it a try myself.
What I do is this,
I connect my main screen to GPU via HDMI,
I connect my 2nd screen to GPU via DVI.
I connect 2nd gpu again to my intel igpu.

I do this because for example if you are using something heavy on main GPU say a game, and do it on 2nd screen, while the screen is connected through iGPU, it gets slowed down good amount.
but if you are just doing desktop stuff, using iGPU for 2nd monitor is just fine.

so my PC thinks there are 3 screens connected, I disable 2nd Screen's duplicate (which is connected to GPU by DVI) for daily normal use and gpu idles just like a single screen.
When I need to have my GPU to do some work on 2nd screen (example OBS preview), I enable supposedly 3nd screen (hence DVI connection) and switch my 2nd screen to DVI output.

Enablind disabling is done from windows display settings, it is somewhat complicated to explain but actually a really easy thing to switch between.


----------



## hellm

AMD fixed the stuck GPU/Mem load thing with 18.2.1. Again. 

I don't believe the tests thg did are with 1000MHz Memory. 
Ram doesn't need that much power, should be the lower Vcore and the 300MHz flat clockrate, unless you select some sort of power saving mode for the 480, the clockrates jump very high in idle.


----------



## cnilsecure

Hi,

I am new to this forum, I wanted to ask few question before i do something i will regret,
I have MSI rx480 Armor 4g hynix memory, My question is Must i edit the hex stuff? or its enough i d/l your rom and flash it?
if I must edit the hex stuff can someone make my life easier (if they done it before of course on msi ) and just explain me what exactly i need to edit?
Last question what are the benefits (I do mining with the card to upgrade to 580 instead of 480)

Thanks in advance,
CNILSECURE


----------



## MixedC

I just activated my 2nd screen again, I am on 17.12.1 and using 2nd screen, my memory is still at 2000mhz.
I'll try updating drivers later.


----------



## SSBrain

The 1000 Mhz memory power state is used during low 3D loads or videos in single display scenarios. Not with 2 or more display enabled, from what I've seen. To save power with 2 displays you need them to have the same resolution, timings and bit depth. The displays can be different and have different connections.


----------



## timmie897

I had been using xfx480-580 rom for a while and I just switched over to xfx480-580.original.1.0.04. I am noticing that the original runs at lower temps than the one based on the 580 bios.
However, the 1000 Mhz step was working on the 580 based bios and now it isn't working on the original one.


----------



## MixedC

timmie897 said:


> I had been using xfx480-580 rom for a while and I just switched over to xfx480-580.original.1.0.04. I am noticing that the original runs at lower temps than the one based on the 580 bios.
> However, the 1000 Mhz step was working on the 580 based bios and now it isn't working on the original one.



It is probably the Load Line Calibration difference or voltage difference between bioses.
I have no idea about 1000mhz strap.


----------



## Cheffy

*In-depth comparison between rx480/580 bios on performance*

OK - I've done a bunch more testing with my modded rx480 bios and using the gigabyte rx580 bios from post 1. In general, I found my original rx480 bios slightly more stable at the same voltages as the rx580, but the difference is smaller than I originally thought. I think part of this has to do with the fact that the rx580 bios pulls slightly less power under load than the rx480 bios.

*Testing:*

System: i5-7600; MSI Mortar B250; 16 GB DDR4-2400 Team Ram; Gigabyte G1 rx 480 using Hellm gigabyte rx 580 bios (post 1). 

Tests: firestrike runs, playing witcher 3; data recorded using MSI afterburner. Multiple runs at difference clock speeds.
Core = 1375 Mhz @1140 mv (1115 mv after Vdroop). Very stable OC. (tested between 1350-1425 Mhz). Also tested up to 1425 Mhz core.
Memory = 2150 Mhz w/1750 Mhz strap timings (I tested between 2000-2200 Mhz). Using the 1750 Mhz timing for the 2000 Mhz strap improved gaming performance by around 1.5%, same for both the rx 480 and 580 bios. Tighter timings (i.e. 1625 Mhz for 2000 strap) only slightly further improved performance, and seemed to cause instability. Needs further testing. EDIT - Tried ubermix 3.1 and 3.2. Ubermix 3.1 produced best results by far but occasionally unstable and artifacting for any OC >2025, crashed consistently at >2075 Mhz. Ubermix 3.2 stable for me up to 2100 MHz (so far), produced same results as 3.1 @2050. 

*Results:*

After averaging out values from a number of difference tests, I can make the following generalisations about using Hellm's rx580 BIOS on my rx 480:

Core overclocking potential unchanged. I could not achieve any higher clocks with the rx580 bios than the rx480; in fact, I had more success with the rx480 bios (Highest rx480 OC in firestrike = 1425 Mhz core, highest rx 580 OC in firestrike = 1415 Mhz). However, 1415+ is barely stable OC that doesn't tolerate memory overclocking (becomes unstable), and used too much power, so I keep it at 1375 MHz which runs stable at 1140 mv with memory clocked to 2150 Mhz for both bios (now 2100 using ubermix 3.2). I've had stable firestrike runs at 1400 MHz core at 1185 mv with 2150 Mhz memory clock, but crashed after 40 minutes of Heaven on a loop. Seemed to work fine playing Witcher 3 though.

Memory OC potential is also the same. Increasing memory clock speed increased performance similarly, and memory error rates at high clocks were the same between the 480/580 BIOS. I had a consistent improvement of 0.5% performance increase for every 50 Mhz, at the low cost of about 1 extra watt per 50 Mhz. In my case, max 2150 Mhz using 1750 strap in for 2000, or 2100 Mhz using ubermix 3.2.

Using the same voltage in the P7 state, the rx 580 bios drew 3-4 fewer watts of power _at full load_ than the rx 480 bios. Also, the core was *1-2°C cooler* with the rx 580 bios, so fans ran slightly slower. 

Performance in firestrike was about 0.5% lower using the rx 580 BIOS relative to the rx 480 bios. Performance in Witcher 3 was identical.

Core clock speed at idle is totally consistently at 300 Mhz. In comparison, the rx 480 bios clock speed constantly jumps all over the place at idle.

*Summary:*

At load for the same voltage and clock speeds, the rx580 bios uses 2% less power and is 1-2°C cooler, while the difference in gaming performance is negligible. OC potential unchanged. Idle performance is more stable.

*Conclusions:*

Switching to the rx 580 bios modestly improves power management efficiency. Many others previously noted this improved efficiency at idle. However, I also found it also decreased power consumption and temperatures under load. There may be a very slight performance hit, but it's so small it would never be perceptible.

For now, I intend to keep the 580 bios (using the ubermix 3.2 timings in the 2000 Mhz strap), as I like the improved efficiency. Many thanks to @hellm and others for their great work in developing these BIOS and helping others along the way. :thumb:


----------



## rootmoto

@hellm Is the UEFI GOP in your OP compatible with the Fiji R9 Fury cards?


----------



## hellm

@rootmoto
Yes, it is. You only have to change the device id from 67DF (480/580/470/570, little endian -> DF 67) at offset 0x22-0x23 to the fury(x) id 7300 -> 00 73.

@Cheffy
thx :thumb:


----------



## rootmoto

@hellm The original R9 Fury GOP is longer than the RX 480 so do I just FF the rest of the parts?


----------



## hellm

sure.


----------



## Cheffy

SSBrain said:


> My GPU's ASIC quality is 72.7%.
> 
> I've made a graph of the automatic VDDC obtained from GPU-z while varying core clock speed. It increases more or less linearly:
> 
> I like however the fact that now the card automatically applies additional voltage as needed when overclocking and that it seems to be stable up to the above mentioned clock limit. This is the way it should be, it's really hassle-free overclocking.
> 
> As a further observation, I don't know if it's the BIOS or the newest drivers (18.1.1), but I noticed that the card won't lock up when it gets throttled heavily compared to what I used to experience with overclock tests with the old RX480 BIOS (I hadn't done yet such extensive tests with the RX580 bios mods I installed recently). Now I can set up a lower temperature limit safely without fearing system freezes. I suspect that in the past when the temperature limit was lowered, the GPU shutdown temperature also was.


This is interesting. When I set voltage to auto and change clock speeds it just applies the maximum vcore (1200 mV) for all frequencies. This happens with both my stock rx 480 bios and the 580 conversion bios. Is this a card specific feature?


----------



## SSBrain

@Cheffy
Both memory and core voltage must be set to auto for automatic voltages to work.

I thought _this_ was the normal behavior of the card. Doesn't your card use lower P-states under partial loads? With lower P-states a lower voltage should also be used.

How are you monitoring VDDC? I'm using GPU-z.


----------



## Cheffy

SSBrain said:


> @Cheffy
> Both memory and core voltage must be set to auto for automatic voltages to work.
> 
> I thought _this_ was the normal behavior of the card. Doesn't your card use lower P-states under partial loads? With lower P-states a lower voltage should also be used.
> 
> How are you monitoring VDDC? I'm using GPU-z.


Hmm I think I misinterpreted this. Did you create that graph based on just changing the final P-state frequency or are those values are based on auto-voltages set for all p-states? If it's the latter, then that makes sense. For some reason I was thinking that you were just changing the final P-state and it was adjusting the voltage as it deemed necessary. I find that if I set voltage to auto it doesn't matter what core clock frequency I put in the final P-state, it always applies maximum voltage (i.e. 1175 mv for rx480, 1200 for rx580 bios). Would be nice if it could adjust voltage for stability based on manually entered clock frequencies.

I use afterburner usually for my logging/monitoring, wattman for OCing. If I need to pull voltage higher than 1200 for benching I use watt tool.


----------



## Cheffy

@hellm

After about 100 benchmark tests back and forth between the gigabyte rx580 and original rx480 bios, I can maintain that my card is simply much more stable at OCing using the rx480 bios. Essentially, the rx580 bios requires an additional 15-20 mV for stability over the rx480 bios. My peak OC (1425 Mhz) is also unattainable on the rx 580 bios, even with more added voltage. There is no voltage offset on either bios, and all my values from from logging data using afterburner.

I suspect this is driver related and not a BIOS issue, possibly associated with power savings. For the same voltage, the rx580 bios pulls around 3-5 fewer watts at load (although this isn't consistent) - this might make it less stable. I tried the original conversion of the rx480 to 580 bios from post#2, but found the same issue.

To test if this was bios related, I decided to try and convert my rx 480 bios into a rx580 bios using your guide from post#3, in case there was some kind of difference. Basically, I'm finding the same pattern. But something interesting popped up. When I went into wattman and switched to manual voltage, it set my IMC voltage to 850 mv instead of 1000 mv!! Why would it be doing this?

Also, what does the UEFI portion of the BIOS contain? I notice you have 3 different versions available - what are the differences between them? Can I run the "converted" rx 580 bios without adding the "magic" UEFI?


----------



## SSBrain

Cheffy said:


> Hmm I think I misinterpreted this. Did you create that graph based on just changing the final P-state frequency or are those values are based on auto-voltages set for all p-states?


Sorry, I was very unclear.

I indeed created the graph just changing the final P-state frequency under load. The voltage (VDDC) as monitored with GPU-Z varies automatically depending on the set frequency. I tried again just to make sure: it still works as previously described.

I assumed this was a vBIOS-level feature related to the card's internal p-state and voltage management, hence the comparison.



> For some reason I was thinking that you were just changing the final P-state and it was adjusting the voltage as it deemed necessary


Yes, that's what it's doing.



> I find that if I set voltage to auto it doesn't matter what core clock frequency I put in the final P-state, it always applies maximum voltage (i.e. 1175 mv for rx480, 1200 for rx580 bios). Would be nice if it could adjust voltage for stability based on manually entered clock frequencies.


What if you try setting a low core clock, like for example 1000 MHz? Will it still apply 1175/1200 mV?


----------



## Cheffy

@SSBrain

Well colour me surprised - it works! But only between certain steps - I had to lower the frequency below certain thresholds in order for it to shift voltage. But it does lower/raise voltage based on clock frequency automatically, adjusted I supposed for the maximum set value (in my case, I set vmax at 1150 mv). It's definitely over-cautious in the application of voltage.


----------



## hellm

no, that shouldn't be the case.. it is the voltage for the 1000MHz step. Unless the did something to the driver, something went wrong.. 
..nope, BIOS giga480-580 8G looks fine.

You used what BIOS file exactly?
Did you have a lot of memory errors?
Can you post the original BIOS of your card?

i never experienced any difference in overclocking between 480 and 580, also if i used post#2 original conversion, which are made as seen in post#3.. with a reference card.


----------



## Cheffy

hellm said:


> no, that shouldn't be the case.. it is the voltage for the 1000MHz step. Unless the did something to the driver, something went wrong..
> ..nope, BIOS giga480-580 8G looks fine.
> 
> You used what BIOS file exactly?
> Did you have a lot of memory errors?
> Can you post the original BIOS of your card?
> 
> i never experienced any difference in overclocking between 480 and 580, also if i used post#2 original conversion, which are made as seen in post#3.. with a reference card.



I used my original gigabyte rx480 bios that I extracted using atiflash. That would the second version of the rx480 rom I believe, updated last in October 2016.
I didn't really test it. I opened up wattman, and after turning on voltage to manual it appeared as 850 mv. I manually changed it to 1000 mV before running anything.
I've attached the original bios and the one I converted.


----------



## hellm

VOI Table is the same, as i expected. Therefeore VRM works the same, same voltage, given the driver doesn't change LLC, OC should definitely be the same. At least for the original conversions.

Now what you did to the ASIC_Profiling changed also something else.
You changed 
8A 00 F1 FF FF FF xx xx (480)
to
8A 00 EB FF FF FF xx xx (580)
and therefore made a hybrid ASIC_Profiling Table. The 480 and 580 versions are different, and the 580 version has to fit with the altered voltages in the newer 580 tables. (this should only affect power efficiency, not max voltage.)
If you change only the ASIC_profiling to a 580, or in your case just a single byte, something might not work as it should.

Also my fault, sorry. I meant only to change the mV values, not the bytes to search for. Fixed now in OP.


----------



## Cheffy

Thanks @hellm for clearing that up.  Since I was converting to a 580 bios, I thought I needed to change that value - that was a poor assumption on my behalf. 

So for the original conversions from post two, is it fair to say that these are essentially 480 bios with changes to bring in 580 features but keep many of the original bios features? What exactly does the "magic" UEFI contain that differs from the original?


----------



## hellm

everything u see in post#3 is all that u need to know to convert a 480 to a 580 BIOS. The updated table versions doesn't matter in any way, they do the same thing for the driver, after all.

So, i took the original BIOS, added the magic UEFI, raised Vcore and changed clockrate to 1340, changed power limits and the cosmetic stuff. Latest versions also have the 1000MHz step, for which the PowerPlay table needs some changes, and the lowered idle voltage which is right next to the max Vcore. Fan table wasn't of any concern, since it was the original BIOS.

For the real 580 conversions i took a BIOS from a 580 card with an IR controller. I changed VOI table for the VRM stuff, changed PowerPlay table for compability, erased original vendor things, changed fan table, cosmetic stuff,.. and everything that is found in the list in OP. I don't have data on the output ports, so the extra ports might not work properly if they are any different.

Right, the "magic" isn't common knowledge, i should also add some info to post#3 someday.. 
the magic relies in booting in UEFI mode with a modded BIOS. And not just modded, it can be modded all over again and no new checksum or hack or anything is a problem. System will still boot in UEFI mode. Where the magic stops is with the "secure boot" option, because u can stop the UEFI part checking for modded BIOS, but the signature check for the UEFI part will fail then. Can't do.


----------



## Cheffy

That's really impressive @hellm - you're an indispensable asset to this community! Thank you for breaking the info down a bit further, helps me understand it better.

So - in your opinion - is there a good reason to go with the "real" bios over the "original" conversion bios? Or is it probably better to stick with the original conversion since it is more similar to the original bios, especially since you added the 1000 Mhz memory state?


----------



## hellm

Thx, but that wasn't just me. The rest of my team (R.B.R.T), which is mainly Vento041, also had their part in it. The magic in the UEFI part was done by lordkag, i only applied it to the newer versions. And, of course, there is always gupsterg.

For your question, i used both conversions for my reference 480 and i discovered slightly more memory stability, at least less errors. While there were very few errors with the converted 480 version, there were zero errors at the same clockrate with the 580 versions. Since Asus made an update on their 480 cards, and this BIOS build number was even higher than many 580 BIOS i have seen, i believe the 580 tables versions are only updates for the 480 ones.
But i never noticed any difference between the two, even without the 1000MHz step. There are differences, and i rather used the newest build# with the updated data and command tables. For max efficiency, card is a real 580, i did prefer that. The only thing left are the extra output ports, if you don't need them you can safely use the real 580 version. The rest of the BIOS is fully adapted to each specific card. But the driver has no problem with the 480 data/command tables, as i said.


----------



## tecno789

I am trying the last bios for sapphire nitro 4g Samsung.. Are there main issues?


----------



## Cheffy

That's exactly the info I was looking for! My gratitude also extends then to your team at large, including @Vento041, @gupsterg, and @Lordkag for their invaluable contributions. I just think this is a really cool and fun project.

I might try my hand at custom ram timings at some point (I've seen materials from @Vento041 and @generaleramon), but I'm not sure I can improve upon the uber series for my needs. I've tried out many different timings (uber or otherwise), and found the best for me are uber 3.1 @2050 Mhz, Uber 3.2 at 2100 Mhz, and uber light at 2075 - these all provide similar performance at these clock speeds (~230-233 GB/s). Any higher memory overclocks for each lead to artifacts, errors, and/or crashes, which suggests to me that my vram is probably limited to this as a maximum usable bandwidth. Uber 3.1 is the best performer, but the least stable - sometimes it seems fine at 2050, other times it seems to throw errors. I think the uber light timing (an older uber extreme timing strap I found in this old quote) is the best mix of stability and performance for me so far.

Unfortunately, using the 580 bios doesn't seem to reduce memory errors for me - if anything, it _may_ be more sensitive to errors when switching between programs while they are running a 3D load (e.g. alt-tabbing out of a game and back in). Considering the card also requires more voltage for stability at the same core speed, perhaps there is something about the gigabyte bios or cards that work better with the 480 driver? Still, I like the better idle efficiency of the 580 bios and convenience of not having to patch the drivers after modifying the bios. Plus there is coolness factor of being able to have a newer card. :specool:


----------



## hellm

lordkag is from win-raid forum.
https://www.win-raid.com/t892f16-AMD-and-Nvidia-GOP-update-No-requests-DIY.html

The UberMix 3.1 are great timings. My reference card never showed any errors at 2000MHz with them. It also felt much smoother, i think it also has a nice effect on frame times. The UberMix 3.1 were totally stable for me, i think some timings even fulfill some GDDR standard thing.. they are really awesome work. One reason it was absolutely stable might be my water cooling, though. If i clocked the mem at 2025MHz there were already some errors, so i never had the idea of adjusting timings myself. The performance and stability are confirmed from my side here, with good cooling.

Better timings on Polaris? Highly recommended.



tecno789 said:


> I am trying the last bios for sapphire nitro 4g Samsung.. Are there main issues?


Somebody would have complaint so far, i believe. It doesn't kill your card, that is for sure.
So, only known issues refer to the extra output ports.


----------



## tecno789

hellm said:


> l
> 
> Somebody would have complaint so far, i believe. It doesn't kill your card, that is for sure.
> So, only known issues refer to the extra output ports.


OK, thank you, I am trying it and I think it is good, for sure better than the previous release 1.008


----------



## MixedC

tecno789 said:


> OK, thank you, I am trying it and I think it is good, for sure better than the previous release 1.008


I had to flash 580 bios onto my 480, while I was in a desperete search to fix stupid voltage spikes up to 1.37v all the time, and if anything 580 bios at least for me is more stable and I get less spikes.
It has been about half a year now? More? I am all fine and I am using the ones from 1st post. 

The damage was done to my GPU till I notice the spiking and I lost huge overclocking headroom. It was stable at 1380 mhz @ 1075mv (ish, dont remember anymore). Kept crashing after 2-3 weeks of use and I kept downgrading. Since I have switched to the 580 bios, It is staying at the point where i flashed it. 1350 mhz 1125mv...

so if anything, they have done good for me.


----------



## Cheffy

At this point I'm using your "real" 580 bios by default. Although I can set my core voltage a little lower using the rx480 bios before crashing, I suspect it just allows for more instability and errors, while the 580 bios somehow has a lower tolerance for these things. Power consumption at load is about the same when differences in voltages are considered, but things almost seem "smoother" overall using the 580 bios. Might be in my head but I like it



hellm said:


> The UberMix 3.1 are great timings. My reference card never showed any errors at 2000MHz with them. It also felt much smoother, i think it also has a nice effect on frame times. The UberMix 3.1 were totally stable for me, i think some timings even fulfill some GDDR standard thing.. they are really awesome work. One reason it was absolutely stable might be my water cooling, though. If i clocked the mem at 2025MHz there were already some errors, so i never had the idea of adjusting timings myself. The performance and stability are confirmed from my side here, with good cooling.


_They really are good. With further investigation, anything above 2020 Mhz using uber 3.1 gives me errors, regardless of my core or IMC voltage (IMC voltage seems to do nothing to stabilise things for me). For reference, I could clock to 2115 Mhz using both stock and 1750 strap timings before I saw errors. But I get better bandwidth off 2020 Mhz using uber 3.1 (228 GB/s) than 1750 timings at 2115 Mhz (219 GB/s) according to OCLmembench. It looks to me like the errors begin once I hit either 2125 Mhz or 230 GB/s bandwidth, whichever I hit first. Artifacts/instability begin around the same points, maybe a little higher clock speed for stock timings. I suspect a number of people are using the uber3.1 timings with high OC memory clock speeds have more instability than they realise._

*EDIT* - OK, I'm wrong - the uber 3.1 timings are just too unstable for me to use. It was behaving all nicely pulling great benchmarks and gaming well, when suddenly Firestrike began to show artifacts and crash at previously totally stable voltages and core clocks, even at stock ram clocks (2000 Mhz). Eventually wouldn't even load the tests. Swapped back to a bios with 1750 timings for the 2000 strap, still had problems. I used DDU to remove the drivers and reinstalled them. 1750 timings work fine. Swapped back to the uber 3.1 bios, firestrike would run but began showing instability and artifacts again. Somehow my driver became corrupted, possibly related to the use of those timings. Either way, it seems that uber 3.1 is out for me. I might try some of the more relaxed uber timings and see what happens, but at this point the performance gains over the 1750 timing (+1.2% FPS) don't seem worth the headaches of intermittent problems!!


----------



## hellm

Sorry to hear. As i said, i never had a problem with them. With water cooling my mem chips might never exceeded 50°C on my card. For the mem controller, with heavy OC i had 53°C GPU Core at max.

Another thing you have to take in account, with the UberMix 3.2 your GPU gets more utilized, as well as the mem controller on the GPU. This also means the temperature will rise, another reason why previous overclock might not be stable anymore.


----------



## Cheffy

hellm said:


> Sorry to hear. As i said, i never had a problem with them. With water cooling my mem chips might never exceeded 50°C on my card. For the mem controller, with heavy OC i had 53°C GPU Core at max.
> 
> Another thing you have to take in account, with the UberMix 3.2 your GPU gets more utilized, as well as the mem controller on the GPU. This also means the temperature will rise, another reason why previous overclock might not be stable anymore.


True. However, now it seems even using the 1750 timings makes it less stable. I am getting errors and artifacts on ROTTR with the core set to 1375 MHz and 1150 mv with the memory at 2000 Mhz and 1750 timings. Previously, this wasn't an issue!

I'm concerned that I'm losing overclocking capacity due to damaging the memory by using more aggressive timings and OC, although this seems unlikely. I've been OCing the core for over a year without issue, gaming intermittently, but I've mostly left the memory alone in the past. Over the past few weeks I've been playing with memory using higher clocks (up to 2150 Mhz) and then various timings. Initially things seemed stable, especially for 1750 timings, but previous memory timings and clocks that seemed to work fine are now artifacting and crashing like crazy. At first uber3.1 seemed rock solid at 2075 Mhz, then 2050, and eventually became unusable at 2000 Mhz. So I swapped back to 1750 timings. Now even that won't take an OC of 2100 Mhz (previously good at 1140 mV) without increasing core voltage to >1150 mV, and even at 2000 Mhz won't run without issue using previously acceptable core voltages.

My temperatures seem fine - they range between 64-72°C on the core and max temps I've seen on VRMs are 82°C, usually around 72-78°C. I've also used an infrared temperature probe to measure around the card while at load - surface temps range from 30-68°C, about 50-60°C on the hottest spots on the backplate. 

Other than a couple of test runs at 1415 Mhz @1212 mv, I haven't raised voltage beyond 1200 mv, and usually run 1100-1150 mV, below stock. I have raised the max power draw, but typically max draw for power spikes is only around 175 watts, average 135-150 W. Highest peak I've seen it around 205 W, which is odd because I had the PL at zero and the max power draw set to 180 in the bios. 

Is it realistic that my memory degraded? Could it be that one chip had a latent problem that never showed up until I pushed it harder? Or were these memory timing upgrade/OCs never as stable as I thought? I know the latter is more likely, but it really seems like stability has degraded. I'm worried that by pushing more core voltage using 1750 timings will only worsen things.


----------



## tecno789

@hellm I notice that when the pc boots up previous to load windows the fans run very quickly, then when o.s is loaded all back to normal. Is it normal? I have the bios from 480-580 Samsung 4gb


----------



## hellm

Previous releases had a problem with memory errors, because of the 1000MHz step. Never occured to me or that i know of since then.

I believe, can't say for sure, with some leftovers from the intel igpu driver, i had a lot of errors. i fixed that with DDU, had to chage to remove intel stuff.

Degradation, no, shouldn't happen. Even with heavy oc definitely not. You would have to overvolt your mem controller with a hardmod. Since i already checked your original BIOS, your VRM works as before.

VRM temp shouldn't be a problem, at least not for stable timings. of course, if one of the chips tends to get hotter.. the only thing you could try is more vcore and more rpm on the fan.
Someone told me about the second voltage in wattman was only 850mV, it might be driver? I can't check for anything anymore, since i sold my ref 480.

Did you notice some high spikes above max voltage? Also could be a problem with PSU. You would be the first to damage your Polaris card with timings..



tecno789 said:


> @hellm I notice that when the pc boots up previous to load windows the fans run very quickly, then when o.s is loaded all back to normal. Is it normal? I have the bios from 480-580 Samsung 4gb


I copied the fan table from the RX480 Nitro+ with 8GB. Maybe there was some difference to the 4GB version. If it is annoying or something maybe we find the source. Other than that, nothing to worry about.


----------



## Cheffy

hellm said:


> Previous releases had a problem with memory errors, because of the 1000MHz step. Never occured to me or that i know of since then.
> 
> I believe, can't say for sure, with some leftovers from the intel igpu driver, i had a lot of errors. i fixed that with DDU, had to chage to remove intel stuff.


That's interesting - I wonder if I should do the same? I want to keep my IGP drivers in place though, as I run a second monitor from my motherboard when not gaming off it.



hellm said:


> Degradation, no, shouldn't happen. Even with heavy oc definitely not. You would have to overvolt your mem controller with a hardmod. Since i already checked your original BIOS, your VRM works as before.
> 
> VRM temp shouldn't be a problem, at least not for stable timings. of course, if one of the chips tends to get hotter.. the only thing you could try is more vcore and more rpm on the fan.


That's a relief to hear. Yeah, everything I've read suggests the only time OCing might cause degradation is when you're applying elevated voltages for prolonged periods, or pulling excessive current (usually one and the same). Was just worried that if a ram chip was already weak from the factory, it might not last long under OC even if voltage/power use hasn't changed much. More aggressive timings and OC on the ram only pulled maybe another 3-4 Watts of power over stock, so not exactly a lot of extra heat to deal with.

Higher Vcore does help stabilise things at 1750 timings. 1375 Mhz core and memory 2000 Mhz @1750 timings memory was artifacting with 1150 mv on ROTTR, popped a couple of memory errors (but was absolutely fine with witcher 3, heaven, and firestrike). With vcore at 1200 mv, ROTTR seemed fine - I'm running Vsync, so average power consumption is actually pretty low (about 120-130 W). However, HWinfo said the highest voltage and power draw were 1220 mV and 205 Watts at 172 amps, which was odd since my Max power limit was capped at 180 watts with PL set to zero!

Part of this issue is that I'm using DX12 with ROTTR, which performs much better than DX11 but seems very intolerant of OCing. It also always crashes after a couple of minutes when I try and set anything in wattman - I need to run automatic voltages/values for it. So I was setting my default clock to 1375 and reducing my vcore to try and maximise performance and power consumption. But since vsync seems to keep power down, maybe it just makes more sense to set a low default clock and higher vcore and just let it do what it wants.



hellm said:


> Someone told me about the second voltage in wattman was only 850mV, it might be driver? I can't check for anything anymore, since i sold my ref 480.
> 
> Did you notice some high spikes above max voltage? Also could be a problem with PSU. You would be the first to damage your Polaris card with timings..


I seem to remember seeing 850 mv for the second state - if I opened up watt tool, it gave memory P0 300 Mhz and P1 1000 Mhz @850 mv I think (obviously missing P2 for 2000 Mhz). I'm currently on my original the rx 480 bios again so can't check yet, wanted to try my original bios to see if the same issues happened, seems it makes no difference.

I'm keeping an eye out for high voltage spikes - the highest I've seen (according to HWinfo) was the one I mentioned above, so maybe 25 mV above set vCore (1225 mv). Usually Vcore ranges only ~6-12 mv for me, and vdroop increases with voltage (about -24 mV around 1100 mV, and -30 mV around 1200 mV under heavy loads). My PSU is a coolermaster G650M - not top of the line, but a good solid bronze PSU. It's only just over a year old. During my last test the input voltage to the VRM peaked at 12.188 V, output peaked at 1098 mv, same as my core voltage.

Going to do some more testing...


----------



## hellm

I had my problems with ROTTR, too. Graphics issues that could be identified as memory errors at the end of the game. I was really upset, cause i thought i didn't clocked everything to the edge. Then i found out it was just a bug.. and yes, DX12. ;-)
I also found out it is very sensitive to oc. And buggy.



> P1 1000 Mhz @850


then forget what i said, everything's as it should be.

Try and use also a different monitoring software like GPU-Z, to be sure. And, see that the update frequeny for the sensors is very low. MixedC is our spike-expert, info on this is also burried in the thread. I should make some index in OP to infos in the thread, but i wait till they repaired this forum here.


----------



## whitrzac

Could someone mod this for me?
It's a reference 480 4gb, but HP branded.


----------



## tecno789

hellm said:


> Previous releases had a problem with memory errors, because of the 1000MHz step. Never occured to me or that i know of since then.
> 
> I believe, can't say for sure, with some leftovers from the intel igpu driver, i had a lot of errors. i fixed that with DDU, had to chage to remove intel stuff.
> 
> Degradation, no, shouldn't happen. Even with heavy oc definitely not. You would have to overvolt your mem controller with a hardmod. Since i already checked your original BIOS, your VRM works as before.
> 
> VRM temp shouldn't be a problem, at least not for stable timings. of course, if one of the chips tends to get hotter.. the only thing you could try is more vcore and more rpm on the fan.
> Someone told me about the second voltage in wattman was only 850mV, it might be driver? I can't check for anything anymore, since i sold my ref 480.
> 
> Did you notice some high spikes above max voltage? Also could be a problem with PSU. You would be the first to damage your Polaris card with timings..
> 
> 
> I copied the fan table from the RX480 Nitro+ with 8GB. Maybe there was some difference to the 4GB version. If it is annoying or something maybe we find the source. Other than that, nothing to worry about.


It's not a problem, just boring to hear maximum fans when the system boots..

However I'm congrats to you, this last bios is so much better than previous! Good work


----------



## hellm

whitrzac said:


> Could someone mod this for me?
> It's a reference 480 4gb, but HP branded.


Seems to be just a normal reference BIOS with different fan table and 4GiB memory. Try the BIOS i attached.



tecno789 said:


> It's not a problem, just boring to hear maximum fans when the system boots..
> 
> However I'm congrats to you, this last bios is so much better than previous! Good work


2 possible reasons.. some changes because of UEFI or even mainboard UEFI or something.. or the fan table in the BIOS. It is a sub-table of the PowerPlay table, and that is all information on the fan found in the BIOS. See post#3 for more info on the fan table. Those spinup things could be the "d.d.d.d..." part.. or bytes we also don't know yet.


----------



## Cheffy

hellm said:


> I had my problems with ROTTR, too. Graphics issues that could be identified as memory errors at the end of the game. I was really upset, cause i thought i didn't clocked everything to the edge. Then i found out it was just a bug.. and yes, DX12. ;-)
> I also found out it is very sensitive to oc. And buggy.


Tell me about it - basically, certain points in the game produce black line/box artifacting unless I really reduce my core clocks or increase my voltage, despite those values working perfectly for everything else. Which suggests that "stability" of overclocks really is a sliding scale based on how well optimised games are. In this case, it's worth the hassle for DX12 because my performance is WAY better - minimal frame rates are 20-30% lower using DX11, causing noticeable stuttering in places when using Vsync with most settings at ultra high or high. With DX12, I get flawless performance, rarely having dips below 60, even at the stock core clock (1290 Mhz). And thanks to frame capping by vsync, power use is only 120-130 FPS, even at vcore of 1200 mv! It's just those rogue peaks up to 200 W that freak me out a little.



hellm said:


> Try and use also a different monitoring software like GPU-Z, to be sure. And, see that the update frequeny for the sensors is very low. MixedC is our spike-expert, info on this is also burried in the thread. I should make some index in OP to infos in the thread, but i wait till they repaired this forum here.


Yeah I'm only polling every 1000 ms, I might try going to 100 ms for more detailed info.

So after some exhaustive testing, back at stock timing settings using my original bios,everything is fine and voltages work for core clocks as previously established and OC up to 2100 Mhz on memory is stable (although I did need to apply more voltage for 1425 Mhz than I did in the past). I think my ram just isn't very good for OCing - whether it be using higher clocks or tighter timings.

I switched back to uber 3.1 to test and compare. I've run a lot of tests now, but I need to apply higher voltage at the same core clock (and memory) frequency (+12.5 mV vs. stock timings) for it to be stable for regular for use. Which makes sense - it's doing more work, so it likely requires more power/voltage. Overall, this increases power consumption by about 5-6 watts.

There no question how effective it is - across core clocks speeds from 1265-1415 Mhz, ubermix 3.1 timings increased performance by an average of +2.6% higher, equivalent to increasing my core clock by 43 Mhz. Comparatively, a similar increase in core clock speed requires more voltage, and therefore power (14-22 W) - minimum required voltage with clock speed and power use increases exponentially with clock speeds. Using those timings is undoubtedly one of the best ways to improve performance with minimal increase in power consumption.

Going to test a little more to ensure stability, then switch back to the 580 bios I think. That will probably up my voltage by another 6.25 mV, but this should be offset by overall improvements to efficiency I hope.

Do you know of any timings that are better than 1750 for use in the 2000 strap but less tight/more stable than ubermix timings? I've searched all over and most are for miners and often customised for their cards and use at lower core clocks and voltages.


----------



## tecno789

hellm said:


> 2 possible reasons.. some changes because of UEFI or even mainboard UEFI or something.. or the fan table in the BIOS. It is a sub-table of the PowerPlay table, and that is all information on the fan found in the BIOS. See post#3 for more info on the fan table. Those spinup things could be the "d.d.d.d..." part.. or bytes we also don't know yet.


Thank you for your reply, I don't think I put hands on your bios or I could brick the vga 
I keep your version no problem


----------



## HaoSs

^i also seen this problem, ( rx480 8gb nitro ) it started i think after some windows update... but i also edited the bios temps and RPM for a more aggressive curve. so it may also be from there


----------



## hellm

Cheffy said:


> Do you know of any timings that are better than 1750 for use in the 2000 strap but less tight/more stable than ubermix timings? I've searched all over and most are for miners and often customised for their cards and use at lower core clocks and voltages.


No, i don't. Maybe u can take the 3.1 timings and loosen some of the sub-timings. Try to read what the generaleramon wrote (or ask him) about GDDR5 standard, because i think that is why the 2.3 version can produce errors. Or try to make some 2.4 timings out of it, also a good approach. The link for the timing editor from Vento041 is found in OP.

*@all*
found a new byte in the fan table, that might be interessting. i don't know what it does, or if it does anything:

found in the hp BIOS for their OEM 4GB reference RX480, the "0A" byte is "00" in any other 480/580 fan table i have seen. Might be just some OEM marking, but maybe worth finding out:
01 17 00 00 02 *0A* 27 00 00 09 03 A0 0F 64 19 34 21 D0 07 A0 0F 70 17 94 2A 01 64 00 E4 12 F6 09 C0 D4 01 00 54 1E 64 00 64 00 64 00 64 00 64 00 64 00 64 00 00 00 43 00 00

other differences to the ref table from post#3:
max RPM -> 27
target RPM -> F6 09
acoustic limit -> C0 D4 01
target temp -> 54
idle PWM -> 1E
zero fan stop temp -> 00
zero fan start temp -> 43


----------



## HaoSs

is there a way to get the vcore other than 1125 or 1150 ? like 1135 or 1140 ? ( directly in bios )


----------



## hellm

sure. try the Vcore offset in 6.25mV steps. All still in OP, but i won't change anything till they repaired this forum and i have my spoilers back and everything.
Search for "8D 00 00 00 FF" and u will find the offset bytes. At least for the real 580 versions, i think i didn't implemented them in all of the originals, only the ref, wait the nitro+ BIOS has those bytes anyway..


----------



## Cheffy

@hellm

Ok - so I once again tried using the rx580 bios from post 1, the 480-580 bios from post 2, and the do-it-yourself bios from page 3. In all cases, I require 12.5+ mV more voltage to achieve the same stability as with the rx480 bios, and cannot clock as high (Max benchmarks at 1400 Mhz vs 1425 Mhz) with uber or stock timings. Most people don't seem to experience this: a couple of others have noted decreased stability, but most found similar or possibly even improved stability and OC potential. Since the only significant difference from these and the rx480 bios is in the UEFI, if this is BIOS related it must be from something in there. Otherwise, it's driver related. 

Any thoughts on why this might differ for me on my gigabyte G1 rx480? I tried doing another I2C dump using VRMtool, but gave up after it was still working on it 3 hours later. Afterburner will also no give results for the I2C dump.


----------



## hellm

I don't. I would assume a different LLC by the driver, but that would be a long shot. I didn't notice that, and as u said there were even people who experienced an improvement.

You can exclude the UEFI if you try version 1.60 from post#3, since this was the version found on early RX480 releases. Should be the version of your original BIOS.

I don't think gigabyte prevented i2c access somehow. What happens if you push that "read i2c device" button on the vrmtool? And what is in the window on the right before, what adapters where found?


----------



## Cheffy

hellm said:


> I don't. I would assume a different LLC by the driver, but that would be a long shot. I didn't notice that, and as u said there were even people who experienced an improvement.
> 
> You can exclude the UEFI if you try version 1.60 from post#3, since this was the version found on early RX480 releases. Should be the version of your original BIOS.


 @hellm Sorry I'm a little confused by this. If I use GOP v1.60 (i.e. write over the GOP in my BIOS with it), am I not still adding the UEFI? Does this version didn't include the UEFI? 

Is there any way not to copy that part in? What would happen if I just made the changes without copying the GOP into the BIOS? I assume it wouldn't work?




hellm said:


> I don't think gigabyte prevented i2c access somehow. What happens if you push that "read i2c device" button on the vrmtool? And what is in the window on the right before, what adapters where found?


In window before:

Adapter 00: Radeon (TM) RX 480 Graphics
Line 01 Address 08: IR3567B I2C interface detected
Line 01 Address 48: unknown I2C device present
Line 01 Address 70: IR3567B PMBus interface detected
Line 04 Address 08: IR3567B I2C interface detected


Adapter 10: Intel(R) HD Graphics 630

In window after pressing "Read I2C device":

Dumping 00 04 08

Here's a picture of what I see after pressing "read I2C device- I realise now that it's not showing much info, it doesn't seem to be being read properly by vrmtool.


----------



## hellm

Again, the UEFI/GOP are all the same, the hacked version only differs in a few bytes. The reason it looks very different is because it is packed in the BIOS.

If you mod the BIOS and don't use the hacked UEFI/GOP you won't be able to boot in pure UEFI mode, CSM has to be activated in your mainboard UEFI.

You can also deactivate the UEFI in the BIOS. Search for the string "AMD ATOMBIOS" in the beginning of the BIOS file, third byte before that string has to be changed from 00 to 80. The string should look like "€..AMD ATOMBIOS" afterwards.


----------



## Cheffy

Thanks. Yeah the coding is confusing for people like myself unaccustomed to working with a BIOS - the magic UEFI/GOP sure looks different as you noted! I'll give the 1.60 version a try if I have time and see if that works better.


----------



## hellm

i don't think there is any info about your problem stored in the UEFI/GOP, but to be sure.. If you switch your original BIOS and this happens, it should be some driver thing.


----------



## hellm

Updates for the devil and the strix. Newer build# and finally 15.50.2.1. for both cards.


----------



## hellm

hellm said:


> No, i don't. Maybe u can take the 3.1 timings and loosen some of the sub-timings. Try to read what the generaleramon wrote (or ask him) about GDDR5 standard, because i think that is why the 2.3 version can produce errors. Or try to make some 2.4 timings out of it, also a good approach. The link for the timing editor from Vento041 is found in OP.
> 
> *@all*
> found a new byte in the fan table, that might be interessting. i don't know what it does, or if it does anything:
> 
> found in the hp BIOS for their OEM 4GB reference RX480, the "0A" byte is "00" in any other 480/580 fan table i have seen. Might be just some OEM marking, but maybe worth finding out:
> 01 17 00 00 02 *0A* 27 00 00 09 03 A0 0F 64 19 34 21 D0 07 A0 0F 70 17 94 2A 01 64 00 E4 12 F6 09 C0 D4 01 00 54 1E 64 00 64 00 64 00 64 00 64 00 64 00 64 00 00 00 43 00 00
> 
> other differences to the ref table from post#3:
> max RPM -> 27
> target RPM -> F6 09
> acoustic limit -> C0 D4 01
> target temp -> 54
> idle PWM -> 1E
> zero fan stop temp -> 00
> zero fan start temp -> 43


this is part of the thermal control table. found this:
typedef struct _ATOM_PPLIB_THERMALCONTROLLER

{
UCHAR ucType; // one of ATOM_PP_THERMALCONTROLLER_*
UCHAR ucI2cLine; // as interpreted by DAL I2C
UCHAR ucI2cAddress;
UCHAR ucFanParameters; // Fan Control Parameters.
UCHAR ucFanMinRPM; // Fan Minimum RPM (hundreds) -- for display purposes only.
UCHAR ucFanMaxRPM; // Fan Maximum RPM (hundreds) -- for display purposes only.
UCHAR ucReserved; // ----
UCHAR ucFlags; // to be defined
} ATOM_PPLIB_THERMALCONTROLLER;

0A -> ucFanMinRPM


----------



## Cheffy

@hellm

Nice work with adding info and instructions on the first post. One thing I noticed though - your listed timings all have a space in the middle of them. That could throw some people off who copy and paste it.


----------



## hellm

THX :thumb:

this was because of some stupid error in this new forum here (beginning to hate it..). There is actually no space between those numbers.. need to leave some info for the users..


----------



## seikon23

So i used the msi G X 8gb bios from first post , and i am getting a high power usage , if i am to belive msi afterburner and hwinfo 64 , don't know if it's true or not , using original rx480 bios from msi is like 170w ish @ 1420mhz gpu core , with moded rx580 one it's over 230w .


----------



## hellm

Yes, if u switch a 480 BIOS by editing the D6 byte, you get 10%-15% higher power draw readings. The real 580 conversion from post#1 compared to the original 480 from post#2 show no difference in these readings on a reference card.
Howsoever, this only affects the readings, not how the VRM does his job, i made sure of that. If you use a DMM on the 6pin you should get the same readings as before, also if measured at the wall.

This is because on an AMD card power readings are more calculated than measured. i let buildzoid explain this part:




..and the MSI had redicoulous high readings before, i believe..?


----------



## MixedC

seikon23 said:


> So i used the msi G X 8gb bios from first post , and i am getting a high power usage , if i am to belive msi afterburner and hwinfo 64 , don't know if it's true or not , using original rx480 bios from msi is like 170w ish @ 1420mhz gpu core , with moded rx580 one it's over 230w .


We have already talked about this when I come up with that, and apperantly it is even a little more weirder with MSI, but no worries I have been using 1st Post RX580 bios on a MSI RX480 Gaming (not even X) for almost a year now.

if you look through pages and my posts, you can also find a version with Ubermix timings I have posted, I am using that one. it has older UEFI version but I didnt bother to reflash because it works.
We also talked about voltage spikes I had on my card, asked for some more info from other MSI users etc. I was really concerned. It was mainly why I switched over to 580 bios.

For example I could reach that clocks you got and then after a driver update(? something changed), my card started to go unstable and unstable each 20-30 days. I had to lower clocks 10mhz by 10mhz
till I said okay, this is not initial brake-in, something is off. Apperantly my card was shooting up to crazy volts according to GPU-z and HWinfo.

I have been using 580 bios and sinde that day stable clocks. 1360 mhz 1125mv sad isnt it? LOL.
so check for your card and use 580 if you see the same behaviour.


----------



## Lard

MixedC said:


> We also talked about voltage spikes I had on my card, asked for some more info from other MSI users etc. I was really concerned. It was mainly why I switched over to 580 bios.
> 
> For example I could reach that clocks you got and then after a driver update(? something changed), my card started to go unstable and unstable each 20-30 days. I had to lower clocks 10mhz by 10mhz
> till I said okay, this is not initial brake-in, something is off. Apperantly my card was shooting up to crazy volts according to GPU-z and HWinfo.
> 
> I have been using 580 bios and sinde that day stable clocks. 1360 mhz 1125mv sad isnt it? LOL.
> so check for your card and use 580 if you see the same behaviour.


You can try to edit your VDDCR limit in the VoltageObjectInfo table to lower the spikes. Without the limit my RX480 can spike over 1.5V, if I only apply 1.2V.
So I guess the card can only spike up to the limit. I didn't test this properly.


----------



## MixedC

Lard said:


> You can try to edit your VDDCR limit in the VoltageObjectInfo table to lower the spikes. Without the limit my RX480 can spike over 1.5V, if I only apply 1.2V.
> So I guess the card can only spike up to the limit. I didn't test this properly.


Mine used to spike up to 1.35-1.36v with rx480 bios and I lost some OC ability in 3-4 months of use. with 580 bios it doesnt occur that often but still goes up to 1.27,1.3v ish.
Thx for info I gonna try it.


----------



## hellm

You could change the offset register in the VOI table to Vmax, and wouldn't have to correct table length.



gupsterg said:


> 0x3D = VMAX (VDDCR Limit), half byte = loop, bits [7:4] output loop 1, [3:0] output loop 2, see page 22/23 of IR3565B PDF plus notes below,
> (FF = no limit as found in PT1/3 ROMs).
> 
> VMAX
> This register is per loop, half byte = loop, range 0-15, mark VMAX table on page 23 with range, thing to note is this table is not AMD/SVI2
> compliant AFAIK, 6h = 1.48125V 5h = 1.36875V 3h = 1.14375V (to test more settings).


Here is more from gupsterg:


gupsterg said:


> This mod I will not be documenting more than what I have done in above post.
> 
> Anyone who understands it can help you, that is their choice and this is mine.
> 
> The reason why is, it's card destroying ability with this mod.


so, very, very carefull with this..


----------



## seikon23

Mine doesnt have the voltage spike problem , acording to gpu z and hwinfo 64 at least , max voltage is 1,190v , and that's the voltage it runs 1440mhz on GPU core(it can hold 1490mhz stable for gaming using strixx to feed it 1.3v XD or 1530 for bench) , the gfx's card is cooled by a 240mm AIO never going over 40c , usualy 35c in games like RoTB.
The only reason i wan't tx rx580 bios is the dam bios check rx4XX have , becouse i use ubermix timings on mine :/


----------



## Cheffy

seikon23 said:


> Mine doesnt have the voltage spike problem , acording to gpu z and hwinfo 64 at least , max voltage is 1,190v , and that's the voltage it runs 1440mhz on GPU core(it can hold 1490mhz stable for gaming using strixx to feed it 1.3v XD or 1530 for bench) , the gfx's card is cooled by a 240mm AIO never going over 40c , usualy 35c in games like RoTB.
> The only reason i wan't tx rx580 bios is the dam bios check rx4XX have , becouse i use ubermix timings on mine :/


Just use the atikmdag patcher and keep your rx480 bios. That's what I'm doing. It's easy to use and you only need to do it when you update the driver.


----------



## hellm

For the Reference RX480, which had a fairly old build# an no updates, the new data/command tables were also noticeable and a nice update. I prefered the "real" 580 BIOS over my 480 conversion from post#2. But ultimatly the only reason we really need the 5 and the magic UEFI is for changing stuff. And of course, the UberMix timings were the first thing, Vcore and clockrates is another.. I would give intel the advice for a K-version and a mainboard-like UEFI menu if they really want to enter the graphics card market. The other two, like Nvidia and AMD, will never learn that lesson.. ;-)

And, on a day like this, keep in mind that there are thousands of Polaris cards out there, who were not that lucky:


----------



## Vento041

hellm said:


> You could change the offset register in the VOI table to Vmax, and wouldn't have to correct table length.
> <table img>


On my personal bios I use that trick as a "safe mesure". "44" so I'll limit each loop to 1.250  On polaris someone could even write "04" or "40" since one loop is not used (i do not remember which one tho).

P.s. hellm change your user title xD you are not "New to Overclock.net" ahaha


----------



## hellm

Vento041 said:


> On my personal bios I use that trick as a "safe mesure". "44" so I'll limit each loop to 1.250  On polaris someone could even write "04" or "40" since one loop is not used (i do not remember which one tho).
> 
> P.s. hellm change your user title xD you are not "New to Overclock.net" ahaha


So, "3D 00 44 00" are the bytes to add to the VOI table.
@MixedC
if you have trouble or need the 8D overset register, i can easily extend your table length, np.

..i will try to change that user title thing. i thought the flames were back for a sec..

update:
i used your title


----------



## MixedC

Where were this info all this time?
My gpu still overvolts up high with edited 580 bios but not as often so I'll try this when I feel confident enough that nothing will go while flashing it. (no backup bios, no UPS)

I am bad with editing bios' but I can handle finding and ediitng some bytes. 1.25v sounds really good.
and I dont know why these are allowed to go up as high as 1.4V underload, my product is MSI just to let everyone know.
@hellm
btw for more info, it overvolts as high as 1.3v with 580 bios when wattman resets OC settings and I dont notice.
Reason is still the same thing, the power limit that comes default with the bios at 1.2v makes it throttle, and as we have talked about it. 
It spikes switchign fast between power states.

Have you changed power limit on new builds? so I get a reason to flash the new one  because right now I just up the limit from wattman and too risky to edit and flash the same bios for something like this.

it lights up like fireworks when I leave it default. (1.2v 0% power limit). Clocks go up down up down, voltage goes up down spike up down 

You said it doesnt throtte on your referance but i think my card reads power usage higher for some reason and we know it is calculated so something in bios probably.


----------



## Vento041

hellm said:


> update:
> i used your title


Hehe we are even on the same team so it fits quite well 



MixedC said:


> Where were this info all this time? ...


Somewhere on previous gen GPU bios editing thread xD since the VRM controller is the same (or of the same family) the VRM related settings are carried over through GPU generations. 



MixedC said:


> ... I dont know why these are allowed to go up as high as 1.4V underload ...


Actually it's even worse, most of the time that register is set to "FF", unlimited. Very few cards have a factory limit AFAIK.

Btw you could test "40" (Loop 1 max 1.250, Loop 2 max 0.8). on Loop 2 you could write whatever you want, since is unused anyway, I wrote 0 since is more elegant (in my mind).


----------



## hellm

Vento041 said:


> Btw you could test "40" (Loop 1 max 1.250, Loop 2 max 0.8). on Loop 2 you could write whatever you want, since is unused anyway, I wrote 0 since is more elegant (in my mind).


concur..



MixedC said:


> Have you changed power limit on new builds? so I get a reason to flash the new one  because right now I just up the limit from wattman and too risky to edit and flash the same bios for something like this.


I left power limits the same. U can easily edit them with PBE before flashing.

Well, let's hope we can finally help your card. i present u the "No Spike Edition", i added "3D 00 40 00" to the VOI table:


----------



## MixedC

hellm said:


> concur..
> 
> 
> I left power limits the same. U can easily edit them with PBE before flashing.
> 
> Well, let's hope we can finally help your card. i present u the "No Spike Edition", i added "3D 00 40 00" to the VOI table:


I laughed hard and started coughing, I wasn't expecting "No Spike Edition" Lol.
Thank you guys.

MSI RX580 Hellm No Spike Edition it is.

You saved my gpu in the first place, otherwise what I would be running right now? 1150mv 1288mhz? LOL. Or maybe I was in endless loop of RMA and returns "working fine".
It was degrading so quick and I have put down the information somewhere in this thread when I had them fresh, you would remember it was going down like crazy 10mhz by 10 mhz.

edit:
I am editing right now, I checked what it thinks it draws and shows 227W so it matches 30% power limit. so I have no idea why and how other cards read 180W but we know it is all calculated so, something something.
gonna put 235W as limit.


----------



## MixedC

double post


----------



## MixedC

help heeelp cannot post and I cannot do bios chip trick because of backplate. I knew this was prone to happen some day.
is there any easy way? everything was as usual I edited saved and flashed and it verified so I dont know why it doesnt post.

Maybe the uefi thing I hope it is as easy as that.


----------



## MixedC

well something happened putting gpu back now my pc doesnt even turn on at all no life signs I am looking at mobo if I have brplem spöething but nothing lol worst day ever this is what it does whem there is a short circuit but there cannot be so I am confused right now shot me please.


----------



## hellm

atiflash sys this rom file is ok:


Spoiler



Image 1 -- Offset 0x0
=======================
ROM header contents:
Signature 0xAA55
PCIR offset 0x0248
PCI Data Structure
Signature  PCIR
Vendor ID 0x1002
Device ID 0x67DF
PCI Revision 0x00
Image size 0xE800
Code revision 0x0F32
Indicator 0x00 (Not last image)
Code type 0x00 (PCAT Image)
Legacy BIOS File Name RX580M8.V11
Legacy BIOS Part Number MS-V34113-F1
Legacy BIOS Build Number 400237
Legacy BIOS Change List 1472831
Binary BIOS_IDTF 0x3158056B
ByteCheckSum 0
Image 2 -- Offset 0xE800
=======================
ROM header contents:
Signature 0xAA55
PCIR offset 0x001C
PCI Data Structure
Signature PCIR
Vendor ID 0x1002
Device ID 0x67DF
PCI Revision 0x00
Image size 0xE600
Code revision 0x0000
Indicator 0x80 (last image)
Code type 0x03 (EFI Image)
EFI Signature 0x0EF1
Compression Type 0x0001 (compressed)
Machine type 0x8664 (X64)
Subsystem 0x000B (EFI boot service driver)
EFI image offset 0x0058 (abs: 0xE858)
Uefi Ids from EFI_PCI_EXPANSION_ROM_HEADER:
UefiSourceRevision GOP AMD REV: x.x.x.x.x
UefiSourceChangeList xxxx
UefiBiosBuildNumber xxxx

Dump Gop Driver Info:
Machine type code X64
The GOP Driver appears to be Authenticode signed.
Size Of Gop Image 97376 (95 KB)
GOP Driver Name: AMD GOP X64 Release Driver Rev.1.65.0.15.50.Sep 28 2017.15:11:11
GOP AMD_Build 1863
GOP AMD_CL 1464079
GOP BIOS_IDTF 0xDEADBEEF
GOP Driver does not carry tables!



OMG..

i did it. it was me. something happened as i copied the edited voi table.. 

OMG.. we have to resurrect your card. i am very sorry about that, i do believe we need the 1+8 trick. or not, but we have to boot your system somehow, u have another card? .. sorry..  i corrected the BIOS file now


----------



## MixedC

@hellm I am back and running, thankfully not my first rodeo.

Let me tell everything I had to deal with in process.
I removed GPU, boot with iGPU working.
I put GPU back, missed slot, but didnt do any harm, wait what? PC doesnt even show and life signs anymore(gpu not installed)
Motherboards do this when there is too much pressure on CPU or a short I know it.
Removed all usb stuff etc. still not working. I changed orientation of the case, well it is working again. It was a short somehere in the case indeed. I think my crappy case touched mobo.

and then, My RAM Sticks are pain in the ass. They refuse to work, I have to press on them with all the power I can give to my fingertips, seriously I am hurting everytime and still have 2 more sticks to go :/

how I did it,
I go into bios without GPU, set bios to "other os" (I think this didnt do the trick) and set bios to look for iGFX first (this did it).
Because when bios defualted back to PCI-E, it didnt boot again.
anyway then,
PC boot I was just in here looking for the new bios and it blackscreened.
so I restarted it, boot it up and I have ran atiflash as fast as possible and flashed back my old bios.


What you think is it possible to have any residual damage bcz of weird VOI table? You are the bios alchemist.

I still have to deal with 2 other RAM and put my case back together, my pc is so fragile :/ like if someone touches it, it gonna fall apart LOL.
I cannot find the courage in myself to flash the fixed one XD

Not having a backup bios + having a backplate sucks.


----------



## MixedC

Okay flashed new fixed one,
it boots and screen was low res and it wasnt recoginized (Video Device Vega Compatible) in Device Manager.

and I had to give it a loooong wait, nothing. Uninstalled it from Device Manager to trigger driver installation thing, and had to wait aaaaa loooooong time till it starts working.

if I didn't know this, I would have restarted or said it doesn't work, I really had to wait like close to 10 minutes.
I will be testing this new bios and reporting for next days.


----------



## MixedC

I keep doubleposting on this new forum.

anyway at leaswt I can put this post into use.
I am running ubermix 3.1 again for 1750 and 2000 strap and I have increased Max Power Limit in bios to 235W didnt touch anything else.

we still dont know why my GPU shows 235W @ 1.2v while yours read 180W or any other rx580 bios I opened up.


----------



## hellm

No, did the same mistake to my ref back then.. also didmn't have to do the 1+8pin. No damagae to my card.
And, the part for IR3567B programming was right, even the sub table length. somehow i did forgot or accidently undid the table length for the whole table, the first byte.

Was a stupid mistake by me because i didn't look twice. Or third. Please don't lose your confidence in my alchemy or BIOS flashing. The BIOS wasn't completely fraked up, so reflashing was possible. i know it gives something like a heart attack out of experience, so again, i am very sorry about that. The file is fixed for sure now, it should kill your spikes and cut them down to 1,25V.

To anyone else downloaded and flashed this BIOS, i'll try not to brick your cards anymore..


----------



## MixedC

I trust your work and if you read my posts you already can see I have flashed the new one, thx hellm and we know the risks and I didnt get any heartattacks.
That one doesn't happen to me anymore even though we know i never had change with RMA for GPUs and it is impossible to find new 580, I still didnt feel anything.
I think I have lost my soul in all these years and become cold blooded it feels bad 

I remember when I would go crazy into panic, old days :/

Even tho I knew I cannot replace it anytime soon, I was like "ah, it doesnt boot." and didn't feel anything. Did I lose my humanity? :'(
did caring enthisuast inside of me died? I didn't even donate to corsair for helping those poor GPUs, I become a horrible PC Enthisuast.

Jokes aside, if you look 1 post above you, you'll find out the next mystry I have for you.
Power draw LOL.

I'll put my PC together, carefully, that Ram Sticks ognna kill me but I have to... and be back.


----------



## Vento041

Small follow up to the Vmax mod. I tested it on my RX 480 and it seems to be not working :/ I did an I2C dump with VRMTools and the 3D register is still set at FF :/


----------



## MixedC

Vento041 said:


> Small follow up to the Vmax mod. I tested it on my RX 480 and it seems to be not working :/ I did an I2C dump with VRMTools and the 3D register is still set at FF :/


Tell me what do to, I'll check on mine.


----------



## Vento041

MixedC said:


> Tell me what do to, I'll check on mine.


Download this: http://www.overclock.net/forum/70-a...mple-tool-read-write-i2c-vrm-controllers.html

Run as admin

Click on "read i2c devices"

Take a screenshot or -> On the bottom right, 4th row from the top, 3rd column from the right you should read "40" if the patch is working.


----------



## MixedC

nope FF not working. @hellm should I go back to old one?


27 17 21 0f 16 19 a0 53 63 4e 11 66 66 44 ff ff
a2 22 88 10 22 ff 14 00 00 00 00 00 00 00 00 00
00 00 9e 78 14 2b ff 8d 00 24 a1 2c 38 9e 1e 2f
6b 0f cc 79 6f 05 05 1d 81 be 60 00 00 ff 00 00
a8 90 00 00 00 00 00 00 14 14 00 40 80 60 a0 ff
ff 00 40 88 34 88 44 12 02 02 88 00 20 20 00 63
4b 04 e3 60 91 9c 24 88 80 00 00 00 00 ff 06 ff
ff 20 00 00 00 00 00 00 00 00 00 00 15 15 00 00
00 00 00 00 00 00 00 00 88 88 01 c2 44 00 00 1f
00 05 43 80 68 01 b0 70 61 a8 60 00 00 48 24 1a
00 00 00 00 00 00 00 01 08 51 a0 77 8f 00 00 00
ff 00 00 00 00 05 23 cf 00 00 75 a0 38 16 00 00
00 00 00 7b 13 00 02 80 00 00 00 00 00 44 00 00
00 00 ad 50 0c 00 10 00 3f 00 00 00 23 c0 f0 00
00 00 00 10 01 03 01 88 00 00 00 00 00 00 00 00
00 00 00 00 00 33 00 00 00 00 00 00 00 00 00 00


again this whole voltage thing is so stupid. I miss old good days of tahiti era :/

update:
I am testing it anyway and I could get it jump to 1.312v sp yep not working.
I gonna revert back to what I used to use or I gonna go and grab an updated version from 1st post.
but first I'll wait for @hellm.


----------



## Vento041

Could try to test 44, 04, 4F or F4 value. Maybe.... This is pure speculation... There is some kind of value check and on unusd loops only F can be written. The value I wrote above cover all the possible interesting scenarios left to test.


----------



## MixedC

the value you wrote abouve? 44?

so if only "F" can replace an usused loop, why wouldn't 44 work anyway? 
and look like 4F or F4 when dumped.

looks like this is not going to work on Polaris sadly.

@Vento041

While I was reverting back, I decided to edit a bios from 1st post and add ubermix v3.1 to 1750 and 2000 strap (I was running only 2000 before) and also increase power limit to 235W so it doesnt throttle at 1.2v default.
so now I have updated UEFI version on the card.

While flashing, even though no monitoring apps hwinfo, speedfan etc. were running, it blackscreened and I had a small heartattack, so after all I didnt lose my humanity


----------



## hellm

MixedC said:


> the value you wrote abouve? 44?
> 
> so if only "F" can replace an usused loop, why wouldn't 44 work anyway?
> and look like 4F or F4 when dumped.
> 
> looks like this is not going to work on Polaris sadly.
> 
> @Vento041
> 
> While I was reverting back, I decided to edit a bios from 1st post and add ubermix v3.1 to 1750 and 2000 strap (I was running only 2000 before) and also increase power limit to 235W so it doesnt throttle at 1.2v default.
> so now I have updated UEFI version on the card.
> 
> While flashing, even though no monitoring apps hwinfo, speedfan etc. were running, it blackscreened and I had a small heartattack, so after all I didnt lose my humanity


I hope your flash back to post#1 BIOS worked anyway. And no more heart attacks..

Next time we should check this first with vrmtool, it is able to write to a single register, too. This would have been the most elegant way.. and would have saved a lot of trouble.

So, we could test and write "4F" to the "3D" register. If that works, and i2c should stay until u cut power (so if something goes wrong, just turn the computer off..)..
But as u already said, i don't have much hope.


----------



## Vento041

Right now your bios has "40", and it does not work, my idea was to test also "44", "04", "4F" and "F4" (values that could makes sense given various assumption), see which works and formulate hypothesis.


----------



## MixedC

I'll do it through VRMTool then, like hellm have suggested, 
and @hellm btw I also forget about VRMTool's capabilities, so you are not alone. I also knew it can overwrite but I forgat.


----------



## Vento041

From: http://www.irf.com/product-info/datasheets/data/ir3565b.pdf



> The Vmax has a lock function to prevent accidental
> overwrite. The ps
> eudo-code below illu
> strates how to
> write a Vmax value:
> # Unlock & write desired Vmax value
> Set vmax_lock=0
> Set Vmax=new value
> # lock to prevent overwrite
> Set Vmax_lock=1


I suspect that Vmax_lock is just another register. Would be nice to:

* dump i2c
* send unlock command to gpu
* dump i2c
* change value Vmax
* dump i2c
* send lock command to gpu
* dump i2c

To properly know how to write that dam value... sadly I've no experience on how to talk to the GPU in that way (maybe SMBus?). Could be worth asking directly to deeper-blue or gupsterg. How to I mention someone on this new interface??????


----------



## hellm

Nice, here is our answer 

just add @ before the name..


----------



## MixedC

Lol so it was locked but even tho it was locked, wouldnt a bios flash just get it locked to whatever we put there @ first boot anyway?

I am a coder and also I know GPU's dont have their own Bios batteries so.

Unlock
write
lock

sounds good and reasonable *while* GPU is running.
You would need to unlock, change and lock to prevent overwrite.

but isnt here a flaw in that logic? It sticks out to me because my life is kind of ifs and elses ... 
here let me try to put in steps.


Assume we cannot change voltage while locked, good.
1 Unlock
2 write
3 lock

but wait a second, how something is *locked* and holds its lock position while not powered.
You can say it is işn the rom, but then the second question comes into mind.
so if we didnt lock it back, it would be understandable.

Set the byte that locks it to be unlocked, change vMAX -> This makes sense, because it is in ROM so it is there at first power up.

so we shouldn't lock it back. Apperantly it means "FF" while it is in locked position no matter what.
so probably even if we send lock command back after we change it while GPU is running, it will still default back to "FF".

I feel like I have no knowledge and i feel like an ignorant, you guys make me lose my self esteem LOL. 
I need to get my bios editing skills up.


----------



## hellm

Since the lock is just another register, that information can also be stored in the BIOS. When the card boots up, it goes linear through the registers, so unlock/lock wouldn't be a problem.

And our answer was allready there in that post from gupsterg. The register to set is 0xE4, it is by default in "lock" state with 0x01, for unlocking we have to set it to 0x00.

so, i added E4 00 00 00 before the 3D register, and E4 00 01 00 after that. But before flashing, we should test it first.
Anyway, here is the "No Spike Edition" for the MSI, with 0x40 for 0x3D register.


----------



## Vento041

Hellm mind share the link where gupsterg talked about the lock register?


----------



## hellm

i was referring to the original link from Lard to a post from gupsterg; the one i quotet afterwards. (page 58)
in the first pic u see what register was used for unlock/lock:
http://www.overclock.net/photopost/data/1381417/6/65/653c66fb_VDDCR.jpeg

btw, thx :thumb: @Lard and @gupsterg (as usual, we would have no data at all without him)


----------



## MixedC

@hellm Okay tell me if you want me to try anything, how we gonna test it first, so I can flash afterwards.

I haven't used VRMTool to overwrite a register so there is a big change I gonna do it wrong, so not doing it on my own. 
I have done it through bios editing but we are not doing it right now, and you have already done it anyway.


----------



## Vento041

Mixed you could try to use vrmtool to unlock te register, write the limit and relock.

* write 0 on register E4
* write 40 on register 3D
* write 1 on register E4
* test if spikes are still occouring


----------



## MixedC

write E4 00
Write 3D 40
Write E4 01





27 17 21 0f 16 19 a0 53 63 4e 11 66 66 44 ff ff
a2 22 88 10 22 ff 14 00 00 00 00 00 00 00 00 00
00 00 9e 78 10 2b ff 8d 00 24 a1 2c 38 9e 1e 2f
6b 0f cc 79 6f 05 05 1d 81 be 60 00 00 40 00 00
a8 90 00 00 00 00 00 00 14 14 00 40 80 60 a0 ff
ff 00 40 88 34 88 44 12 02 02 88 00 20 20 00 63
4b 04 e3 60 91 9c 24 88 80 00 00 00 00 ff 06 ff
ff 20 00 00 00 00 00 00 00 00 00 00 15 15 00 
00 00 00 00 00 88 88 01 c2 44 00 00 1f
00 05 43 80 68 03 b0 70 60 a7 60 00 00 48 24 1a
00 00 00 00 00 00 00 01 08 51 a0 77 8f 00 00 00
ff 00 00 00 00 05 23 cf 00 00 76 9e 25 16 00 00
00 00 01 79 13 00 02 c2 00 00 00 00 00 44 00 00
00 00 ad 50 0c 00 10 00 3f 00 00 00 23 c0 f0 00
00 00 00 10 01 03 01 88 00 00 00 00 00 00 00 00
00 00 00 00 00 33 00 00 00 00 00 00 00 00 00 00

it worked, I need to test now but you can see 40 is there. I unlocked changed and locked.

We eliminated spiking with 580 bios quite well already, it didnt spike when it didnt throttle anymore but it would still spike watching vp9 and you know like sometimes doing/watching something else etc. etc., so this is still good to have if it is working now.
I had spikes when Radeon Wattman reset and I had my gpu throttle while gaming if I do not notice. (+30% power limit fixed it with hellms bios, but I edited it yesterday and gave it higher power limit anyway so it is also gone)

rx480 bios was a disaster tho, as I talked about it milion times already, it degraded my gpu so quick.

I really don't know why would they allow such a stupid thing to happen. I guess it is so GPUs stop working sooner and more $$$ I cannot think of anything else.
I have lost almost 50 mhz in 4-5 months at same voltages with my stock 480 bios. It was madness, I have seen it go up to 1.4V.

Since I flashed hellm's 580 mod and I figured out it spikes only when it is throttling, I have been using with 30% power limit, it still spiked as I said time to time, when I forget or I watch VP9 but nothing as bad or high.
so It was stable 1125mv 1350mhz for last 7months+, perviously I was lowering mhz 10 by 10 each month.


----------



## MixedC

@hellm
@Vento041

This is legit working, maximum spike hwinfo recorded on VRM is 1.226V. (hwinfo reads both from GPU like gpu-z and from i2c, sometimes one misses but other registers, sometimes both catches the same.)

I think this is a good addition to all polaris bios'

I'll let it run more but it should have spiked higher long time ago. (I am doing exactly what I have done yesterday or before that to make it spike).

Thank you a lot for your work, the bios alchemy is real.

also I'll keep hwinfo running for a while so I will see if it will spike doing video playback with vp9 etc. 

but under load spikes are all gone, no matter throttling or not throttling. (I set it to -30% so it is equal to 0% of 1st post 580 conversion 180W.) hence it is throttling and spiking but not more than 1.226v.
HWinfo warned me at least 40-50 times (I have sound warning), maximum recorded is 1.226v still.

Update:
It passed under load spike test, it doesn't spike over 1.226v anymore.
now I have disabled h264ify(only works on youtube) and testing VP9 spikes. Nothing so far. Still I have no idea why it has to use way more voltage and resources than AVC.

Well either firefox or AMD did something but GPU doesnt go back to idle when a VP9 video is open (paused) and I am not even on its tab.
previously GPU would go idle between tabs and spike switching back to vp9 or when you pause nad play.


Update on VP9 playback.
Either Firefox did something, AMD did something I dont think what we have done or bios update is a reason for this but look at this weird behaviour.

Long time ago, when watchign VP9, when you pause video or switch tabs GPU would go idle. and spike when you switch back to VP9.

now,
GPU never goes idle, even when I pause video, close tab, close firefox. Once I view VP9, GPU is stuck at 1340mhz 1.2V till I restart device.
I'll do a google search but I don't think I gonna find anything, and I am too lazy to revert back drivers, so I'll go back to h264ify.
so it doesnt spike while viewing but it is because it doesnt fluctrate clocks, it just makes GPU stuck at State-7 forever.

Found something:
https://community.amd.com/thread/224186
so this is a driver thing, LOL. I cannot test vp9 spikes.


----------



## MixedC

New findings, and it is strange.

My voltage under 99% load when it is set to 1150mv would drop to 1119mv-1125mv and fluctrate.
now it is doing mostly 1131mv and goes down to 1125 occasionally.

I don't know what kind of sorcery is this, but i love this.

We didnt change anything related to LLC, but it looks like VRM is working better? ofc this all are software reading, but that software was constantly reading 1119 and 1125mv before this change.
Maybe VRM is working better in some way? (I am lookinga t temps and stuff, everything is fine GPU 61C VRM 73C).

and gpu is getting 1131mv (i2c reports 1127mv-1129mv), I basically have way less vdroop.


I didn't flash the bios yet, I'll do it later. Still running with VRMTool changes and testing. So far amazing.


----------



## Vento041

Confirmed working also on my card.

@MixedC

LLC on/off register is 38. Loadline slope (loop 1) is 24.

Btw what you read could be caused by: placebo effect, random luck, change in ambient temp, tons of things.... To be sure more testing should be done.

Just for fun, on my card I've also reduced the switching frequency of loop 2 (reg 23) to minimum available (F0 = 200 kHz). It should be 100% useless since there is nothing on loop 2 (on polaris) but still I like this other mod.


----------



## MixedC

Vento041 said:


> Confirmed working also on my card.
> 
> @MixedC
> 
> LLC on/off register is 38. Loadline slope (loop 1) is 24.
> 
> Btw what you read could be caused by: placebo effect, random luck, change in ambient temp, tons of things.... To be sure more testing should be done.
> 
> Just for fun, on my card I've also reduced the switching frequency of loop 2 (reg 23) to minimum available (F0 = 200 kHz). It should be 100% useless since there is nothing on loop 2 (on polaris) but still I like this other mod.


I fiddled a lot with this card, I know how it behaves like some sort of my extension 
1125mv was cold reading
1119mv was hot reading where it drops.

now it is running at 1131mv stable. Not even going down to 1125mv as it often used to go down to 1119mv from 1125mv.
The temps of VRM and GPu are same, the room temp is same.

so this is some sort of sideeffect or something, but if the reading is not flawed, I have less vdroop.

I used LLC for some time, It didnt really give me any better results (strange enough) I get better OC with vdroop to same voltage as LLC. so agian, they are software readings so not accurate enough, probably with vdrrop voltage was slightly higher than it reads or with LLC it was slightly lower than it reads.

-25mv was always on my card and I had -31mv drops after a while and even reported them on this thread a whilea go. Now I get even less then -25mv.

The only other thing can cause this is PSU Cable, I migght have plugged it in better? Maybe? LOL. anything is possible.
(Can't be a different rail, I have only 1 cable attached to PSU for 12V PCI-E and PSU is also single rail, so it is the same cable)

I think my loop1 is set to 500khz, let me check.

edit:
it was 303khz.

Btw I said I don't use LLC, I mean I use the default slope. So there is still LLC (afaik) with some drop as I experience. Not using the way it is set in like watttool (set 1150mv, get 1150mv), that didn't help me.

in my knowledge faster switching might get me a little better OC but also increases VRM Temps, but I thought 500 was the standard for polaris, I was wrong.


Edit:
More on Vdroop.
I have now upoped my voltage to 1200mv and clock to 1410mhz and also temps went high.
I am seeing 1175mv 80% of time and 1181mv, so I definetaly have less drop. It should have been 1169 and 1175 switching real quick.
It is mostly stable at 1175 and goes up to 1181mv occasionaly.

I need to give it at lesat an hour of test but I didnt crash at 1410mhz yet, a good sign for me.

GPU 66C
VRM 82C
I2C voltage readings are 1174-1175-1176
Average GPU total power is 213W (100 samples) but which is useless anyway.
GPU Fan 1860RPM.

and temps etc. stabilized, I can run it this way if it doesnt crash. it is cool enough 82C for VRM is nothing.


----------



## Vento041

300 switching freq is really low! Sure it was loop 1 (reg 22) and not unused loop 2 (reg 23)? Btw you could try to raise it to 500 to improve stability (without gaining too much heat). But it really depends by your VRM, which card do you have?

Update: 
800 Khz is what i used time ago since is the point where tradeoff with temp becomes too big


----------



## MixedC

Vento041 said:


> 300 switching freq is really low! Sure it was loop 1 (reg 22) and not unused loop 2 (reg 23)? Btw you could try to raise it to 500 to improve stability (without gaining too much heat). But it really depends by your VRM, which card do you have?


MSI RX480 Gaming (asme as X)

yes it is 0x22 and I am using hellm's bios which is using original VRM info from 480 bios of the same card.

so what are the advantages and disadvantages of it besides what I already know?
also VRM switching slow might also be another reason for my huge spikes comapred to other card's spikes with FF for their 3D register. (afaik sapphire uses 500).

I don't know how much stability I will gain, I haven't tested any card for that manner so I have no info myself, or experience with that one.
I just know More -> More Stability + Heat
Less -> Less Stability + Less heat

so I know they are ON or OFF, and with higher FREQ the recovery is faster, but gives less time for phases to breath.

BTW so far so good 1410mhz 1175mv and I still didnt crash, soı I might be finally back to 1400 range just by using Wattman alone without any offset.

edit:
I'll try 800 and 1420mhz, if it is stable, I am game my VRM hits 84C at most anyway.

I switched to 800khz but didnt really check for FETs capabilities, I assume they should be fine upto 1000khz

This must be what is used on MSI RX480 Gaming X/Gaming/Armor/Armor OC Looking at it right now.
http://www.ubiq-semi.com/files/1875/e4b0aa1e-92e0-11e7-881a-c4cbaf091d7a

At this point, I cannot say I know exactly what I am doing or talking about, at most before buying something or changing something, I go as far as checking VRM Power ratings, caps etc. 

Edit:
with 800khz, I am back to 1169mv instead of 1175mv under load, so my -31mv drop is back.
I need to switch back and forth to see if that is the cause or not. but I am probably not more stable because of lower voltage.

Both GPU's reading and I2C voltage reading dropped, so it indeed did drop.

update:
Well it wasnt related to switching freq, I am somehow back to having -31mv drop, everything is same. I just restarted the PC after a driver crash and bsod. (Not related to what we are doing).

so it was something out of luck indeed @Vento041, I might edit the LLC a little bit.
(edit: Well I know what it was, it was hibernate bug that still exists, GPu wasnt really going 100% when it was showing 100% it was actually about 4-5% off its full performance, hence less drop)
(people called it hibernate bug reviewers etc.., but it actually happens when driver crashes, or when it used to happen when you change clocks with wattman while GPU is idling, I forgat about it.)

anyway right now I have set 3D to 40, 22 to 3C (800.1khz) and Voltage under load is 1169mv testing 1420mhz and looks working, probably gonna crash in half an hour.

Last update:
It has been many hours, still no spikes.

Also I finally put an end to my absolute OC limit. 1400mhz 1169mv (load). I can get 1410 (stable) if I ramp up the Fans, but I am looking for good stability.
I also learned more and more about bios editing in this process, so thx again guys.

I am not really comfortable at 1200mv range, it should be quite fine though, no one runs 1200mv by default besides powercolor (in my knowledge).
so I'll add +25mv offset into the bios with no spikes fix+ubermix v3.1+235W Max Power Draw to save myself from using afterburner etc. (like nitro's OC bios), so I'll endup at 1194mv load.


----------



## HaoSs

damn, those are some high power usage. i modified the rx580 conversion bios back to 1150 MAX voltage and running stable 1420 mhz ( i'm calling this bios rx580 420 blaze it edition,haha ), 165w max power limit, guess i hit a good chip. drawback is memory OC is nonexistent. 2050 will drop errors like crazy, but ubermix balances out the non oc memory .

what are you using for vram temps ?


----------



## MixedC

HaoSs said:


> damn, those are some high power usage. i modified the rx580 conversion bios back to 1150 MAX voltage and running stable 1420 mhz ( i'm calling this bios rx580 420 blaze it edition,haha ), 165w max power limit, guess i hit a good chip. drawback is memory OC is nonexistent. 2050 will drop errors like crazy, but ubermix balances out the non oc memory .
> 
> what are you using for vram temps ?


The power reading are not accurate, so don't mind them. MSI shows higher than other cards by stock and they are calculated not measured.
1150max and running 1420?, so running 1420mhz at 1125mv under load? Thatis rx580 level.

my memory also can only hit 2020 with 0 errors using Ubermix v3.1, so if you do 2050 with it, it is really good.

Upto 1250mv is accepted to be safe for daily use with air cooling. as far as I know, Powercolor 580 runs 1212mv under load by default, and this is the highest I know of.
and what hellm put in there was AMD's Reference values for RX580 XTX (not XTR, XTR is like Nitro+ Limited Edition, XTX is Nitro+, or Gaming X+ is XTR, Gaming X is XTX, XTR is binned)
so they are declared by AMD not hellm. 1340mhz 1200mv

As you can see some weird high spikes used to happen on my GPU and I connect the quick degradation of my GPU to those, because after we have eliminated them, my clocks stabilized.
it could do 1150mv 1400mhz when I first got it. (1150 being under load, 1175mv in wattman)

My card does 1400mhz @ 1169mv under load, which isnt bad but isnt golden either.

I have just did this today and 50mhz gets me to 137fps from 133fps. and it perfectly scales for me at that level 50mhz more for 50mv more.
1350-1150, 1400-1200 (drop -31mv for 100% load).
This is 3% FPS difference for 4.3% more voltage, doesnt worth it really it is just if you want to see 1400 or 1350 when you look at your clocks kind of thing.

but it would worth it if I could do 1450mhz 1250mv(drop -31mv), which I tried and I cannot. I would love to see 1450mhz when I look at it.
it would be 7% clock difference, and about 6% more FPS for 8% more voltage compared to [email protected] Actually still doesnt really worth it unless you are running at 52-53FPS, then it does. but I would like to see 1450mhz.
btw it would really come in handy in a 53FPS situation, I cannot play under 60FPS, I feel weird and game feels choppy, maybe Freesync fixes it but I haven't experienced it myself yet.
so in that case a 580 Limited Edition would shine upon 480s and 1060s.

so keep this in mind if anything like this happen to you and you need those couple more FPS', 1250mv I beleive under load is accepted to be OK limit for air and I would be comfortable with it around <=70C.
so you can still push more in case of this.

so again, what is your under load voltage? if it is 1125mv, it is really really good.
if it is 1150mv under load, it is still really good, it is RX580 XTX level and you can even get it higher.

if I said "vram" instead of "vrm" it is a typo, I am talking about VRM. And my VRMs run cool at most 84C with higher switching Freq and 1200mv set in wattman, even lower otherwise.


----------



## hellm

I am happy it works, at we have cut down thoses spikes once and for all. 

For the PWM Frequency (yes it is PWM.. even if that signal goes to the VRM), there are other things involved. Someone told this der8bauer, i believe it was him, and if u change this u have also change other things, too. This is for the reference, and 360kHz really gave me a red screen.
so, be carefull, can't say for any model, as long it is stable... If u gain just a few MHz.. maybe not worth it.
And 300kHz is good enough for a 6 phase VRM. Only the nitro+ has 500kHz, i believe, but also only 5 phases.

For my conversions, i leave them and will make "No Spike Editions" i believe. I never had spikes, and it would be against the idea of my mods, to give people *full control* (as AMD once promised..). Vcore would be cut to 1,25V max.. on the other hand, i believe no one will use more Vcore unless for benchmarking..

So i don't know yet.. if everyone is asking about the NoSpike Ed., maybe.. i could also add that info in OP for easy hex editing.. and that would be full control, again. Yup, thats one of the decisions i decide when i decide to make my decision.


----------



## MixedC

hellm said:


> I am happy it works, at we have cut down thoses spikes once and for all.
> 
> For the PWM Frequency (yes it is PWM.. even if that signal goes to the VRM), there are other things involved. Someone told this der8bauer, i believe it was him, and if u change this u have also change other things, too. This is for the reference, and 360kHz really gave me a red screen.
> so, be carefull, can't say for any model, as long it is stable... If u gain just a few MHz.. maybe not worth it.
> And 300kHz is good enough for a 6 phase VRM. Only the nitro+ has 500kHz, i believe, but also only 5 phases.
> 
> For my conversions, i leave them and will make "No Spike Editions" i believe. I never had spikes, and it would be against the idea of my mods, to give people *full control* (as AMD once promised..). Vcore would be cut to 1,25V max.. on the other hand, i believe no one will use more Vcore unless for benchmarking..
> 
> So i don't know yet.. if everyone is asking about the NoSpike Ed., maybe.. i could also add that info in OP for easy hex editing.. and that would be full control, again. Yup, thats one of the decisions i decide when i decide to make my decision.


It didnt help with frequency and Vento said he used to run 800 for a while, so I tried. 
It might have made me blackscreen, I was AFK, and when I come back, I thought screen turned off to sleep, but it didnt wake up. I am not 100% sure if I was running with 800 or not.
anyway It didnt help so Ir everted back to default "9e" anyway. 

And also I think I kind of know that it can affect the actual ratings of VRM, but I really have no knowledge on this or any clue on calculations. This is just something I remember faintly, so that might be what derBauer is refeering to. (less power output capabilities with higher freq), but again I kind of have this knowledge, I don't know where/when and it is so blurry in my mind, 
this was why I was cautious changing it and why I reverted back.

any yeah PWM Frequency for signaling fets on and off, but everyone seems to call it "VRM Switching Frequency" 

Spikes are gone, and now I can put down 1200mv in wattman and do not worry about it spiking even higher. 580 bios removed really quite important chunk of them to begin with so my GPU survived all this time thx to you @hellm. The underload spikes were the worst kind and the most often ones.


----------



## MixedC

@hellm
I had an heartattack again...
I finally flashed the bios, restart, complete shut off. (so I make sure the changes made through VRMTool reset, they dont without complete power down I tried).
I turned it on and my screen! IT WAS SCRAMBLED! All sorts of weird stuff, Like bad memory, it was like a nightmare LOL. Real indicator of an hardware issue, which was not thankfuly (hopefuly? LOL) .

I restarted again, and now I am here, so it worked. I HATE THIS lol, It will kill me someday. Weird stuff always happen to me at the worst moment.

I copied bios from gpu and opened up with PBE to check if I put the timings wrong (like I left a space or I pressed a button by accident) but nope it looks fine ubermix v3.1 as always.
I'll probably gonan redo everything and flash again to make sure.

edit:
Well I didnt have to, because PBE says "invalid hex string" when saving with a space or with an extra bit, so I cannot have done anything wrong.
Btw bios works, i2c dumps 40 as expected.
Lol another mystery, I wish will stay as a mystery and I have never see its face again. 
(it actually can be, me overwriting bios, pushing restart button (not windows), right after mobo posts, clicking power button to shut-off for a clean cycle, and turn on so quick back up, so it doesn't clean and still runs on what I have done from VRMTool because as I noted, even if I post again, without full power down changes stayed + there are new registers set through a new bios with a different offset, it has different offset right?actually the bios has less placeholder bits and is longer than before right? I don't mean the physical size, but info contained. Did I start to learn better sensei? ) this is what I can think of.


Anyway, after bios flash
it can be seen here
3D is 40 and E4 is 01

27 17 21 0f 16 19 a0 53 63 4e 11 66 66 44 ff ff
a2 22 88 10 22 ff 14 00 00 00 00 00 00 00 00 00
00 00 9e 78 14 2b ff 8d 00 24 a1 2c 38 9e 1e 2f
6b 0f cc 79 6f 05 05 1d 81 be 60 00 00 40 00 00
a8 90 00 00 00 00 00 00 14 14 00 40 80 60 a0 ff
ff 00 40 88 34 88 44 12 02 02 88 00 20 20 00 63
4b 04 e3 60 91 9c 24 88 80 00 00 00 00 ff 06 ff
ff 20 00 00 00 00 00 00 00 00 00 00 15 15 00 00
00 00 00 00 00 00 00 00 88 88 01 c2 44 00 00 1f
00 05 43 80 68 00 b1 70 61 a8 60 00 00 48 24 1a
00 00 00 00 00 00 00 01 08 51 a0 77 8f 00 00 00
ff 00 00 00 00 05 23 cf 00 00 75 a0 33 16 00 00
00 00 00 7c 93 00 02 82 00 00 00 00 00 44 00 00
00 00 ad 50 0c 00 10 00 3f 00 00 00 23 c0 f0 00
00 00 00 10 01 03 01 88 00 00 00 00 00 00 00 00
00 00 00 00 00 33 00 00 00 00 00 00 00 00 00 00

Detected IR3567B VRM controller chip

Loop 1 voltage VID: 0.75000V (reg 0x93=0x80 RO | 1.55V-X*0.00625V) 
Loop 1 voltage offset: +0.00000V (reg 0x8D=0x00 RW | X*0.00625V, 0x00=default) 
Loop 1 output voltage: 0.75000V (reg 0x9A=0x60 RO | X*(1/128)V) 
Loop 1 output current scaling: ? (reg 0x4D=0x60 RW | 0x60=default, 0x20=lower reported current) 
Loop 1 phase 1+2 load distrib.: ? (reg 0x1E=0x00 RW | 0xdd=default=more load on PCIe, 0x00=equal) 
Loop 1 phase 3+4 load distrib.: ? (reg 0x1F=0x00 RW | 0xd0=default=more load on PCIe, 0x00=equal) 
Loop 1 loadline slope: 0.500mOhm (reg 0x24=0x14 RW | X*0.025mOhm, 0x1C=default) 
Loop 1 loadline enable: 1 (reg 0x38=0x81 RW | bit7, 0x81=on/default, 0x01=off) 
Loop 1 PWM frequency: 303.8kHz (reg 0x22=0x9e RW | (1/(X*20.83ns))kHz, 0x9E=default) 
Loop 1 temperatur: 36C (reg 0x9E=0x24 RO | X*1C)

@hellm btw you say ypu never had spikes but when I tried gpu-z, it almost never caught them (even with 0.1ms).
Hwinfo i2c caught them the most and also hwinfo GPU Vcore reading which is same as GPU-Z's reading caught them time to time, but not as often and as i2c.
but with 580 bios they almost never did.

I don't know where GPU Vcore reading and how GPU read it, because it is obvious it goes in 6mv increments. so either sensor doesn't have resolution, or it is not measured? I doubt it is not, it must be.
so i2c shows VRM voltage out down to 0001mv resolution, I know that it is vrm core voltage *OUT*, there are bunch of caps between the VRM and GPU Core itself, so those caps might be handling most of the spikes so GPU itself doesn't really get affected by spikes that often anyway and all we did was overkill, and hence doesn't report spikes as often and that was why AIBs just left it be FF. 

or it was not? Because GPU Vcore also reported high spikes but less often compared to i2c but it was because it either didn't catch as quick or the vcore is not measured directly.
tbh I don't know, and this is a little bit over my knowledge 

The capacitors handling the spikes most of the time and GPU itself not reading them as often might actually be true, and why they just left it 3D be FF after all, still stupid. If you can do it and lock, why not do it regardless?

help me with this  What do you think?
and one last thing, everytime I post something, I realize it becomes soooo long, I try to stop this but I always endup doing this -_-, sorry.


----------



## hellm

since you completely cut power.. i really don't know what this behavior might have caused. Did u oc the memory?
E4 is 01 by default, what i did in the VOI is set it 00 set 40 for 3D, and then 01 again so everything as it should be.
i hope you don't have another heart attack and everything is fine now.

i didn't even know about hwinfo and i2c. I mean i knew i shows all possible readings.. As buildzoid said in the vid i posted a few pages ago, voltage is one thing that is measured for sure. The VID is someting that the Controller only can increase/decrease by 6.25mV steps. But i am pretty sure that these spikes are not the spikes that capacitors meant to filter out. Those happen for a very short time and are nothing to worry about. Shouldn't be. And this wouldn't affect the controller, since it can only hold the proper VID that it is programmed for.
So, if we now lock that VID to a maximum, and those spikes disappear.. it means the controller accepted a higher vid for a very short time. At least in my understanding.

..and u can type all u want in my thread here.. it isn't off topic and sometimes even interesting 
no, seriously, you don't have to apologize


----------



## MixedC

hellm said:


> since you completely cut power.. i really don't know what this behavior might have caused. Did u oc the memory?
> E4 is 01 by default, what i did in the VOI is set it 00 set 40 for 3D, and then 01 again so everything as it should be.
> i hope you don't have another heart attack and everything is fine now.
> 
> i didn't even know about hwinfo and i2c. I mean i knew i shows all possible readings.. As buildzoid said in the vid i posted a few pages ago, voltage is one thing that is measured for sure. The VID is someting that the Controller only can increase/decrease by 6.25mV steps. But i am pretty sure that these spikes are not the spikes that capacitors meant to filter out. Those happen for a very short time and are nothing to worry about. Shouldn't be. And this wouldn't affect the controller, since it can only hold the proper VID that it is programmed for.
> So, if we now lock that VID to a maximum, and those spikes disappear.. it means the controller accepted a higher vid for a very short time. At least in my understanding.
> 
> ..and u can type all u want in my thread here.. it isn't off topic and sometimes even interesting


I see, yeah that makes the most sense. (about spike topic)

about the screen going crazy, I didnt completely cut power (didn't cut PSU power), I just shut it off and on real quick with power button, so probably GPU still had power stored enough to have bios going.
so it got really confused somehow LOL. I restarted later multiple times, I shut off and on Multiple times and I cut power completely and turned it on, it was fine. Never happened again.
so this theory is the only thing comes to my mind. Because when you remove the bios battery from a mobo, cut PSU power and get it back real quick, bios still won't reset because there still will be some power left in caps.
At this point I just can specualte, but I think this same thing happened with GPU bios.

Well, No more heartattacks for now, if My gpu decides to die in upcoming days, you know I'll find myself here 
and I hope I won't see that horrifying picture on my screen for another year at lesat. (My previous GPU died looking like that, you know the story 6 time RMA and at the end I just gave up and bought this).

it looked like this, imagine heartattack:
https://rog.asus.com/forum/attachment.php?attachmentid=56805&stc=1&thumb=1&d=1460323985
not as crazyt and colorful as this, I get "Gigabyte Ultra Durable" in the center when booting on a black background, so in middle there was white stuff, same pattern like in above picture really weird.

actually I initially said it looked like memory issue but, tbh I have never seen a bad memory look like that, it was weird LOL. it was like old Nintnedo Famicom (it is like Nintendo NES) days, when the cartridge is loose in socket XD
I have seen too many sorts of bad GPU problems and how they look like, bad Ram and bad VRAm and even bad RAM affecting iGPU, this was new, unseen , I really hope to never see it again, I think you can tell I mentally still didnt recover yet.


----------



## hellm

I know how you felt, really i do.. 

i2c keeps settings until u turn off the power. i think this is most likely what happened.

so happy it works now.


----------



## MixedC

hellm said:


> I know how you felt, really i do..
> 
> i2c keeps settings until u turn off the power. i think this is most likely what happened.
> 
> so happy it works now.


The worst part is say it is not working, It is dead.
I would be fine with it, sad but fine. 
The thing is, you cannot BUY a new one. Not that I can immediately buy new one, the thing is I cannot buy even if I could lol.
or you cannot even find a GTX 1050 or 1050Ti for normal prices, 1050Ti costs like or more than what I got my 480 for now LOL.

I love my GPU, and I think you know it by now, it is my baby and I take good care of it


----------



## hellm

you just told me your GPU died. I believe you were hypothetically speaking?

yes, but prices are already dropping here in germany. we have a rather high price for kW/h, but i'm sure it will be a worldwide trend.. so there is a ton of Polaris cards coming to flood second-hand market.


----------



## MixedC

hellm said:


> you just told me your GPU died. I believe you were hypothetically speaking?
> 
> yes, but prices are dropping already here in germany. we have a rather high price for kW/h, but i am sure it will be a worldwide trend.. so there is a ton of Polaris cards coming to flood second-hand market.


ofc I am speaking hypotheticaly, sorry if it wasnt clear. I said "say it is not working", so I thought it was clear I was speaking hypothetically, I should have said "Assume".
I plan on getting one with NO output ports if I can for cheap, and crossfire. I have output on my 1st GPu anyway. Sounds like a plan huh? I come up with this plan the moment they got released 


btw you can also use iGPU output port actually, but it has a performance penalty of about ~~20%, I don't know details of how it works and didn't investigate. Probably it is limited by system RAM speed.
I don't think there is a direct pass-through, wouldn't be a performance penalty. 
So I beleive, it is copying rendered frame to System RAM from VRAM and then to iGPU frame buffer, hence the performance penalty. But it works (tested intel hd 4000 (4690k), should work anything better, don't know about lesser).


I think by now, I have done and tried too many marginal stuff and gathered too much weird knowledge . Not just talking about my adventures with this GPU but overall.


----------



## MixedC

NEWS,
Recorded the highest spike of the whole day since I have begin testing been 12 hours+ I think.
1242mv, still under 1250mv set limit and I haven't seen anything higher as of yet.

Under load it spiked maximum to 1226mv, and I connected that to -25mv voltage drop under load, (can be seen in a previous post.)
I was watching youtube and was using AVC not VP9 (explained in previous post why not, and shortly again below). so load was really light and it spiked. (been watching youtube for hours)

as I said, they still happened with 580 bios but really rare as long as I stay away from vp9 and don't let it throttle under load. (we figured this out months ago with you @hellm)
but occasionally, I bumped into vp9 video and didn't notice it is vp9 or wattman reset and I forgat to up my power limit so it thorttled under load (and was lazy to edit in bios), so I still had crazy spikes till I notice what is going on, sometimes it took hours to notice. And it would still spike like 3 times in a minute to 1.3v~~ under load, till I up my power limit again. (and I be like ****, ****, ****, whne I realize what is going on Lol)

the under load throttling one is easy to reproduce, the video playback one is not with AVC. (easy with VP9).
so I have already done under-load testing as I said above.
but since video playback spike has happened now, and stayed under 1250mv, this gpu is finally tamed.

Why couldn't use VP9:
I couldn't test VP9 spiking, which is wild because AMD driver is bugged and VP9 gets clocks stuck forever at state-7, so cannot test spiking, need to revert drivers, or try the newest one (using just 1 older version, and no fixes noted in bugfixes)


----------



## HaoSs

@MixedC
under load for 1420 i get around 1125 in benchmarks most of the times, with spike to 1137 , temps are not as good tho. in heavy benchmark i hit 75 max temp at 60% fan speed. This time sapphire was not on top with the thermals. still good for a heavy OC. 

most i tested was this https://www.3dmark.com/fs/14895156 at 1200 mv, was a little to much voltage for me for daily use anyways so did not try to go pass 1460 with benchmark, i know 1430 is not stable at 1500 mv ( it does not crash, but it does not feel right/smooth). i may push it one day just to see how high i can go with 100% fan speed. if i remember right i pushed to 1480 ? but did not benchmark it or i crashed, can't remember

2050 on memory turned around 300 errors in 2 minutes. so not good


----------



## MixedC

HaoSs said:


> @MixedC
> under load for 1420 i get around 1125 in benchmarks most of the times, with spike to 1137 , temps are not as good tho. in heavy benchmark i hit 75 max temp at 60% fan speed. This time sapphire was not on top with the thermals. still good for a heavy OC.
> 
> most i tested was this https://www.3dmark.com/fs/14895156 at 1200 mv, was a little to much voltage for me for daily use anyways so did not try to go pass 1460 with benchmark, i know 1430 is not stable at 1500 mv ( it does not crash, but it does not feel right/smooth). i may push it one day just to see how high i can go with 100% fan speed. if i remember right i pushed to 1480 ? but did not benchmark it
> 
> 2050 on memory turned around 300 errors in 2 minutes. so not good


Okay there are couple things I gonna mark for you now.
first 1125mv for 1420mhz is RX580 level,
1420 @75c is even better, i was suprised when I realized how heat sensitive polaris is.
To give you an example, when I ramp up my fans and stay at 55C, I can push 1420mhz @ 1169mv (1430 was also stable but I didnt put in as much time testing), when I run 65,67C though, I crash at 1410mhz occasionaly.
1125mv is not too much voltage, it is lower than many 480 @stock let alone any 580.

but, here comes the big but.
I finished benchmarks too with way higher clocks, this time around this GPU is a little bit different. It is nothing like what I am used to, you can search and even see some people say their 100% stable OC crash with Vulkan or DX12 for example.
so for example while I was running a game for hours and showing 99% GPU utilization and not crashing, another one made me crash after like 10-15 minutes and it sometimes took longer and sometimes shorter.
so,
set your gpu to 1125mv under load and run 1420mhz, if you crash run 1410mhz, and if you crash ever run 1400mhz. That voltage is so good. 1150 is RX480 default actually, and some run even higher (from sapphire mostly afaik). So you don't need to hold back any clockspeeds. My card defaulted at [email protected](1288mhz? maybe I am not sure about clock something around there, not 1300).

75C max is also fine, if you can ramp up the fans or add 2x120mm fans right under your GPU to blow on your GPU (you can use zipties, I used to do this). I don't tell you to remove your GPU Fans and add 120mm ones, I tell you to just add 2 more fans right under your GPU like a PCI-E card, this actually helps.


----------



## HaoSs

i see. well i run 1420 for some time now. Different games, no crash  so i'm happy with it. for voltage best i got was 1090 mv at 1342 ( default clock ) no crash, sapphire set 1137 mv for 1342 witch is high ... 10 degrees extra heat for no reason


----------



## hellm

1150mV for the reference RX480
1175mV for all the customs (strixx had 1150mV, later patched to 1175mV)
1200mV is reference 580
the Dragon 580 has less i believe, only few customs, the XTR versions, are above 1200mV, i think i have even seen 1225mV.

^^VID, max Vcore, not whats under load.. usually the same Vdroop of 25mV. i recommend not to mess with LLC.

Remember, it is not the voltage, it is the current you put through your GPU that will affect electromigration. So, to raise the power limit causes more "damage" or drains more life, or whatever you think of it.
But i also recommend not to worry too much about that either, just proper cooling of all parts. Those Polaris GPUs can take a beating and handle a lot of amps. It will not make sense to raise the Vcore 25mV for a few MHz and no performance gain, so there is a natural cap.


----------



## MixedC

By all customs I suppose you mean 580 not 480, because my 480 come with 1125mv~~ out of the box for example. It was 1096mv under load or 1094, somewhere around there.


I know for a fact that Sapphire rx580 LE is XTR and comes with 1200 VID.
http://cryptomining-blog.com/wp-content/uploads/2017/04/sapphire-nitro-plus-rx-580-le-4-580x357.jpg
This is out of box.

stock Powercolor Red Devil Golden Sample, it is also XTR. (I don't know of red dragon)
https://images.hardocp.com/images/articles/1492479839NWuo0n8qGF_10_3.png

from a youtube video, 
Sapphire Nitro+ not LE 1411MHZ XTX runs,
[email protected] which is @HaoSs's level, so his card is really impressive. (so VID is 1150mv for this 580)

A while ago I turned internet upside down to gather out of the box voltages for 580 and these were all I found from reviewers.
so red devil golden sample is the craziest I have ever seen 1225mv for VID and should be running 1200 under load. (The photo has MAX enabled in GPU-Z so it must be peak)

as far as we know XTR is just binned version of XTX(or not lol with that voltages binning looks overrated) . So I actually didn't get my *safe* voltage info based on people speculating, but from these stock numbers @HaoSs.

and lastly voltag can kill on its own, but it has to be quite high. It is current that accelerates degredation and current raises with temperature because resistance raises with temperature.
so less temp means slower degredation and also higher clocks.

(fix me if I make non-sense here)
I think ohms law, V=IR explains it. Resistance will raise with temperature.
I= current
R= resistance
V= Voltage
There is also a formula explains Resistance relation with Temperature which uses Delta Time (I think), but I don't know that one. I just knoıw Heat increases resistance.

I am not a physicist or electronics engineer and I wasn't the brightest student in physics II class  just Computer Engineer.


----------



## HaoSs

https://1drv.ms/u/s!Assb6aTdqLwbgfAdHwzUpB3uH9Vsog

how about them temps ? 1 superposition 1080p extreme run ( less stressful than 3dmark ), seems quite hot to me for the amount of power it uses


----------



## MixedC

your peak temps are fine for both VRM and GPU. 
GPU is operating at, 70C, it is like ordinary, normal temperature.
VRM @90C is also fine and this is peak, you are not going to kill it. They are rated [email protected] each x5 ->200A, at 90C with those voltages, they are like chilling.

so nope your temps are fine.


----------



## hellm

i have every BIOS file here. It is like i wrote *every* custom 480 with 8GiB found in post#1/2 has 1175mV, either with 25mV offset or not. Only the 480 strixx had initially a lower voltage..
and every 580 has at least 1200mV.. no other version found except the dragons.. cause they are low cost models..
nitro+ 580 has at least 1200mV, can't say about offset because it doesn't use a controller from ir, but at least 1200mV.


----------



## HaoSs

well i modified the one i got from firsts posts to use max 1.15  anyways, ill go for 1.2 to see how far i can push this chip. just for curiosity, will probably go back to 1420 at 1.15 for stability.

edit: https://www.3dmark.com/compare/spy/3541271/spy/3575642 this is it. 1465 . basicaly under gpuz small render test i went up to 1500 mhz, but it will crash in timespy in first 5-10 seconds ( damn intel vulnerability things, every time new win update comes out my CPU score drops )


----------



## MixedC

hellm said:


> i have every BIOS file here. It is like i wrote *every* custom 480 with 8GiB found in post#1/2 has 1175mV, either with 25mV offset or not. Only the 480 strixx had initially a lower voltage..
> and every 580 has at least 1200mV.. no other version found except the dragons.. cause they are low cost models..
> nitro+ 580 has at least 1200mV, can't say about offset because it doesn't use a controller from ir, but at least 1200mV.


are you talking about their wattman limit or something?
because my weird 480, out of the box, runs under 1100mv, unless I touch wattman.
When I touch wattman, it goes up to 1150mv by itself, and I can go 1175mv max.

so, if you are talking about their wattman max, yeah I know. but I was looking for their out of the box automatic voltages all around the internet.
I think,
I could open up the bios' and look at the pointers to see what they are pointing at for P7 by default, but I got what I was looking for googling anyway.

my VID should be set to 1125mv out of the box, for example.


BTW spike fix works amazing, they should have done this out of the factory.


----------



## hellm

The max auto voltage is also the maximum wattman accepts. When you switch to manual voltage, wattman shows mostly 1150mV.. no matter what max Vcore you programmed.
The 652xx Pointers (as seen in PBE) are always pointing at Vmax for P7.. so that value in ASIC_Profiling table seen in post#3 always applies as auto voltage for p7. So..

Glad the spike fix works that good. You experienced any other changes, lets say more memory errors or something? Just asking, 0x40 shouldn't give you any problems.


----------



## MixedC

I think there is something wrong with the forum? I cannot see your post.
I have seen part of your post through your latest posts though from your profile while trying to figure out what is going on with forum.

I am not talking about wattman, without any touch, mine runs 1096mv out of box, which is far from 1175mv or 1150mv.
So I think as long as we don't enable any tweaking all cards doesn't come set at 1150, 1175 or 1200


----------



## hellm

Now we see it. 

..and yes there is something wrong with this forum.. guess what i also don't see? anything that can edit the text here or add elements.. have to code everything myself.. maybe because we germans have this firefox affection and i am using noscript..

you have a gaming without x? you posted your original rom here i guess.. what was it named?
but anyway, not the issue here..

we did it! we cut the spikes and saved your card. that is good news.


----------



## MixedC

Finally I got miy forum to work as well, and it is not only you Germans when it comes to FF , I don't run nosciprt but I also code everything myself... I looked around a little bit but didnt find any buttons for video, image etc.

Now I see your whole message, my previous message is pointless. The auto voltage comes from the asic table.
about Spike fix,
You know how picky I am after all this time, so you would know within a minute if anything is wrong 

Same stable Memory OC, Same stable GPU OC. (actually at first I thought I got less vdrop, it was a false-positive, later I remembered the hibernate bug gpu wasn't pushing 100% but was going 95% and it was the reason)

so basically it hasn't been better.
same ubermix v3.1 same 2020mhz max, same voltages same clocks.
I am running hwinfo all the time and logging. Nothing is wrong.

edit:
I forgat your question, yeah it is just RX480 Gaming non-X, exatly same as Gaming X. 
in the really rare posts about it on the internet, some said it doesn't have backplate, it has the same backplate which if I couldn't restore the bricked bios was going to be a pain in the ***.

It is basically the same card with 1292mhz OC Mode out of the box instead of 131!? 1320? it doesnt really matter as we all know on OCN lol.
What is funny MSI says it is 1292mhz in OC Mode and 1288mhz normal. OC mode doesn't work, They put it on thier website but their software doesn't know what to do for the card I think LOL.
(because as far as I know it works fine on Gaming X)


and I don't even think they are binned or not binned versions. As you can remember I told you, I could hit 1400mhz at 1150mv (load), before all that spiky mess happened.
I put all of this detailed info here, it looks like an extensive answer to a simple question but, I realized I couldn't find anything on the internet, so this might be useful for someone in future.


----------



## MixedC

This fix is amazing. It have saved GPU from going crazy too many times by now.
in RBRT, we trust.


----------



## HaoSs

what fix are you talking about ? what was the problem ?


----------



## Vento041

HaoSs said:


> what fix are you talking about ? what was the problem ?


me and @*hellm* helped him with a mod that fixed his spike problem... Every GPU could benefit from it actually (if done correctly).

Basically the IR3567B store the max voltage limit for each loop in the 0x3D register, but is locked! To unlock the Vmax register, first write 0x00 to register0xE4 (and after the mod set it back to 0x01).

That change can be done temporally with VRMTool or permanently by saving it inside the VOI table (stored in the BIOS).

On the 0x3D register you can write random values of course xD Btw most Polaris GPU should be fine with 0x40 (Loop 1 max 1.25 Volt, "unused" Loop 2 max 0.8 Volt).


----------



## hellm

Yeah i still don't know if i should integrate this fix in all my files. Since his VID was too high, means also other cards could have that problem. And most likely no one is using more than 1,25V, except for benchmarks.

Oh, and Vento041 meant "00" for unlocking, "01" is default and locked for register 0xE4.


----------



## Vento041

@hellm ups ty! I'll update the post now!

Btw you could write 0x44 (since it seems that an asus model use loop 2, i read it somewhere can't remember)


----------



## MixedC

is there any way that we can spot if loop2 is used or not?
I know we know it is not from the random values set for it, but in your other [email protected] you still mention possible memory OC improvements.
I still didn't have time to test it, but if it improves anything. What does it mean then used or not?

Limiting it to 0.8v didn't change anything on my end, so I still think it is not used.

@hellm
if i2c logged 200+ spikes over this testing period, GPU itself only catched it once.
so GPU-Z is not catching them as preceise as i2c as I thought, neither any monitoring software that doesn't log i2c.
so other GPUs might also be spiking after all, or not. No idea. Needs a bigger sample pool.


----------



## MixedC

(For readers, this is a special bios, not the ones in 1st POST and I used one of them without any issues for a year. So what I am talking about is not related to those)


After flashing this new bios, I encounter an issue.
It is really rare and random and still not 100% sure if it is related or not.

Basically my screen loses signal and looks like this:








No driver crash
no artifact or anything, just regular old static.
for a split second. Screen Turns Black, comes back with a static, and goes back to normal.

Information about what I know:
*This is what happens if cable is loose or something causes interference with a bad cable with no ferrite core around cable.

I have a bad quality HDMI to DVI cable which doesn't have the ferrite chokes, so I have thought that it is related to cable.

Prior to flashing this bios, this only used to happen when I connect DC motors to power outlets in my room, this is how I know the cable stuff, ferrite chokes etc. because I did a search.

What I is happening:
but AFTER flashing the bios, this NoSpike bios started to happen randomly, really rare (once a week?, twice within 30 seconds and none for another week, random) and impossible to reproduce at will as of yet.

What made me make this post:
Recently this happened again while playing a game, so screen wasn't showing a still picture but a moving one.
When the screen come back, right after it is back, the game was frozen for a split second. 
What I think:
If this was cable related, screen whouldn't be frozen.
IF it was Monitor related screen wouldn't be frozen. 
so this was happening at the GPU level is what I think.

Tested:
Plugging cable out and plugging back in doesn't make the game freeze for split second, so it even eliminates screen and cable further.
I'll still try another known quality cable for a month and see if this gonna ever happen again.
so it can be related to cable after all, but it was working fine prior to bios flash.
So I gonna try with another cable and we can make sure afterwards. Give me a month to be 100% sure.

I thought it was fixed because it didnt happen for 7-8 days, but apperantly it is really random.

Meanwhile if anyone have any knowledge, let me know.
@hellm @VenToo41
May GPU VRM be shutting OFF rarely for a split second because of the Limit we have put? I know VRM can shut off for OCP but afaik it doesn't come back untill you power-cycle the PC, so this does and doesn't make sense to me. Also no spikes are recorded as of yet while this is happening. It doesn't look like a cable issue, but I'll start with simple and switch cables first starting now.
I think GPU somehow stops rendering and sends a dummy signal or something? Like goes OFF and ON, hence game was frozen for that split second time.

The thing is:
I am having problems with a HDMI to DVI (to monitor) low quality cable. Which had nothing like this problem prior to NoSpike bios. But that cable still lacks ferrite core and got interference so easy from DC motors as mentioned and showed static for a split second whenever I plug DC motors to outlet, but it wasn't anything random like this.
The known good quality cable I am testing with now is DVI to DVI which has TRUE ferrite chokes and doesn't get interference from anything. but I'll never know unless I get a Hdmi to DVI converter, which I think I should order one.

so if I have this happen to me again, I plan to flash back to old one and test for another month.
Then we gonna know what is causing this.

TL; DR
Something is wrong and I have no idea and I honestly don't think this is related to NoSpike bios but more related to Cable/Monitor/Driver but everything is pointing towards gpu. *


----------



## hellm

If you are using the DVI there may be issues, and this is known for a long time. I don't think this is related to the NoSpike Ed.

The only thing that could make something different is that loop2 thing, so maybe 0x44 would be better.

If you want, you can also try this original conversion, i made a Nospike Ed. for that one, too. Still 0x40, we can change that later if you still have trouble.


----------



## MixedC

I didnt have this issue, I have been using this cable and prior to it, I was using DVI.
so I don't think it is DVI related. Maybe that loop2 thing?

I also think like you, so I'll just use another cable. I think it is related to cable.

if it doesn't work, we can try 0x44.


----------



## alienalvan

*Sapphire RX480 Nitro (Without +) --> RX580*



hellm said:


> Sapphire RX480 Nitro+ 4/8GiB
> nitro480-580.1.1.10.rom.zip 108k .zip file
> nitro480-580.4G.hynix.1.1.10.rom.zip 108k .zip file
> nitro480-580.4G.elpida.1.1.10.rom.zip 108k .zip file
> nitro480-580.4G.samsung.1.1.10.rom.zip 108k .zip file


Hi hellm,

Do you've any Sapphire RX480 Nitro (Without the +) --> RX580?
Recently i bought 2 pieces of used GPU Sapphire RX480 Nitro OC which i'm sure it's used for mining previously (Around USD200 each), was planning to fool around with it & liquid metal cooled those 2 GPU (Stable temp around 65c-68c for 1400mhz clock speed & 2000mhz memory speed)
https://www.techpowerup.com/vgabios/190082/sapphire-rx480-8192-161222 (My current bios)
Basically I've tried to use the Nitro+ version that you've made but it seems to brick the GPU completely (Tried RX480 to RX580 also tried RX480 bios mod as RX580)
Does it mean i can only follow your #3 post to mod the bios accordingly? Thanks


----------



## hellm

The Nitro without the + uses a different PCB with a controller from ON Semiconductor. So, no, it won't work with my nitro+ BIOS.

But what you can do is making your own conversion with the info from post#3. You just have to edit offset 0xD6, change GPU string to POLARIS20 and copy over the magic UEFI. Then you are able to change voltage/clockrates/limits/timings.


----------



## alienalvan

hellm said:


> The Nitro without the + uses a different PCB with a controller from ON Semiconductor. So, no, it won't work with my nitro+ BIOS.
> 
> But what you can do is making your own conversion with the info from post#3. You just have to edit offset 0xD6, change GPU string to POLARIS20 and copy over the magic UEFI. Then you are able to change voltage/clockrates/limits/timings.


Got it! Thanks man.


----------



## alienalvan

hellm said:


> *"magic" UEFI:*
> Select the GOP/UEFI part (length 0xE600-0xE800) in the BIOS, then copy the complete content of the GOP / UEFI.rom over it. Do not change the length of the rom file!


Hi hellm,

Confusion on this portion whereby i need to copy those 3 value & overwrite it somewhere or what?


----------



## hellm

yeah i am bad in tutorial writing.. sry 

i added some info in post#3 for the different length stuff.

Now, the beginning of the UEFI part is 55 AA xx, just like the beginning of the BIOS file. "xx" stands for the file length x 0x200, here 0x74 x 0x200 = 0xE800 = length of the UEFI/GOP file.
So, go to the beginning and select 0xE600 bytes from offset 0xEA00; copy over the 0xE600 bytes from the 1.65 magic UEFI. Select the remaining bytes after 0x1D000 (0xEA00+0xE600) and overwrite all of the bytes with FF, maximum 0x200 bytes.
Or, select 0xE800 bytes from 0xEA00 and overwrite them first with 0xFF, then copy over the magic 1.6x files, beginning at offset 0xEA00.

it is imperative that the beginning of the UEFI/GOP starts at the right offset (0xEA00 in your BIOS) and the bytes have to be overwritten, not added. Overall file length has to remain the same.


----------



## karenin

Hi, am i the only one that cant flash with winflash? Eventviewer shows something about that it cant load the atidgllk.sys driver (when starting winflash as admin, i get the blue circle for 3-4 seconds, and then nothing happens -> entry in event viewer).

Normally that wouldnt be a problem, since i always flash over DOS. But Atiflash doesnt run as well, after booting into DOS it just shows the message "atiflash cannot be run in DOS-Mode" (and no, im not using atiWINflash..). Using CMD in windows with Atiflash -i for example just jumps to the next prompt after some seconds, no error message, but no output either. Just jumps to the next row with blinking cursor.

Im already on the Spring Creators (17133.1), could that be the reason?


----------



## hellm

Yes, atiflash 2.77 didn't work with the preview version, so it is very possible.

we have to find a workaround or a new atiflash version..


----------



## karenin

Hmm but what is causing the "cannot be run in Dos mode"? After all it is a DOS tool..

Maybe related to System the Dos-Stick is written? Created a stick with Rufus and also with HP Storage Tool and original Win98 Dos files, both resulted in the above "not run in Dos".


----------



## hellm

Sure, that DOS died a long time ago.. maybe you can reboot into DOS-Mode? (Hold Shift + Restart) Or maybe it still works in safe-mode?


----------



## Vento041

@karenin

Having a program that does only work with a cmd promt does not mean that has been compiled for DOS.


----------



## hellm

Exactly. "Command prompt" was never anything else than a command line interpreter. The last Windows running on DOS was Millenium Edition?

So, what i said is also not true, there is no DOS-mode. But there is a "Safe Mode with Command Prompt" option:
https://support.microsoft.com/en-us/help/17419/windows-7-advanced-startup-options-safe-mode
..or just try safe mode.


----------



## karenin

Very interesting, thx. I always had the impression that there is a difference between simple CMD (within windows environment) and a "real" DOS on a bootable stick like the one i was using, but ultimatlely the executable for those would run in both environments.

But now im wondering why i can use Afudos on the mentioned Win98 Dos stick. And why the efishell one doesnt work.

Edit: Both do not work, even after im back to non-insider WIN10. Tried safe mode and also safe with cmd. Both give "could not load driver" (which is basically the same atiWINflash is saying trough eventviewer). So we may still be stuck..


----------



## mtrai

Been a while since I posted in any GPU forums here or had a question. As most know atiwinflash no longer works with the latest win 10 editions. Since Microsoft has now blocked one .sys driver from loading no matter what.

The atidgllk service failed to start due to the following error: 
This driver has been blocked from loading

I have looked for a solution previously and been giving it some thought on possible work arounds. I think I might have finally found it. Testing it now...and yes I suck at writes ups. I know it will not be updated for at least the time being...ATI file from 2006. Anyhow my thinking is creating a USB win to go and put the ATIflash_277 folders on it and boot into it to try and see if works. I have found a pretty easy and free way to create it...installing the win to go (Win 10 version 1703) now and will test.

/edit 1 Things not going so well. I am having problems creating a bootable Windows USB stick.

/edit 2 People who know how to use VM can probably do this much easier.


----------



## mtrai

Follow up:

YOu will have to set the right options..Idid not screen shot anything https://www.easyuefi.com/wintousb/faq/en-US/How-to-use-WinToUSB-ISO-To-USB.html 

Have an ISO that worked like 1709. Just follow the instructions and you can boot.

Once it is finished copy your atiflash_277 folder and modified bios over to the USB.

Restart boot to your usb drive and wait until it finishes this is slow since it it is USB. (It has to install windows and then drivers and more)

Then you can start atiwinflash like normal and it will see your gpus.

Now, USB does not install GPU drivers I suggest you install them before any flash ( **NOT TESTED** ) takes a while to install.

This is just a work around but it works.


----------



## Vento041

Btw, little update I asked Sapphire and 2.77 seems to be the last version.... I'll later ask AMD (tomorrow)


----------



## karenin

Vento041 said:


> Btw, little update I asked Sapphire and 2.77 seems to be the last version.... I'll later ask AMD (tomorrow)


That would suck... Especially the tighter ram timings netting me sweet Performanceplus with almost no impact :/


----------



## hellm

thx @Vento041 and @mtrai for providing more information.

Another way would be using a normal installation usb-stick with w10 1709. After choosing the language, time format and keyboard layout you go for the "repair your computer" option instead of install. Then Troubleshoot -> Advanced Options -> Command Prompt.


----------



## mtrai

hellm said:


> thx @Vento041 and @mtrai for providing more information.
> 
> Another way would be using a normal installation usb-stick with w10 1709. After choosing the language, time format and keyboard layout you go for the "repair your computer" option instead of install. Then Troubleshoot -> Advanced Options -> Command Prompt.


Ha I had not thought about that...should work as well. 

For me creating the Win 10 PE build 1709 on a USB stick was also a little project for me make a Live USB Win 10. So I combined it with the need for a ATIFlash work around. The nice thing for me is once it was all set up on the USB stick I now have it as a bootable flashing environment that I will just leave there. 

It took about 2 hours from start to finish but I think I was using a USB 1.0 stick. Faster one should do all the install stuff faster.


----------



## karenin

hellm said:


> thx @Vento041 and @mtrai for providing more information.
> 
> Another way would be using a normal installation usb-stick with w10 1709. After choosing the language, time format and keyboard layout you go for the "repair your computer" option instead of install. Then Troubleshoot -> Advanced Options -> Command Prompt.


Thats netting me "Program was not build for this Version" (or something like that, couldnt copy it).


----------



## mtrai

karenin said:


> Thats netting me "Program was not build for this Version" (or something like that, couldnt copy it).


I did not try it using just a set up usb stick...I do know it works creating a live win 10 usb stick with build 17xx


----------



## hellm

Well, i couldn't test it, i don't own a Radeon at the moment.

i also added the link for the portable w10 stick in op..


----------



## mtrai

hellm said:


> Well, i couldn't test it, i don't own a Radeon at the moment.
> 
> i also added the link for the portable w10 stick in op..


I know it is a bit of work...and sorry it is not easier...I would just suggest for everyone just make a permanent USB win10 stick and ...as once it is set up...you do not have to go through the painful install and driver set up again on the same system. If you use it on a different PC it will have to set up drivers again.

Sorry this is just the best option we have this time, IMO.


----------



## hellm

thx @mtrai :thumb:

So, the installation stick won't work, thx for the confirmation. i will delete that info asap..

And why is my thread missing one star? Some sort of critisim here?  .. i know i am bad at tutorial writing, but will answer any questions..


----------



## Vento041

hellm said:


> thx @*mtrai* :thumb:
> 
> So, the installation stick won't work, thx for the confirmation. i will delete that info asap..
> 
> And why is my thread missing one star? Some sort of critisim here?  .. i know i am bad at tutorial writing, but will answer any questions..



I voted


Now fixed ehehehe


----------



## hellm

thx, did the same for your projects.. SimpleBiosDiff is still may favorite 

Back to the 570, i think i will add that info somehow:

offset 0xD4-0xD7:
470:
F0 7D C6 0F
570:
F0 7D E6 0F
580:
F0 7D E6 07

Only have 1 confirmation for a 570 -> 580 switch so far.. would appreciate another one. 

Update:
have another confirmed 470->580 switch, no driver patch is needed anymore.
i updated the 470 conversions and will added the info to post#3..


----------



## KLS

Hello I've read and re-read the thread wrapping my head around this and I think I'm ready to ask a few questions if anyone has a moment. Reading the thread if I understand everything I can't use ATIflash and one of the roms to flash because I'm on W10 1803 and don't have access to a previous build to make a USB drive with. I can however use a hex editor to manually edit the bios on my card. My card has the dual BIOS switch so if things go wrong I can recover pretty easily. I've downloaded HxD, PBE, and GPU-z and extracted the current bios from my card. 

Following post 3 I was able to do the first two parts:



hellm said:


> "To convert a 480 BIOS into a 580 BIOS, only one byte at offset 0xD6 needs to be changed from 0xC6 to 0xE6.
> In addition, ELLESMERE can be changed to POLARIS20, both 9 bytes long, so only copy&paste.
> 
> Vcore:
> search for these bytes:
> 0C 01 03 06


I'm a little lost/confused on whether I need to do the vendor, fan, and UEFI parts and how it actually load the changes to the card


I have a XFX RX 480 8GB GTR BE w/samsung memory and the IR3567B VRM controller chip (http://www.xfxforce.com/en-us/produ...ries/rx-480-gtr-black-8gb-dd-led-rx-480p8dba6)

stock rom in dropbox

https://www.dropbox.com/s/befxu5zzraorext/480_Stock_Ellesmere - Copy.rom?dl=0

VRMTool dump
https://www.dropbox.com/s/2izziy8xs6lo37e/VRMtool-dump.txt?dl=0


----------



## rootmoto

@hellm When I try to the pointers thing for VDDCI it's still 0.95v (seen in hwinfo) even though I pointed it to 1.050v on Gigabyte RX 580 BIOS. How do I make it 1.05v for VDDCI?


----------



## hellm

@KLS
ATIflash is necessary for flashing unless you have an external flashtool.
Basically you edit the biosfile, save it, and then flash it onto the rom on the graphics card.
try this:
http://windowsiso.net/windows-10-iso/windows-10-creators-update-1709-download-build-16299-15/

..and you don't have to change vendor, it's completely optional. If you have "UEFI only" activated in your mainboard BIOS you want to copy over the magic UEFI as well, because without the card would be unable to boot with a modded BIOS.

@rootmoto
IMC is not VDDCI, it is some voltage floor for minimum Vcore. So, if you want to change VDDCI, which i think is something no one looked into any further, you have to change some other bytes..

typedef struct _PolarisMemClkDepRecord
{
uint8_t VDDC;
uint16_t VDDCI;
int16_t VDDCGFXOffset;
uint16_t MVDD;
uint32_t MemClk;
uint16_t Reserved;
}

..so, for the 2000MHz State:
0C B6 03 00 00 E8 03 40 0D 03 00 00 00

0C - > "The Pointer" is VDDC, cause it actually points to a VDDC voltage
*B6 03* -> VDDCI -> 0x3B6 = 950mV 
00 00 -> VDDCGFXOffset
E8 03 -> MVDD (1000mV) this is the value PBE reads as mem voltage.. buck controller with no access, so this value is not the voltage for the memory chips (which is 1,5V).
40 0D 03 00-> MemClk (2000MHz x100)
00 00 -> Reserved

this is the same for all 580 and 480 BIOS, only VDDC voltage table has changed, so 0C means 1000mV for a 580 BIOS and 1050mV for the 480 version.


----------



## KLS

hellm said:


> @KLS
> ATIflash is necessary for flashing unless you have an external flashtool.
> Basically you edit the biosfile, save it, and then flash it onto the rom on the graphics card.
> try this:
> http://windowsiso.net/windows-10-iso/windows-10-creators-update-1709-download-build-16299-15/
> 
> ..and you don't have to change vendor, it's completely optional. If you have "UEFI only" activated in your mainboard BIOS you want to copy over the magic UEFI as well, because without the card would be unable to boot with a modded BIOS.


AH ok so no matter if I use a rom from post 1 or 2 or edit the bios manually via post 3 I'll still need to make a usb boot to flash it to the card. I'll make one as soon as I DL 1709 thank you for the link.


----------



## kilogrm70

A new version of AMD/ATI ATIFlash was just released. This version (2.84) supports BIOS flashing for AMD cards under Windows 10 Build 1803. The link is below.

https://www.techpowerup.com/download/ati-atiflash/


----------



## hellm

Last update my friends, all BIOS files are final now. I only cut the wrong "GiB" and the version numbering.. last one is up for half a year now, no issues; and i don't have a Polaris anymore for almost the same amount of time..so..

Again, BIOS files didn't change at all..


----------



## Reprog

Card: PowerColor RX480 Red Devil 8G
Flash IR Controller - card not start(
Original - works fine
Has anyone encountered such a problem?


----------



## DAM20

Reprog said:


> Card: PowerColor RX480 Red Devil 8G
> Flash IR Controller - card not start(
> Original - works fine
> Has anyone encountered such a problem?


Check if secure boot is off and try the bios with stock memory timings.


----------



## Reprog

DAM20 said:


> Check if secure boot is off and try the bios with stock memory timings.


Enable UEFI and works fine)


----------



## kozak0211

Hi, I have asus rx 470 mining with ASP1106D and i want to do vcore offset, but i cant find any datasheet for ASP1106D (RT9984A) sa i dont know what registers i have to set in VOI of my vbios. Could you please send me here datasheet of this controller or tell my how i can add a offset?
This is my stock VOI: Code: 1E 00 03 01 01 03 0E 00 08 96 40 00 00 00 00 00 FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00
Thank you a lot, and sorry for my english 😉


----------



## hellm

ASPxx.. is always some rebrand from Asus. I really don't know what is behind this name, and i have no datasheet from Asus or something like that.

From the voi table.. i can't say what it is. I would have to ask my team member @Vento041, cause i think he knows a little more about the specifics of this table, due to his work on his all-radeon-BIOS-editor.
BTW, it is found here:
https://www.overclock.net/forum/67-...t-another-bios-editor-still-not-finished.html

From what i can tell, the first part looks like from an IR controller, but then completely not because there are whole voltage sub-tables missing, and that is why the table is that short, only 0x1E.

So, first of all you would need the info what kind of controller you have, and then how it is programmed. And what the programming means from a data sheet or something, to figure out what to change. We here only know about the IR3567B and his bigger brother from the Asus Strix, which exact specs also remain a mystery.


----------



## kozak0211

hellm said:


> ASPxx.. is always some rebrand from Asus. I really don't know what is behind this name, and i have no datasheet from Asus or something like that.
> 
> From the voi table.. i can't say what it is. I would have to ask my team member @Vento041, cause i think he knows a little more about the specifics of this table, due to his work on his all-radeon-BIOS-editor.
> BTW, it is found here:
> https://www.overclock.net/forum/67-...t-another-bios-editor-still-not-finished.html
> 
> From what i can tell, the first part looks like from an IR controller, but then completely not because there are whole voltage sub-tables missing, and that is why the table is that short, only 0x1E.
> 
> So, first of all you would need the info what kind of controller you have, and then how it is programmed. And what the programming means from a data sheet or something, to figure out what to change. We here only know about the IR3567B and his bigger brother from the Asus Strix, which exact specs also remain a mystery.


I searched all links from google, and i found link https://www.overclock.net/forum/67-amd-ati/1621800-would-appreciate-help-finding-editing-voltage-offset-rx480-bios-21.html, where in post 206 and 207 they're talking about my problem, but unfortunatly link for datasheet is dead, and user doesn't said how figured out this problem... In another link i found a information about this ASP1106D, where Wolf (i think you know him  ) said that this is a voltage regulator RT8894A from Richtek. I used AIDA and create a dump, and in this dump was written that it is ASP1106D - that's all that i know. I don't know how to start :/


----------



## hellm

kozak0211 said:


> I searched all links from google, and i found link https://www.overclock.net/forum/67-amd-ati/1621800-would-appreciate-help-finding-editing-voltage-offset-rx480-bios-21.html, where in post 206 and 207 they're talking about my problem, but unfortunatly link for datasheet is dead, and user doesn't said how figured out this problem... In another link i found a information about this ASP1106D, where Wolf (i think you know him  ) said that this is a voltage regulator RT8894A from Richtek. I used AIDA and create a dump, and in this dump was written that it is ASP1106D - that's all that i know. I don't know how to start :/


Yes, i do know wolf.  Well, i think i would trust his info, and it is a Richtek RT8894A. If i was buildzoid, i would even find the info i need to make a hardmod, but i found nothing on the registers. To be honest, all infos on the IR controllers, i do have all of that thx to @gupsterg. So i am not really a big help here.

But, if u only want to change Vcore, i can help with that. The maximum voltage (if not capped by the controller) is found in the ASIC_Profiling table, all info you need is found in post#3.


----------



## Vento041

Long time no see oc. forum!


Btw...





kozak0211 said:


> Hi, I have asus rx 470 mining with ASP1106D and i want to do vcore offset, but i cant find any datasheet for ASP1106D (RT9984A) sa i dont know what registers i have to set in VOI of my vbios. Could you please send me here datasheet of this controller or tell my how i can add a offset?
> This is my stock VOI: Code: 1E 00 03 01 01 03 0E 00 08 96 40 00 00 00 00 00 FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00
> Thank you a lot, and sorry for my english 😉



Hello  Can you post your whole bios? Just to be sure


----------



## kozak0211

hellm said:


> Yes, i do know wolf.  Well, i think i would trust his info, and it is a Richtek RT8894A. If i was buildzoid, i would even find the info i need to make a hardmod, but i found nothing on the registers. To be honest, all infos on the IR controllers, i do have all of that thx to @gupsterg. So i am not really a big help here.
> 
> But, if u only want to change Vcore, i can help with that. The maximum voltage (if not capped by the controller) is found in the ASIC_Profiling table, all info you need is found in post#3.


Thank you hellm, i will try it too 



Vento041 said:


> Long time no see oc. forum!
> 
> Btw...
> 
> Hello  Can you post your whole bios? Just to be sure


Yup, i attached zip. Or you want all code here?


----------



## Vento041

@*kozak0211* 


I asked the whole dump because I wanted to be sure to get the whole VOI table... and it's kinda weird... This is the whole structure of your table



Code:


Hex Data:
1E 00 03 01 01 03 0E 00
08 96 40 00 00 00 00 00
FF 00 01 07 0C 00 0E 00
00 00 00 00 00 00

*
First 4 bytes (ATOM Common Table Header)*: 1E 00 03 01 


1E 00 = Table Lenght (1E Little Endian = 30 Bytes)
03 = Table Format Revision
01 = Table Content Revision
 So this table follow this structure definition _ATOM_VOLTAGE_OBJECT_INFO_V3_1 (found here: atombios.h):


Code:


typedef struct  _ATOM_VOLTAGE_OBJECT_INFO_V3_1
{
  ATOM_COMMON_TABLE_HEADER   sHeader;
  ATOM_VOLTAGE_OBJECT_V3     asVoltageObj[3];
   } ATOM_VOLTAGE_OBJECT_INFO_V3_1;

Lets see how objects are structured. Based always on atombios.h a VOI object (ATOM_VOLTAGE_OBJECT_V3) is an union (again see _ATOM_VOLTAGE_OBJECT_V3) of different structs where the correct one is "defined"/"selected" by the "ucVoltageMode" value found inside ATOM_VOLTAGE_OBJECT_HEADER_V3.


*ATOM_VOLTAGE_OBJECT_HEADER_V3 structure (first 4 bytes of every VOI Object V3):*


Code:


typedef struct _ATOM_VOLTAGE_OBJECT_HEADER_V3{
   UCHAR    ucVoltageType;   //Indicate Voltage Source: VDDC, MVDDC, MVDDQ or MVDDCI
   UCHAR    ucVoltageMode;   //Indicate voltage control mode: Init/Set/Leakage/Set phase
   USHORT   usSize;   //Size of Object
  }ATOM_VOLTAGE_OBJECT_HEADER_V3;

And now first "problem"/"weirdness"... This table has always 3 VOI object but yours has only 2 (???? I do not know why):

*1st object (just raw data and header, continue to read for more info**):*


Code:


Hex Data: 01 03 0E 00 08 96 40 00 00 00 00 00 FF 00




Code:


ATOM_VOLTAGE_OBJECT_HEADER_V3: 01 03 0E 00
01 = ucVoltageType
03 = ucVoltageMode -> so this VOI object is a ATOM_I2C_VOLTAGE_OBJECT_V3 (see [URL="https://elixir.bootlin.com/linux/v4.18-rc7/source/drivers/gpu/drm/amd/include/atombios.h"]atombios.h[/URL])
0E 00 = Size (0E Little Endian = 14 Bytes)

*2nd object **(just raw data and header, see ATOM_SVID2_VOLTAGE_OBJECT_V3 inside **atombios.h to know more):*


Code:


Hex Data: 01 07 0C 00 0E 00 00 00 00 00 00 00




Code:


ATOM_VOLTAGE_OBJECT_HEADER_V3: 01 07 0C 00
01 = ucVoltageType
07 = ucVoltageMode -> so  this VOI object is a ATOM_SVID2_VOLTAGE_OBJECT_V3 (see [URL="https://elixir.bootlin.com/linux/v4.18-rc7/source/drivers/gpu/drm/amd/include/atombios.h"]atombios.h[/URL])
0C 00 = Size (0C Little Endian = 12 Bytes)

*What to modify:*
I do not know which value you should use for RT8894A/ASP1106D VRM controllers (I never had them). But if you find something in the internet my best bet would be to modify the first object (by adding data). After the header you have the _ATOM_I2C_VOLTAGE_OBJECT_V3 data (08 96 40 00 00 00 00 00) and* NO* VOLTAGE_LUT_ENTRY (since you can read the "end" marker "FF 00"), basically the VRM is operating a default settings.

*Minor info about what your data inside your _ATOM_I2C_VOLTAGE_OBJECT_V3 means:*


Spoiler



Just for "completeness" you do not really need these infos.



08 = ucVoltageRegulatorId
96 = ucVoltageControlI2cLine
40 = ucVoltageControlAddress
00 = ucVoltageControlOffset
00 = ucVoltageControlFlag
00 00 00 = 3 reserved byte (unused or undocumented?)



 
You should create a new VOLTAGE_LUT_ENTRY by adding 4 bytes before the "FF 00" and they should be set like this "XX 00 YY 00" where XX is the register that you want to write and YY is the value you what to write.

You should also change the VOI object size form 0E to 12 (0E + 04) and the *Table size to 22 (1E + 04), this last thing do it with my ATOMTableResize* or you'll have to update manually the offsets for the tables after this one.

Your updated VOI table should look like this:


Code:


Hex Data:
[COLOR=Lime][B]22[/B] [/COLOR]00 03 01 01 03 [COLOR=Lime][B]12[/B] [/COLOR]00
08 96 40 00 00 00 00 00
[COLOR=Lime][B]XX[/B] [/COLOR][COLOR=PaleGreen]00 [/COLOR][COLOR=Lime][B]YY[/B] [/COLOR][COLOR=PaleGreen]00 [/COLOR]FF 00 01 07
0C 00 0E 00 00 00 00 00
00 00

*Which register and which value?*
I do not know xD. Best "way" to discover it is finding some that already worked on this VRM. "Best" way to do it manually (wild guess, this is not an actual proper guide is just speculation that I'm thinking about right now, all responsibilities on you if you follow this) is to:


 Install HWiNFO, Afterburner and AIDA
Check how much voltage Radeon Settings report for each clock rate
Disable ULPS (could mess readings)
At stock settings but at different loads:
Dump the VRM register with AIDA (multiple times, manually add timestamps possibly)
Track voltages and clock rates with HWiNFO (try to sync your readings to AIDA dump process)
 
Based on you multiple dumps check for values that stay still overtime
Enable unsafe/not-standard voltage control on Afterburner
Increase the voltage (keep fan at max or close to max just to avoid damage)
_Keep in mind that you could damage you card anyway_
_I'll write it again: "this is not an actual proper guide is just speculation that I'm thinking about right now, all responsibilities on you if you follow this"_
_I'll be comfortable to do this on my hardware but I'm not responsible for what you could do with yours_
Anyway rise the voltage (at 0% load to be a bit safer) on afterburner at small steps (trying to trigger the built in I2C feature)
Track changes inside Radeon Settings
Dump the VRM register with AIDA each time
Track voltages with HWiNFO
 
The final dumps should be the most useful
See if some register that previously didn't change, changed this time (at least in one dump, and possibly increased at each step)
Reset the voltage settings to 0 (maybe reboot)
As double check, dumping with AIDA after a reset should leave us with the same set of unchanged register as before


----------



## kozak0211

Vento041 said:


> @*kozak0211*
> 
> 
> I asked the whole dump because I wanted to be sure to get the whole VOI table... and it's kinda weird... This is the whole structure of your table
> 
> 
> 
> Code:
> 
> 
> Hex Data:
> 1E 00 03 01 01 03 0E 00
> 08 96 40 00 00 00 00 00
> FF 00 01 07 0C 00 0E 00
> 00 00 00 00 00 00
> 
> *
> First 4 bytes (ATOM Common Table Header)*: 1E 00 03 01
> 
> 
> 1E 00 = Table Lenght (1E Little Endian = 30 Bytes)
> 03 = Table Format Revision
> 01 = Table Content Revision
> So this table follow this structure definition _ATOM_VOLTAGE_OBJECT_INFO_V3_1 (found here: atombios.h):
> 
> 
> Code:
> 
> 
> typedef struct  _ATOM_VOLTAGE_OBJECT_INFO_V3_1
> {
> ATOM_COMMON_TABLE_HEADER   sHeader;
> ATOM_VOLTAGE_OBJECT_V3     asVoltageObj[3];
> } ATOM_VOLTAGE_OBJECT_INFO_V3_1;
> 
> Lets see how objects are structured. Based always on atombios.h a VOI object (ATOM_VOLTAGE_OBJECT_V3) is an union (again see _ATOM_VOLTAGE_OBJECT_V3) of different structs where the correct one is "defined"/"selected" by the "ucVoltageMode" value found inside ATOM_VOLTAGE_OBJECT_HEADER_V3.
> 
> 
> *ATOM_VOLTAGE_OBJECT_HEADER_V3 structure (first 4 bytes of every VOI Object V3):*
> 
> 
> Code:
> 
> 
> typedef struct _ATOM_VOLTAGE_OBJECT_HEADER_V3{
> UCHAR    ucVoltageType;   //Indicate Voltage Source: VDDC, MVDDC, MVDDQ or MVDDCI
> UCHAR    ucVoltageMode;   //Indicate voltage control mode: Init/Set/Leakage/Set phase
> USHORT   usSize;   //Size of Object
> }ATOM_VOLTAGE_OBJECT_HEADER_V3;
> 
> And now first "problem"/"weirdness"... This table has always 3 VOI object but yours has only 2 (???? I do not know why):
> 
> *1st object (just raw data and header, continue to read for more info**):*
> 
> 
> Code:
> 
> 
> Hex Data: 01 03 0E 00 08 96 40 00 00 00 00 00 FF 00
> 
> 
> 
> 
> Code:
> 
> 
> ATOM_VOLTAGE_OBJECT_HEADER_V3: 01 03 0E 00
> 01 = ucVoltageType
> 03 = ucVoltageMode -> so this VOI object is a ATOM_I2C_VOLTAGE_OBJECT_V3 (see [URL="https://elixir.bootlin.com/linux/v4.18-rc7/source/drivers/gpu/drm/amd/include/atombios.h"]atombios.h[/URL])
> 0E 00 = Size (0E Little Endian = 14 Bytes)
> 
> *2nd object **(just raw data and header, see ATOM_SVID2_VOLTAGE_OBJECT_V3 inside **atombios.h to know more):*
> 
> 
> Code:
> 
> 
> Hex Data: 01 07 0C 00 0E 00 00 00 00 00 00 00
> 
> 
> 
> 
> Code:
> 
> 
> ATOM_VOLTAGE_OBJECT_HEADER_V3: 01 07 0C 00
> 01 = ucVoltageType
> 07 = ucVoltageMode -> so  this VOI object is a ATOM_SVID2_VOLTAGE_OBJECT_V3 (see [URL="https://elixir.bootlin.com/linux/v4.18-rc7/source/drivers/gpu/drm/amd/include/atombios.h"]atombios.h[/URL])
> 0C 00 = Size (0C Little Endian = 12 Bytes)
> 
> *What to modify:*
> I do not know which value you should use for RT8894A/ASP1106D VRM controllers (I never had them). But if you find something in the internet my best bet would be to modify the first object (by adding data). After the header you have the _ATOM_I2C_VOLTAGE_OBJECT_V3 data (08 96 40 00 00 00 00 00) and* NO* VOLTAGE_LUT_ENTRY (since you can read the "end" marker "FF 00"), basically the VRM is operating a default settings.
> 
> You should create a new VOLTAGE_LUT_ENTRY by adding 4 bytes before the "FF 00" and they should be set like this "XX 00 YY 00" where XX is the register that you want to write and YY is the value you what to write.
> 
> You should also change the VOI object size form 0E to 12 (0E + 04) and the *Table size to 22 (1E + 04), this last thing do it with my ATOMTableResize* or you'll have to update manually the offsets for the tables after this one.
> 
> Your updated VOI table should look like this:
> 
> 
> Code:
> 
> 
> Hex Data:
> [COLOR=Lime][B]22[/B] [/COLOR]00 03 01 01 03 [COLOR=Lime][B]12[/B] [/COLOR]00
> 08 96 40 00 00 00 00 00
> [COLOR=Lime][B]XX[/B] [/COLOR][COLOR=PaleGreen]00 [/COLOR][COLOR=Lime][B]YY[/B] [/COLOR][COLOR=PaleGreen]00 [/COLOR]FF 00 01 07
> 0C 00 0E 00 00 00 00 00
> 00 00
> 
> *Which register and which value?*
> I do not know xD. Best "way" to discover it is finding some that already worked on this VRM. "Best" way to do it manually (wild guess, this is not an actual proper guide is just speculation that I'm thinking about right now, all responsibilities on you if you follow this) is to:
> 
> 
> Install HWiNFO, Afterburner and AIDA
> Check how much voltage Radeon Settings report for each clock rate
> Disable ULPS (could mess readings)
> At stock settings but at different loads:
> Dump the VRM register with AIDA (multiple times, manually add timestamps possibly)
> Track voltages and clock rates with HWiNFO (try to sync your readings to AIDA dump process)
> 
> Based on you multiple dumps check for values that stay still overtime
> Enable unsafe/not-standard voltage control on Afterburner
> Increase the voltage (keep fan at max or close to max just to avoid damage)
> _Keep in mind that you could damage you card anyway_
> _I'll write it again: "this is not an actual proper guide is just speculation that I'm thinking about right now, all responsibilities on you if you follow this"_
> _I'll be comfortable to do this on my hardware but I'm not responsible for what you could do with yours_
> Anyway rise the voltage (at 0% load to be a bit safer) on afterburner at small steps (trying to trigger the built in I2C feature)
> Track changes inside Radeon Settings
> Dump the VRM register with AIDA each time
> Track voltages with HWiNFO
> 
> The final dumps should be the most useful
> See if some register that previously didn't change, changed this time (at least in one dump, and possibly increased at each step)
> Reset the voltage settings to 0 (maybe reboot)
> As double check, dumping with AIDA after a reset should leave us with the same set of unchanged register as before


Thank you so much for this Super Tutorial, but i know how to set a offset in hex (but maybe someone on this forum don't so i'm sure that they will thank you too for this post  ) i don't know which register i have to set  . I will try your method, but i'm afraid that i can't change voltage in MSI Afterburner even if i change in config unoficiall overclocking to "1". I don't know why i can't manipulate voltage from MSIA on all my cards is the same problem. Maybe i'm doing something wrong?


----------



## Vento041

@kozak0211


do not quote the whole post xD it's too long.


btw I wrote about afterburner because I know that it could also use I2C, try other software. Btw the whole process can still be useful to narrow down the possible set of register to modify


----------



## hellm

Real nice work! Thx! :thumb: ..and nice to have you back 

..and nice there is still some life here. I can upload files again, too. This might even get a usable forum again, after all.


----------



## HyperZ

Broken uefi after timing mod, need help please. I'm noob at hex editing so can someone do the 'magic uefi' fix for me please? Much appreciated!


----------



## hellm

For a 580 with the newer GOP versions, it is just copy&paste. Nothing else.. but i had the time.


----------



## HyperZ

hellm said:


> For a 580 with the newer GOP versions, it is just copy&paste. Nothing else.. but i had the time.


You sir, are a genius. Much appreciated!


----------



## hellm

I applied lordkag's hack to the newest UEFI/GOP version 1.66.. found on the recently released new Polaris product line from MSI.

Feel free to try it. If there are no issues i might update the files again. Even if i am already retired and the BIOS files are final now.. who cares, right?

Anyway, download link is found in post#3.


----------



## kozak0211

@hellm @Vento041

I tryed check manually what registers are changing by rising voltage, but aida dumps are weird... before changing voltage i dumped twice and after changing voltage i dumped twice and i've compared this dumps. All dumps was differend readings, don't know why. BTW i'm found a datasheet from this richtek voltage regulator.










Adress 0x00, so...

If my VOI is: 1E 00 03 01 01 03 0E 00 08 96 40 00 00 00 00 00 FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00

... i have to add 4 bytes like with "NCP81022" and "IR3565B" before "FF 00 01 07", but now i've got a problem. If 0x00 is this register, which i'm going to set, my VOI MOD (-100mV Offset) will be: 

1E 00 03 01 01 03 0E 00 08 96 40 00 00 00 00 00 *00 00 F0 00* FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00 ? (yes i know about VOI lenght and pointer)

I don't think so... or maybe i'm wrong. Could you tell me how i have to read this datasheet? This adress 0x00... it doesn't fit i think.


----------



## hellm

0x00 is just the first register, and it is 1 byte long. One single byte is usually displayed as a two digit hex value, but can also be viewed as a binary value with 8 bits. And this would be bits 0-7.
bits 2 to 5 = 0 and bits 1 and 0 = 0 means you have also a hex value of 0x00; so.. 4x bytes 0x00.. with 0xF0 you would have 1111 0000 in binary and that means you have set the two unimplemented bist 6 and 7 as well to 1, and bits 4 and 5. I guess that wasn't intended.

I also don't know how to edit the ATOM_I2C_VOLTAGE_OBJECT_V3 if necessary, but register 0x00 is not the only register value. We have to add at least the amount of offset, and that is called I2C_INI_OFS_VDD, at least with bits 0 and 1 being "00". Or we use "I2C_OFS_VDD", then we have to go with "10", which should also be default. That way we don't even have to worry about bits 2-5 of this register.

So, what we do need to find is I2C_OFS_VDD. And then we have to add this info to the voltage object. but i don't know about the 08 96 40 (08 is also with IR controllers, ref has 08 96 10, asus strix ..60 (i think even 4 v_objects)). basically you have to fix the lenght of the sub table and the table as well, then adding 4 bytes wouldn't be a problem. Integrating in your BIOS is another thing, we have to add bytes, cut them elsewhere and fix all table offsets.
but it would look like this:
*22* 00 03 01 01 03 *12* 00 08 96 40 00 00 00 00 00 *00 00 00 00* FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00
..well this would set reg 0x00 to 0; was meant as a placeholder, might be 0x02 as default, might not. i don't know about a fix mode or anything, so i wouldn't set it blind. i2c dumps about this specific register should tell us more.

I guess what is meant by register 1-5 and address 0x00, that this is register 0 to 4 or 0x00 to 0x04. So maybe 0x04 is the i2c_ofs_vdd voltage offset register? i2c-dump? maybe trying to set the offset register +1, since register 0x00 should be at least 0x02 at default, it should work.


----------



## Vento041

@kozak0211
What hellm wrote but also tells us which defauls values is inside your 00 register


----------



## kozak0211

Aha! I think i begin to understand that Hellm, i think...  

So... 0x02 it is in binary 00 00 00 10, yes? By typing 0x02 i set default... something... and i have to set another register after 0x02 about I2C_OFS_VDD? 

I searched in datasheet this...  










So what, if i set 0x02, now i have to set that i need negative offset and value of this offset? Or i thinking wrong?

I read again what Hellm said and no... i don't understand yet 

I will dump via MSI AB soon.


----------



## hellm

Yes and No! we don't know yet if it is 0x02 or higher, since we don't know about the default values of bits 2 to 5. So, please be carefull, first we have to read what default is, an i2c dump?

You have understood enough, we are making progress. Can you give me a link to that datasheet?

..but you found the register. Maybe all we need, and we can completely forget about register 0x00. We should still investigate it, though.. i2cdumps may vary but since we know what to look for.. 

ok there is a bit for the positive/negative setting. And i guess it is register 0x11 then, and registers 1-11.. whatever, we need again a i2c dump to be sure.

..so if we have x * 6.25 = value, then for 25mV we have x = 4; like for 0x7E(=126) x 6.25 = 787,5mV
but then we have to shift it i guess, since this is only bits 0 to 6, no wait bit 7 is the highest, so this would be:
0000 0100 and a negative offset unless we switched bit 7 to 1:
1000 0100 and that would be 0x84


----------



## Vento041

@kozak0211 may you share that PDF? I can't find it


----------



## kozak0211

I understand, i attached two dumps - one from MSI AB, second from AIDA, and datasheet (thx Wolf0).

But i don't understand this type of offset, it's different... i mean what is this 787,5mV? This is value after offset? So 0x7E it means that offset is -212,5mV?


----------



## hellm

well if wolf trusted you with this data sheet, better take it offline. 

Then with the 787.. no why would it be.. well yes, it would be also offset in idle, but this uge negative offset would crash the card. but not damage it, would be just unstable.
When you go for the 1 on bit 7 then, a positive offset that high will kill your GPU immediately. So better really carefull with this.


----------



## kozak0211

hellm said:


> well if wolf trusted you with this data sheet, better take it offline.
> 
> Then with the 787.. no why would it be.. well yes, it would be also offset in idle, but this uge negative offset would crash the card. but not damage it, would be just unstable.
> When you go for the 1 on bit 7 then, a positive offset that high will kill your GPU immediately. So better really carefull with this.


True, i didn't think about it  

I understand it, ok. So what? It seems to be that we don't need to set that 0x00 value if it is "default"? Only this register that i posted recently? Or you checking this?


----------



## hellm

kozak0211 said:


> True, i didn't think about it
> 
> I understand it, ok. So what? It seems to be that we don't need to set that 0x00 value if it is "default"? Only this register that i posted recently? Or you checking this?


so.. on page 24 you see a complete overview. So it is
0x11 I2C_OFS_VDD
which is exactly what we need.

and we even have a default for the 0x00, but then again, we don't know about the default setting of this value on this specific graphics card. But i guess it is not 0x02:
0x00 I2C_OFS_AUTO...EN_1 OFS_EN_1 -> default: 0x15 --010101
..and it gets worse, 01 for the last 2 bytes is here default (which makes no sense, since 10 is marked on the other page as default for bits 0 and 1).

But we now have an i2cdump, so everything is fine:
11 01 00 00 2A 00 2A 00 2A 3C 00 0E 03 20 00 44 
44 00 00 58 00 00 00 00 00 00 00 00 00 00 00 00 
11 01 00 00 2A 00 2A 00 2A 10 00 0E 03 20 00 44 
00 00 58 00 00 00 00 00 00 00 00 00 00 00 00 00 
01 09 BC B4 00 05 01 03 05 00 00 00 00 00 00 00 
0F 07 55 FF 00 00 00 00 00 00 00 00 00 00 00 00 
2E 24 22 03 00 00 00 00 00 00 00 00 00 00 00 00 
....

so register 0x00, which they named 1-5, but let's stick to the adress 0x00 to make it simple for us:
0x11 in binary:
00010001‬
means bit 5 is set to 1 and bit 0+1 is set to "01"; and this is what we don't want. But we can safely set it the way we want now, cause we now about the other bits.
so we have to enable bit 5 and set bit 1+0 to 10:
00010010‬ -> 0x12

And then, 25mV for a start:
4x 6.25:
0000 0100 and then the positive sign bit7 to 1 -> 1000 0100 = 0x84

so two register values to set:
0x00 => 0x12
0x11 => 0x84

and our new voi table would be:
26 00 03 01 01 03 16 00 08 96 40 00 00 00 00 00 00 00 12 00 11 00 84 00 FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00

you have to edit the table length, though. Vento can help you with this one:
[GUI TOOL] ATOMTableResize


----------



## kozak0211

Ok, so... i think i understand all, but i got few questions  

What did you find in this i2cdump? You was looking confirmation about what is this default setting, yes? 
After that confirmation turned out, that 0x00 address have enabled bit 5 " Enable VDD rail VFIX mode ", and bit 01 " VDD=VID + power scenario offset.(Ignore all SVI2 offset trim command) ". But, we need to enable offset, so we had to change first two bits to 10 " VDD=VID + I2C_OFS_VDD.(Ignore all SVI2 offset trim command)(default) ", which means we "enabled" I2C_OFS_VDD, yes? So final register was 0x12 (00010010 binary), after that we go to I2C_OFS_VDD, where we had to set positive/negative offset by operating bit 7, and value of this offset:

0000 0100 = 4 x6,25mv

So, for example, when i want to set -100mV offset, i have to set in binary: 

100mV / 6,25mV = 16, so 0001 0000, and negative offset so 7 bit = 0, am i right?


----------



## hellm

Yes, u r right. 

oh, and copy-paste this i2c dump in HxD and you get the idea.. the address is the offest. So, address 0x11 means second row, second byte. 0x00 is the first one.


----------



## kozak0211

hellm said:


> Yes, u r right.
> 
> oh, and copy-paste this i2c dump in HxD and you get the idea.. the address is the offest. So, address 0x11 means second row, second byte. 0x00 is the first one.


Thank you very much Hellm  

...but i flashed vbios with this offset and it doesnt work :/ i do cold boot, and nothing, VDDC about 1V. Could you please check this bios, that i mod this bios correct?


----------



## hellm

hm. if Vento's ATOMTableResize worked properly.. why are all your states in the PowerPlay at 03?

i will implement it manually, wait..

nope,all is perfect, right table offsets. might be something you did? we should just check if this works, before we do anything else. There might be something with the three bytes "08 96 40". i don't know, we could trial and error, or Vento has an idea about those bytes.


----------



## kozak0211

Hmm, i didn't use Vento'S ATOMTableResize because i did it manually, i learned it from gupstergs tutorial. I think i moded this bios propelly. Stages are 65283 because i tryied undervolt with diferent methods and i forget change it.


----------



## hellm

ok, then we might have a problem with the voi table. as i said, the "08 96 40" thing.. you can trial and error by trying 10 or 60 i never saw anything else with 08 96..


----------



## kozak0211

hellm said:


> ok, then we might have a problem with the voi table. as i said, the "08 96 40" thing..



Hmm, i'm flashed again with a DPM stage 7 = 1000mv, GPU-Z show under load 0,975mV VDDC, like offset was -25mv, not +... weird


----------



## hellm

so it works then? but not the right offset? i2c dump?

try and do no mods instead of the voi table. one by one..


----------



## kozak0211

I think it's worked, but i would have to check with different offset or something.


----------



## hellm

kozak0211 said:


> I think it's worked, but i would have to check with different offset or something.
> [..]


it is a good thing it boots, but it didn't work. As i said, pls don't do any other mods, leave the BIOS vanilla except of the voi table mod.

here is the new i2cdump:
*11* 01 00 00 2A 00 2A 00 2A 3C 00 0E 03 20 00 44 
44 *00* 00 58 00 00 00 00 00 00 00 00 00 00 00 00 
11 01 00 00 2A 00 2A 00 2A 10 00 0E 03 20 00 44 
00 00 58 00 00 00 00 00 00 00 00 00 00 00 00 00 
01 0A BC B4 00 05 01 03 05 00 00 00 00 00 00 00 
0F 07 55 FF 00 00 00 00 00 00 00 00 00 00 00 00 
2E 24 22 03 00 00 00 00 00 00 00 00 00 00 00 00 
...
reg 0x00 is still at 0x11
reg 0x11 is still at 0x00

so it did not work. try 08 96 10 or 08 96 60 or even 20 or something. trial and error, might not even boot, be aware of that.


----------



## kozak0211

I try 10, 20, 60 and nothing


----------



## hellm

because it is locked, i guess. leave that byte at 0x40 in 08 96 40.

i have a better idea, page 28:
REGISTER 1-4 : I2C_LOCK_IND - I2C REGISTER LOCK INDICATOR REGISTER (ADDRESS : 0x53)
bit 7 to bit 0:
I2C_LOCK_IND_7 : I2C_LOCK_IND_0 : I2C register lock indicator bits
0x5A : Unlock all I2C registers for I2C serial write.
Others : Lock all I2C registers and update register data to controller

This register 0x53 has the value "FF", we need to set it to 0x5A.

So, we have a new voi table:
2A 00 03 01 01 03 1A 00 08 96 40 00 00 00 00 00 53 00 5A 00 00 00 12 00 11 00 84 00 FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00
..but i don't think this is all, since other values are to "update register data to controller" as well, not only for the lock.
so finally we have to add another 4 bytes:
2E 00 03 01 01 03 1E 00 08 96 40 00 00 00 00 00 53 00 5A 00 00 00 12 00 11 00 84 00 53 00 FF 00 FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00

..and that would raise another problem. BIOS image length is too long now, but we can also fix this one. The first two bytes of image1 (image2 is gop) are the "55 AA" standard, then comes the image length in x * 0x200. So, in your case, the byte at offset 0x02 of your BIOS is 0x73. That means 0x200 * 0x73 = E600. And if u scroll down, that is where image2, the gop, starts.
We need to change the length to 0x74 * 0x200, and overwrite the bytes from 0xE600 including 0xE7FF with "FF" placeholders. Then copy the UEFI/GOP file starting at 0xE800 instead of 0xE600, and u have now plenty of room cutting "FF" placeholders while adding bytes to whatever table.


----------



## kozak0211

I understand, but if we set register 0x53 to 5A, so unlock, and after that again 0x53 to FF, so that will not it lock again? You are the boss here, but i'm simply asking  



> ..and that would raise another problem. BIOS image length is too long now, but we can also fix this one. The first two bytes of image1 (image2 is gop) are the "55 AA" standard, then comes the image length in x * 0x200. So, in your case, the byte at offset 0x02 of your BIOS is 0x73. That means 0x200 * 0x73 = E600. And if u scroll down, that is where image2, the gop, starts.
> We need to change the length to 0x74 * 0x200, and overwrite the bytes from 0xE600 including 0xE7FF with "FF" placeholders. Then copy the UEFI/GOP file starting at 0xE800 instead of 0xE600, and u have now plenty of room cutting "FF" placeholders while adding bytes to whatever table.


I don't get it, sorry. U mean if we raise a VOI lenght about 16 bytes relative to stock VOI, i have to remove 16 bytes of "FF" placeholders in "gop" section like in gupsergh tutorial?


----------



## mynm

hellm said:


> so it did not work. try 08 96 10 or 08 96 60 or even 20 or something. trial and error, might not even boot, be aware of that.


Hi, I think that if the I2C address, that you see at the I2C dump, is 20 (0010 0000), the value for the VOI is 40 (0100 0000), because is the I2C address including the read/write flag in the first right bit, like is explained here by Unwinder: http://www.xtremesystems.org/forums...oltage-Tuner&p=3604376&viewfull=1#post3604376 

This is working for my Sapphire 380 but only with some Asus bioses. So in 380 gpus the use of the voltage offset in the VOI is not enabled only into the VOI. I don't know if in your case is the same.

I know other ways to change voltages with the ATOM_ASIC_PROFILING_INFO table like I explined here: https://www.overclock.net/forum/26485216-post4736.html , in case if you want to test, I don't have a polaris gpu to test, but are working on my 380. 

But I thing the using watman or OverdriveNTool, if they are working, is better for changing voltages.


----------



## hellm

thx :thumb:

I have from a very good source that voltage overridden via powerplay has some consequences. Someone tested it with a DMM on a Vega, no wasn't buildzoid, comes from a german hardware guru. He said this could lead very likely to instability, could run for hours, could crash after a few minutes. Something with LLC and what not, i don't know anymore and didn't had this problem with my Polaris. But i did that kind of OV before we had to switch to manual voltage, it was there after boot.
And i don't have any Radeon to test it, i will have to wait for Navi.

@kozak0211
Yes, i you have to cut the additional bytes by deleting the FF placeholders before the UEFI/GOP part. Just like gupsterg explained and u already did.
If you want to add 16 bytes to the voi table, you gonna run out of FF placeholders with your BIOS. I just told you how to shift the GOP 200 bytes down, so you have the space to add those bytes. You can also try Vento's tool.


----------



## mynm

You are welcome, thanks for the info. 

Wattman and OverdriveNTool aren't working for changing voltages for my 380 since two years ago, wattman was working at the first wattman drivers and I had that instability with the 380.

VOI offset voltage is not working well for me, I need ~50mv more for the same core clock than with the same Afterburner voltage offset.

Changing 6528X values into bios powerplay I see the same, i need ~50mv more.

The only ways that is working for my is using ATOM_ASIC_PROFILING_INFO table, plus some edits into powerplay to change the wattman memory voltage if the minimum EVV is changed, or using Afterbuner.

If VOI offset voltage is not working, if kozak0211 wants, and if his gpu have dual bios, I will try to help to change voltages with the ATOM_ASIC_PROFILING_INFO table.


----------



## kozak0211

@hellm

I don't want to damage something in bios, so i want to be sure that i'm doing all right.

So... from E600 to E7FF - this is my GOP, yes? 



And now...i have problem with this FF placeholders. I copy this GOP, and what? I have to type a lot of "FF" in this space (E600 - E7FF) ? Or i have to go down the bios, where are a lot of this FF placeholders, cut for example from 2B600 to 2B7FF, and paste overwrite to E600-E7FF?? After that i go to E800 and paste GOP copied before? Sorry for this noob question, but i trying to figure out all this.


----------



## hellm

No. There are multiple GOP versions in post#3 and a little more info. On the vanilla version of your BIOS, the GOP is 0x73 * 0x200 = 0xE600 bytes long. 3rd byte after 55 AA, remember?
The "regular" BIOS (image1) also beginns with 55 AA, and the third byte is also 0x73. It is the file length for image1, and also the start offset for the GOP/UEFI image. Change this byte to 0x74 and shift the whole GOP (for UEFI boot u will need the magic versions) from adress 0xE600 to 0xE800. Then overwrite the gap with FF, and that would be E600-E7FF, if you didn't add bytes first.

In your pic u already changed file length by adding 16 bytes before the GOP, which now starts at 0xE610. You will have to fix this, and you can't because image 1 is already more than 0xE600 bytes (the 55 AA xx thing..). Better start from the beginning, then you will get behind it. Whole idea is that everything has the correct length/offset and overall file length stays the same.


----------



## kozak0211

Ok. Sorry for this all questions and problems, but my english isn't good + my knowledge isn't good too so in result it is disaster  

I think i got it. I started with original stock bios and first i decided to take care of this GOP and placeholders. 

So, i changed this 3rd byte of the beginning my bios to 0x74, after that i go to the E600, and there i changed 3rd byte to 0x74. Next, i copied all GOP like on the picture:



After that, i went to E800 and did paste write copied before GOP, and from E600 to E7FF i placed "FF", so finally my "mods" look like on the picture:



It is okey now? Can i now change a VOI? 

I attached a bios, i would be grateful, if you check that i didn't commit any mistake. THX!


----------



## hellm

kozak0211 said:


> [..]It is okey now? Can i now change a VOI? [..]


we almost got it. Two simple things you need to understand first. We have 2 images inside the BIOS, one contains all the VESA standard BIOS stuff and the command/data tables. The other image is the GOP/UEFI.
image1: data/command tables and basic stuff
image2: GOP/UEFI
Now, at the beginning of each image we have the header, and the first 2 bytes are always 55 AA. And again, 3rd byte is the length * 0x200.

So, if u change the length from image1 from 0xE600 to 0xE800, that means the system will look at offset 0xE800 (instead of 0xE600) for the GOP. Because offset 0x00-0xE7FF are exact 0xE800 bytes. There is no need to change length of image2.
Also, if you want to shift the GOP image, you don't write 200 bytes over another or something, you have to shift the whole image of 0xE600 bytes.

Anyway, first part was right, you change the 3rd byte of the BIOS from 0x73 to 0x74 (once, only image1). Then overwrite E600-E7FF with FF. You will need the GOP file from post#3 anyway, as i said. Go there, download the latest magic GOP file and copy all the bytes, then write it starting at offset 0xE800.


----------



## kozak0211

OK, thanks for explain this, i got it. I changed 3rd byte to 0x74 at the beginning my bios, i went to the GOP again, and i write "FF" from E600 to E7FF, after that i downloaded the lastest GOP. In HxD i selected ALL bytes from this downloaded GOP, copy, and i went to my bios to E800, and did paste write. It is okey? I attached a .rom


----------



## hellm

yes, now u can start modding. :thumb:


----------



## kozak0211

hellm said:


> yes, now u can start modding. :thumb:


Last question Hellm  

Could you please check this modded vbios? I changed from stock VOI:

1E 00 03 01 01 03 0E 00 08 96 40 00 00 00 00 00 FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00

...to mod VOI:

2E 00 03 01 01 03 1E 00 08 96 40 00 00 00 00 00 53 00 5A 00 00 00 12 00 11 00 84 00 53 00 FF 00 FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00

Next i deleted 16 this "FF" placeholders near GOP, and after that i searched: A6 00 01 01 (length F0 including A6 00 01 01) and copied this to the table calculator, and now i have a question... in table calculator program asking me "length difference of table in hex", so i typing "10" yes? I think this is logic, but i have to be sure of that before flashing  I typed 10, paste write table mod in vbios and saved it. 

This is my comparsion before / after VOI MOD via WinMerge:


----------



## hellm

looks good, and if u entered "10" (0x10), which is 16 in hex, everything should be ok. ..and switch position, because the little endian thing. You also cut the right amount of 0xFF bytes before the GOP, and latter starts at the right offset, overall file length is unchanged.

so, everything should be fine. With 0x84 you should have now +25mV. I think a good value for testing, -100mV might be unstable, we don't know yet. Thing with offset is, it is always there, also in the lower states. if you change max Vcore via ASIC_Profiling, might be different, you can edit min and max Vcore there.. I don't know about crazy mining mods (like renaming every state to 03..) or heavy undervolting, so i can't say for sure.


----------



## kozak0211

@hellm

Hmm, i flashed and i don't know, that offset works or no... GPU-Z shows 0,8V and jumping to 0,8187V like in the picture:



Under load from 1,0V to 1,0063V like in the picture:



I attached dumps.


----------



## hellm

*12* 01 00 00 2A 00 2A 00 2A 3C 00 0E 03 20 00 44 
44 *84* 00 58 00 00 00 00 00 00 00 00 00 00 00 00 
11 01 00 00 2A 00 2A 00 2A 10 00 0E 03 20 00 44 
00 00 58 00 00 00 00 00 00 00 00 00 00 00 00 00 
01 0A BA B4 00 05 01 03 05 00 00 00 00 00 00 00 
0F 07 55 FF 00 00 00 00 00 00 00 00 00 00 00 00 
...

it did work! :thumbsups

..at least the i2c programming. So, you can edit reg 0x11 now by entering different offsets. Should change the Vcore, or we have to edit reg 0x00 to other values or something. But we clearly are able to programm the controller now.


----------



## kozak0211

Really?!  Yuhuuu! I will try do the negative offset -50mV. So, i have to change in reg 0x11 a byte 0x84 to hmm 0x08, true?

@edit

It worked hellm! You are my hero! THANK YOU VERY MUCH! Thank you for your patience, thank you for share your knowledge and for your selfless help! I appreciate!


----------



## hellm

Yeah, i know. World doesn't appreciate it that way, though. 
No, i take 10%. Seriously. :biggrinsm

Well, i guess that is the community gupsterg and others build. :grouphug:
We do this out of fun. And everyone should own their hardware, even if it is a graphics card. We still don't know how to crack the 256 Byte signature code thing of Vega. But maybe something changes in the future, i have still hope. If they would put that effort in methods to mark the card as modded, all warranty issues would be gone. But we don't lend hardware because of customer rights. That is bull....


----------



## adiif1

how to manually force the fans to keep on going 45% all the time?

i have rx480 strix 8gb samsung


----------



## hellm

adiif1 said:


> how to manually force the fans to keep on going 45% all the time?
> 
> i have rx480 strix 8gb samsung


That is a very annoying and dangerous mod, you want to do here. I hope you thought this through..

I was on watercooling, so i can't really give good advice on fan stuff. But i think idle PWM has to be 45%, obviously, and then i would try to find a cap, a max value, that would work. Or disable fuzzy and equal everything..


----------



## adiif1

hellm said:


> That is a very annoying and dangerous mod, you want to do here. I hope you thought this through..
> 
> I was on watercooling, so i can't really give good advice on fan stuff. But i think idle PWM has to be 45%, obviously, and then i would try to find a cap, a max value, that would work. Or disable fuzzy and equal everything..



At the moment i use hackintosh and can't set fan speed :/


----------



## hellm

To cut the ability for the fan to spin up when needed.. that could end really bad.

I would recommend to switch to legacy fan mode. Then you should be able to do somewhat of a fan curve (grey box). Again, i can't say for sure, since i had water cooling and never paid much attention to this fan table.


----------



## iakoboss7

hellm said:


> Original Conversions RX 480 -> RX 580 ..based on the original 480 bios. It behaves like a real 580 BIOS. With all the extra ports working.
> 
> sub-vendor AMD/ATI (reference only)
> added 1000MHz memory step
> lowered idle voltage to 750mV
> fixed GOP/UEFI ("secure boot" has to be disabled)
> 1200mV, 1340MHz, powerlimits at RX580 stock
> PBE editable; UEFI will still work afterwards
> Sapphire RX480 Nitro+ 8G


Hello,

the "Sapphire RX480 Nitro+ 8G" is the one with 1306MHz Boost Clock? (SKU: 11260-07).

if yes,
do you know if its based on this: https://www.techpowerup.com/vgabios/187363/sapphire-rx480-8192-160921
or this?: https://www.techpowerup.com/vgabios/185767/sapphire-rx480-8192-160809

thank you


----------



## PhukngHardToReg

Hello!

Similar to post #60


> I have noticed ever since flashing the new bios, under the same clock and voltage my 3DMark score has dropped about 700-800 on the graphics score.


My XFX 470D 4G Samsung (1792SP Chinese version, similar to black editon) that flashed to XFX 480 4G Hynix ( 2048sp unlocked) has been working fine for a year. Recently I flash it to 580 using original conversion in order to get better fan strategy without driver patching, but found 3DMark FSE score dropped form 59xx stable to 56xx average (varies from 55xx to 59xx). What I modified is definitely "original"——only C6 to E6 and Elesmere to Polaris20. And I'm pretty sure that no temp nor power throttling is performed.



> there is also a funny story to this, with the original XFX BE reference BIOS (which had a bug in graphics test 2 firestrike) and the updated version without csm bug from xfx themselves. The update had less FPS in test 2, therefore a little lower score, but it was everything as it should be.


Yes it drops about 1 fps. Maybe this bug can be fixed by the driver(DDU cleaned) when 580 detected?

How can I make it as stable as the 480 BIOS ?


----------



## hellm

@iakoboss7
It is the Nitro+, not the Nitro without the +, this one has a different PCB, similar to newer "Pulse" models. It shouldn't matter if you have the OC version or not, but it has to be the same card (PCB).

I used this version, and never did an update (BIOS build# is still the same, i never change this):
https://www.techpowerup.com/vgabios/185322/sapphire-rx480-8192-160713

@PhukngHardToReg
First question, yyou got lucky that the Hynix BIOS must have supported Samsung vram as well. Else you would have seen nothing but a black screen.
You are saying, that on your chinese 470D you are able to unlock a few more shaders (up to 470)? That is awesome, and i guess similar to the 460 unlocks.
FSE score shouldn't drop, I don't know the reason. It is not unusual that there is some difference, due to some driver things. It changed over time, now the 580 BIOS is faster than the 480 one, i don't know if and how that affects any conversions of 480 BIOSs. But shouldn't be a 300 points difference anyway.. wait, maybe some shaders locked again? If you used your original BIOS, that is the reason, less shaders means a lower score.

The CSM update BIOS is used in the original conversion for the reference BIOS. They fixed something, and as i said 580 BIOSs are faster now. Affects only the reference card, never flash a BIOS that is meant for a different card. The voltage controller, even if it is the same, has never the same programming. Could be very, very, bad over time. The original conversion should be as stable as the 480 one.

mynm has posted the table where the shaders lock is found some time ago:
https://www.overclock.net/forum/67-...-896-1024-stream-processors.html#post25706080
We compare the TV1OutputControl table to any other and chances are pretty high we are gonna find the unlock bytes. Then you could make a conversion with unlocked shaders.


----------



## PhukngHardToReg

hellm said:


> @iakoboss7
> It is the Nitro+, not the Nitro without the +, this one has a different PCB, similar to newer "Pulse" models. It shouldn't matter if you have the OC version or not, but it has to be the same card (PCB).
> 
> I used this version, and never did an update (BIOS build# is still the same, i never change this):
> https://www.techpowerup.com/vgabios/185322/sapphire-rx480-8192-160713
> 
> @PhukngHardToReg
> First question, yyou got lucky that the Hynix BIOS must have supported Samsung vram as well. Else you would have seen nothing but a black screen.
> You are saying, that on your chinese 470D you are able to unlock a few more shaders (up to 470)? That is awesome, and i guess similar to the 460 unlocks.
> FSE score shouldn't drop, I don't know the reason. It is not unusual that there is some difference, due to some driver things. It changed over time, now the 580 BIOS is faster than the 480 one, i don't know if and how that affects any conversions of 480 BIOSs. But shouldn't be a 300 points difference anyway.. wait, maybe some shaders locked again? If you used your original BIOS, that is the reason, less shaders means a lower score.
> 
> The CSM update BIOS is used in the original conversion for the reference BIOS. They fixed something, and as i said 580 BIOSs are faster now. Affects only the reference card, never flash a BIOS that is meant for a different card. The voltage controller, even if it is the same, has never the same programming. Could be very, very, bad over time. The original conversion should be as stable as the 480 one.
> 
> mynm has posted the table where the shaders lock is found some time ago:
> https://www.overclock.net/forum/67-...-896-1024-stream-processors.html#post25706080
> We compare the TV1OutputControl table to any other and chances are pretty high we are gonna find the unlock bytes. Then you could make a conversion with unlocked shaders.


Thanks!

470D can always be unlocked to 470, just consider it as 470. The shaders can't be locked again because my modification is based on that 480 Hynix BIOS (2048/2304 shaders available), not the reference one nor the origional 470D. So the card is using the 480 Hynix BIOS in fact, nothing is different but the model name RX480 to RX580 (C6 to E6 and Elesmere to Polaris20 HEX edited)

In my opinion, there are two reasons only. First, some driver things and second 3DMark cheated when 480 detected!


----------



## mynm

hellm said:


> mynm has posted the table where the shaders lock is found some time ago:
> https://www.overclock.net/forum/67-...-896-1024-stream-processors.html#post25706080
> We compare the TV1OutputControl table to any other and chances are pretty high we are gonna find the unlock bytes. Then you could make a conversion with unlocked shaders.


Hi

If the 470D is not using hardware lock I untherstand that the TV1OutputControl/ Gfx_Harvesting table is doing a software lock. So I suppose that removing it into the 470D bios will do the same as using a 480 or 580 bios, because they don't have that table.

The problem is if it's hardware locked and if it can be writed or not. If it's software locked I untherstand that the TV1OutputControl/ Gfx_Harvesting table is only doing the software lock so I suppose It can be erased, but I'm no sure, maybe tx12 can comfirm this. I have just tested to remove the table in my 380 and is working, but is not doing anything because is hardware locked.


----------



## iakoboss7

hellm said:


> @iakoboss7
> It is the Nitro+, not the Nitro without the +, this one has a different PCB, similar to newer "Pulse" models. It shouldn't matter if you have the OC version or not, but it has to be the same card (PCB).
> 
> I used this version, and never did an update (BIOS build# is still the same, i never change this):
> https://www.techpowerup.com/vgabios/185322/sapphire-rx480-8192-160713


thank you for your answer.

just to be on the same page:
Nitro+ has 2 SKU's, one with 1306mhz and one with 1342mhz, they have a different pcb.

the model with the exact same pcb as the rx 580 Pulse is the @1306mhz.

rx 580 pulse pcb: https://www.ixbt.com/video4/images/polaris20-4/sapphire-rx580-scan-front.jpg
rx 480 nitro+ OC @1342mhz pcb: https://img.purch.com/graphics/o/aH...hcHBoaXJlLVJYNDgwLU5pdHJvLVBDQS1Gcm9udC5qcGc= or for pre-retail https://www.kitguru.net/wp-content/uploads/2016/07/L1000512.jpg
rx 480 nitro+ @1306mhz pcb: https://drive.google.com/open?id=1iDnqt-Ay4bJ2TYcPzvYmYV7q2s7UlyST

as you can see sapphire used the non "+" (or non "OC", depends on how you call it) version of the pcb for the 580 Pulse.
the only difference being a rubber spacer.

so from the above info we can see you are using the bios from the @1342mhz pcb that is actually different to the rx 580 pulse.
that means that me and whoever else has the @1306mhz card cannot use the bios you have provided to convert our cards because we would flash a bios meant for a totally different pcb.


am i wrong?
to clarify further my card is exactly that http://www.sapphiretech.com/productdetial.asp?pid=251A3BDE-2CC1-4C49-B661-165D72DEA40A&lang=eng with the specs of "11260-07".


----------



## hellm

@PhukngHardToReg 
better upload both BIOS and we have a look. Check VRM and stuff..

@mynm
Hi! and thx! :thumb:

@iakoboss7
in germany, it was the nitro without +, maybe the naming was somewhat different around the world, after time, whatever. So far no one ever mentioned this.
Yes, i will link your BIOS, if you tell what you have modded and you tested it as stable. And i have to add some info, but give me some time with this. I will also have to add info to post#1 i guess, cause this BIOS wouldn't work on the non-whatever-1306 version. And it even doesn't work with the Pulse BIOS, this i know for sure.


----------



## iakoboss7

hellm said:


> @iakoboss7
> in germany, it was the nitro without +, maybe the naming was somewhat different around the world, after time, whatever. So far no one ever mentioned this.
> Yes, i will link your BIOS, if you tell what you have modded and you tested it as stable. And i have to do some disclaiming, but give me some time with this. I will also have to add info to post#1 i guess, cause this BIOS wouldn't work on the non-whatever-1306 version. THe Pulse, and it even doesn't work with the pulse BIOS, this i know for sure.


i am sorry, i edited a little my previous post (please check the last sentence).

and just when i posted i found was wrong about what model i have, i just checked the S/N and i DO have the "+/OC" because my pcb has a bios switch... (it seems the bios switch is the easy way to identify the pcb).
so i cant upload a bios because of the above.

but the logic is correct, sadly the nitro "+/OC" version pcb (the one with a bios switch, regardless of mhz after-all) is different than the non "+/oc" version (the one without bios switch) that actually shares the same pcb as the 580 Pulse.
thats why it didnt work for you for the pulse version, different pcb's.

so probably all you have to do is put a disclaimer like "flash it only if your card has a bios switch" so people (like me  ) wont get confused.
or even better post a converted bios for this card (with a disclaimer like: if it doesnt have a bios switch then flash this one) http://www.sapphiretech.com/productdetial.asp?pid=9C819C56-0AF7-455A-955F-81F85D6ABB26&lang=eng
this is this card's bios file: https://www.techpowerup.com/vgabios/190082/sapphire-rx480-8192-161222


but lets get on something new.
even if the pcb of the 3 versions are the same ( as it can be seen here in the specs http://www.sapphiretech.com/productdetial.asp?pid=251A3BDE-2CC1-4C49-B661-165D72DEA40A&lang=eng ).
sadly there seems to be some differences in the bios of the @1342mhz one (the other 2 seems the same, except the clocks?).
the bios you used, @1342mhz: https://www.techpowerup.com/vgabios/185322/sapphire-rx480-8192-160713
the bios my card has (not uploaded by me), @1306mhz: https://www.techpowerup.com/vgabios/187363/sapphire-rx480-8192-160921
the quiet bios (posting it just to have everything in one place), @1266mhz: https://www.techpowerup.com/vgabios/185756/sapphire-rx480-8192-160802-1

as you can see the power limits are different.


so in my opinion you should also post a conversion (or at least a disclaimer that for some ppl the card will be oc'ed farther?) of this one (as an extention of the one you already have), for ppl that doesnt want the extra overclock and power limit changes: https://www.techpowerup.com/vgabios/187363/sapphire-rx480-8192-160921


i hope you understand what i wrote (eng is not my mother language).
and thank you for reading all this thing


----------



## PhukngHardToReg

@hellm

Here are the 470D original BIOS, the very stable 480 BIOS and another 580 Hynix BIOS which only its' bootup messages and version messages are used.

Only blocks in the picture are modified so I didn't upload the modified BIOS. Actually I didn't keep that disappointing file.


----------



## hellm

@iakoboss7
as far as i understood it so far, the 1266/1342MHz BIOS versions are from the nitro+, the other one is not.
https://www.tomshardware.com/reviews/amd-radeon-rx-480-graphics-card-roundup,4962-9.html

I didn't make any conversions for models of any vendor, which didn't used the IR3567B controller. I did that because i would have mean work, going from the reference design which i used and the other ones with this mod wasn't to much effort. Also, the models with this controller are the big ones, the vrm is big enough for raised voltage and power limits of the RX 580. I also did no "original conversions" for these cards.

For the power limits and clockrates, that includes also the vcore, i left it or changed it to the RX 580 standard from AMD. So, 1340MHz is at 1200mV, where almost all of the customs i provided with BIOSs use 1175mV with the stock 480 BIOS. I intend to leave it that way, but you are right, i should make this information more obvious. There might be some cards, which can't deal with this clockrates, clearly not the Nitro+. I even left it at 1342MHz i believe. But if not, you have to use PBE to lower the clockrates, because it could crash at windows start if totally unstable.
@PhukngHardToReg
i will have a look later, need little more time for this, i guess. Maybe mynm will also have a look.


----------



## iakoboss7

hellm said:


> @iakoboss7
> 1) as far as i understood it so far, the 1266/1342MHz BIOS versions are from the nitro+, the other one is not.
> https://www.tomshardware.com/reviews/amd-radeon-rx-480-graphics-card-roundup,4962-9.html
> 
> 2) I didn't make any conversions for models of any vendor, which didn't used the IR3567B controller. I did that because i would have mean work, going from the reference design which i used and the other ones with this mod wasn't to much effort. Also, the models with this controller are the big ones, the vrm is big enough for raised voltage and power limits of the RX 580. I also did no "original conversions" for these cards.
> 
> 3) For the power limits and clockrates, that includes also the vcore, i left it or changed it to the RX 580 standard from AMD. So, 1340MHz is at 1200mV, where almost all of the customs i provided with BIOSs use 1175mV with the stock 480 BIOS. I intend to leave it that way, but you are right, i should make this information more obvious. There might be some cards, which can't deal with this clockrates, clearly not the Nitro+. I even left it at 1342MHz i believe. But if not, you have to use PBE to lower the clockrates, because it could crash at windows start if totally unstable.


1) thats what i am saying, clocks doesnt matter, what matters is: 
a) if the card (now named "a") has a bios switch then its the top end nitro+ OC (even if its 1306 or 1342mhz). http://www.sapphiretech.com/productdetial.asp?pid=251A3BDE-2CC1-4C49-B661-165D72DEA40A&lang=eng (check specs, you can see 3 models (like 3 bios cause pcb is the same), i have never seen in the market the 3rd one).
b) if the card (now named "b") DOES NOT have a bios switch then its the more "basic" nitro OC (no "+" , it comes with 1306 and 1266mhz). <-- this one is the 580 pulse pcb. http://www.sapphiretech.com/productdetial.asp?pid=9C819C56-0AF7-455A-955F-81F85D6ABB26&lang=eng (check specs, you can see 2 models (like 2 bios cause pcb is the same)).

2) "a" has IR3567B controller, "b" has OnSemi NCP81022.

3) i guess if the "b" card is actually the pulse (same pcb) then the "a" card would be more than capable to run at rx 580 clock rates as it was supposed to be a higher model. is this wrong?


extra:
"a" card: 



"b" card:


----------



## hellm

afaik, yes. So, to stop the confusion we just ad the info (only models with BIOS switch), i would suggest.


----------



## iakoboss7

yes, exactly, cause of the different pcb, not that it wouldnt be able to handle it (cause pulse handles it fine) but as it has a different pcb it would need another bios as a base, right?

so for the card "b" (aka nitro without "+", aka pulse) we would need to mod a new bios: https://www.techpowerup.com/vgabios/190082/sapphire-rx480-8192-161222


----------



## mynm

@PhukngHardToReg

Before doing the TV1 Out table mod. I think is better to see with CUINFO v1.7: https://www.overclock.net/forum/25518093-post575.html if it's software or hardware locked.

I'm trying to mod your bios erasing the TV1 Out table using this table calculator: https://www.overclock.net/forum/attachment.php?attachmentid=38704&d=1454768364 , but I don't know if it's working on polaris gpus. @hellm, do you know if the table calculator is working?

The other way I think that the unlock could work is doing the same mod as the 460 bios to the 470D bios:


----------



## hellm

@mynm
thx for jumping in. Yes, the table calculator works fine, just like gupsterg described it in the hawaii thread i believe.

@all
And there is already some info in post#1, linking to vrmtool and about the IR controller. I couldn't say IR3567B, cause the Asus Strix has a different one, also IR. I will try to make thsi clearer in the near future.


----------



## mynm

hellm said:


> @mynm
> thx for jumping in. Yes, the table calculator works fine, just like gupsterg described it in the hawaii thread i believe.
> 
> @all
> And there is already some info in post#1, linking to vrmtool and about the IR controller. I couldn't say IR3567B, cause the Asus Strix has a different one, also IR. I will try to make thsi clearer in the near future.


You are welcome. Yes, it is working ok. The bios with out the TV1 is attached. This bios and the one with the unlock, don't have the "magic" UEFI, because I don't have UEFI so I don't know how to do the mod.

Hope it works for you @PhukngHardToReg


----------



## hellm

2-3 pages back is an example on the magic GOP stuff. Also some infos about it and how to change image length inside the rom file.

i looked over the voi tables of the original BIOS of the 470D and the "hynix" one. They are identical, which doesn't mean it works the same. An i2c-dump would help here.

But i see what should be a big problem, and the only explanation is some compatibility mode or the timings and all of hynix GDDR5 works somehow with the samsung GDDR5. Because, the stock BIOS supports Samsung chips, the other BIOS supports Hynix and Elpida, and the "rx480" named rom file only supports Hynix. :thinking:
..wouldn't be a problem at all, because you only have to copy over the vram info table.


----------



## Vento041

mynm said:


> @*PhukngHardToReg*
> 
> Before doing the TV1 Out table mod. I think is better to see with CUINFO v1.7: https://www.overclock.net/forum/25518093-post575.html if it's software or hardware locked.
> 
> I'm trying to mod your bios erasing the TV1 Out table using this table calculator: https://www.overclock.net/forum/attachment.php?attachmentid=38704&d=1454768364 , but I don't know if it's working on polaris gpus. @*hellm* , do you know if the table calculator is working?
> ...



Didn't want to come here just for self advertisement buuuuuuuutttt..... https://www.overclock.net/forum/67-amd-ati/1686521-gui-tool-atomtableresize.html


----------



## hellm

you are always welcome 

i am sorry i didn't mentioned that. I also forgot, you have a custom BIOS for the Nitro+. (^^sig)


----------



## PhukngHardToReg

@mynm
@hellm

Thanks!

I'll upload screenshot of CUINFO later. 

This RX470D_no TV1 OUT BIOS unlocked 2048 shaders successfully. Hope it perfrom stable. Before that I'll modify it since its' default clock is only 1225MHz. OC using driver won't work stable at 1300MHz, may be due to lack of VCore offset (even same 1150mv in driver panel). To some extent, the performance of 470 is too similar to 480 so AMD capped it on purpose. 480 BIOSes may control the VRM better and it does perform better. That's why I prefer the 480 hynix BIOS.

Hynix VRAM info isn't a problem, it just turns unstable after renamed!! And, the replacement of Samsung VRAM info was done and it was still 3-400 FSE score dropped and unstable. We can mostly confirm it is the driver that affects the performance. What a dissppointing thing!!

If it's due to the driver, will other 480 aslo be affected?


----------



## mynm

hellm said:


> 2-3 pages back is an example on the magic GOP stuff. Also some infos about it and how to change image length inside the rom file.
> 
> i looked over the voi tables of the original BIOS of the 470D and the "hynix" one. They are identical, which doesn't mean it works the same. An i2c-dump would help here.
> 
> But i see what should be a big problem, and the only explanation is some compatibility mode or the timings and all of hynix GDDR5 works somehow with the samsung GDDR5. Because, the stock BIOS supports Samsung chips, the other BIOS supports Hynix and Elpida, and the "rx480" named rom file only supports Hynix. :thinking:
> ..wouldn't be a problem at all, because you only have to copy over the vram info table.


Thanks I will see the info.



Vento041 said:


> Didn't want to come here just for self advertisement buuuuuuuutttt..... https://www.overclock.net/forum/67-amd-ati/1686521-gui-tool-atomtableresize.html


I know your tool but I didn't have use it because I'm used to use the table calculator tool.



PhukngHardToReg said:


> @mynm
> @hellm
> 
> Thanks!
> 
> I'll upload screenshot of CUINFO later.
> 
> This RX470D_no TV1 OUT BIOS unlocked 2048 shaders successfully. Hope it perfrom stable. Before that I'll modify it since its' default clock is only 1225MHz. OC using driver won't work stable at 1300MHz, may be due to lack of VCore offset (even same 1150mv in driver panel). To some extent, the performance of 470 is too similar to 480 so AMD capped it on purpose. 480 BIOSes may control the VRM better and it does perform better. That's why I prefer the 480 hynix BIOS.
> 
> Hynix VRAM info isn't a problem, it just turns unstable after renamed!! And, the replacement of Samsung VRAM info was done and it was still 3-400 FSE score dropped and unstable. We can mostly confirm it is the driver that affects the performance. What a dissppointing thing!!
> 
> If it's due to the driver, will other 480 aslo be affected?


You are welcome, I am glad it is working for you.

I'm getting like you variable Firestike graphic scores between 10200, 10740 and 10840, with my 380, maybe it's a driver problem but I don't know when it starts to happen.

Recently I did some test with the ASIC_InternalSS_Info/ASIC_MVDDC_Info that seems to be related to the SpreadSpectrum for the core, memory and other stuffs. It is difernt between gpus and changing the values on it seems to affect to the performance, but I'm not sure is if this or a driver problem randomly affecting to the scores.

The 470D tables is 28 00 03 01 FF FF FF 00 4B 00 B8 0B 01 00 00 00 FF FF FF 00 32 00 4E 0C 02 00 00 00 FF FF FF 00 7C 01 45 0C 07 12 00 00

The 480 table is 1C 00 03 01 FF FF FF 00 4B 00 B8 0B 01 00 00 00 FF FF FF 00 7C 01 45 0C 07 12 00 00

The 580 table is 28 00 03 01 FF FF FF 00 7D 00 B8 0B 01 00 00 00 FF FF FF 00 32 00 4E 0C 02 00 00 00 FF FF FF 00 7C 01 45 0C 07 12 00 00

The only difference between the 470D and the 580 table is that is changing a 4B to a 7D that is related to the Spread Spectrum Percentage for the memory.

The 480 bios is not using Spread Spectrum for the engine (I suppose it is the core).

Maybe changing the 7D to 4B into the 580 bios could solve the problem, but I am no sure.

I get the info of the ASIC_InternalSS_Info/ASIC_MVDDC_Info table from an atomdis dump (I think that now isn't working) and from here: https://people.freedesktop.org/~agd...ms-pull-in-the-latest-upstream-atombios.patch

This is my 380 table dump and more info, if somebody want to know an example of the structure: 

data_table 0000b518 #1a (ASIC_InternalSS_Info/ASIC_MVDDC_Info):

Size 0040
Format Rev. 03
Param Rev. 00
Content Rev. 01

00000000: ffff ff00 7d00 b80b 0100 0000 ....}.......
00000010: ffff ff00 c800 b80b 0200 0000 ffff ff00 ................
00000020: 0200 e40c 0401 0000 ffff ff00 7c01 4e0c ............|.N.
00000030: 0702 0000 ffff ff00 c800 b80b 0b10 0000 ................

NOTE: General revisionless dumper only.

0000: ATOM_COMMON_TABLE_HEADER sHeader :
0000: USHORT usStructureSize = 0x0040 (64)
0002: UCHAR ucTableFormatRevision = 0x03 (3)
0003: UCHAR ucTableContentRevision = 0x01 (1)
0004: ATOM_ASIC_SS_ASSIGNMENT asSpreadSpectrum [0] :
0004: ULONG ulTargetClockRange = 0x00ffffff (16777215) //For mem/engine/uvd, Clock Out frequence (VCO ), in unit of 10Khz //For TMDS/HDMI/LVDS, it is pixel clock , for DP, it is link clock ( 27000 or 16200 )
0008: USHORT usSpreadSpectrumPercentage = 0x007d (125) //in unit of 0.01% 
000a: USHORT usSpreadRateInKhz = 0x0bb8 (3000) //in unit of 10Hz, modulation freq
000c: UCHAR ucClockIndication = 0x01 (1) //Indicate which clock source needs SS
000d: UCHAR ucSpreadSpectrumMode = 0x00 (0) //Bit0=0 Down Spread,=1 Center Spread, bit1=0: internal SS bit1=1: external SS
000e: UCHAR ucReserved [0] = 0x00 (0)
000f: UCHAR ucReserved [1] = 0x00 (0)
0010: ATOM_ASIC_SS_ASSIGNMENT asSpreadSpectrum [1] :
0010: ULONG ulTargetClockRange = 0x00ffffff (16777215)
0014: USHORT usSpreadSpectrumPercentage = 0x00c8 (200)
0016: USHORT usSpreadRateInKhz = 0x0bb8 (3000)
0018: UCHAR ucClockIndication = 0x02 (2)
0019: UCHAR ucSpreadSpectrumMode = 0x00 (0)
001a: UCHAR ucReserved [0] = 0x00 (0)
001b: UCHAR ucReserved [1] = 0x00 (0)
001c: ATOM_ASIC_SS_ASSIGNMENT asSpreadSpectrum [2] :
001c: ULONG ulTargetClockRange = 0x00ffffff (16777215)
0020: USHORT usSpreadSpectrumPercentage = 0x0002 (2)
0022: USHORT usSpreadRateInKhz = 0x0ce4 (3300)
0024: UCHAR ucClockIndication = 0x04 (4)
0025: UCHAR ucSpreadSpectrumMode = 0x01 (1)
0026: UCHAR ucReserved [0] = 0x00 (0)
0027: UCHAR ucReserved [1] = 0x00 (0)
0028: ATOM_ASIC_SS_ASSIGNMENT asSpreadSpectrum [3] :
0028: ULONG ulTargetClockRange = 0x00ffffff (16777215)
002c: USHORT usSpreadSpectrumPercentage = 0x017c (380)
002e: USHORT usSpreadRateInKhz = 0x0c4e (3150)
0030: UCHAR ucClockIndication = 0x07 (7)
0031: UCHAR ucSpreadSpectrumMode = 0x02 (2)
0032: UCHAR ucReserved [0] = 0x00 (0)
0033: UCHAR ucReserved [1] = 0x00 (0)


// This portion is only used when ext thermal chip or engine/memory clock SS chip is populated on a design
//Memory SS Info Table
@@ -3149,16 +3780,66 @@ typedef struct _ATOM_ASIC_SS_ASSIGNMENT
UCHAR ucReserved[2];
}ATOM_ASIC_SS_ASSIGNMENT;

-//Define ucSpreadSpectrumType
+//Define ucClockIndication, SW uses the IDs below to search if the SS is requried/enabled on a clock branch/signal type.
+//SS is not required or enabled if a match is not found.
#define ASIC_INTERNAL_MEMORY_SS 1
#define ASIC_INTERNAL_ENGINE_SS 2
-#define ASIC_INTERNAL_UVD_SS 3
+#define ASIC_INTERNAL_UVD_SS 3
+#define ASIC_INTERNAL_SS_ON_TMDS 4
+#define ASIC_INTERNAL_SS_ON_HDMI 5
+#define ASIC_INTERNAL_SS_ON_LVDS 6
+#define ASIC_INTERNAL_SS_ON_DP 7
+#define ASIC_INTERNAL_SS_ON_DCPLL 8


----------



## PhukngHardToReg

@hellm
@mynm

Tried both 4B and 7D but nothing changed. I tried the new 18.9.3 driver and the driver sig patch, still unstable. Even changed the vendor ID from XFX to AMD/ATI, still phucking unstable!

Maybe the driver make it unstable on purpose when the number of shaders is detected not 2304(with a 580).


----------



## hellm

No, modding a 470 to a 580 works, i know for sure for at least one card. Nitro+ 470, i believe. Maybe we should mod the hynix BIOS? That one was stable?


----------



## mynm

PhukngHardToReg said:


> @hellm
> @mynm
> 
> Tried both 4B and 7D but nothing changed. I tried the new 18.9.3 driver and the driver sig patch, still unstable. Even changed the vendor ID from XFX to AMD/ATI, still phucking unstable!
> 
> Maybe the driver make it unstable on purpose when the number of shaders is detected not 2304(with a 580).



Ok, so I think that the problem could be the memory as hellm says (and I didn't see before), the 580 and the 480 bioses aren't using the same memory as your 470D so like he says normality them should not work for your 470D. I have memory timings moded, maybe that is the problem for me aswell, but I didn't have the problem in june, if I remember well, I have no idea if driver is blocking now timings mod or is a driver problem. 

In your case I think is better to not to use the 480 or the 580 bioses.

If you want the same clocks and voltages as the 580 you only have to swap the Power Play table and the ASIC profiling table to the 470D bios, or easiliest only swap the ASIC profiling table, that have the same length, and swaping the core clocks and power tune to the 580 values ones with PBE.

VOI tables are the same into these bioses, so is not doing anything. 

About the CUs unlock, is hardware locking 4 CUs and can't be writed so them can't be enabled. I suppose that with your original bios you will see 4 more CUs locked by sofware.

Edited: I didn't see this:



hellm said:


> No, modding a 470 to a 580 works, i know for sure for at least one card. Nitro+ 470, i believe. Maybe we should mod the hynix BIOS? That one was stable?


Yes, or mod the 480 bios if you want, I guess with the 470D VRAM_Info table from the 480 and the ASIC profiling from the 580.


----------



## PhukngHardToReg

hellm said:


> No, modding a 470 to a 580 works, i know for sure for at least one card. Nitro+ 470, i believe. Maybe we should mod the hynix BIOS? That one was stable?


Are you sure that card performs stable after modding?

Yes, that 480 hynix one is always stable, but not after renamed.
@mynm 
Maybe you didn't see my former post. The 480 hynix bios is stable no matter how, when and how many times I flash it. Assuming that there is one of 3 uploaded BIOSes that fits my card better, no matter which it is, it just turns unstable after renamed.


----------



## PhukngHardToReg

Thank you all the same.

What I am modding for is:
1. Poor improvement from 1310mhz to1340 or 1360 which is 1200mv needed
2. Better fan strategy
3. Don't need driver patch anymore.
4. Don't need to load the driver settings(1340mhz to1310) after every update

Maybe it's meanless, you don't have to dig It


----------



## hellm

Still, hynix on samsung shouldn't work. It's not only the timings.. never heard this before. You are sure, u don't have actually Hynix memory on the card?

Yes, i meant modding a 470 BIOS to appear as a 580 one with the ID from post#3. That will work, definitely stable.


----------



## mynm

PhukngHardToReg said:


> Are you sure that card performs stable after modding?
> 
> Yes, that 480 hynix one is always stable, but not after renamed.
> 
> @mynm
> Maybe you didn't see my former post. The 480 hynix bios is stable no matter how, when and how many times I flash it. Assuming that there is one of 3 uploaded BIOSes that fits my card better, no matter which it is, it just turns unstable after renamed.



Ok, sorry, I was center in the CUs stuff and didn't read well, so you aren't using the 580 bios, you are only renaming the 480 bios to 580, and you have tested to replace the 470D samsung ram info table to the 480 renamed to 580 bios and you have the same problem. 

Is the performance the same with both ram info tables and with out the rename to 580?

So it seems that the problem is only the rename to 580, so is a driver problem or a firestrike problem. Do you have tested if the problem is the same with other benchmarks or game benchmarks?. I should test this as well to see if it's only a firestrike problem.



PhukngHardToReg said:


> Thank you all the same.
> 
> What I am modding for is:
> 1. Poor improvement from 1310mhz to1340 or 1360 which is 1200mv needed
> 2. Better fan strategy
> 3. Don't need driver patch anymore.
> 4. Don't need to load the driver settings(1340mhz to1310) after every update
> 
> Maybe it's meanless, you don't have to dig It


Maybe to try to improve the OC you could test the ASIC_ProfilingInfo table from the 580 bios.



hellm said:


> Still, hynix on samsung shouldn't work. It's not only the timings.. never heard this before. You are sure, u don't have actually Hynix memory on the card?
> 
> Yes, i meant modding a 470 BIOS to appear as a 580 one with the ID from post#3. That will work, definitely stable.


Yes is weird, I think aswell is better to use une bios with the samsung ram info.


----------



## hellm

Also, the 470D has the same ID as the 470 at offset 0xD4-0xD7: F0 7D C6 0F, only with some shaders locked. It is like a 580D for the driver, a 580 with less shaders. Still could raise some problems, but i have conformation that it is stable. No indication to the contrary.

If a 480 BIOS, which luckily has the same voi table, ideally has the same i2c dump.. is more stable with hynix vram info table, and only hynix, it raises some questionmarks. Usually i would concur with mynm, i also think it is better to not to use the 480 or the 580 bioses. Maybe more try to mod a 570 BIOS, that is what i would recommend. Now, with your experience with the 480 BIOS, i really don't now where to start. Maybe take it appart and be sure what hardware you have, and go from the stock BIOS. And the stock BIOS has to be stable, of course, else it is not the original BIOS for this card.


----------



## PhukngHardToReg

hellm said:


> Still, hynix on samsung shouldn't work. It's not only the timings.. never heard this before. You are sure, u don't have actually Hynix memory on the card?
> 
> Yes, i meant modding a 470 BIOS to appear as a 580 one with the ID from post#3. That will work, definitely stable.


My card is samsung memory if I remember correctly. We can't find 470 4G BIOS with samsung memory so people around always unlock a 470D samsung to 470 by flashing a 470 hynix BIOS. Samsung BIOS is rare, K4G41325FE is much more rare.

Yes, I tried that, only ID was modded, unstable.

*How can I forget this!!! My friend's XFX 470 hynix BE Lite (named by me) which has only 2 heat pipes, was flashed(not modded) to that uploaded 580 hynix BIOS and it turns unstable. It's a hynix to hynix modding, model H5GC4H24AJR confirmed. That's why I started digging it.*



mynm said:


> Ok, sorry, I was center in the CUs stuff and didn't read well, so you aren't using the 580 bios, you are only renaming the 480 bios to 580, and you have tested to replace the 470D samsung ram info table to the 480 renamed to 580 bios and you have the same problem.
> 
> Is the performance the same with both ram info tables and with out the rename to 580?
> 
> So it seems that the problem is only the rename to 580, so is a driver problem or a firestrike problem. Do you have tested if the problem is the same with other benchmarks or game benchmarks?. I should test this as well to see if it's only a firestrike problem.
> 
> 
> 
> Maybe to try to improve the OC you could test the ASIC_ProfilingInfo table from the 580 bios.
> 
> 
> 
> Yes is weird, I think aswell is better to use une bios with the samsung ram info.


Different VRAM info without renaming is not tested, but I think that's not the point.

You're right, I'll try game benchmarks without renaming later.

I observed that 1150mv with 470D original BIOS is actually 113x mv so I modded the VCore offset and it works stable at 1310Mhz without throttling,




hellm said:


> Also, the 470D has the same ID as the 470 at offset 0xD4-0xD7: F0 7D C6 0F, only with some shaders locked. It is like a 580D for the driver, a 580 with less shaders. Still could raise some problems, but i have conformation that it is stable. No indication to the contrary.
> 
> If a 480 BIOS, which luckily has the same voi table, ideally has the same i2c dump.. is more stable with hynix vram info table, and only hynix, it raises some questionmarks. Usually i would concur with mynm, i also think it is better to not to use the 480 or the 580 bioses. Maybe more try to mod a 570 BIOS, that is what i would recommend. Now, with your experience with the 480 BIOS, i really don't now where to start. Maybe take it appart and be sure what hardware you have, and go from the stock BIOS. And the stock BIOS has to be stable, of course, else it is not the original BIOS for this card.


I think it should be stable,too. That's what it is weird.

580 is the highest model of Elesmere so there is no need to check its' BIOS signature. But 580D doesn't exist officially, maybe AMD blocked the cards with less than 2304 shaders from modding in this unstable way, and by the driver.

My card has dual BIOSes, they are the same as this uploaded 470D one, so it is original indeed.


----------



## PhukngHardToReg

I'll try this:
Mod the 480 hynix BIOS, change fan strategy only, just don't change the ID and core clock(480 stock at 1340 isn't stable, drop to 1310 by driver), driver patch is need, after this:
3DMark unstable--------->It is a mod detecting besides the signature check because no performance related option is changed. Failed and stop digging this.
3DMark stable------------>Naming is related, try game benchmark with a fake 580 BIOS:
Game benchmark stable:-------------->it's a 3DMark issue
Game benchmark unstable------------>It is a mod detecting besides the signature check


----------



## PhukngHardToReg

patch the driver→→480 BIOS fan modded→→3DMark stable→→rename→→3DMark dropped and unstable→→ GTA5 in-game test dropped

GTA5 with 480


Code:


Frames Per Second (Higher is better) Min, Max, Avg
Pass 0, 59.726585, 106.573059, 91.101738
Pass 1, 34.902653, 120.672073, 101.239517
Pass 2, 42.277103, 113.039391, 94.593819
Pass 3, 74.489960, 146.436157, 112.305618
Pass 4, 27.916134, 155.924026, 101.663857

Time in milliseconds(ms). (Lower is better). Min, Max, Avg
Pass 0, 9.383234, 16.742964, 10.976739
Pass 1, 8.286922, 28.651117, 9.877566
Pass 2, 8.846474, 23.653465, 10.571515
Pass 3, 6.828915, 13.424628, 8.904274
Pass 4, 6.413380, 35.821579, 9.836337

Frames under 16ms (for 60fps): 
Pass 0: 858/859 frames (99.88%)
Pass 1: 941/949 frames (99.16%)
Pass 2: 883/888 frames (99.44%)
Pass 3: 1051/1051 frames (100.00%)
Pass 4: 11340/11389 frames (99.57%)


GTA5 with 580 tested several times


Code:


Frames Per Second (Higher is better) Min, Max, Avg
Pass 0, 55.690697, 128.274307, 92.177299
Pass 1, 25.588726, 116.192749, 95.728622
Pass 2, 40.939606, 113.441078, 89.128349
Pass 3, 60.949081, 142.352097, 109.633720
Pass 4, 25.997665, 155.434708, 100.894852

Time in milliseconds(ms). (Lower is better). Min, Max, Avg
Pass 0, 7.795794, 17.956320, 10.848658
Pass 1, 8.606389, 39.079712, 10.446197
Pass 2, 8.815149, 24.426224, 11.219774
Pass 3, 7.024835, 16.407139, 9.121282
Pass 4, 6.433569, 38.464993, 9.911308

Frames under 16ms (for 60fps): 
Pass 0: 869/870 frames (99.89%)
Pass 1: 880/892 frames (98.65%)
Pass 2: 832/839 frames (99.17%)
Pass 3: 1028/1029 frames (99.90%)
Pass 4: 11316/11373 frames (99.50%)

It's a driver problem. Is there any solutions?


----------



## hellm

Maybe i read this wrong, but time is not consistent with FPS?

Usually we have a stable stock rom, and the chinese cards are always a b...., out of experience. We have to work with what we have. And you are sure, maybe by reading on the card, that there are some hynix compatible samsung chips on it? I trust your word, just to be sure. We can try the samsung vram info table from the 470D rom, or the hynix one from the 480 BIOS, np. But when we want to go further, maybe trying some 570 BIOS and modding that one to 580. You know a card that could fit? The 580D was only an example, but driver should and usually can handle less shaders. Would only be a problem if someone would address them on a hardware level.


----------



## PhukngHardToReg

hellm said:


> Maybe i read this wrong, but time is not consistent with FPS?
> 
> Usually we have a stable stock rom, and the chinese cards are always a b...., out of experience. We have to work with what we have. And you are sure, maybe by reading on the card, that there are some hynix compatible samsung chips on it? I trust your word, just to be sure. We can try the samsung vram info table from the 470D rom, or the hynix one from the 480 BIOS, np. But when we want to go further, maybe trying some 570 BIOS and modding that one to 580. You know a card that could fit? The 580D was only an example, but driver should and usually can handle less shaders. Would only be a problem if someone would address them on a hardware level.


It's outputted by GTA5, I cant'understand it well, either, But the FPS is higher before and the frame latency is lower before except scene 1. I'm sure it's not throttled.

Chinese cards are always a b-what? LOL  I think Chinese version is always somehow lite.

I modded a XFX 570 RS BE BIOS which is the only XFX 570 4g found on TechPowerup. 3DMark dropped from 59xx-57xx but seems stable? I only tested for twice, I'll do more test after work.


----------



## PhukngHardToReg

Another question, after I modded the VCore, voltage of P-state 5 is the highest, maybe state 6 on some BIOSes，higher than state 6 and 7, how can I mod the voltage of state 7?


----------



## mynm

PhukngHardToReg said:


> It's outputted by GTA5, I cant'understand it well, either, But the FPS is higher before and the frame latency is lower before except scene 1. I'm sure it's not throttled.
> 
> Chinese cards are always a b-what? LOL  I think Chinese version is always somehow lite.
> 
> I modded a XFX 570 RS BE BIOS which is the only XFX 570 4g found on TechPowerup. 3DMark dropped from 59xx-57xx but seems stable? I only tested for twice, I'll do more test after work.


Maybe the preformance lost is only caused because isn't a 580 bios and driver doesn't fit with it, I don't know.

The only 580 4gb with K4G41325FE samsung memory and an ncp 81022 vrm controller (I suposse is your controller) I see, is this Sapphire RX 580 4 GB nitro+: https://www.techpowerup.com/vgabios/199464/199464 , This is the 580 PCB https://images.bit-tech.net/content...-radeon-rx-580-nitro-8gb-review/580np-11b.jpg and this is a Sapphire 470D (I didn't found an xfx one) https://i0.wp.com/www.madboxpc.com/wp-content/uploads/2016/11/1104-470d-1.jpg?w=750&ssl=1 , and they looks differnt, the 470D one is using 4 phases and the nitro+ 6, and the voi is different, so I don't know if it can work or not.

*Edited*: Is this your gpu?: https://kknews.cc/digital/omyx8g6.html , the pcb looks different to the 580 one aswell.

*Edited*: Maybe the xfx 580 4g bios you have uploaded https://www.techpowerup.com/vgabios/192098/xfx-rx580-4096-170410 is better swaping the Vram info samsung table to it, because it have the same VOI, but I have no idea if it's using a ncp 81022, I don't see pcb images.

1C 00 03 01 01 07 0C 00 0E 00 00 00 00 00 00 00 04 07 0C 00 0E 00 00 00 00 00 00 00

The nitro + on VOI is: 

42 00 03 01 01 03 0E 00 10 96 20 00 00 00 00 00 FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00 04 00 24 00 00 04 00 00 02 80 10 00 00 00 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 B6 03

Acording to this kizwan post http://www.overclock.net/t/1561372/hawaii-bios-editing-290-290x-295x2-390-390x/2530#post_25102436 and some tests I did:

This section 01 03 0E 00 10 96 20 00 00 00 00 00 FF 00 I think is not a problem is onli indicating it have an ncp81022, but is not changing anything on it.

This section 01 07 0C 00 0E 00 00 00 00 00 00 00 is identical and is related to an svid2 control to the vddc voltage.

This section 04 00 24 00 00 04 00 00 02 80 10 00 00 00 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 B6 03 maybe is a problem because is different to this one 04 07 0C 00 0E 00 00 00 00 00 00 00, the 580 vddci is using a GPIO Lookup table (no idea what is it) and in the 470D one is controlled by svid2. Maybe swaping this part is better, but I don't know, this is getting complicated, and I don't have knowledge about this. 

Also I see this msi 580 https://www.techpowerup.com/vgabios/197500/197500 but I don't know if it have a ncp81022 and it have the same problem with the vddci VOi section




PhukngHardToReg said:


> Another question, after I modded the VCore, voltage of P-state 5 is the highest, maybe state 6 on some BIOSes，higher than state 6 and 7, how can I mod the voltage of state 7?


How did you do the Vcore mod?, if you did it with the vcore mod to the ASIC profiling info table, I have tested to do this on my 380 and I see this problems sometimes, and is a littel complicated to solve, changing more values into the table or changing core clocks.


----------



## PhukngHardToReg

mynm said:


> Maybe the preformance lost is only caused because isn't a 580 bios and driver doesn't fit with it, I don't know.
> 
> The only 580 4gb with K4G41325FE samsung memory and an ncp 81022 vrm controller (I suposse is your controller) I see, is this Sapphire RX 580 4 GB nitro+: https://www.techpowerup.com/vgabios/199464/199464 , This is the 580 PCB https://images.bit-tech.net/content...-radeon-rx-580-nitro-8gb-review/580np-11b.jpg and this is a Sapphire 470D (I didn't found an xfx one) https://i0.wp.com/www.madboxpc.com/wp-content/uploads/2016/11/1104-470d-1.jpg?w=750&ssl=1 , and they looks differnt, the 470D one is using 4 phases and the nitro+ 6, and the voi is different, so I don't know if it can work or not.
> 
> *Edited*: Is this your gpu?: https://kknews.cc/digital/omyx8g6.html , the pcb looks different to the 580 one aswell.
> 
> 
> 
> How did you do the Vcore mod?, if you did it with the vcore mod to the ASIC profiling info table, I have tested to do this on my 380 and I see this problems sometimes, and is a littel complicated to solve, changing more values into the table or changing core clocks.


Yes, that 470D "黑狼"(which means black wolf) is the same model as mine, but mine has a back cover and samsung memory. Their PCBAs are identical, NCP81022 controller included.

I don't dare to flash that 580 BIOS since it's quite different. Today I flashed a modded XFX 570 BIOS, here is the link: https://www.techpowerup.com/vgabios/192057/xfx-rx570-4096-170419
FSE score drops from 59XX to 57xx but finally it's stable, just not so stable as 480 hynix BIOS, varies from 569x to 580x. GTA5 benchmark FPS decreased, too, so 3DMark is reliable.

*EDIT: FSE graphic 2 is not only the scene that lost FPS, so does graphic 1, which means it's not the XFX bug mentioned in former post?*

Is there any suggestion to solve the performance dropping?

I modded VCore follow the steps of post #3. It is the max voltage that causes the P5 voltage increases and P6/7 remains. By the way, the x100 value is 1150mv while the x4 value is 1175mv in XFX 570 BIOS by default.


----------



## mynm

PhukngHardToReg said:


> Yes, that 470D "黑狼"(which means black wolf) is the same model as mine, but mine has a back cover and samsung memory. Their PCBAs are identical, NCP81022 controller included.
> 
> I don't dare to flash that 580 BIOS since it's quite different. Today I flashed a modded XFX 570 BIOS, here is the link: https://www.techpowerup.com/vgabios/192057/xfx-rx570-4096-170419
> FSE score drops from 59XX to 57xx but finally it's stable, just not so stable as 480 hynix BIOS, varies from 569x to 580x. GTA5 benchmark FPS decreased, too, so 3DMark is reliable.
> 
> Is there any suggestion to solve the performance dropping?
> 
> I modded VCore follow the steps of post #3. It is the max voltage that causes the P5 voltage increases and P6/7 remains. By the way, the x100 value is 1150mv while the x4 value is 1175mv in XFX 570 BIOS by default.


I don't know how to solve the performance dropping, maybe the better solution is use the 480 bios with the 470D Vram info. 

I will take a look to the XFX 570 BIOS

I edited my previous post with this info in case you didn't se it:



> Maybe the xfx 580 4g bios you have uploaded https://www.techpowerup.com/vgabios/192098/xfx-rx580-4096-170410 is better swaping the Vram info samsung table to it, because it have the same VOI, but I have no idea if it's using a ncp 81022, I don't see pcb images.
> 
> 1C 00 03 01 01 07 0C 00 0E 00 00 00 00 00 00 00 04 07 0C 00 0E 00 00 00 00 00 00 00
> 
> The nitro + on VOI is:
> 
> 42 00 03 01 01 03 0E 00 10 96 20 00 00 00 00 00 FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00 04 00 24 00 00 04 00 00 02 80 10 00 00 00 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 B6 03
> 
> Acording to this kizwan post https://www.overclock.net/t/1561372/hawaii-bios-editing-290-290x-295x2-390-390x/2530#post_25102436 and some tests I did:
> 
> This section 01 03 0E 00 10 96 20 00 00 00 00 00 FF 00 I think is not a problem is onli indicating it have an ncp81022, but is not changing anything on it.
> 
> This section 01 07 0C 00 0E 00 00 00 00 00 00 00 is identical and is related to an svid2 control to the vddc voltage.
> 
> This section 04 00 24 00 00 04 00 00 02 80 10 00 00 00 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 B6 03 maybe is a problem because is different to this one 04 07 0C 00 0E 00 00 00 00 00 00 00, the 580 vddci is using a GPIO Lookup table (no idea what is it) and in the 470D one is controlled by svid2. Maybe swaping this part is better, but I don't know, this is getting complicated, and I don't have knowledge about this.
> 
> Also I see this msi 580 https://www.techpowerup.com/vgabios/197500/197500 but I don't know if it have a ncp81022 and it have the same problem with the vddci VOi section


----------



## mynm

double post


----------



## mynm

triple post


----------



## PhukngHardToReg

@mynm

The VOI table part you mentioned is so complicated that I can't understand.

But I found sometimes it turns gray screen, it could be due to the 900mv IMC voltage. So I modded it following post #3, but it's 00 by default and changed it to 0C didn't work. Then I replaced the ASIC profiling info from 480 hynix into this XFX 570 BIOS, it's still 900mv.........

But it doesn't really matter since it loses FPS.


----------



## PhukngHardToReg

double post


----------



## hellm

as i said, usually we can go step by step form something that is a stable stock BIOS. Here, there is this weird thing with a BIOS that is suppossed to be more stable as the original one. And then all kinds of weird benchmark results. I am sorry, but we have here no starting point, and no idea where to go.
One last thing, some memory timings are tweaked due to the hynix vram info table? Otherwise, it's anyone's guess by now.


----------



## mynm

I can only see the posts with the mobile phone, but I can't post with it.

PhukngHardToReg, Hellm

The 570 bios is not using samsung memory as well, I don't know how can it work  . But it have the same VOI as yours.

I have tested your vddci svid2 related values to my 380 VOI that have vddci GPIO related values, and the IMC/vddci is working differnt with it.
Is not using the offsets, is using the vddci values into the PowerPlayInfo table. Is not working for me, I have a balck screen if core is not at idle DPMs.

We don't have an starting point to the mod, but we can learn more thing about the IMC/vddci thing 

*Edited* PhukngHardToReg, do you see the vddci value with Hwinfo64?, the Hwinfo value is not the same as the value for the the memory in wattman. 

The IMC mod of the first post is changing the minimun vddc when the highest memory clock is used if I remember correctly.


----------



## mynm

double post


----------



## hellm

lol, OCN is broken again.

So, if and when someone can read this.. 

i didn't wan't to say it is all over, but i have no idea and can't contribute anything right now, lack of a Radeon. Maybe i will buy this mysterious new Polaris GPU, that rumors speak of. The PCI-ID is already there..
https://lists.freedesktop.org/archives/amd-gfx/2018-September/026977.html?print=xhp

till then, what mynm said.


----------



## mynm

hellm said:


> lol, OCN is broken again.
> 
> So, if and when someone can read this..
> 
> i didn't wan't to say it is all over, but i have no idea and can't contribute anything right now, lack of a Radeon. Maybe i will buy this mysterious new Polaris GPU, that rumors speak of. The PCI-ID is already there..
> https://lists.freedesktop.org/archives/amd-gfx/2018-September/026977.html?print=xhp
> 
> till then, what mynm said.


I'm only suggesting bioses that I think that can fit to the gpu and contributing with more things that could be relevant, you and PhukngHardToReg know more than me about this bios mods and how polaris gpus are working. I don't have, have no had and not thinking to have a polaris gpu. I'm only trying to help, you both can do the mods better than me. 

Do whatever you both want.


----------



## Vento041

If AMD (an AIB maybe) sells a "680" with a true 6+2 vrm config proper cooling on both vrm and core, dual bios switch, an IR controller (so most things are known) and a gold binned ASIC I'm gonna sel my hybrid modded rx 480.


Btw AFAIK you could copy the VOI table from the original bios and put it on yours. It should be more stable. You could also try to fix (copy from your original bios) some minor stuffs inside pptable like:


the _Thermal_Controller subtable
all the *_I2C_address and *_I2C_line variables found inside the powertune subtable (probably unused IMO but should match your original bios)


----------



## mynm

Vento041 said:


> If AMD (an AIB maybe) sells a "680" with a true 6+2 vrm config proper cooling on both vrm and core, dual bios switch, an IR controller (so most things are known) and a gold binned ASIC I'm gonna sel my hybrid modded rx 480.
> 
> 
> Btw AFAIK you could copy the VOI table from the original bios and put it on yours. It should be more stable. You could also try to fix (copy from your original bios) some minor stuffs inside pptable like:
> 
> 
> the _Thermal_Controller subtable
> all the *_I2C_address and *_I2C_line variables found inside the powertune subtable (probably unused IMO but should match your original bios)


Hi again.

Do you know something about the vddci section into the VOI?.

I have tested it with my 380 like I said. Vddci is behaving diferent between using svid2 control or a GPIO Lookup table, and both gpus are using the ncp81022. 

Do you know if IR controllers VOI tables haves the same diferences about this?.


----------



## hellm

mynm, your input is always appreciated. 

voi tables of 470D and 480 hynix rom are the same. But i forgot about the powerplay table, there are some "stability settings" there as well, worth a try.


----------



## PhukngHardToReg

hellm said:


> One last thing, some memory timings are tweaked due to the hynix vram info table? Otherwise, it's anyone's guess by now.


The Hynix VRAM info was already tried even if it's tweaked.



mynm said:


> The 570 bios is not using samsung memory as well, I don't know how can it work  .


I replaced the VRAM info with the samsung one.



> *Edited* PhukngHardToReg, do you see the vddci value with Hwinfo64?, the Hwinfo value is not the same as the value for the the memory in wattman.
> The IMC mod of the first post is changing the minimun vddc when the highest memory clock is used if I remember correctly.


Yes, I checked with Hwinfo64, it's 900mv indeed. If that's the min value, how can I change the normal one?
*EDITED: I replaced the PowerPlay info and it's 1000mv now.*



mynm said:


> I'm only suggesting bioses that I think that can fit to the gpu and contributing with more things that could be relevant, you and PhukngHardToReg know more than me about this bios mods and how polaris gpus are working. I don't have, have no had and not thinking to have a polaris gpu. I'm only trying to help, you both can do the mods better than me.
> 
> Do whatever you both want.


Thank you all. I'm a noob and contributed nothing. I've been digging this for only one week.



> i didn't wan't to say it is all over, but i have no idea and can't contribute anything right now, lack of a Radeon. Maybe i will buy this mysterious new Polaris GPU, that rumors speak of. The PCI-ID is already there..
> https://lists.freedesktop.org/archiv...html?print=xhp


I tried changing VenderID from 67DF to 6FDF, but nothing happeded. Maybe my card can be flashed to this model in a few days.



> Btw AFAIK you could copy the VOI table from the original bios and put it on yours. It should be more stable. You could also try to fix (copy from your original bios) some minor stuffs inside pptable like:
> the _Thermal_Controller subtable
> all the *_I2C_address and *_I2C_line variables found inside the powertune subtable (probably unused IMO but should match your original bios)


I'll try that.

*EDITED: doesn't work*

*Summerize:
It's driver related. *


----------



## mynm

hellm PhukngHardToReg, thanks.

PhukngHardToReg I can test the IMC I don't remember well how is working in polaris. I have no idea if is a driver problem or not, maybe a person with a 570 or 580 could say if is havig the same problem. For me apparently the performance problem is gone with 18.9.3 driver, but I have to test more.


I have tested the VOI vddci svid2 control with my 380 and is using the powerplay vddci value only for idle, in load can go below it.
The problem I see is that I can go, and I see no way to go for more than 1200 mhz for the memory with this mode instead of 1475mhz as usual.
The weird thing I see now is that suddenly hwinfo64 vddci value is gone... and it is not back with the bios I use to use. No ideo of how to see it back. Fortunately I know how to see it with AfterBurner. Edited:I think I hide hwinfo vddci accidentally  ,now is restored. 

This is becoming surrealist, sorry but I'm tired of this, I need a break of this.


----------



## PhukngHardToReg

mynm said:


> hellm PhukngHardToReg, thanks.
> 
> PhukngHardToReg I can test the IMC I don't remember well how is working in polaris. I have no idea if is a driver problem or not, maybe a person with a 570 or 580 could say if is havig the same problem. For me apparently the performance problem is gone with 18.9.3 driver, but I have to test more.
> 
> 
> I have tested the VOI vddci svid2 control with my 380 and is using the powerplay vddci value only for idle, in load can go below it.
> The problem I see is that I can go, and I see no way to go for more than 1200 mhz for the memory with this mode instead of 1475mhz as usual.
> The weird thing I see now is that suddenly hwinfo64 vddci value is gone... and it is not back with the bios I use to use. No ideo of how to see it back. Fortunately I know how to see it with AfterBurner. Edited:I think I hide hwinfo vddci accidentally  ,now is restored.
> 
> This is becoming surrealist, sorry but I'm tired of this, I need a break of this.


People with a 570/580 might say they have no problem, due to lack of comparison.

I finally picked the modded 480 hynix bios with driver patch for long-term using. After memory clock set to 2000mhz and timings tweaked, I got 3DMark FS 13884, FSE 6127 and FSU 3052, which are very stable. As to core clock, 1310mhz is my best since its' quality is poor, 1340 needs 1200mv which is a bit dangerous for a single 6-pin card.

Wasted so much time, I need a break, too.


----------



## mynm

PhukngHardToReg said:


> People with a 570/580 might say they have no problem, due to lack of comparison.
> 
> I finally picked the modded 480 hynix bios with driver patch for long-term using. After memory clock set to 2000mhz and timings tweaked, I got 3DMark FS 13884, FSE 6127 and FSU 3052, which are very stable. As to core clock, 1310mhz is my best since its' quality is poor, 1340 needs 1200mv which is a bit dangerous for a single 6-pin card.
> 
> Wasted so much time, I need a break, too.


Nice, the 480 bios seems to be the best choice, hope it works ok.

About the 570/580 users, I suppose that if is a driver problem they may have the same problem, but I don't know.

In another order of things, I have more info about the gpio and svid2 control for the vddci.

I have found some info about it here: https://github.com/libos-nuse/net-n.../drm/amd/powerplay/hwmgr/polaris10_hwmgr.c#L1

/**
* Create Voltage Tables.
*
* @param hwmgr the address of the powerplay hardware manager.
* @return always 0
*/
static int polaris10_construct_voltage_tables(struct pp_hwmgr *hwmgr)
{
struct polaris10_hwmgr *data = (struct polaris10_hwmgr *)(hwmgr->backend);
struct phm_ppt_v1_information *table_info =
(struct phm_ppt_v1_information *)hwmgr->pptable;
int result;

if (POLARIS10_VOLTAGE_CONTROL_BY_GPIO == data->mvdd_control) {
result = atomctrl_get_voltage_table_v3(hwmgr,
VOLTAGE_TYPE_MVDDC, VOLTAGE_OBJ_GPIO_LUT,
&(data->mvdd_voltage_table));
PP_ASSERT_WITH_CODE((0 == result),
"Failed to retrieve MVDD table.",
return result);
} else if (POLARIS10_VOLTAGE_CONTROL_BY_SVID2 == data->mvdd_control) {
result = phm_get_svi2_mvdd_voltage_table(&(data->mvdd_voltage_table),
table_info->vdd_dep_on_mclk);
PP_ASSERT_WITH_CODE((0 == result),
"Failed to retrieve SVI2 MVDD table from dependancy table.",
return result;
}

if (POLARIS10_VOLTAGE_CONTROL_BY_GPIO == data->vddci_control) {
result = atomctrl_get_voltage_table_v3(hwmgr,
VOLTAGE_TYPE_VDDCI, VOLTAGE_OBJ_GPIO_LUT,
&(data->vddci_voltage_table));
PP_ASSERT_WITH_CODE((0 == result),
"Failed to retrieve VDDCI table.",
return result);
} else if (POLARIS10_VOLTAGE_CONTROL_BY_SVID2 == data->vddci_control) {
result = phm_get_svi2_vddci_voltage_table(&(data->vddci_voltage_table),
table_info->vdd_dep_on_mclk);
PP_ASSERT_WITH_CODE((0 == result),
"Failed to retrieve SVI2 VDDCI table from dependancy table.",
return result);
}

if (POLARIS10_VOLTAGE_CONTROL_BY_SVID2 == data->voltage_control) {
result = phm_get_svi2_vdd_voltage_table(&(data->vddc_voltage_table),
table_info->vddc_lookup_table);
PP_ASSERT_WITH_CODE((0 == result),
"Failed to retrieve SVI2 VDDC table from lookup table.",
return result);
}

PP_ASSERT_WITH_CODE(
(data->vddc_voltage_table.count <= (SMU74_MAX_LEVELS_VDDC)),
"Too many voltage values for VDDC. Trimming to fit state table.",
phm_trim_voltage_table_to_fit_state_table(SMU74_MAX_LEVELS_VDDC,
&(data->vddc_voltage_table)));

PP_ASSERT_WITH_CODE(
(data->vddci_voltage_table.count <= (SMU74_MAX_LEVELS_VDDCI)),
"Too many voltage values for VDDCI. Trimming to fit state table.",
phm_trim_voltage_table_to_fit_state_table(SMU74_MAX_LEVELS_VDDCI,
&(data->vddci_voltage_table)));

PP_ASSERT_WITH_CODE(
(data->mvdd_voltage_table.count <= (SMU74_MAX_LEVELS_MVDD)),
"Too many voltage values for MVDD. Trimming to fit state table.",
phm_trim_voltage_table_to_fit_state_table(SMU74_MAX_LEVELS_MVDD,
&(data->mvdd_voltage_table)));

return 0;
}

My programing skills are low but it seems that gpio and svid2 control can be used for vddci, vddc and mvddc. Maybe somebody here can understand the code.

Othet things that I have tested is the platformcaps into the powerplay info, that I thing that is related to the VOI svid2 and gpio control somehow. 
Testing some of its options with my 380, I see one of the conversion errors I see here, if I remember correctly, of a high W readings whit hwinfo64. Maybe this problem is related to the VOI and platformcaps differences between the 400 and 500 gpus. But I can't test this.


----------



## rootmoto

@hellm When I do the VMAX mod in the VOI and use 44 as the register, it limits my voltage to 1.2v even though I set 1.25v in the ASIC profiling voltage table, how would I fix this? I've tried to add offset voltage in VOI but it doesn't fix the problem


----------



## hellm

The Vmax mod? U mean the no-spike-thing?
https://www.overclock.net/forum/67-...290-290x-295x2-390-390x-141.html#post24838451

So, you caped both loops to 1.250V by using register 0x3D? Hm, could be something with LLC? I personally never tried this, and i have no Radeon card at the moment. If you set 1225mV in the ASIC_Profiling table (post#3 thing), does this change anything? Oh, what Polaris card again?
And i think i need my team for this..at least.. @Vento041 @mynm


----------



## Vento041

as @hellm said.
Also did you unlock register E4 before changing 3D?


----------



## hellm

Also, maybe offset is not considered in the max VID setting. Worth a try, so, if 1225mV works, maybe, maybe a +25mV offset could give you the voltage you want.


----------



## rootmoto

@hellm @Vento041 Yep I did unlock register E4, right now not using any offset voltage as that has no effect. I will screenshot my VOI and add it in the post later on.


----------



## rootmoto

He are my added registers in the VOI @hellm @Vento041



Code:


1E 00 00 00 1F 00 00 00 20 00 00 00 22 00 9E 00 23 00 3C 00 4D 00 60 00 4E 00 60 00 E4 00 00 00 3D 00 5F 00 93 00 30 00 94 00 30 00 9A 00 A0 00 9B 00 A0 00 38 00 01 00 E4 00 01 00 8D 00 00 00


----------



## Vento041

@rootmoto


Dump the whole VOI pls


----------



## rootmoto

@Vento041 @hellm



Code:


8A 00 03 01 01 03 56 00 1E 96 88 00 00 00 00 00 27 00 2F 00 3C 00 2F 00 1E 00 00 00 1F 00 00 00 20 00 00 00 22 00 9E 00 23 00 3C 00 4D 00 60 00 4E 00 60 00 E4 00 00 00 3D 00 5F 00 93 00 30 00 94 00 30 00 9A 00 A0 00 9B 00 A0 00 38 00 01 00 E4 00 01 00 8D 00 00 00 FF

That's the whole VOI in the BIOS.


----------



## hellm

Nope, there are some sub tables missing. First byte is right, but you have to copy all of the bytes, till there are 0x8A bytes. Also, little more info would be helpful, what card, a stock voi table..

Here you are using 0x5F for register 0x3D; that would put the cap at ~1.36V i think.. so this works with 1.25V Vcore? As i said, never tried this. So, the cap might has to be one step over Vcore. I don't know how the cap is implemented, but this might make sense. I mean the controller might not be able to use a cap that is the same as Vcore.


----------



## Vento041

You can export it with my tool! ATOMTableResize  look at sign


----------



## rootmoto

@Vento041 @hellm



Code:


8A 00 03 01 01 03 56 00 1E 96 88 00 00 00 00 00 27 00 2F 00 3C 00 2F 00 1E 00 00 00 1F 00 00 00 20 00 00 00 22 00 9E 00 23 00 3C 00 4D 00 60 00 4E 00 60 00 E4 00 00 00 3D 00 5F 00 93 00 30 00 94 00 30 00 9A 00 A0 00 9B 00 A0 00 38 00 01 00 E4 00 01 00 8D 00 00 00 FF 00 01 07 0C 00 66 00 00 00 00 00 00 00 04 00 24 00 00 04 00 00 02 80 10 00 00 00 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 B6 03


----------



## Vento041

@*rootmoto
*


Sorry if I asked the whole VOI, just wanted to check for most common problems (table and VO size declaration)
Registers 93/94/9A/9B should be read-only (AFAIK)
Unlock register E4 is needed only to write register 3D, so between unlock/lock phases change only register 3D
Question: those changes to 4E and 4D are stock in your bios or you were attempting some kind of power unlimit mod?
Switching frequency for loop 2 is set set to 3C -> 800 kHz (did you read my other thread about polaris card and loop 2?)
Switching frequency for loop 1 is set set to 9E -> ~303 kHz ???? What ????? Is this intended ? And why not 300 ? (0xA0, to whomever reading keep in mind that hex to switching frequency is not a simple conversion. There is a formula)
Load balancing on Loop 1 set to 00 for all phases (this wasn't stock VOI right?). the purpose was to balance all phases to counter the stock rx 480 "problem" about power drow from pci lanes? (in this case well done)


I do not know what register 27 and 3C does, no info on those.


----------



## rootmoto

@Vento041 Yep I did read your loop 1 & 2 thread, my comment is on your thread, I did it 5 months ago. The switching frequency was from the vrmtool thread and I saw the screenshot and used the register from there.


----------



## mynm

rootmoto said:


> @Vento041 @hellm
> 
> 
> 
> Code:
> 
> 
> 8A 00 03 01 01 03 56 00 1E 96 88 00 00 00 00 00 27 00 2F 00 3C 00 2F 00 1E 00 00 00 1F 00 00 00 20 00 00 00 22 00 9E 00 23 00 3C 00 4D 00 60 00 4E 00 60 00 E4 00 00 00 3D 00 5F 00 93 00 30 00 94 00 30 00 9A 00 A0 00 9B 00 A0 00 38 00 01 00 E4 00 01 00 8D 00 00 00 FF 00 01 07 0C 00 66 00 00 00 00 00 00 00 04 00 24 00 00 04 00 00 02 80 10 00 00 00 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 B6 03


Hi, if offset voltage is not working maybe the problem is this part: 1E 96 88, in gbt 480 g1 and 580 gaming is: 08 96 10, it is used in IR controllers.

If it continue without working, I'm doing some test comparing bioses with Vento041's SimpleBiosDiff, to made to work voltage offset to my 380. And I manage to do it to work swapping SetVoltage table to my bios from one bios with a working voltage offset. Also I did other tables swaps like ASIC_Init, and adding MemoryRefreshConversion, so I'm not sure if them are needed. 

I have tested these tables because voltage offset is not working sawpping my bios ASIC_Init to the one with it working.

Also I see diferences in their ASIC_Init thanks to one AtomDis dump I did years ago (now I can not manage to do it to work). The one in which is working is adding a call to MemoryRefreshConversion table, but maybe because it have the table and mine not. Also both tables are calling to SetVoltage and ASIC_RegistersInit (no idea what is doing this last table), and more tables.

Edited:

There are other value added 02 0D 02 05 03 52 43 no idea if it is "020D020503 MOVE param[02] [..XX] <- 0305 + 5243 CALL_TABLE 43 (SetVoltage)". 

Is added between 52 39 "CALL_TABLE 39 (SpeedFanControl)" and 66 04 "SET_DATA_BLOCK 04 (FirmwareInfo)". Without these values voltage offset is not working, so apparently is necessary to add it.


----------



## Vento041

@*rootmoto* 

More info on those initial bytes (I know that you already know a lot, I'm just adding data to whomever is interested):


Code:


8A 00 03 01 01 03 56 00 1E 96 88 00 00 00 00 00 ...


*8A 00 03 01 *Table header (*ATOM_COMMON_HEADER*)
*00 8A *Size
*03 *Table Revision -> so this table is a *VOLTAGE_OBJECT_INFO_V3_1*
*01 *Content Revision -> so this table is a *VOLTAGE_OBJECT_INFO_V3_1*
 
 *01 03 56 *Header (*ATOM_VOLTAGE_OBJECT_HEADER_V3*) of your first VO (*ATOM_VOLTAGE_OBJECT_V3*)
*01 *Voltage Type
*03 *Voltage Mode -> so this VO is a *ATOM_I2C_VOLTAGE_OBJECT_V3*
*56 *Size (bytes) of this VO
 
*56 00 1E 96 88 00 00 00* *00 00 *-> Main vars of your first VO (I2C)
*56 *ucVoltageRegulatorId
*00 *ucVoltageControlI2cLine
*1E *ucVoltageControlAddress
*96 *ucVoltageControlOffset
*88 *ucVoltageControlFlag
*00 00 00 *Reserved (unused or undocumented)
 
If you are using a BIOS from a different GPU you should copy your original VOI table and import it
After those first variables every 4 bytes are interpreted as *VOLTAGE_LUT_ENTRY*, but basically used in this way
Structure *XX 00 YY 00*
*XX *register to write
*YY *value to write
 
At the end of this *VO *there must be *FF 00 *(bit long to explain)
After the end you find other 2 *VO *(different kind, not I2C)


----------



## hellm

"Gigabyte Radeon RX 470 G1 Gaming 4GB"
ah, didn't get to me to read the sig. 

Yes, 0x9E (303kHz) is stock PWM value for the reference and not just one custom card. Only the Nitro+ with one phase less and better components switches higher, i think. I mean for cards using the IR3567B, but i don't know for sure.

The stock I2C VO of the Gig RX470 G1 (BIOS versions F5, F7, F61):


Code:


56 00 03 01 01 03 2E 00 08 96 10 00 00 00 00 00 29 00 24 00 2B 00 2C 00 33 00 72 00 24 00 1C 00 14 00 22 00 39 00 BE 00 61 00 03 00 62 00 7E 00 FF 00

1st VO, there is also one byte different


Code:


01 07 0C 00 06 00 00 00 00 00 00 00

2nd is only known as 480 or 580 standard, there should be no issues

So, what mynm said might be right, and there are a lot more differences from the stock VOI to the RX580 G1 BIOS that is used. That could also be dangerous, if this is not all done on purpose. Didn't had the time to look over the 580 G1 stock VOI as well.
08 ucVoltageControlAddress
96 ucVoltageControlOffset
10 ucVoltageControlFlag
I guess, edit the VOI table to stock first and then apply all the mods would help.

edit:
i also found my 470-580 conversions for giga g1 and nitro+ 470s. I took them offline, with this upload they are at least found in the attachments of this thread.
@rootmoto you can use the VOI table and copy it to your 580 G1 rom, or try the whole rom file instead. Make your mods from there.


----------



## rootmoto

@Vento041 @mynm @hellm Do I just copy the whole VOI from the RX 470 G1 Gaming BIOS to the RX 580 AORUS 4GB F81 BIOS?


----------



## mynm

rootmoto said:


> @Vento041 @mynm @hellm Do I just copy the whole VOI from the RX 470 G1 Gaming BIOS to the RX 580 AORUS 4GB F81 BIOS?


I think that yes, because maybe is better for compatibility with your gpu. Then you can add more registeres to it.

@all

I have more things about the ASIC_Init table.

I think that what is doing the voltage offset to work are these values: 

02 0D 02 05 03 52 43 "020D020503 MOVE param[02] [..XX] <- 0305 + 5243 CALL_TABLE 43 (SetVoltage)"

I have found this info about SetVoltage parameters:

// used by both SetVoltageTable v1.3 and v1.4
typedef struct _SET_VOLTAGE_PARAMETERS_V1_3
{
UCHAR ucVoltageType; // To tell which voltage to set up, VDDC/MVDDC/MVDDQ/VDDCI
UCHAR ucVoltageMode; // Indicate action: Set voltage level
USHORT usVoltageLevel; // real voltage level in unit of mv or Voltage Phase (0, 1, 2, .. )
}SET_VOLTAGE_PARAMETERS_V1_3;

//ucVoltageType
#define VOLTAGE_TYPE_VDDC 1
#define VOLTAGE_TYPE_MVDDC 2
#define VOLTAGE_TYPE_MVDDQ 3
#define VOLTAGE_TYPE_VDDCI 4
#define VOLTAGE_TYPE_VDDGFX 5
#define VOLTAGE_TYPE_PCC 6
#define VOLTAGE_TYPE_MVPP 7
#define VOLTAGE_TYPE_LEDDPM 8
#define VOLTAGE_TYPE_PCC_MVDD 9
#define VOLTAGE_TYPE_PCIE_VDDC 10
#define VOLTAGE_TYPE_PCIE_VDDR 11

#define VOLTAGE_TYPE_GENERIC_I2C_1 0x11
#define VOLTAGE_TYPE_GENERIC_I2C_2 0x12
#define VOLTAGE_TYPE_GENERIC_I2C_3 0x13
#define VOLTAGE_TYPE_GENERIC_I2C_4 0x14
#define VOLTAGE_TYPE_GENERIC_I2C_5 0x15
#define VOLTAGE_TYPE_GENERIC_I2C_6 0x16
#define VOLTAGE_TYPE_GENERIC_I2C_7 0x17
#define VOLTAGE_TYPE_GENERIC_I2C_8 0x18
#define VOLTAGE_TYPE_GENERIC_I2C_9 0x19
#define VOLTAGE_TYPE_GENERIC_I2C_10 0x1A

//SET_VOLTAGE_PARAMETERS_V3.ucVoltageMode
#define ATOM_SET_VOLTAGE 0 //Set voltage Level
#define ATOM_INIT_VOLTAGE_REGULATOR 3 //Init Regulator
#define ATOM_SET_VOLTAGE_PHASE 4 //Set Vregulator Phase, only for SVID/PVID regulator
#define ATOM_GET_MAX_VOLTAGE 6 //Get Max Voltage, not used from SetVoltageTable v1.3
#define ATOM_GET_VOLTAGE_LEVEL 6 //Get Voltage level from vitual voltage ID, not used for SetVoltage v1.4
#define ATOM_GET_LEAKAGE_ID 8 //Get Leakage Voltage Id ( starting from SMU7x IP ), SetVoltage v1.4

// define vitual voltage id in usVoltageLevel
#define ATOM_VIRTUAL_VOLTAGE_ID0 0xff01
#define ATOM_VIRTUAL_VOLTAGE_ID1 0xff02
#define ATOM_VIRTUAL_VOLTAGE_ID2 0xff03
#define ATOM_VIRTUAL_VOLTAGE_ID3 0xff04
#define ATOM_VIRTUAL_VOLTAGE_ID4 0xff05
#define ATOM_VIRTUAL_VOLTAGE_ID5 0xff06
#define ATOM_VIRTUAL_VOLTAGE_ID6 0xff07
#define ATOM_VIRTUAL_VOLTAGE_ID7 0xff08

So you can see that param[02] is 03 05 so I think that is 05 "define VOLTAGE_TYPE_VDDGFX" and 03 "define ATOM_INIT_VOLTAGE_REGULATOR"

So apparently is initializing the voltage regulator for the VDDGFX voltage, now i think it all makes sense  .


----------



## hellm

@mynm
:thumb:

@rootmoto
as i said, take the VOI table of the 470-580 files i posted. The last VO needs to be changed to 580, or you won't fit with the rest of the 580 rom. One funny thing, it is the same voi table as the ref rx480. 
here:


Code:


62 00 03 01 01 03 2E 00 08 96 10 00 00 00 00 00 29 00 24 00 2B 00 2C 00 33 00 72 00 24 00 1C 00 14 00 22 00 39 00 BE 00 61 00 03 00 62 00 7E 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 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 02 00 10 00 B6 03

@all
Polaris 30 is on the way, and rumours are becoming more frequent it will be a RX590 with a Polaris 10/20 in 12nm TSMC. That would mean GDDR5 256Bit as before, and videocardz claimed to know it will be 1545MHz for the GPU. Other than that, BIOS modding should also work as before. Only thing is if a driver patch is required, but BIOS structure should be compatible again. And we should be even able to make a 580 BIOS look like a 590 and vice versa.


----------



## rootmoto

@mynm @hellm @Vento041 I have copied the VOI table from the RX 470 G1 Gaming to RX 580 Aorus Gaming BIOS and it works fine and no longer stuck at 1.200v and it goes up to 1.225v, I tried to enable LLC using 38 00 01 00 and it didn’t work to go to 1.25v where should I place those registers in my VOI?


----------



## mynm

hellm said:


> @mynm
> :thumb:


Thanks :thumb:



hellm said:


> @mynm
> @all
> Polaris 30 is on the way, and rumours are becoming more frequent it will be a RX590 with a Polaris 10/20 in 12nm TSMC. That would mean GDDR5 256Bit as before, and videocardz claimed to know it will be 1545MHz for the GPU. Other than that, BIOS modding should also work as before. Only thing is if a driver patch is required, but BIOS structure should be compatible again. And we should be even able to make a 580 BIOS look like a 590 and vice versa.


Maybe is to late for a 590.

@all

I have one interesting thing more about the ASIC init table.

Seeing rootmoto gbt 580 table:

95 00 01 02 00 08 02 01 02 00 52 47 52 02 02 65 02 07 52 0D 55 00 02 52 0D 52 23 2C 25 02 01 3D 25 02 06 45 17 00 51 02 52 3D 52 39 02 0D 02 01 03 52 43 66 04 02 8C 02 2E 00 02 0D 02 01 00 52 43 02 05 02 04 00 52 03 52 43 02 0D 02 02 03 52 43 02 F9 02 01 52 05 02 01 02 00 0E E5 02 08 52 0A *02 05 02 02 00 0E 06 *52 43 02 05 02 04 00 20 03 52 43 02 05 02 30 75 00 40 52 0B 02 05 02 04 00 52 03 52 43 02 01 02 01 0E E5 02 08 52 0B 0D 65 D0 05 02 5B


You can see this part 02 05 02 02 00 0E 06 

That I think is: 

02 05 02 02 00 0E 06 MOVE param[02] [XXXX] <- 06 0E 00 02 , so it is VOLTAGE_TYPE_MVDDC 2, ATOM_SET_VOLTAGE 0, and 1.550v, so or is setting the voltage for the memory or is some type of check to it, I don't know. At least you can maybe know and compare the memory voltage for the conversions. Maybe worth a try to change the voltage and see if it's doing something.  . I can't test it, my 380 do not have that line.




rootmoto said:


> @mynm @hellm @Vento041 I have copied the VOI table from the RX 470 G1 Gaming to RX 580 Aorus Gaming BIOS and it works fine and no longer stuck at 1.200v and it goes up to 1.225v, I tried to enable LLC using 38 00 01 00 and it didn’t work to go to 1.25v where should I place those registers in my VOI?


Sorry, I was doing my post while you had post, I can't help you with it I don't have an IR controlled gpu and I don't remember how is it working.

I know other way to do to work the LLC, but is hard to explain now, I will do it tomorow if the registers aren't working.


----------



## hellm

i meant it  :thumb: i tried some things on the init table.. stumbling around with only different versions and no info.. so this is a very very interesting information for me.
..sadly i sold my RX480 to a miner.. but this would give me the opprtunity to compare the found tables.

But i know for sure, the controller for the Memory VRM on the ref RX480 is dumb like a brick. Would only work on if the VRM is also adressable, and then there is that loop 2 thing. But AUX is also a very good method to kill your radeon almost instantly.



rootmoto said:


> @mynm @hellm @Vento041 I have copied the VOI table from the RX 470 G1 Gaming to RX 580 Aorus Gaming BIOS and it works fine and no longer stuck at 1.200v and it goes up to 1.225v, I tried to enable LLC using 38 00 01 00 and it didn’t work to go to 1.25v where should I place those registers in my VOI?


Don't know about LLC, never tried it. Would have gone the same way, adding the register to VOI table (I2C Object). Best wait for mynm.


----------



## mynm

rootmoto said:


> @mynm @hellm @Vento041 I have copied the VOI table from the RX 470 G1 Gaming to RX 580 Aorus Gaming BIOS and it works fine and no longer stuck at 1.200v and it goes up to 1.225v, I tried to enable LLC using 38 00 01 00 and it didn’t work to go to 1.25v where should I place those registers in my VOI?



If you want 1.25v you only have to try the 8D register, LLC is not fot incresasing voltage, is for not to see a voltage droop.

Reading this doc: https://docs.google.com/document/d/1WKZDKJlBvmRXwIKE5P-Shzu4iJ6YpuLRqYJr00gdeR0/edit 

I see that 38 to 1 is no vDroop so I think that you will see ~1.231 or 1.237v in load for a 1.225 voltage. But as as far as I know is not recommended to have it off. 

Register 0x24 = Loadline slope Loop 1, (x*0.025mΩ), min 0.0mΩ max 6.375mΩ. if for increase or decrease the voltage droop, but I don't know how exactly it works.

If these registers aren't working you could test this other way to increase the voltage or changing LLC.

If this is your gbt 580 VOI:

66 00 03 01 01 03 32 00 08 96 10 00 00 00 00 00 29 00 24 00 2B 00 2C 00 33 00 76 00 24 00 1C 00 14 00 22 00 4D 00 73 00 E4 00 00 00 3D 00 6F 00 4E 00 01 00 FF 00 01 07 0C 00 * 66 00 *00 00 00 00 00 00 04 00 24 00 00 04 00 00 02 80 10 00 00 00 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 B6 03

Whit this bolded value you can change LLC and a little bit the voltage .
You can see in the IR pdf: http://www.irf.com/product-info/datasheets/data/ir3565b.pdf that:

Load Line Slope Trim 

The IR3565B has the ability for the processor to 
change the load line slope of each loop independently 
through the SVI2 bus while ENABLE and PWROK are 
asserted via the serial VID interface. The slope 
change applies to initial load line slope as set by the 
external RCSP/RCSM resistor network. The load line 
slope can be disabled or adjusted by -40%, -20%, 0%,
+20%, +40%, +60%, or +80%. 


Offset Trim 

The IR3565B has the ability for the processor to 
change the offset of each loop independently while 
ENABLE and PWROK are asserted via the serial VID 
interface. The offset can be left unchanged, disabled, 
or changed +25mV or -25mV. 

With the 0C value you can change the Load Line Slope Trim and the Offset Trim .

00 66 is in bits 0000 0000 0110 0110‬ and the bits are // 14:7 PSI0_VID, // 6 PSI0_EN, // 5 PSI1, // 4:2 load line slope trim, // 1:0 offset trim

So your initial values are 0000 0000 0= PSI0_VID, 1 = PSI0_EN,= 1 PSI1, 0 01 = load line slope trim, 10 offset trim.‬ 

I don't know how Load Line Slope Trim bit values are working for the IR controller for my ncp 81022 values are diferent, but I think the values could be: 

disabled 000, -40% 001 , -20% 010, 0% -011, +20% 100, +40% 101, +60% 110, +80% 111. So you you have now a -40 % LLC, so aparently LLC is reduced, I hve no idea on how it is working in my controller is working diferent.

For the Offset Trim values are 00 0, 01 -25%, 10 unchanged, 11 +25mv. You have a 01 value so you have it unchanged.

So if you want a LLC disabled and a + 25mv offset you have to change the 00 66 to 0000 0000 0110 0011 so is 00 63.


If these voltage offset aren't working I know some kind of voltage offset that can be aplied with the ASIC_ProfilingInfo table.

Edited:

I forgot that you have used the 470 VOI:
62 00 03 01 01 03 2E 00 08 96 10 00 00 00 00 00 29 00 24 00 2B 00 2C 00 33 00 72 00 24 00 1C 00 14 00 22 00 39 00 BE 00 61 00 03 00 62 00 7E 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 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 02 00 10 00 B6 03

So in it is 06 so is 
0000 0000 0000 0110

10 offset trim so unchanged,and 001 load line trim so -40

So if you want a LLC disabled and a + 25mv offset you have to change the 00 06 to 0000 0000 0000 0011 so is 00 03.





hellm said:


> i meant it  :thumb: i tried some things on the init table.. stumbling around with only different versions and no info.. so this is a very very interesting information for me.
> ..sadly i sold my RX480 to a miner.. but this would give me the opprtunity to compare the found tables.
> 
> But i know for sure, the controller for the Memory VRM on the ref RX480 is dumb like a brick. Would only work on if the VRM is also adressable, and then there is that loop 2 thing. But AUX is also a very good method to kill your radeon almost instantly.


You are welcome :thumb: , about the mvddc I see some 390 VOI tables with the a GPIO Lut for it and with no voltage controller for it, but I have no idea of what GPIO Lut is or what is doing. About the loop 2 thing I don't remember what is it for polaris, and I don't know what is it in my 380.


----------



## hellm

yep, forum is broken again. At least now we can read the post but can't see it in the overview, not the other way around.


----------



## hellm

and i thought, there was hope.. :doh:

update: and works again.. :tiredsmil
..but your signature is missing on your latest post, mynm. :upsidedwn


----------



## mynm

hellm said:


> yep, forum is broken again. At least now we can read the post but can't see it in the overview, not the other way around.





hellm said:


> and i thought, there was hope.. :doh:
> 
> update: and works again.. :tiredsmil
> ..but your signature is missing on your latest post, mynm. :upsidedwn


I think that the problem with my hidden message is that it takes me a lot to do it, so I needed to login again and it somehow caused the problem. 

I have more info about the second loop voltage. In my 380 into ASIC init table and VOI I see three voltages vddc, vddgfx and vddci. In rootmoto’s 580 I see vddc and vddci voltages. So maybe in polaris vddci is the second loop. I remember that polaris gpus with the NCP 81022 controller can see the second loop, so they can confirm it. 

But in my 380 changing the vddgfx to vddc into ASIC init and some values into Set Voltage table to the ones of the 580, I manage to see what is named like vddci in hwinfo like vddc and the vddc to vddci, so 380 seems to be upside down  , and it is not working correctly, I get blacks screen when trying to game or bench, and VOI voltage offsets or afterterburner one aren’t working. So 380 needs to be upside down  .

Edited: actually was only changing the SetVoltage table of the 580, that is the same table as the asus 380 one but with only two values changed, one was a 05 (vddgfx) to 01 (vddc). But not the asic init, changing it I get a black screen when windows starts. I did the test few days ago and I forgot who it was working  .

Edited: acually what was happenig is that the voltages are using the VOI config for the other voltage so I was doing it to be upside down, sorry  . I will shut up about my bios test.  .


----------



## hellm

There seemed to be an issue with the devil480-580 rom. No one ever complaint, so maybe it was nothing.. whatever hopefully fixed, i made an update.


----------



## mynm

hellm said:


> There seemed to be an issue with the devil480-580 rom. No one ever complaint, so maybe it was nothing.. whatever hopefully fixed, i made an update.


What was the problem with the devil480-580 rom?, how did you solve it?.

I'm still doing some researches about setvoltage table, the one in which is working the voltage offset for my 380 is adding a call to one hidden table 50, I know where is it but I don't know what is it doing. Do you know something about it?
Edited: Is adding aswell a call to table 36 ReadEDIDFromHWAssistedI2C/ProcessI2cChannelTransaction. Do you know any info about it?


----------



## hellm

No, idea, you are digging way to deep.. where no man has gone before.. 

What the problem with the devil480-580 rom was? After i guess 250 downloads, someone complaint it would give him a black screen. So i checked it, mods where ok, everything that could have been bad was good, all tests were good.. but as i opened the original rom file, it had a bad checksum. I didn't know what happened, so i took a verified devil 580 rom and did all the mods again.
I am still not sure that there even was an issue, and if, then it is hopefully fixed. I don't know.


----------



## mynm

hellm said:


> No, idea, you are digging way to deep.. where no man has gone before..
> 
> What the problem with the devil480-580 rom was? After i guess 250 downloads, someone complaint it would give him a black screen. So i checked it, mods where ok, everything that could have been bad was good, all tests were good.. but as i opened the original rom file, it had a bad checksum. I didn't know what happened, so i took a verified devil 580 rom and did all the mods again.
> I am still not sure that there even was an issue, and if, then it is hopefully fixed. I don't know.


 OK sorry I was thinking that the problem was related to some of the test I did.


----------



## hellm

I just got confirmation, new devil480-580 BIOS runs fine. 

..still there is this questionmark.. so many downloads and not a single user told me it doesn't work. Or this was some special devil that rejected.. we might never know.


----------



## PhukngHardToReg

Hi! I'm back!

Here is a BIOS of a Powercolor RX580 2048SP. 



> For a 470/570 to 580 conversion the byte at offset 0xD7 has also to be changed from 0x0F to 0x07.
> offset 0xD4-0xD7:
> 470:
> F0 7D C6 0F
> 570:
> F0 7D E6 0F
> 580:
> F0 7D E6 07


I changed this to F0 FD E6 0F and the model was changed to RX580 2048SP. By the way, it's polairs20, not polaris30.

What's important, I found that there is no performance dropping with this model number!! That means it's capped purposely by AMD.

If it's not capped, RX5XX such as 570 and fake 580, will have the same performance as 580 2048sp, which is embarassing.


----------



## mynm

PhukngHardToReg said:


> Hi! I'm back!
> 
> Here is a BIOS of a Powercolor RX580 2048SP.
> 
> 
> I changed this to F0 FD E6 0F and the model was changed to RX580 2048SP. By the way, it's polairs20, not polaris30.
> 
> What's important, I found that there is no performance dropping with this model number!! That means it's capped purposely by AMD.
> 
> If it's not capped, RX5XX such as 570 and fake 580, will have the same performance as 580 2048sp, which is embarassing.


It seems that is hardware locked, it don't have the TV1OutputControl/Havesting table and don't have this values that I have recentlly found in ASIC_Init table related to it. 02 05 02 00 00 08 09 52 20 the values are:

02 05 02 00 00 08 09 MOVE param[02] [XXXX] <- 09080000 09 is the max CU number per shader array and 08 is requested active CU number per shader array

5220 CALL_TABLE 20 (TV1OutputControl)

It seems that is sending the numbers of CUs to software locked if it's not hardware locked.

So are you changing the values in your bios and you don't have performance lost?. I still have some ramdom performance lost, especially after moding the bios and flashing it, some times y get with the same bios the performance lost and flashing it again the performance is ok.


----------



## PhukngHardToReg

mynm said:


> It seems that is hardware locked, it don't have the TV1OutputControl/Havesting table and don't have this values that I have recentlly found in ASIC_Init table related to it. 02 05 02 00 00 08 09 52 20 the values are:
> 
> 02 05 02 00 00 08 09 MOVE param[02] [XXXX] <- 09080000 09 is the max CU number per shader array and 08 is requested active CU number per shader array
> 
> 5220 CALL_TABLE 20 (TV1OutputControl)
> 
> It seems that is sending the numbers of CUs to software locked if it's not hardware locked.
> 
> So are you changing the values in your bios and you don't have performance lost?. I still have some ramdom performance lost, especially after moding the bios and flashing it, some times y get with the same bios the performance lost and flashing it again the performance is ok.


I changed nothing but the model number. RX580 2048SP is a brand new official model, in fact it's a renamed RX570 which is certainly hardware locked.

Performance always varies, but there is a range. Did you mean that the performance won't come back permanently until you flash the BIOS back? And no matter how many times you test it? That's unbelievable!!


----------



## mynm

PhukngHardToReg said:


> I changed nothing but the model number. RX580 2048SP is a brand new official model, in fact it's a renamed RX570 which is certainly hardware locked.
> 
> Performance always varies, but there is a range. Did you mean that the performance won't come back permanently until you flash the BIOS back? And no matter how many times you test it? That's unbelievable!!


I have no idea if it is permanent, I did some bios tests whit bad results, restarted Windows, tried again, bad results, flashed back to a one good bios with good results. Then do othet bios tests, reflash to the one with the bad performance and get good performance.

I was thinking that one bios table was causing the problem, but was not, so maybe is the driver or I don't know what.


----------



## hellm

There is also an i2c cache or something. Has to be a reason somewhere. As i was experiencing a awfull lot of memory errors, i flashed and reflashed and almost got crazy. Every BIOS seemed to have problems now. Then i realized about the cache and later for the 1000MHz step the voltage floor thing was too low on the real 580 BIOS.


----------



## PhukngHardToReg

mynm said:


> I have no idea if it is permanent, I did some bios tests whit bad results, restarted Windows, tried again, bad results, flashed back to a one good bios with good results. Then do othet bios tests, reflash to the one with the bad performance and get good performance.
> 
> I was thinking that one bios table was causing the problem, but was not, so maybe is the driver or I don't know what.


It's just not stable, nothing to do with the bios. It's similar to my problem, but mine turns out to be the driver issue now.


----------



## mynm

hellm said:


> There is also an i2c cache or something. Has to be a reason somewhere. As i was experiencing a awfull lot of memory errors, i flashed and reflashed and almost got crazy. Every BIOS seemed to have problems now. Then i realized about the cache and later for the 1000MHz step the voltage floor thing was too low on the real 580 BIOS.


I have no idea about that.



PhukngHardToReg said:


> It's just not stable, nothing to do with the bios. It's similar to my problem, but mine turns out to be the driver issue now.


I don't know, I know that one asus bios that have the voltage offset enabled at the asic init, have allways a bad performance, ~500 points less in firestrike , the same as the good ones when they have the problem, but I don't remember if this bios was having the performance lost.

The performance lost is near as disabling some CUs, disabling 4 CUs is ~700 points less, acording to my tests: https://www.overclock.net/forum/26478187-post1079.html


----------



## hellm

..means there are some things left in the cache after a flash, might. At least memory errors, cause after flashing a stable rom i still had readings, until full shut down. There might even be some settings left, i don't know. usually a boot should reset all the settings; but there are different controllers. Like the one a few pages back, if not given a special i2c command, there is a lock and no refresh or programming at all.

If you noticed some weird behaviour, like flashing the rom a second time and something is different, which shouldn't be unless the eeprom is programmed different every time, well, there has to be a reason..


----------



## mynm

hellm said:


> ..means there are some things left in the cache after a flash, might. At least memory errors, cause after flashing a stable rom i still had readings, until full shut down. There might even be some settings left, i don't know. usually a boot should reset all the settings; but there are different controllers. Like the one a few pages back, if not given a special i2c command, there is a lock and no refresh or programming at all.
> 
> If you noticed some weird behaviour, like flashing the rom a second time and something is different, which shouldn't be unless the eeprom is programmed different every time, well, there has to be a reason..


Yes, maybe that is the problem, some times the voltage offset of one bios is still applied although using a bios without a voltage offset, so maybe other i2c commands can be applied aswell. So is better a full shut down than a reset. I don't know if i2c reads were diferent with other bios or changing some tables although having the same VOI, I will keep it in mind. I didn't see the few pages back problem, I will see it. Edited: Ok E4 register.


----------



## PhukngHardToReg

hellm said:


> hm, you are the first one who told me about that. I never experienced any differences with higher values than 1150mV, since the 580 has 1200mV max as stock and everything else is stock. So are these two values:
> ULONG ulEvvDefaultVddc;
> ULONG ulEvvNoCalcVddc;
> both 1150mV, in this case 115000 -> 38 C1 01 00
> 
> here is the vanilla 580 ASIC Profiling Info table:
> 0C 01 03 06 C0 D4 01 00 F8 24 01 00 38 00 06 0A 6A 24 09 00 80 1A 06 00 E8 03 00 00 0C 01 18 08 20 03 00 00 B0 04 00 00 38 C1 01 00 38 C1 01 00 00 00 00 00 00 00 00 00 00 00 00 00 34 C4 01 00 43 01 00 00 00 00 00 00 00 00 00 00 C0 FF 08 0F 08 31 AC 10 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 4B 00 00 00 00 00 00 00 2B 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 9B 02 00 00 03 00 00 00 EA 01 00 00 8A 02 00 00 34 03 00 00 7E 04 00 00 EC 04 00 00 50 05 00 00 B4 05 00 00 E6 05 00 00 B0 71 0B 00 00 35 0C 00 60 1F 0D 00 98 E0 0E 00 70 B7 0F 00 E0 C8 10 00 00 17 11 00 30 8C 11 00 29 01 00 00 A2 04 00 00 BE 01 00 00 1B 00 B8 0B 00 00 6B B6 43 F8 B5 9C 05 00 7A 28 FF FF 00 00 00 00 F3 0D 03 00 7F 60 FE FF 00 00 00 00 23 FF 58 00 00 00 00 00 00 00 8A 00 EB FF FF FF C0 12 00 01 00 01 00 01 00 00
> 
> maybe those have to be lower or equal to max VDDC. In the 480 BIOS, both are also 1150mV.


Once I considered the auto voltage as to be equal to the manual one, but it turns out to be different. My manual default is 1150mv while auto default is 1225mv!! I found that by overwatching Hwinfo64 sensor readings.

I'm not sure whether you'd mentioned this before since this thread is too long for me to read through. I found this is the auto default voltage. Post 1# said that it is the max value, I thought it's the max value that allow users to adjust, but in fact it's the max auto value?


> 0C 01 03 06 C0 D4 01 00 F8 24 01 00 38 00 06 0A 6A 24 09 00 80 1A 06 00 E8 03 00 00 0C 01 18 08 20 03 00 00 B0 04 00 00 38 C1 01 00 38 C1 01 00 00 00 00 00 00 00 00 00 00 00 00 00 34 C4 01 00 43 01 00 00 00 00 00 00 00 00 00 00 C0 FF 08 0F 08 31 AC 10 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 4B 00 00 00 00 00 00 00 2B 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 9B 02 00 00 03 00 00 00 EA 01 00 00 8A 02 00 00 34 03 00 00 7E 04 00 00 EC 04 00 00 50 05 00 00 B4 05 00 00 E6 05 00 00 B0 71 0B 00 00 35 0C 00 60 1F 0D 00 98 E0 0E 00 70 B7 0F 00 E0 C8 10 00 00 17 11 00 30 8C 11 00 29 01 00 00 A2 04 00 00 BE 01 00 00 1B 00 B8 0B 00 00 6B B6 43 F8 B5 9C 05 00 7A 28 FF FF 00 00 00 00 F3 0D 03 00 7F 60 FE FF 00 00 00 00 23 FF 58 00 00 00 00 00 00 00 8A 00 EB FF FF FF C0 12 00 01 00 01 00 01 00 00


C0 12 → 0x 12C0 → 4800 → 1200×4, it means 1200mv, mine is 1175mv, but there seems to be an about +40~50mv offset, which is not defined in Vcore offset mentioned in post 1#. I changed it to 1143mv(6.25×182) without changing the x100 value and it works, actual voltage is about 1180mv.

Can U explain this further?


----------



## mynm

PhukngHardToReg said:


> Once I considered the auto voltage as to be equal to the manual one, but it turns out to be different. My manual default is 1150mv while auto default is 1225mv!! I found that by overwatching Hwinfo64 sensor readings.
> 
> I'm not sure whether you'd mentioned this before since this thread is too long for me to read through. I found this is the auto default voltage. Post 1# said that it is the max value, I thought it's the max value that allow users to adjust, but in fact it's the max auto value?
> 
> C0 12 → 0x 12C0 → 4800 → 1200×4, it means 1200mv, mine is 1175mv, but there seems to be an about +40~50mv offset, which is not defined in Vcore offset mentioned in post 1#. I changed it to 1143mv(6.25×182) without changing the x100 value and it works, actual voltage is about 1180mv.
> 
> Can U explain this further?


The Loladinas problem maybe is the SVID2 offset like I explain here: https://www.overclock.net/forum/27670972-post820.html it is maybe +25mv.

What is your VOI? are you using the 480 one? this one?:

1C 00 03 01 01 07 0C 00 0E 00 00 00 00 00 00 00 04 07 0C 00 0E 00 00 00 00 00 00 00

It don't have any offset.

What is your ASIC profiling table?

If I remember well you have a ncp 81022 voltage controller, it maybe can have a Initial offset in E7 register.
You can see it adding in a afterburner shortcut that final values like this: "C:\Program Files (x86)\MSI Afterburner\MSIAfterburner.exe" /ri6,24,D7

Do you see VID voltage in hwinfo64? is it 1.175v, 1.225v or other value?.


----------



## PhukngHardToReg

mynm said:


> The Loladinas problem maybe is the SVID2 offset like I explain here: https://www.overclock.net/forum/27670972-post820.html it is maybe +25mv.
> 
> What is your VOI? are you using the 480 one? this one?:
> 
> 1C 00 03 01 01 07 0C 00 0E 00 00 00 00 00 00 00 04 07 0C 00 0E 00 00 00 00 00 00 00
> 
> It don't have any offset.
> 
> What is your ASIC profiling table?
> 
> If I remember well you have a ncp 81022 voltage controller, it maybe can have a Initial offset in E7 register.
> You can see it adding in a afterburner shortcut that final values like this: "C:\Program Files (x86)\MSI Afterburner\MSIAfterburner.exe" /ri6,24,D7
> 
> Do you see VID voltage in hwinfo64? is it 1.175v, 1.225v or other value?.


VOI is what u mentioned. Here is the ASIC profiling table:


> 0C 01 03 06 FC CA 01 00 80 38 01 00 38 00 06 0A 6A 24 09 00 80 1A 06 00 E8 03 00 00 0C 01 18 08 20 03 00 00 B0 04 00 00 38 C1 01 00 38 C1 01 00 00 00 00 00 00 00 00 00 00 00 00 00 34 C4 01 00 43 01 00 00 00 00 00 00 00 00 00 00 C0 FF 08 0F 08 31 AC 10 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 4B 00 00 00 00 00 00 00 2B 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 9B 02 00 00 03 00 00 00 B8 01 00 00 76 02 00 00 2A 03 00 00 84 03 00 00 FC 03 00 00 56 04 00 00 BA 04 00 00 14 05 00 00 00 35 0C 00 00 35 0C 00 98 E0 0E 00 90 05 10 00 38 67 10 00 E0 C8 10 00 88 2A 11 00 30 8C 11 00 A7 00 00 00 A2 04 00 00 BE 01 00 00 1B 00 00 00 00 00 0C 05 FE FF B5 9C 05 00 CE FF FF FF 00 00 00 00 F3 0D 03 00 80 60 FE FF FD F8 FF FF 0A 03 CD FF FF FF 00 00 00 00 8A 00 F1 FF FF FF DC 11 00 01 00 01 00 01 00 00


"DC 11" ued to be "C0 12"，hwinfo64 VID is now 1144mv and previously 1175mv, Vcore is now about 1180mv and previously 1200mv+


You meant that it's LLC related?

Maybe I'll leave it alone. I applied thermal paste on the back and the card never throttles in SuperPosition, temp down from around 90c to 80c. This picture is not my card but I did that just like him.


----------



## mynm

PhukngHardToReg said:


> VOI is what u mentioned. Here is the ASIC profiling table:
> 
> "DC 11" ued to be "C0 12"，hwinfo64 VID is now 1144mv and previously 1175mv, Vcore is now about 1180mv and previously 1200mv+
> 
> 
> You meant that it's LLC related?
> 
> Maybe I'll leave it alone. I applied thermal paste on the back and the card never throttles in SuperPosition, temp down from around 90c to 80c. This picture is not my card but I did that just like him.


0C 01 03 06 *FC CA 01 *00 80 38 01 00 38 00 06 0A 6A 24 09 00 80 1A 06 00 E8 03 00 00 0C 01 18 08 20 03 00 00 B0 04 00 00 38 C1 01 00 38 C1 01 00 00 00 00 00 00 00 00 00 00 00 00 00 34 C4 01 00 43 01 00 00 00 00 00 00 00 00 00 00 C0 FF 08 0F 08 31 AC 10 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 4B 00 00 00 00 00 00 00 2B 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 9B 02 00 00 03 00 00 00 B8 01 00 00 76 02 00 00 2A 03 00 00 84 03 00 00 FC 03 00 00 56 04 00 00 BA 04 00 00 14 05 00 00 00 35 0C 00 00 35 0C 00 98 E0 0E 00 90 05 10 00 38 67 10 00 E0 C8 10 00 88 2A 11 00 30 8C 11 00 A7 00 00 00 A2 04 00 00 BE 01 00 00 1B 00 00 00 00 00 0C 05 FE FF B5 9C 05 00 CE FF FF FF 00 00 00 00 F3 0D 03 00 80 60 FE FF FD F8 FF FF 0A 03 CD FF FF FF 00 00 00 00 8A 00 F1 FF FF FF DC 11 00 01 00 01 00 01 00 00

Do you have tested to change the bolded FC CA 01 that is 1.175v to 1.144v so E0 BE 01 ?. Or bot voltages to 1.175v?. As is explained in post 3 both values have to be the same.

But maybe is better to change voltages using this svid2 voltage table: https://www.overclock.net/photopost/data/1381417/8/8d/8def2051_SVI2Voltages.jpeg the nearest voltage for 1.144 is 1.14375v so you have to set the fist value to 114300 so 7C BE 01 and the second to 114375x4= 457500 so 4575 so Hex DF 11.

Maybe the diference betweem the two voltages is causing the problem. 

I don't think it is LLC related, some gpus can have a voltage offset that is not shown in afterburner, and in the ncp 81022 you can see it in the register D7 with the afterburner shortcut, or have an svid2 voltage offset here 01 07 0C 00 *0E* 00 00 00 00 00 00 00 but, but 0E don't have the offset.


----------



## PhukngHardToReg

Take a try whether I can post here.

I tried and proved that the x100 value limits the max voltage users can adjust, and the x4 value is the auto voltage for P7, which may be with some unknown offset, mine is 37.5mv.


----------



## kmetek

Cheapest FreeSync capable GPU?


----------



## hellm

Maybe we can read what kmetek wrote if we are adding posts..

@PhukngHardToReg
you should consider using a pad. Paste is meant for filling little gaps, so has viscosity and stuff, a tendency to flow around if the gap is too large.. And try not to stack pads, buy a fat one.

If you want to clean your card (no joke):


----------



## KillroyJenkins

Hello,

If I have a sapphire RX480 8gb Nitro+, which bios should i be using? There are a few linked in the first couple posts that just redirect to the Die Hardware forum homepage.


----------



## hellm

My thread is back! :band:

so, the cheapest Freesync GPU? I don't know, all Polaris card should be able to use Freesync, afaik. Hawaii cards should too, i guess. Fiji.. wait here, all this cards can do Freesync:
Radeon™ RX Vega series
Radeon™ RX 500 series
Radeon™ RX 400 series
Radeon™ R9/R7 300 series (excluding R9 370/X)
Radeon™ Pro Duo (2016 edition)
Radeon™ R9 Nano
Radeon™ R9 Fury series
Radeon™ R9/R7 200 series (excluding R9 270/X, R9 280/X)

For the RX 480 Nitro+, you should be very sure it is not some chinese model or the one without the +. If u use vrmtool, there should be a IR3567B found on your card. And you should have a BIOS switch.
Then the BIOS rom files from post #1 and #2 are suitable for your card. And the link story.. it is the pcgh extreme forum, not "die hardware"; at the time i couldn't upload anything here, they fixed it now.. but i don't want to spend the time..
And, Vento041 has also made a BIOS for this card. You can find his thread in the overview, "Sapphire RX 480 Nitro+ OC - Better Custom BIOS".


----------



## Vento041

Finally I can read this thread again!


btw @KillroyJenkins



https://www.overclock.net/forum/67-amd/1630601-mod-sapphire-rx-480-nitro-oc-better-custom-bios.html


----------



## Sintel

Trying to get an Asus Strix RX480 converted to a RX580 *properly* but the link in the first post is not working anymore - any idea where i can find the bundle?

Context:
My primary reason is *not* performance, but to have the additional intermediate powerstate. By default the card fans start and stop at 55°C and it oscillates around this limit often enough to drive me crazy - just by doing light stuff on the desktop (e.g. youtube).

Right now I flashed the "closest matching" bios I could find, basically going from this (the actual card)
https://www.techpowerup.com/vgabios/193741/asus-rx480-8192-170628
to this
https://www.techpowerup.com/vgabios/191456/asus-rx580-8192-170301
and lowering some settings like the power limit in wattman, to protect the VRMs etc.

This actually worked, the card stays cool & quiet during desktop loads - the problem starts when an actual game is started.
The minimum fan speed is now 1700 rpm and again way too loud for 56°C - can't lower this with wattman, I assume because this is defined as the lower limit in the bios.
So I'm looking for ways to have better control over the fan curve, potentially with a better bios


----------



## hellm

Yes, i know it works, but it isn't a good idea to flash the unmodified BIOS of the strix 580. It has the same voltage controller, but the programming isn't the same. This could lead to damage over time..

The strix480-580 from the first post is based on the strix 580 BIOS, but has the right VRM programming.
You can edit the max Vcore (post#3) to a lower value, that alone should result in a quiet and still performing strix; most 480 strix owner prefer 1100-1150mV, with the original cooling.

Links are fixed now. All of them.


----------



## Sintel

Thanks for the help - I also found your thread on the German forums and tried some of the bios'es

Initially I thought something was awfully wrong with them because the screen would go blank when trying to reset the driver settings or changing particular wattman settings - even after a clean (ddu'd) installation of the driver - but I narrowed it down to issues with the 18.11 drivers of AMD itself. The non-beta drivers (18.9.3) work normally.

I settled on the bios in the opening post.

2 more questions:
- If I leave powertune at 0, what TDP is the card targetting with this new BIOS? In the old one I understand it to be 110-130W
- Also, is there any danger/up-/down-side to using the "new" bios with GOP v1.66?


----------



## hellm

Sintel said:


> Thanks for the help - I also found your thread on the German forums and tried some of the bios'es
> 
> Initially I thought something was awfully wrong with them because the screen would go blank when trying to reset the driver settings or changing particular wattman settings - even after a clean (ddu'd) installation of the driver - but I narrowed it down to issues with the 18.11 drivers of AMD itself. The non-beta drivers (18.9.3) work normally.
> 
> I settled on the bios in the opening post.
> 
> 2 more questions:
> - If I leave powertune at 0, what TDP is the card targetting with this new BIOS? In the old one I understand it to be 110-130W
> - Also, is there any danger/up-/down-side to using the "new" bios with GOP v1.66?


I changed the power limit to AMD's 580 stock value, if the original one was lower. But appearently the measured values are 10-20% higher, as soon as you switch the BIOS to 580. I don't know why, this is not related to the BIOS itself.

For the GOP 1.66, i don't think there is any problem with it. I just don't updated all of the files, because seems a minor update and GOP 1.65 works fine. Also had no card, removed already the version numbers, somehow retired..

For the strix, a user in the german forums made already some undervolted strix roms with 1.66:
http://extreme.pcgameshardware.de/o...w-rx470-rx480-rx570-rx580-83.html#post9474295
no problems reported. oh, and one with 1150mV and 1.66 by me, at the top of that page^^.


----------



## mynm

Lard said:


> You can try to edit your VDDCR limit in the VoltageObjectInfo table to lower the spikes. Without the limit my RX480 can spike over 1.5V, if I only apply 1.2V.
> So I guess the card can only spike up to the limit. I didn't test this properly.





MixedC said:


> Mine used to spike up to 1.35-1.36v with rx480 bios and I lost some OC ability in 3-4 months of use. with 580 bios it doesnt occur that often but still goes up to 1.27,1.3v ish.
> Thx for info I gonna try it.


I see like you some voltage spikes with my 380, but I only see the spikes using power efficiency to off, I have a max VID of 1.137v and I see VID peaks to 1.2v, with power efficiency to on I don't see the spikes. The problem for me is that power efficiency to on is not working for more than a year.

Are you using power efficiency to off?

Is great to see the thread working agin


----------



## rootmoto

@mynm Sorry for the late reply as I have been busy, I saw your post in regards about LLC and adding +/- 25mV, how would I be able to enable LLC but not adding +/-25mV in the process as my ASIC profiling table is already set to 1.25V. In case you forgot I am using RX 580 Aorus 4GB BIOS with RX 470 G1 Gaming VOI.


----------



## mynm

rootmoto said:


> @mynm Sorry for the late reply as I have been busy, I saw your post in regards about LLC and adding +/- 25mV, how would I be able to enable LLC but not adding +/-25mV in the process as my ASIC profiling table is already set to 1.25V. In case you forgot I am using RX 580 Aorus 4GB BIOS with RX 470 G1 Gaming VOI.


Ok, so if this is your 470 VOI:
62 00 03 01 01 03 2E 00 08 96 10 00 00 00 00 00 29 00 24 00 2B 00 2C 00 33 00 72 00 24 00 1C 00 14 00 22 00 39 00 BE 00 61 00 03 00 62 00 7E 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 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 02 00 10 00 B6 03

I suppose it is Load Line Slope Trim 000 disabled and Offset Trim to 10 unchanged, so is 0000 0000 0000 0010 so 02 00.

As far as I know nobody have tested this. Is working for my 380 but it have an 81022 controller, 000 is disabled for it but I don't know how are working the rest of values because it have different values.


----------



## rootmoto

@mynm Thanks, I will give it a try this weekend and see how it goes. Will report back.


----------



## mynm

rootmoto said:


> @mynm Thanks, I will give it a try this weekend and see how it goes. Will report back.


Ok, what is your vdroop now?. With the stock LLST I see a -50 mv vdroop with load, with it to disabled I see a 6vm increase in the vddc with load.


----------



## rootmoto

@mynm It is at 1.2437V with the VMAX mod done limiting to 1.25v. This was with the 03 register. Thanks for the very valuable help you've given to me.


----------



## mynm

rootmoto said:


> @mynm It is at 1.2437V with the VMAX mod done limiting to 1.25v. This was with the 03 register. Thanks for the very valuable help you've given to me.


You are welcome, ok so is it the voltage that you see while gaming? or is it the max voltage?, If it is the voltage you see while gaming it is near to be like LLC disabled and maybe you will not get any improvement disabling it. I don't know what is the regiter 03 doing, I don't see it in the IR3567b registers doc.


----------



## PhukngHardToReg

rootmoto said:


> @mynm It is at 1.2437V with the VMAX mod done limiting to 1.25v. This was with the 03 register. Thanks for the very valuable help you've given to me.


So high voltage!! Did it throttle? Is the fan noisy?


----------



## hellm

First 590 BIOS files are online.
https://www.techpowerup.com/vgabios/?manufacturer=XFX&model=RX+590

From a first look there seem to be a few significant differences within the tables. VOI table has different VO's and ASIC_Profiling is interesting, has 1212mV now, this is against the 25mV step restriction from before; maybe related to other things. Must first be examined in more detail.

I've already added the 590 ID to post#3, and magic GOP version 1.67; this time i have also corrected the CRC sum in the file name.

edit:
found some weird voltage setting in power play table:

typedef struct _PolarisCoreClkDepRecord
{
uint8_t VDDC;
int16_t VDDCOffset;
uint32_t CoreClk;
uint16_t EDCCurrent;
uint8_t ReliabilityTemperature;
uint8_t CKSOffsetAndDisable; // bits 0-6: volt offset, 7: enable/disable
int32_t SClkOffset; // Polaris only!
} PolarisCoreClkDepRecord;

590 xfx:

02	uint8_t VDDC;
E6 FF	int16_t VDDCOffset;
A4 C8 01 00	uint32_t CoreClk;
00 00	uint16_t EDCCurrent;
00	uint8_t ReliabilityTemperature;
32	uint8_t CKSOffsetAndDisable; // bits 0-6: volt offset, 7: enable/disable
00 00 00 00	int32_t SClkOffset; // Polaris only!

07	uint8_t VDDC;
00 00	int16_t VDDCOffset;
30 69 02 00	uint32_t CoreClk;
00 00	uint16_t EDCCurrent;
00	uint8_t ReliabilityTemperature;
32	uint8_t CKSOffsetAndDisable; // bits 0-6: volt offset, 7: enable/disable
00 00 00 00	int32_t SClkOffset; // Polaris only!

so, this 0x32 is new
00110010‬
would be funny if 0 on bit 7 means disabled 

MMtable and every other subtable besides fan/power is the same as on a 580 BIOS.


----------



## rootmoto

@mynm @hellm How do I adjust various DPM voltages in hex editor? I mean I see various DPM voltages in Wattman. How do they derive those values? RX 590 BIOS seems interesting gonna wait for the Gigabyte RX 590 BIOS to come out.

@PhukngHardToReg Fans are noisy and does start throttling above 80 degrees. 1.25v is as high as I will go, won't be pushing it any further for now.


----------



## mynm

hellm said:


> First 590 BIOS files are online.
> https://www.techpowerup.com/vgabios/?manufacturer=XFX&model=RX+590
> 
> From a first look there seem to be a few significant differences within the tables. VOI table has different VO's and ASIC_Profiling is interesting, has 1212mV now, this is against the 25mV step restriction from before; maybe related to other things. Must first be examined in more detail.
> 
> I've already added the 590 ID to post#3, and magic GOP version 1.67; this time i have also corrected the CRC sum in the file name.
> 
> edit:
> found some weird voltage setting in power play table:
> 
> typedef struct _PolarisCoreClkDepRecord
> {
> uint8_t VDDC;
> int16_t VDDCOffset;
> uint32_t CoreClk;
> uint16_t EDCCurrent;
> uint8_t ReliabilityTemperature;
> uint8_t CKSOffsetAndDisable; // bits 0-6: volt offset, 7: enable/disable
> int32_t SClkOffset; // Polaris only!
> } PolarisCoreClkDepRecord;
> 
> 590 xfx:
> 
> 02	uint8_t VDDC;
> E6 FF	int16_t VDDCOffset;
> A4 C8 01 00	uint32_t CoreClk;
> 00 00	uint16_t EDCCurrent;
> 00	uint8_t ReliabilityTemperature;
> 32	uint8_t CKSOffsetAndDisable; // bits 0-6: volt offset, 7: enable/disable
> 00 00 00 00	int32_t SClkOffset; // Polaris only!
> 
> 07	uint8_t VDDC;
> 00 00	int16_t VDDCOffset;
> 30 69 02 00	uint32_t CoreClk;
> 00 00	uint16_t EDCCurrent;
> 00	uint8_t ReliabilityTemperature;
> 32	uint8_t CKSOffsetAndDisable; // bits 0-6: volt offset, 7: enable/disable
> 00 00 00 00	int32_t SClkOffset; // Polaris only!
> 
> so, this 0x32 is new
> 00110010‬
> would be funny if 0 on bit 7 means disabled
> 
> MMtable and every other subtable besides fan/power is the same as on a 580 BIOS.


In tonga gpus CKSOffsetAndDisable is 80 so 1000 0000 for dpms 0 and 1, so bit 7 is 1 and is enabled. I have tested to set 80 for other dpms and with it voltages are incresed. I have tested aswell the voltage offset part, with bit 7 to 1 and 00, but I didn't se any change. Maybe I will test it to 10110010 to see what is doing.


----------



## mynm

Thread is blocked again... maybe this post can unlock it, Edited: yes


*Edited*: I have tested to set dpm 6 to 32 and it is not doing anything, to 80 and B2 is increasing the voltage from 1.112 to 1.137 the same voltage of the dpm 7.


----------



## hellm

thx :thumb:
there is another 590 BIOS online, unverified upload, but seems to be the real thing. Only 1.66 UEFI, though, but doesn't have to mean anything since dev id remains the same.
And this one uses 0x0D.. maybe you can activate it with software? And what does another voltage offset do.. i need a Polaris card again, just to test stuff..

i have made the first 480-590 conversion attempts for the reference 480, 480 nitro+, msi 480 gaming (x) and devil 480..all 8GB samsung; I don't know if it works, can't test anything. If someone wants to test it, it might give you a black screen, you might have to use 1+8pin, or it could even damage your card. I can't exclude anything, no i2c dumps made, no tests.. so huge WARNING !!! and everything..


----------



## mynm

hellm said:


> thx :thumb:
> there is another 590 BIOS online, unverified upload, but seems to be the real thing. Only 1.66 UEFI, though, but doesn't have to mean anything since dev id remains the same.
> And this one uses 0x0D.. maybe you can activate it with software? And what does another voltage offset do.. i need a Polaris card again, just to test stuff..
> 
> i have made the first 480-590 conversion attempts for the reference 480, 480 nitro+, msi 480 gaming (x) and devil 480..all 8GB samsung; I don't know if it works, can't test anything. If someone wants to test it, it might give you a black screen, you might have to use 1+8pin, or it could even damage your card. I can't exclude anything, no i2c dumps made, no tests.. so huge WARNING !!! and everything..


You are welcome :thumb: . About the CKSOffsetAndDisable to 80, I am testing it now and I think that is like disableing evv calulation with clock increases or decrease, is like is setting a fixed max voltage for the dpm acording to the asic profiling values. But I remember to did some test with it years ago and I was getting bad performance, maybe I will test more but I am a little bit tired of testing thing.

*Edited:*: Nope sorry, is lowering if it clock is lowered, but I get higher evvs with it to 80.


----------



## hellm

@mynm
thx for all the testing 

@all
so.. with the 480 devil screen remains black but windows starts; the 480 Nitro+, everything works, but new 590 or older driver reject the card.

i am thinking some microcode problem.. so no conversions this time


----------



## PhukngHardToReg

Tested with my XFX RX470D， F0 7D E6 01 hex edited, but the driver didn't recognize it.


----------



## hellm

ok, somhow forgot for the nitro+ and the reference to change POLARIS20 to 30, fixed it with v1.1;

i changed id/string to 580/Polaris20 with v1.2; this way some testing and benchmarks are possible.

update:
deleted all files for cards without BIOS switch


----------



## mtrai

Just a random thought...is it possible that the 590 like the vega also have the security chip added to it?


----------



## hellm

No, there is some other identification for the GPU. But no hardware lock, no 256 byte code.. would have been a bigger change to gpu (costs) and there would be other changes to Polaris BIOS, AMD only released the new dev id.. which isn't used by the 590..

Also, i tested this with users in the german hardware forum, with v1.2 a 580 is recognized by the driver. BIOS works, but gives artefacts due to a very low voltage under load. CKSOffsetAndDisable is not the trouble, it is really redundant data, not activated. We also tested this.

So, the 580 is a real update for the 480, the 590 is for a different GPU. I don't think Polaris10/20 would benefit from the new BIOS like it was with the 480->580 conversions.


----------



## hellm

Another attempt; this time with the BIOS of the Red Devil 590, the VOI Table is very similar to the 480 version of the Devil. Naturally, i used the 580 ID.
For anyone who wants to try. Most likely no other outcome. But here it is, for the 480's with BIOS switch:


----------



## Vento041

Writing new msg since I can't read the last ones

EDIT: It worked!


----------



## hellm

:thumb: thx 
There is a way to read the disappeared messages. Click "go advanced" and scroll down..


----------



## dsanke

I am porting RX 580 BIOS to my RX 470. I found some RX 580 BIOS will calculate incorrect current and I will got black screen at heavy load . I replaced VOI table but it doesn't help .
My RX 470 have only 4 phases vcore.
So I try Sapphire RX 470 which have 4 phases and IR3567B too , but it still calculate double current , got black screen.

I uploaded my original vBIOS file .

I tried several RX 580 BIOS , the MSI Armor OC works fine but I think it calculate current about less 1/3 .

Also , I want to change the phase 1/2/3 gain but I don't understand them ( after read vrmtool thread, sorry for my poor English )
default = gain more power from pcie slot ?
I want make it gain less power from PCIE but this card only have one 6pin jack , in fact I don't know how to set them is best .

Also , I think the VRM1 sensor is higher than the fact . I measured the MOSFET of VCORE , it never been such high temperature .
But this card will throttle at VRM1 = 115C , is these an offset to control the sensor data ? Or some method to break the limit?


----------



## hellm

Yes, power readings are higher if u only change that ID in the header from 480 to 580. There is also a current scale, if we are talking about the IR3567B. Other controllers should also have this, has something to do with the way stuff is hardwired.
You don't have to pay too much attention to this. With an i2c-dump you should see monitoring data from 0x90 to 0xCF; At 0x00 to 0x80 you have the relevant data; if the VRM programming is the same, there can't be much difference in power draw. In fact, it should be the same for same clockrate, voltage, etc. You can confirm this with a DMM clamp, even if you can't measure power consumption over the pcie slot.

If you want to know more about how the "measurement" is realized on AMD cards, buildzoid explained it here:





Phase gain for IR3567B:
0x1E = Load balancing Loop 1 phase 1 & 2, half byte = phase, non-zero value shifts loading balance, F highest shift.
0x1F = Load balancing Loop 1 phase 3 & 4, half byte = phase, non-zero value shifts loading balance, F highest shift.
0x20 = Load balancing Loop 1 phase 5 & 6, half byte = phase, non-zero value shifts loading balance, F highest shift.
0x21 = Load balancing Loop 2 phase 1 & 2, half byte = phase, non-zero value shifts loading balance, F highest shift.
i would recommend only to change this if you have to.

Don't know about VRM Temp. Was pretty plausible on my reference RX 480, never was affected by BIOS flashes.


----------



## dsanke

Thank you hellm.

I found other weird things.

I added some value to VOI table but it doesn't work at all.
I am using MSI Armor OC RX 580 BIOS and it has NCP81022 .
So I replaced whole VOI table with my stock RX 470 one , and add 0x22 , 0x23 , 0x38 , 0x8D to it .
None of these valuse work .

MSI BIOS 's furmark power ( 720p no aa ) is 20W less than the stock BIOS ( the same voltage and frequency showed in hwinfo ) . Measured input power of PSU , including all system parts .


----------



## mynm

dsanke said:


> Thank you hellm.
> 
> I found other weird things.
> 
> I added some value to VOI table but it doesn't work at all.
> I am using MSI Armor OC RX 580 BIOS and it has NCP81022 .
> So I replaced whole VOI table with my stock RX 470 one , and add 0x22 , 0x23 , 0x38 , 0x8D to it .
> None of these valuse work .
> 
> MSI BIOS 's furmark power ( 720p no aa ) is 20W less than the stock BIOS ( the same voltage and frequency showed in hwinfo ) . Measured input power of PSU , including all system parts .


Hi, with the NCP81022 the register for the voltage offset is E6, we are talking about how to add it here: https://www.overclock.net/forum/27733264-post5187.html 

About the Load balancing Loop, I don't know if it can be configured or how, you can se the datasheet https://media.digikey.com/pdf/Data Sheets/ON Semiconductor PDFs/NCP81022.pdf maybe you could get some info about it on it.


----------



## khuramg

*RX580 Nitro+ 4GB idle power consumption*

Hello All,

Just noticed idle GPU consumption is about 32W whereas it should be abut 12 for what I've read?

Nothing is running in the background, just GPU-Z.

I've also seen a few other posts regarding the same issue on various forums but no solution.

Ive got the latest drivers installed, cleaned the drivers using DDU but still the same symptom. Even tried flashing the stock bios again and reinstalling windows. Must be a Nitro+ bios feature?

Any recommendations / suggestions? Or is there an enhanced version of the bios for this card which I can try? (Obv for gaming and not mining).

Many thanks


----------



## dsanke

khuramg said:


> Hello All,
> 
> Just noticed idle GPU consumption is about 32W whereas it should be abut 12 for what I've read?
> 
> Nothing is running in the background, just GPU-Z.
> 
> I've also seen a few other posts regarding the same issue on various forums but no solution.
> 
> Ive got the latest drivers installed, cleaned the drivers using DDU but still the same symptom. Even tried flashing the stock bios again and reinstalling windows. Must be a Nitro+ bios feature?
> 
> Any recommendations / suggestions? Or is there an enhanced version of the bios for this card which I can try? (Obv for gaming and not mining).
> 
> Many thanks


If you change id to 5xx series , it will show 30W at idle .

It doesn't affect actual power consumption .


----------



## dsanke

mynm said:


> Hi, with the NCP81022 the register for the voltage offset is E6, we are talking about how to add it here: https://www.overclock.net/forum/27733264-post5187.html
> 
> About the Load balancing Loop, I don't know if it can be configured or how, you can se the datasheet https://media.digikey.com/pdf/Data Sheets/ON Semiconductor PDFs/NCP81022.pdf maybe you could get some info about it on it.


Thank you mynm .

I am porting NCP81022's BIOS to my IR3567B card .

And when I add values for IR3567B , it won't work.

That's the problem.


----------



## mynm

dsanke said:


> Thank you mynm .
> 
> I am porting NCP81022's BIOS to my IR3567B card .
> 
> And when I add values for IR3567B , it won't work.
> 
> That's the problem.


Ok, sorry, I understood it wrong. If it is not working maybe you will have to change asic init table and set voltage table if your gpu is using diferent tables.

*Edited:*
Is this the msi 580 bios you are using? https://www.techpowerup.com/vgabios/191946/msi-rx580-8192-170314 , I will take a look to it.


----------



## dsanke

mynm said:


> dsanke said:
> 
> 
> 
> Thank you mynm .
> 
> I am porting NCP81022's BIOS to my IR3567B card .
> 
> And when I add values for IR3567B , it won't work.
> 
> That's the problem.
> 
> 
> 
> Ok, sorry, I understood it wrong. If it is not working maybe you will have to change asic init table and set voltage table if your gpu is using diferent tables.
> 
> *Edited:*
> Is this the msi 580 bios you are using? https://www.techpowerup.com/vgabios/191946/msi-rx580-8192-170314 , I will take a look to it.
Click to expand...

Hi , mynm .

I am using the only 4GB one.
https://www.techpowerup.com/vgabios/192563/msi-rx580-4096-170405

I haven't modified ASIC_Init Table , I guess it might be the key.


----------



## mynm

dsanke said:


> Hi , mynm .
> 
> I am using the only 4GB one.
> 
> I haven't modified ASIC_Init Table , I guess it might be the key.


Yes, that is the key. Some values that are enabling the voltage controll are added in the 470 bios. The values ares 02 0D 02 01 03 for the asic init and some lines in the set voltage table.

So changing the asic init table and the set voltage table to the attached ones should do the VOI values to work.


----------



## dsanke

Thanks you again , @mynm

I have another questions.

1.How to fix the power consumption miscalculation? In fact I think the stock vBIOS also have miscalculation too.

2.How to add auto detect vram entry?
I found a vBIOS can not boot when I replace whole vram_info table , is there other place neee to be modified?
This vBIOS have 3 vram vendor support but it doesn't have auto detect entry , it always recognize vram's vendor as hynix.


----------



## khuramg

dsanke said:


> If you change id to 5xx series , it will show 30W at idle .
> 
> It doesn't affect actual power consumption .



OK great - thank you for confirming.

It is actually a genuine RX580 (not flashed).

I was reading articles where they've confirmed it actually consume about 11W in idle state - I guess they probably measured consumption using a more advanced device.


----------



## mynm

dsanke said:


> Thanks you again , @mynm
> 
> I have another questions.
> 
> 1.How to fix the power consumption miscalculation? In fact I think the stock vBIOS also have miscalculation too.
> 
> 2.How to add auto detect vram entry?
> I found a vBIOS can not boot when I replace whole vram_info table , is there other place neee to be modified?
> This vBIOS have 3 vram vendor support but it doesn't have auto detect entry , it always recognize vram's vendor as hynix.


You are welcome. 

About power consumption miscalculation, maybe can be fixed changing or adding some registers to the VOI, but I don't know how is it working in the IR3567B.

In the NCP81022 the "GPU chip power" in hwinfo64 is what is used to do to the power throttling, when it reaches the bios power limts values, power throttling starts. If it you see a difference between the hwinfo shown value when gpu starts to do the throttling and the bios power limit values, maybe the miscalculation is an hwinfo problem and not a bios problem. 

*Edited:* I have tested one register with Afterburner and the hwinfo64 "GPU chip power" is not affected. Gpuz "vddc power" is affected, but this value is not the used for the power limts for my r9 380, I don't know if with the polaris gpus is the same. So I don't see a bios solution for the problem.

I have no idea about the second question.


----------



## hellm

khuramg said:


> OK great - thank you for confirming.
> 
> It is actually a genuine RX580 (not flashed).
> 
> I was reading articles where they've confirmed it actually consume about 11W in idle state - I guess they probably measured consumption using a more advanced device.


That is really funny. We had the same thing with the stuck GPU and Mem Load at 16%/100%. Was affecting every 580, not just the renamed/flashed 480s.

For the power thing. i would disable power limit and not worry about it. it is crucial the PWM controller has the right programming, and as long as this is the case..
If you don't have too much cooling power use undervolting and a temperture target. Power monitoring on Radeon cards is faulty from the beginning.


----------



## khuramg

hellm said:


> That is really funny. We had the same thing with the stuck GPU and Mem Load at 16%/100%. Was affecting every 580, not just the renamed/flashed 480s.
> 
> For the power thing. i would disable power limit and not worry about it. it is crucial the PWM controller has the right programming, and as long as this is the case..
> If you don't have too much cooling power use undervolting and a temperture target. Power monitoring on Radeon cards is faulty from the beginning.



Thanks hellm for the detailed explanation :specool:

Reading more about this issue it seems it was driver related issue which was fixed by AMD a while ago but I guess 580 (4GB) Nitros + cards are still suffering. I tried installing old drivers (going back to when the card was released and exactly the same issue with the incorrect figures reported).

In GPU-Z, the mem load and gpu usage values are what they should be apart from high'ish reported (33W power consumption reported in idle state).

However using MSI's Afterburner or Sapphire's Trixx software, the GPU usage is stuck at 16% and mem usage is at 100%, even when idling - not sure which software to believe and that is the reason for high's consumption or are they purely misleading figures.

Luckily no issues with the cooling - the nitros + has a huge heat sink and overall a very capable cooling solution and it works very well - I was just curious about these figures reported by different softwares.

Im running stock bios for this card - 1411 / 1750 speeds which I believe is the fastest stock you can get for a 4GB 580.

Can I improve this further by tinkering with the bios or leave things alone?


----------



## hellm

Memory timings are always a good recommendation.


----------



## khuramg

hellm said:


> Memory timings are always a good recommendation.


Thanks hellm, I'm ok with flashing bios etc but otherwise I'm a complete newbie - any/help guidance you can provide will be much appreciated.

Are there any proven mem timing settings that I can simply adjust and flash to the card? 

https://www.techpowerup.com/vgabios/191775/sapphire-rx580-4096-170323

This is the stock bios I currently have on the card if it helps to determine potentially what is possible?

Many thanks


----------



## Merutsu

hellm said:


> For a 470/570 to 580 conversion the byte at offset 0xD7 has also to be changed from 0x0F to 0x07.
> offset 0xD4-0xD7:
> 570: F0 7D E6 0F
> 580: F0 7D E6 07


I am trying to flash aorus rx570 into rx580 to bypass the signature check, but after this mod the card is still recognized as rx570 and the driver needs to be patched. Does anyone know what is wrong?


----------



## mynm

I have done some test about some things I mentioned in the thread.

One related to the memory voltage like I say here https://www.overclock.net/forum/27669358-post818.html .

I have tested to mod my 380 to add those values using as a reference asic init, set voltage and VOI tables of a 390 bios. The mentioned gbt 580 in the linked post have some values in common with the 390.

95 00 01 02 00 08 02 01 02 00 52 47 52 02 02 65 02 07 52 0D 55 00 02 52 0D 52 23 2C 25 02 01 3D 25 02 06 45 17 00 51 02 52 3D 52 39 02 0D 02 01 03 52 43 66 04 02 8C 02 2E 00 02 0D 02 01 00 52 43 02 05 02 04 00 52 03 52 43 *02 0D 02 02 03* 52 43 02 F9 02 01 52 05 02 01 02 00 0E E5 02 08 52 0A* 02 05 02 02 00 0E 06* 52 43 02 05 02 04 00 20 03 52 43 02 05 02 30 75 00 40 52 0B 02 05 02 04 00 52 03 52 43 02 01 02 01 0E E5 02 08 52 0B 0D 65 D0 05 02 5B

020D020203 MOVE param[02] [..XX] <- 0302 this seems to activate the memory controller.

0062: 02050202000e06 MOVE param[02] [XXXX] <- 05dc0002 this seems to ve indicating the voltage for the memory 5dc so 1.5v.

My 380 asic init have these values: 

02f90201 MOVE param[02] [X...] <- param[01] [X...] instead of 02 0D 02 02 03 

and didn't have the second values so I added them.

Some polaris gpus have 02f90201 and 02050202000000 without the voltage so maybe changing the first value and adding a voltaage to the second could work for them.

I also added some values found in the 390 VOI 

02 00 24 00 00 04 00 00 00 80 10 00 00 00 00 00 1E 05 00 00 10 00 46 05 00 80 00 00 DC 05 00 80 10 00 0E 06

Are related to mvddc and gpio control and seems to be voltages, 1.31v, 1.35v, 1.5v, 1.55v. 

So I have tested to change the values into asic init and voi to some voltges. With 825mv pc don't boot, with 1.2v it boots but crash when windows starts, with 1.3v I can log to windows but it crash with load, with 1.4v I get crash after some gaming, with 1.5v seems ok. So it seems to work.

I have no idea if adding the VOI values is needed.


The second test is about vddci: https://www.overclock.net/forum/27645072-post779.html .

Some polaris gpus have different values for the vddci in the VOI

04 07 0C 00 0E 00 00 00 00 00 00 00 related to svid2 controll for vddci

and

04 00 24 00 00 04 00 00 02 80 10 00 00 00 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 B6 03 related to gpio controll for vddci

My 380 have the gpio values, changin then to 825mv and changing the vddci values into powerplay to 825mv seems ok, with less I a get green screen.

But changing the values to the svid2 ones I need to set all the powerplay vddci values to 1.075v, with 1.05v I get aplication crashes.

Maybe is the gpio controll for the vddci values not real?


----------



## hellm

great work again :thumb:

that's it. i need a polaris card again, just for testing this..



Merutsu said:


> I am trying to flash aorus rx570 into rx580 to bypass the signature check, but after this mod the card is still recognized as rx570 and the driver needs to be patched. Does anyone know what is wrong?


i just worked on a BIOS for 570 nitro+ 8GB. User complained it would be recognized as a 580, although the BIOS was unmodified and with 570 ID. Maybe AMD changed something with the 2048 shaders version, it has a new device id.
580 2048: DF 6F -> 0x6FDF
470/480/570/580/590: DF 67 -> 0x67DF

If you want to change the device id, search for "02 10 DF 67", should be found after the "PCIR" String and shortly after beginning of GOP/UEFI part.
02 10 -> 0x1002 is VendorID (AMD), after that the DeviceID is found.


----------



## davidm71

Hi,

I have an XFX - AMD Radeon RX 460 4 GB 

Is this card compatible with this conversion technique?

Thank you


----------



## mynm

hellm said:


> great work again :thumb:
> 
> that's it. i need a polaris card again, just for testing this..


Thanks :thumb: . I have no idea if this could work for all the amd gpus or maybe It depends of the memory controller. My 380 nitro have a NCP1587 controller, I used a 390 nitro as reference to do the mod, but I don't know what memory controller is using it.


----------



## Merutsu

hellm said:


> i just worked on a BIOS for 570 nitro+ 8GB. User complained it would be recognized as a 580, although the BIOS was unmodified and with 570 ID. Maybe AMD changed something with the 2048 shaders version, it has a new device id.
> 580 2048: DF 6F -> 0x6FDF
> 470/480/570/580/590: DF 67 -> 0x67DF
> 
> If you want to change the device id, search for "02 10 DF 67", should be found after the "PCIR" String and shortly after beginning of GOP/UEFI part.
> 02 10 -> 0x1002 is VendorID (AMD), after that the DeviceID is found.


yes, something has been changed in 18.x versions. My friend has the same card (nitro 570 8gb micron) and it recognizes as a rx580 by the driver too.
I've googled similar issues:
https://steamcommunity.com/groups/SAPPHIRETechnology/discussions/0/1735462352499381814/
https://community.amd.com/thread/231743
it must be a driver issue.

about aorus rx570: the card has 0x1002 vendor id and device id 0x67DF by default, just as my nitro rx580. I am using this card with the old driver (18.3.4), so I think it wont understand device id 0x6FDF =)


----------



## hellm

I am thinking here, maybe if there is no hardware lock, the driver now sees a 580. if there is, a 570, or it has the new devID with 6F. Something like that.

Anyway, i removed the software lock from the nitro 570 BIOS, 580 ID at the beginning, 2000MHz mem clock, 2300MHz max, TDP @580, max pl 142%:

Sapphire RX570 Nitro+ 8GB Micron


----------



## mynm

hellm said:


> I am thinking here, maybe if there is no hardware lock, the driver now sees a 580. if there is, a 570, or it has the new devID with 6F. Something like that.
> 
> Anyway, i removed the software lock from the nitro 570 BIOS, 580 ID at the beginning, 2000MHz mem clock, 2300MHz max, TDP @580, max pl 142%:
> 
> Sapphire RX570 Nitro+ 8GB Micron


Maybe is better to use CUINFO v1.7 before flashing: https://www.overclock.net/forum/25518093-post575.html

And if it can be unlocked see point 3 "Get a cuinfo report and examine the status and dotted map" here :https://www.overclock.net/forum/67-...ji-unlockability-tester-ver-1-6-atomtool.html


----------



## hellm

davidm71 said:


> Hi,
> 
> I have an XFX - AMD Radeon RX 460 4 GB
> 
> Is this card compatible with this conversion technique?
> 
> Thank you


afaik it does not. had a few tries over a year ago, no success, no further investigation. try to unlock the 460 BIOS and patch the driver. safest and most stable way.


----------



## davidm71

hellm said:


> davidm71 said:
> 
> 
> 
> Hi,
> 
> I have an XFX - AMD Radeon RX 460 4 GB
> 
> Is this card compatible with this conversion technique?
> 
> Thank you
> 
> 
> 
> 
> 
> 
> 
> afaik it does not. had a few tries over a year ago, no success, no further investigation. try to unlock the 460 BIOS and patch the driver. safest and most stable way.
Click to expand...



Thanks!


----------



## Merutsu

hellm said:


> I am thinking here, maybe if there is no hardware lock, the driver now sees a 580. if there is, a 570, or it has the new devID with 6F. Something like that.


Is it possible that amd is using subsystem id for card recognition since 18.x driver version? 
sapphire nitro rx570 and nitro rx580 have the same subsystem id (1DA2 E366):
https://www.techpowerup.com/vgabios/192281/sapphire-rx570-8192-170322
https://www.techpowerup.com/vgabios/191262/sapphire-rx580-8192-170320

gigabyte, asus, msi and others are using different subsystem ids for 570 and 580 cards. Maybe because of that aorus rx570 is still recognized as rx570.


----------



## mynm

I have more info about the VOI GPIO values for te memory, in case some body can help to know how is working.

Now I know the names for the values, acording to this info :



Spoiler






Code:


package backend;
import java.util.ArrayList;
import java.util.List;

public class ATOM_GPIO_VOLTAGE_OBJECT_V3 extends ADynamicContainer {
	   ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader =  new ATOM_VOLTAGE_OBJECT_HEADER_V3();   // voltage mode = VOLTAGE_OBJ_GPIO_LUT or VOLTAGE_OBJ_PHASE_LUT
	   ByteStructure    ucVoltageGpioCntlId =  new ByteStructure();         // default is 0 which indicate control through CG VID mode 
	   ByteStructure    ucGpioEntryNum =  new ByteStructure();              // indiate the entry numbers of Votlage/Gpio value Look up table
	   ByteStructure    ucPhaseDelay =  new ByteStructure();                // phase delay in unit of micro second
	   ByteStructure    ucReserved =  new ByteStructure();   
	   LongStructure    ulGpioMaskVal =  new LongStructure();               // GPIO Mask value
	   VOLTAGE_LUT_ENTRY_V2 asVolGpioLut1 =  new VOLTAGE_LUT_ENTRY_V2();
	   VOLTAGE_LUT_ENTRY_V2 asVolGpioLut2 =  new VOLTAGE_LUT_ENTRY_V2();
	   VOLTAGE_LUT_ENTRY_V2 asVolGpioLut3 =  new VOLTAGE_LUT_ENTRY_V2();
	   VOLTAGE_LUT_ENTRY_V2 asVolGpioLut4 =  new VOLTAGE_LUT_ENTRY_V2();
	   VOLTAGE_LUT_ENTRY_V2 asVolGpioLut5 =  new VOLTAGE_LUT_ENTRY_V2();
	   VOLTAGE_LUT_ENTRY_V2 asVolGpioLut6=  new VOLTAGE_LUT_ENTRY_V2();
	   VOLTAGE_LUT_ENTRY_V2 asVolGpioLut7 =  new VOLTAGE_LUT_ENTRY_V2();
	   VOLTAGE_LUT_ENTRY_V2 asVolGpioLut8 =  new VOLTAGE_LUT_ENTRY_V2();
	   [USER=81985]@override[/USER]
		public List<IStructure> getSubStructureList() {
			System.out.println("ATOM_GPIO_VOLTAGE_OBJECT_V3 getSubStructureList()");
			List<IStructure> list = new  ArrayList<IStructure>();
			list.add(sHeader);
			list.add(ucVoltageGpioCntlId);
			list.add(ucGpioEntryNum);
			list.add(ucPhaseDelay);
			list.add(ucReserved);
			list.add(ulGpioMaskVal);
			if(ucGpioEntryNum.getBinaryDataBlock()!=null){
				int ucGpioEntrycount = ucGpioEntryNum.getBinaryDataBlock().getIntegerLE();
				System.out.println("ATOM_GPIO_VOLTAGE_OBJECT_V3 ucGpioEntrycount: "+ucGpioEntrycount);
				switch (ucGpioEntrycount) {
				case 8:	list.add(asVolGpioLut8);
				case 7:	list.add(asVolGpioLut7);	
				case 6:	list.add(asVolGpioLut6);
				case 5:	list.add(asVolGpioLut5);
				case 4:	list.add(asVolGpioLut4);
				case 3:	list.add(asVolGpioLut3);
				case 2:	list.add(asVolGpioLut2);
				case 1:	list.add(asVolGpioLut1);
				default:
					break;
				}
			}
			return list;



public class VOLTAGE_LUT_ENTRY_V2 extends  AContainer {
	 LongStructure		ulVoltageId =  new LongStructure();									  // The Voltage ID which is used to program GPIO register
	 ShortStructure		usVoltageValue = new ShortStructure();									// The corresponding Voltage Value, in mV
   [USER=81985]@override[/USER]
	public List<IStructure> getSubStructureList() {
		System.out.println("VOLTAGE_LUT_ENTRY_V2 getSubStructureList()");
		List<IStructure> list = new  ArrayList<IStructure>();
		list.add(ulVoltageId);
		list.add(usVoltageValue);
		return list;
	}
   [USER=81985]@override[/USER]
	public void fillSubListDescriptions() {
		ulVoltageId.setName("VoltageId");
		ulVoltageId.setDescription("The Voltage ID which is used to program GPIO register");
		usVoltageValue.setName("VoltageValue");  
		usVoltageValue.setDescription("The corresponding Voltage Value, in mV");



		super.fillSubListDescriptions();
	}
}





For example for a sapphire 390x the gpio values are:


Code:


   2       	usVoltageType is MVDDC 
   0       	usVoltageMode is GPIO_LUT
  24 00	   	usSize
  00	  	ucVoltageGpioCntlId       // default is 0 which indicate control through CG VID mode 
  04	   	ucGpioEntryNum            // indiate the entry numbers of Votlage/Gpio value Look up table
  00	   	ucPhaseDelay             // phase delay in unit of micro second
  00	   	ucReserved 
  00 80 10 00 	ulGpioMaskVal            // GPIO Mask value
  00 00 00 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  1E 05		usVoltageValue		// The corresponding Voltage Value, in mV =1.31v
  00 00 10 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  46 05		usVoltageValue		// The corresponding Voltage Value, in mV = 1.35v
  00 80 00 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  DC 05		usVoltageValue		// The corresponding Voltage Value, in mV =1.5v
  00 80 10 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  0E 06		usVoltageValue		// The corresponding Voltage Value, in mV =1.55v

For a xfx 390 are:


Code:


   2       	usVoltageType is MVDDC 
   0       	usVoltageMode is GPIO_LUT
  24 00	   	usSize
  00	  	ucVoltageGpioCntlId       // default is 0 which indicate control through CG VID mode 
  04	   	ucGpioEntryNum            // indiate the entry numbers of Votlage/Gpio value Look up table
  00	   	ucPhaseDelay             // phase delay in unit of micro second
  00	   	ucReserved 
  00 80 10 00 	ulGpioMaskVal            // GPIO Mask value
  00 80 10 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  1E 05		usVoltageValue		// The corresponding Voltage Value, in mV =1.31v
  00 80 10 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  46 05		usVoltageValue		// The corresponding Voltage Value, in mV = 1.35v
  00 80 10 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  DC 05		usVoltageValue		// The corresponding Voltage Value, in mV =1.5v
  00 80 10 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  0E 06		usVoltageValue		// The corresponding Voltage Value, in mV =1.55v

The asic init voltage for the sapphire is 1.5v and fot the xfx is 1.55v.

ulVoltageIds are changing, they have the same voltages for the VOI but a different one in the asic init. So I don't know how this is working.

I see now one @gupsterg 's post about this, maybe he knows more about this.

https://www.overclock.net/forum/24844863-post1480.html


----------



## hellm

Hm. Seems plausible. If there is a GPIO Pin, which provides a voltage, and this is about the reference 480:


> Buildzoid points out the fixed frequency 600KHz, single phase chip which integrates a driver with a synchronous buck controller. The chip has voltage sensing built-in to it, making it the target chip for the volt mod.


And this voltage sensing built-in is feeded with this GPIO voltage? So, the real memory voltage is accessable after all? Or did i understand something completely wrong here?


----------



## mynm

hellm said:


> Hm. Seems plausible. If there is a GPIO Pin, which provides a voltage, and this is about the reference 480:
> 
> And this voltage sensing built-in is feeded with this GPIO voltage? So, the real memory voltage is accessable after all? Or did i understand something completely wrong here?


I have no idea about that technical things, maybe is about hardware mod to the memory and that memory voltage can be measured. 

Buildzoid points here where memory voltage can be measured in my 380: https://cxzoid.blogspot.com/search?q=380 , but I don't know how to do it and I don't have a multimeter.

Is your quote about this link?: http://hwbot.org/newsflash/3867_rad...tage_mod_from_buildzoid_shot_in_first_person/


----------



## hellm

i don't know for sure, i was more asking. I think u change some voltage in, and voltage out on the vrm side is changed accordingly.
would have to spent more time with this. and a radeon to try things and measure stuff. don't have the time currently.


----------



## mynm

hellm said:


> i don't know for sure, i was more asking. I think u change some voltage in, and voltage out on the vrm side is changed accordingly.
> would have to spent more time with this. and a radeon to try things and measure stuff. don't have the time currently.


Yes, ok, I don't know how it technically works. 

So have you a multimeter to measure?, but you don't have a polaris to test. Maybe I will have to buy one multimeter. For me now is to late to buy a polaris gpu. I have a i5 2300 @3.3mhz, with the 380 is some times bottleneck, so I think is better for me to wait for new cpus and gpus.

Edited: But I don't know how to use the multimeter. Where do I have to put the red and black cables to measure the memory and the core coltages: https://3.bp.blogspot.com/-Pam5WReWbN8/VkELR0Fu5kI/AAAAAAAABHg/ZBiYQxAC8fs/s1600/5_stitch%281%29.jpg .

Is maybe red to some of the measure point and black to some graund point?


----------



## hellm

Maybe i told a lot of bull... as i said, not really much time for that right now.

Depends on what you measure. voltage measurement is parallel, so i guess it wouldn't matter; only sign +/- should differ, because it is a potential difference.
If you want to meassure ampere, that would be in series, but i don't know how that would matter. Just don't put an ampere meter in parallel.


----------



## mynm

hellm said:


> Maybe i told a lot of bull... as i said, not really much time for that right now.
> 
> Depends on what you measure. voltage measurement is parallel, so i guess it wouldn't matter; only sign +/- should differ, because it is a potential difference.
> If you want to meassure ampere, that would be in series, but i don't know how that would matter. Just don't put an ampere meter in parallel.


Thanks for the tips. I will try to buy tomorrow a cheap multimeter to test.


----------



## hellm

The IR3567B Polaris cards don't have a MVDDC VoltageType entry, it is VDDCI instead. I am guessing this is the extra phase on the GPU VRM? The one you can kill your card with?
580


Spoiler






Code:


04	usVoltageType is VDDCI
00
24 00
00
04
00
00
02 80 10 00	ulGpioMaskVal
00 00 00 00	ulVoltageId
20 03		//800mV
00 00 10 00	ulVoltageId
52 03		//850mV
02 00 00 00	ulVoltageId
84 03 		//900mV
00 80 00 00	ulVoltageId
B6 03		//950mV




480


Spoiler






Code:


04
00
24 00
00
04
00
00
02 80 10 00
00 00 10 00	ulVoltageId
52 03		//850mV
02 00 00 00	ulVoltageId
84 03		//900mV
02 00 10 00	ulVoltageId
B6 03		//950mV
00 80 10 00	ulVoltageId
E8 03		//1000mV


----------



## mynm

hellm said:


> The IR3567B Polaris cards don't have a MVDDC VoltageType entry, it is VDDCI instead. I am guessing this is the extra phase on the GPU VRM? The one you can kill your card with?
> 580
> 
> 
> Spoiler
> 
> 
> 
> 
> 
> 
> Code:
> 
> 
> 04	usVoltageType is VDDCI
> 00
> 24 00
> 00
> 04
> 00
> 00
> 02 80 10 00	ulGpioMaskVal
> 00 00 00 00	ulVoltageId
> 20 03		//800mV
> 00 00 10 00	ulVoltageId
> 52 03		//850mV
> 02 00 00 00	ulVoltageId
> 84 03 		//900mV
> 00 80 00 00	ulVoltageId
> B6 03		//950mV
> 
> 
> 
> 
> 480
> 
> 
> Spoiler
> 
> 
> 
> 
> 
> 
> Code:
> 
> 
> 04
> 00
> 24 00
> 00
> 04
> 00
> 00
> 02 80 10 00
> 00 00 10 00	ulVoltageId
> 52 03		//850mV
> 02 00 00 00	ulVoltageId
> 84 03		//900mV
> 02 00 10 00	ulVoltageId
> B6 03		//950mV
> 00 80 10 00	ulVoltageId
> E8 03		//1000mV


My 380 also don't have the gpio MVDDC VoltageType entry, I have added it. And I have changed the vddci gpio one to a svid2 one.

I will try to measure the vddci with the multimeter, but I don't see info on where to measuring points is. 

Acording to hawaii bios mod guide stock max vddci voltage for some gpus are 1.05v, is not recomended more than 1.1v for vddci and 1.2v can kill the gpu.


----------



## dsanke

mynm said:


> Yes, that is the key. Some values that are enabling the voltage controll are added in the 470 bios. The values ares 02 0D 02 01 03 for the asic init and some lines in the set voltage table.
> 
> So changing the asic init table and the set voltage table to the attached ones should do the VOI values to work.


I tried the 2 tables ( Use table calculator and hxd to do that ) and it doesn't work. I sold this card and bought one XFX and one Sapphire , both are using NCP81022.


----------



## mynm

dsanke said:


> I tried the 2 tables ( Use table calculator and hxd to do that ) and it doesn't work. I sold this card and bought one XFX and one Sapphire , both are using NCP81022.


I don't know why is not working, is working for my 380. 

For your 470 IR3567B would have been better to use a 580 bios with the IR3567B. 

Maybe with these new NCP81022 gpus you could have the same problem with the voltage offset, I have no idea why some of the NCP81022 bios don't let to do the voltage offset, while with the IR3567B ones I think that are working for all, if I am not mistaken. Maybe would have been better to see the asic init and set voltage tables before buying the gpus.

Maybe I will have to do a guide of who to see if the voltage offset could work and how to try to do it to work.


----------



## mynm

I have tested with the multimeter the measure point for the memory and the core sugested by @buildzoid here: https://3.bp.blogspot.com/-Pam5WReWbN8/VkELR0Fu5kI/AAAAAAAABHg/ZBiYQxAC8fs/s1600/5_stitch%281%29.jpg

The memory one seems to be the 0.95v rail, I see 0.95v without load and 0.990v with load. Edited: or maybe vddci?

The core one seems to be ok is 0.730v without load for a setted voltage of 0.775v and 1.163v with load with a setted voltage of 1.137v.

I have tested with the red wire to the measure point and the black one to ground, is it ok to test like this or I am doing it wrong?

Maybe I have to PM @buildzoid to see if he knows where is the real measure point for the memory.

Edited: also I see a secon hand 480 nitro+ 4gb with a good price, I am tempted to buy it, but I am not sure...

Edited: I have pointed other points that seems to be other voltage measure points. Is safe to test all of them  , or I am going to mess some thing :S .

Edited: I see now in this buidzoid's video: https://youtu.be/7Ub9GJ0c60Q?t=1915 

that this image is wrong:https://1.bp.blogspot.com/-n4d3qaJ5qRI/VkELSpzF-cI/AAAAAAAABHs/WDhn722QEu8/s1600/IMG_1933.JPG

The aux vrm is the lower one and the memory one is the higesht. I will test my image dark green measuring points.

Edit: Yes, he is soldering there:

https://youtu.be/1XOjaIEvsf4?t=1723

I will test.

Edited: Yes it is the memory voltege measuring point and it is 1.5v so, maybe my memory mod and vddci mod is not working.

Edited: but it is like it is working, lower voltage less stability.

The weird thing I see is that with my modded bios the "vrm aux/vddci" readings are from 950v without load to 990v with load, but with the stock bios one are, without load 825mv, and with load is 1.144v!!! ***!!!... I can not understand this...

I will try to understand this...

*Edited:* Sorry for this offtopic, but I have to attach my measured values for the measure points, one image for my modded bios with the VOI with the gpio mvddc and the svid2 vddci, and the other one for the stock bios . As I said I can not understand this...

*Edited: the asic and VOI gpio mod seems to be affecting to what seems VDCCI VRM measured values so caution*

*Edited:* The multimeter error is 0.008% + 5 dgt so is like +- 14mv, with the modded bios the voltage is increased with charge l+10mv for the vddgfx, +18 for the vddc, and increased +6 fot the vddci and it seem 35 more mv than the setted voltage of 975mv fot it.


----------



## mynm

I think that I have an explanation about what is happening with the gpio mvddc mod:


The sapphire 390x gpio values I was using for the mod are:


Code:


  2       	usVoltageType is MVDDC 
  0       	usVoltageMode is GPIO_LUT
  24 00	   	usSize
  00	  	ucVoltageGpioCntlId       // default is 0 which indicate control through CG VID mode 
  04	   	ucGpioEntryNum            // indiate the entry numbers of Votlage/Gpio value Look up table
  00	   	ucPhaseDelay             // phase delay in unit of micro second
  00	   	ucReserved 
  00 80 10 00 	ulGpioMaskVal            // GPIO Mask value
  00 00 00 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  1E 05		usVoltageValue		// The corresponding Voltage Value, in mV =1.31v
  00 00 10 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  46 05		usVoltageValue		// The corresponding Voltage Value, in mV = 1.35v
  00 80 00 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  DC 05		usVoltageValue		// The corresponding Voltage Value, in mV =1.5v
  00 80 10 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  0E 06		usVoltageValue		// The corresponding Voltage Value, in mV =1.55v


My sapphire 380 values are:


Code:


  4         usVoltageType is VDDCI
  0       	usVoltageMode is GPIO_LUT
  24 00	   	usSize
  00	  	ucVoltageGpioCntlId       // default is 0 which indicate control through CG VID mode 
  04	   	ucGpioEntryNum            // indiate the entry numbers of Votlage/Gpio value Look up table
  00	   	ucPhaseDelay             // phase delay in unit of micro second
  00	   	ucReserved 
  00 80 10 00 	ulGpioMaskVal            // GPIO Mask value
  00 00 00 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  39 03		usVoltageValue		// The corresponding Voltage Value, in mV =825mv
  00 80 00 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  B6 03		usVoltageValue		// The corresponding Voltage Value, in mV =950mv
  00 00 10 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  CF 03		usVoltageValue		// The corresponding Voltage Value, in mV =975mv
  00 80 10 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register
  4C 04		usVoltageValue		// The corresponding Voltage Value, in mV =1.1mv


So using the 390x values for my 380 what the bios I think is seen is:


Code:


  2       	usVoltageType is MVDDC 
  0       	usVoltageMode is GPIO_LUT
  24 00	   	usSize
  00	  	ucVoltageGpioCntlId       // default is 0 which indicate control through CG VID mode 
  04	   	ucGpioEntryNum            // indiate the entry numbers of Votlage/Gpio value Look up table
  00	   	ucPhaseDelay             // phase delay in unit of micro second
  00	   	ucReserved 
  00 80 10 00 	ulGpioMaskVal            // GPIO Mask value
  00 00 00 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register = 825mv
  1E 05		usVoltageValue		// The corresponding Voltage Value, in mV  =1.31v
  00 00 10 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register = 975mv
  46 05		usVoltageValue		// The corresponding Voltage Value, in mV = 1.35v
  00 80 00 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register  =950mv
  DC 05		usVoltageValue		// The corresponding Voltage Value, in mV =1.5v
  00 80 10 00	ulVoltageId      	// The Voltage ID which is used to program GPIO register  =1.1mv
  0E 06		usVoltageValue		// The corresponding Voltage Value, in mV =1.55v

So what I suppose is doing is to set the voltage for the vddci or the mvddc acording to a ulVoltageId for a fixed programed voltage.

So setting in the asic a voltage for the memory is selecting a voltage for the GPIO register.

So if I was setting a 1400mv voltage, it was setting a 950mv voltage for the vddci. So that is why I was seeing that increasing the voltage, I was getting more stability. 

My asic init don't have a voltage controller init for the vddci, so it is using all the voltages for per dpm memory clocks.

I have tested to change my last ulVoltageId 00 80 10 00 that represents =1.1mv to 00 00 10 00 that represents 975mv, and now the max voltage for the vddci is 1.010v.

So It can be used to undervolt vddci atleast in tonga gpus and some polaris gpus, and maybe to undervolt the mvvdc or overvolt it upto 1.55v, if the asic init voltage is lower than it, atleast in hawaii gpus. But I can't be 100% sure about this.

Do you think is like this?, I don't understand technically how gpio is working.


----------



## hellm

I don't know more than wiki does.
https://en.wikipedia.org/wiki/General-purpose_input/output
can't help you with that, but it is very, very interesting.

Another thing, here is a PowerPlay table from a A12 9700P mobile APU.

EF 01 06 01 00 00 00 00 00 58 00 60 00 82 00 00 00 00 00 58 00 02 00 00 00 13 00 00 80 00 00 00 00 00 00 00 00 00 00 00 17 00 00 00 B4 00 00 00 00 00 00 00 00 00 73 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 02 00 00 07 01 01 00 08 04 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00 02 18 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 C4 80 01 00 9C DA 01 00 CC 00 28 01 00 00 00 00 9C 01 00 00 C6 01 00 08 30 75 00 30 75 00 40 9C 00 40 9C 00 59 D8 00 59 D8 00 91 F4 00 91 F4 00 0E 28 01 0E 28 01 90 5F 01 90 5F 01 00 77 01 00 77 01 CA 91 01 CA 91 01 08 72 00 00 6E 00 01 6A 00 02 66 00 03 62 00 04 5A 00 05 56 00 06 4C 00 07 08 07 01 06 01 01 01 02 01 01 01 02 01 03 01 04 01 00 08 40 9C 00 30 75 00 74 B5 00 A0 8C 00 60 EA 00 74 B5 00 0E 28 01 60 EA 00 90 5F 01 40 19 01 B2 B0 01 90 5F 01 C0 D4 01 00 77 01 5E FF 01 CA 91 01 08 72 00 00 6E 00 01 6A 00 02 66 00 03 62 00 04 5A 00 05 56 00 06 4C 00 07 08 30 75 00 72 00 80 BB 00 6E 00 56 D0 00 6A 00 00 E1 00 66 00 91 F4 00 62 00 DC 0B 01 5A 00 40 19 01 56 00 0E 28 01 4C 00 00 08 72 00 30 75 00 6E 00 40 9C 00 6A 00 59 D8 00 66 00 DC 0B 01 62 00 80 38 01 5A 00 80 38 01 56 00 80 38 01 4C 00 80 38 01 08 30 75 00 72 00 80 BB 00 6E 00 56 D0 00 6A 00 00 E1 00 66 00 91 F4 00 62 00 DC 0B 01 5C 00 40 19 01 58 00 0E 28 01 52 00

so this is a v6.1 pptable? the header is different i think, cause oc limits wouldn't make much sense; and i wonder if there is any power limit at all. Anyone knows where to find documentation about bristol ridge?

..oh and this is still a Polaris thread, so i will say Polaris once in a while


----------



## mynm

hellm said:


> I don't know more than wiki does.
> https://en.wikipedia.org/wiki/General-purpose_input/output
> can't help you with that, but it is very, very interesting.
> 
> Another thing, here is a PowerPlay table from a A12 9700P mobile APU.
> 
> EF 01 06 01 00 00 00 00 00 58 00 60 00 82 00 00 00 00 00 58 00 02 00 00 00 13 00 00 80 00 00 00 00 00 00 00 00 00 00 00 17 00 00 00 B4 00 00 00 00 00 00 00 00 00 73 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 02 00 00 07 01 01 00 08 04 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00 02 18 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 C4 80 01 00 9C DA 01 00 CC 00 28 01 00 00 00 00 9C 01 00 00 C6 01 00 08 30 75 00 30 75 00 40 9C 00 40 9C 00 59 D8 00 59 D8 00 91 F4 00 91 F4 00 0E 28 01 0E 28 01 90 5F 01 90 5F 01 00 77 01 00 77 01 CA 91 01 CA 91 01 08 72 00 00 6E 00 01 6A 00 02 66 00 03 62 00 04 5A 00 05 56 00 06 4C 00 07 08 07 01 06 01 01 01 02 01 01 01 02 01 03 01 04 01 00 08 40 9C 00 30 75 00 74 B5 00 A0 8C 00 60 EA 00 74 B5 00 0E 28 01 60 EA 00 90 5F 01 40 19 01 B2 B0 01 90 5F 01 C0 D4 01 00 77 01 5E FF 01 CA 91 01 08 72 00 00 6E 00 01 6A 00 02 66 00 03 62 00 04 5A 00 05 56 00 06 4C 00 07 08 30 75 00 72 00 80 BB 00 6E 00 56 D0 00 6A 00 00 E1 00 66 00 91 F4 00 62 00 DC 0B 01 5A 00 40 19 01 56 00 0E 28 01 4C 00 00 08 72 00 30 75 00 6E 00 40 9C 00 6A 00 59 D8 00 66 00 DC 0B 01 62 00 80 38 01 5A 00 80 38 01 56 00 80 38 01 4C 00 80 38 01 08 30 75 00 72 00 80 BB 00 6E 00 56 D0 00 6A 00 00 E1 00 66 00 91 F4 00 62 00 DC 0B 01 5C 00 40 19 01 58 00 0E 28 01 52 00
> 
> so this is a v6.1 pptable? the header is different i think, cause oc limits wouldn't make much sense; and i wonder if there is any power limit at all. Anyone knows where to find documentation about bristol ridge?
> 
> ..oh and this is still a Polaris thread, so i will say Polaris once in a while


Yes, is intertesting for polaris gpus but I don't understand how it's working the gpio. 

Using the multimeter was fun  , I have no idea why I didn't have bought one before  , the do it yourself the things and better than experts is fun  . 

With the multimeter measures I know now that I was right, there are two voltages for the vcore, and the vddci hwinfo readings aren't the vddci values. The thing is now to know what is the difference between the vddc one phase and four vddgfx phases, @Ansau found two years ago some info abou the vddgfx saying it was a secondary rail for the core, but no more.

The thing is that maybe is named wrong by the bios and, maybe the four vrms are the vddc and the other one the vddgfx, but I hace no idea. 

Polaris seems to not be using the vddgfx although is present into pwp. 

About the APU pwp, I have some info about pwp v6.1, I see one txt in @Hedzin's TongaBiosReader: https://github.com/Hedzin/TongaBiosReader, so all credits goes to him. TongaBiosReader was a great tool, sadly I don't know why with the latest java update is not working.


----------



## dsanke

Merutsu said:


> I am trying to flash aorus rx570 into rx580 to bypass the signature check, but after this mod the card is still recognized as rx570 and the driver needs to be patched. Does anyone know what is wrong?


Same result here, I can't get it to RX 580 too.
It's a Colorfire RX 570 4GB. vBIOS uploaded ( changed to E6 07 and patched GOP )
I tested some other subsys id (XFX and Sapphire) but it still recognized as RX 570.


----------



## hellm

Still same answer, it is most likely because of some new comparsion of GPU and ID in the header. Same reason why 590 ID doesn't work, the newer stepping is recognized.
And there is now a 580 in china, with same amount of shaders as the 570, and this one needed the new Polaris Device ID. So, 2048 shaders will still be a 570 now, only 480-580 switch is still without worries, cause it is literally the same GPU.
change the Device ID, not the sub-device ID:
580 2048: DF 6F -> 0x6FDF
470/480/570/580/590: DF 67 -> 0x67DF
search for "02 10 DF 67", it is vendor and device id, found 2x in the BIOS, legacy and UEFI/GOP.


----------



## dsanke

580 2048sp 0x6FDF won't bypass driver check, still need atikmdag-patcher.
I flashed 580 2304sp BIOS to the RX 570 ,it still recognized as RX 570 not like RX 470 but like locked RX 470D.
According to my test, RX 470 2048sp all can change ID and become RX 480/580.
Some RX470D can't be unlocked to 2048sp , these card will always show RX 470 in system when you flash other BIOS.
So I think there is a hardware lock of these RX 570 make it won't become RX 580.


----------



## hellm

dsanke said:


> [..]I flashed 580 2304sp BIOS to the RX 570 ,it still recognized as RX 570[..]


That's just confirming what i said. The hardware lock was there all the time, since we can't unlock the extra shaders.
If now the driver rejects a 580 with 2048 shaders, it means there is a simple comparsion of GPU and the ID. And therefore, the 580 with 2048 needs a new device id, else it couldn't be a 580 anymore. What AMD didn't do for that "new" 580, cut the driver signature check.


----------



## dsanke

Test with a Yeston RX 570 4G GA
Original vBIOS is F0 7D E6 0F
Changed E6 0F to C6 0F/C6 07/E6 07/E6 01, still show RX 570 and need driver patch.
Changed subsystem to Sapphire RX 580 Nitro+ 1DA2E366 , show RX 580 in system but still need driver patch.
Changed to F0 FD E6 0F and other DF 67 to DF 6F , show RX 580 2048SP in system and still need driver patch.
The revision EF never changes.


----------



## hellm

Yes, this came with the 590, so driver identifies GPU revision not through anything we could modify in the BIOS.

Remember, if it is not for the memory timings, you can edit everything PowerPlay related with a SoftPowerPlay registry entry.


----------



## rootmoto

@mynm Would the GPIO mod you're talking about apply with Polaris GPUs? Also how did you perform that mod in VOI?


----------



## mynm

rootmoto said:


> @mynm Would the GPIO mod you're talking about apply with Polaris GPUs? Also how did you perform that mod in VOI?


I think that the GPIO mod is only for the vddci, and only in the gpus that have in the VOI the GPIO vddci values.

Your Gigabyte RX 470 G1 Gaming 4GB have this stock VOI, if I am no wrong:

56 00 03 01 01 03 2E 00 08 96 10 00 00 00 00 00 29 00 24 00 2B 00 2C 00 33 00 72 00 24 00 1C 00 14 00 22 00 39 00 BE 00 61 00 03 00 62 00 7E 00 FF 00 01 07 0C 00 06 00 00 00 00 00 00 00 *04 00 18 00 00 02 00 00 02 80 10 00 00 00 10 00 52 03 02 00 00 00 84 03* 

The bolded values are used for setting the vddci, the last value 84 03 is 900mv and the ulVoltageId for it is 02 00 00 00, the other value for the vddci 52 03 is 805mv and the ulVoltageId for it is 00 00 10 00, you could change the 02 00 00 00 ulVoltageId to 00 00 10 00 and get 805mv, but is to low and it would not work.

The GPIO for the mvddc I suppose is only working for some hawaii or granade gpus.


But I think that atleasr some polaris Asus and Gigabyte gpus could have mvddc control in the second voltage loop.

The ones with these bolded values into the asic init table, like in this one of a gbt 580:

95 00 01 02 00 08 02 01 02 00 52 47 52 02 02 65 02 07 52 0D 55 00 02 52 0D 52 23 2C 25 02 01 3D 25 02 06 45 17 00 51 02 52 3D 52 39 02 0D 02 01 03 52 43 66 04 02 8C 02 2E 00 02 0D 02 01 00 52 43 02 05 02 04 00 52 03 52 43* 02 0D 02 02 03* 52 43 02 F9 02 01 52 05 02 01 02 00 0E E5 02 08 52 0A* 02 05 02 02 00 0E 06* 52 43 02 05 02 04 00 20 03 52 43 02 05 02 30 75 00 40 52 0B 02 05 02 04 00 52 03 52 43 02 01 02 01 0E E5 02 08 52 0B 0D 65 D0 05 02 5B

The gbt 580 bios one, also have one value related to the second loop into the VOI:

66 00 03 01 01 03 32 00 08 96 10 00 00 00 00 00 29 00 24 00 2B 00 2C 00 33 00 76 00 24 00 1C 00 14 00 22 00 4D 00 73 00 E4 00 00 00 3D 00 6F 00 *4E 00 01 00* FF 00 01 07 0C 00 66 00 00 00 00 00 00 00 04 00 24 00 00 04 00 00 02 80 10 00 00 00 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 B6 03

4E is Iscale for Loop 2.

So maybe somebody with these gpus could try to see if mvddc control and monitoring can be enabled with Afterburner using this guide: https://forums.guru3d.com/threads/third-party-graphics-card-hardware-database.399542/

Most of the polaris gpus only have one of the volded values into the asic init table, related to the voltage for the mvddc, but without the voltage values for it, like in your gbt 470:

97 00 01 02 00 08 02 01 02 00 52 47 52 02 02 65 02 07 52 0D 55 00 02 52 0D 52 23 2C 25 02 01 3D 25 02 06 45 17 00 51 02 52 3D 02 05 02 00 00 08 09 52 20 52 39 02 0D 02 01 03 52 43 66 04 02 8C 02 2E 00 02 0D 02 01 00 52 43 02 05 02 04 00 52 03 52 43 02 F9 02 01 52 05 02 01 02 00 0E E5 02 08 52 0A* 02 05 02 02 00 00 00* 52 43 02 05 02 04 00 52 03 52 43 02 05 02 30 75 00 40 52 0B 02 05 02 04 00 52 03 52 43 02 01 02 01 0E E5 02 08 52 0B 0D 65 D0 05 02 5B

So or the second loop is not used in these gpus, or is not configured to be used. I suppose that is not used, but maybe adding this 02 0D 02 02 03 and the voltage for the mvddc could work, but I suppose not.


----------



## hellm

strix 480:

asic_init:
97 00 01 02 00 08 02 01 02 00 52 47 02 05 02 08 00 01 00 52 43 02 05 02 08 00 00 00 52 43 52 02 02 65 02 07 52 0D 55 00 02 52 0D 52 23 2C 25 02 01 3D 25 02 06 45 29 00 51 02 52 3D 52 39 02 0D 02 01 03 52 43 66 04 02 8C 02 2E 00 02 0D 02 01 00 52 43 02 05 02 04 00 52 03 52 43 02 F9 02 01 52 05 02 01 02 00 0E E5 02 08 52 0A 02 05 02 04 00 52 03 52 43 02 05 02 30 75 00 40 52 0B 02 05 02 04 00 52 03 52 43 02 01 02 01 0E E5 02 08 52 0B 0D 65 D0 05 02 5B

voi:
78 00 03 01 01 03 32 00 08 96 60 00 00 00 00 00 24 00 0C 00 33 00 7F 00 39 00 E2 00 4D 00 A0 00 4E 00 A0 00 62 00 13 00 63 00 60 00 64 00 D1 00 8D 00 00 00 FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00 04 00 24 00 00 04 00 00 02 80 10 00 00 00 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 B6 03 08 00 12 00 00 01 00 00 05 00 00 00 00 00 00 00 00 00

can you help me with that? what i see there is also the 0x4E register in the first voltage object. Can't make sense of asic_init, also have to study some other stuff right now..


----------



## mynm

hellm said:


> strix 480:
> 
> asic_init:
> 97 00 01 02 00 08 02 01 02 00 52 47 02 05 02 08 00 01 00 52 43 02 05 02 08 00 00 00 52 43 52 02 02 65 02 07 52 0D 55 00 02 52 0D 52 23 2C 25 02 01 3D 25 02 06 45 29 00 51 02 52 3D 52 39 02 0D 02 01 03 52 43 66 04 02 8C 02 2E 00 02 0D 02 01 00 52 43 02 05 02 04 00 52 03 52 43 02 F9 02 01 52 05 02 01 02 00 0E E5 02 08 52 0A 02 05 02 04 00 52 03 52 43 02 05 02 30 75 00 40 52 0B 02 05 02 04 00 52 03 52 43 02 01 02 01 0E E5 02 08 52 0B 0D 65 D0 05 02 5B
> 
> voi:
> 78 00 03 01 01 03 32 00 08 96 60 00 00 00 00 00 24 00 0C 00 33 00 7F 00 39 00 E2 00 4D 00 A0 00 4E 00 A0 00 62 00 13 00 63 00 60 00 64 00 D1 00 8D 00 00 00 FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00 04 00 24 00 00 04 00 00 02 80 10 00 00 00 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 B6 03 08 00 12 00 00 01 00 00 05 00 00 00 00 00 00 00 00 00
> 
> can you help me with that? what i see there is also the 0x4E register in the first voltage object. Can't make sense of asic_init, also have to study some other stuff right now..


The asic init don't have the 02 0D 02 02 03 and the 02 05 02 02 00 0E 06 values, so I don't know if the second loop is used or for what is used.

The only way I see to know if the gpu have a second loop, is to use the guru3d afterburner guide.


----------



## MixedC

I am having a problem with 18.12.1.1 driver and wattman.
Whenever I touch memory clock slider even to 2005 mhz, I get a colored screen and crash immediately.
I am fine on a previous driver. I am asking it here because I searched on internet and didn't find anyone else talking about it.

I even tried a fresh windows install, it was the same.
Can anybody with a modded 480 try?


----------



## Vento041

MixedC said:


> I am having a problem with 18.12.1.1 driver and wattman.
> Whenever I touch memory clock slider even to 2005 mhz, I get a colored screen and crash immediately.
> I am fine on a previous driver. I am asking it here because I searched on internet and didn't find anyone else talking about it.
> 
> I even tried a fresh windows install, it was the same.
> Can anybody with a modded 480 try?



Try to change the ID to match a 480 (and use the driver patcher). Happend to me too


----------



## hellm

MixedC doesn't use a switched 480 rom, with a real 580 rom there should be no problem at all. I would recommend to use a SoftPowerPlay table for the clockrates. Should work fine.


----------



## MixedC

I was wondering why and no one talks about it anywhere so I thought it might be conversion related.

I got confused are you telling Ventoo that, I don't use a switched 480 rom or are you telling me to use a real 580 rom?
I am using the one we made for me still with that 1.25V lock, works fine, doesn't overvolt and it was originated from a post#1 bios.


I wonder why it is happening 
I badly need a bios switch.
in case it doesn't boot and also doesn't boot with iGPU. I don't want to take GPU off, take it apart and remove backplate, do the pin 1-8 trick. Take GPU off again, take cooler off again, put backplate back, put it back... 
It is too much work 

edit:
Using this from page 61 where we fixed my spikes (it is attached to your post @hellm):
https://www.overclock.net/forum/attachment.php?attachmentid=138561&d=1522874942


----------



## hellm

MixedC said:


> I was wondering why and no one talks about it anywhere so I thought it might be conversion related.
> 
> I got confused are you telling Ventoo that, I don't use a switched 480 rom or are you telling me to use a real 580 rom?
> I am using the one we made for me still with that 1.25V lock, works fine, doesn't overvolt and it was originated from a post#1 bios.
> 
> 
> I wonder why it is happening
> I badly need a bios switch.
> in case it doesn't boot and also doesn't boot with iGPU. I don't want to take GPU off, take it apart and remove backplate, do the pin 1-8 trick. Take GPU off again, take cooler off again, put backplate back, put it back...
> It is too much work
> 
> edit:
> Using this from page 61 where we fixed my spikes (it is attached to your post @hellm):
> https://www.overclock.net/forum/attachment.php?attachmentid=138561&d=1522874942


there are some basic differences between tables of a 580 and a 480 BIOS. Vento is using what i called in post#2 an "original conversion", what i meant by "switched 480 BIOS" was exactly this, a 480 BIOS with 580 ID.

What you are using is a 580 BIOS that originated from a different card and was adapted to fit your card. That is a "real" 580 BIOS with all the updated tables. It shouldn't have any problems. So i guess, this is some software bug related to some windows and driver updates.. as happened before. Then again, i can't test anything.

If you have problems with overclocking, i made some time ago a SoftPowerPlay how-to for Polaris.. it is burried in the watttool thread.. here:
https://www.overclock.net/forum/70-...g-tweaking-rx-400-series-25.html#post25834851

oh, whatever, i made you one.


----------



## MixedC

hahaha you are the best thank you. Thx for softpowerplay info I'll go that route if this doesn't get fixed in next drivers.


about the bios, that was what I thought you mean, but I wanted to ask to make sure because I know i am using an actual rx580 bios. 
I think 18.12.1.1 used to work, but I did a fresh install it didnt work again I think it is a software bug to be honest with windows updates and driver etc..

Edit:

with 18.12.2.2 all is fine, it must be a driver bug.


----------



## hellm

:thumbsups

This new "adrenalin" driver also brings some limited access to memory timing control. I guess it is a lower strap, like 1750 -> 2000, but this is only an assumption.


----------



## MixedC

That is what I also assume didnt have chance to search about it, I'll be looking for info now.
I thought we'll get access to the strap but I was too optimistic I guess  I have ubermix v3.1 running for a long while now only can hit 2020mhz but still better than stock 2000 strap at 2200 (my memory cant hit 2250 error free)

I remember running 1750 strap on 2000 and about 2100mhz but ubermix was still better.

Update:

Memory timing thing doesnt look like it is changing straps and using a strap from lower frequency.

Level 1 makes me lose FPS compared to Ubermix, but still starts showing errors at exactly same frequency.
Level 2 gains me nothing, basically puts me back to my normal fps with ubermix and still starts throwing errors at exactly same frequency.

so I wonder what it does? feels like it is only editing 1-2 timings from last strap, not really replacing it with a lower strap which would actually be amazing.


----------



## hellm

Yes, I should have known better, it is AMD after all. As usual, they claim a lot of things about overclocking, and then they screw it all.

Hey, let's give people memory timing control. No, better cut it down to a single unimportant timing and make it look fancy. Yes, we go for that, people might break something if we do it right.

Hey, AMD, guess what, those people who really want access to memory timings, they do know how it works. At least don't insult them by implementing this excuse..


----------



## MixedC

I wasn't sure if it only change 1 timing out of all strap or 2 as I said, but definetaly not changing the timing with a lower strap, or letting me put in a strap.
I am with you, we were so optimistic lol.

update:
Reading reddit, it looks like Hynix ones are seeing some real improvements??? Maybe it is changing strap for them? as we know those have a strap above 2000mhz as well.
I have seen a test done for bandwidth and 25% gain and also the tester's gpu started to show errors at different points with auto, level1 and level2.

I don't clearly remember, maybe I have put ubermix timings for 1750 strap as well so it is changing straps but I don't see any effects, I'll dump my bios and check the timings again.


----------



## hellm

Well, i heard from Vega users that the effect of this is slim to none existent. So, maybe i jumped the gun.

If this feature is just buggy because new, or just has no effect on Vega and GDDR does profit from this, i take it back.
And you are right, for UberMix it is recommended to copy over the 2000 and the 1750 strap. But since you don't need tighter timings with UberMix 3.1, well, Polaris users don't need this option anyway. Vega does, since the BIOS is locked down. And i said previously, that this effort rather should have gone in destroying some warranty fuse.

..but if this memory timings thing is now just a big hoax, then i have to repeat what i said previously.


----------



## rootmoto

@hellm I want to do my own conversion from RX 470 G1 Gaming BIOS to RX 580, I know how to do Device ID change but how do I add the extra 1000MHz memory state and what tables would I need to copy?


----------



## hellm

Currently no time, sorry. Maybe end of the week..

Also, as i said a page before, only the 480s can do the switch to 580 now, all other cards have to use the patch. AMD changed something. Will update post#3 soon..


----------



## mynm

rootmoto said:


> @hellm I want to do my own conversion from RX 470 G1 Gaming BIOS to RX 580, I know how to do Device ID change but how do I add the extra 1000MHz memory state and what tables would I need to copy?


I have no idea if the extra 1000mhz mod can be done only adding it into powerplay, like I think hellm is doing it. At leas for your gpu.

Your 470 vddci voltages are setted by this values into the VOI:

04 00 18 00 00 02 00 00 02 80 10 00 *00 00 10 00 *52 03 *02 00 00 00* 84 03 

00 00 10 00 for 850 mv used for first state and 02 00 00 00 for 900mv used for the second state. Are only two values so you maybe will have to increse these sub table to three values like in the gigabyte 580 bios: 

04 00 24 00 00 04 00 00 02 80 10 00* 00 00 00 00 *20 03 *00 00 10 00* 52 03 *02 00 00 00 *84 03 *00 80 00 00* B6 03

00 00 10 00 for 850mv used for first state, 02 00 00 00 for 900mv used for the second state and 00 80 00 00 for 950mv used for third state.
*EDITED:* I forgot one voltage more, the 00 00 00 00 for 800mv this maybe is for boot.

But maybe the 950mv used for third state in the 580 can't be used for the 480, and maybe you will have to change the 00 80 00 00 to 02 00 00 00 for 900mv like this: 

04 00 24 00 00 04 00 00 02 80 10 00* 00 00 00 00 *20 03 *00 00 10 00* 52 03 *02 00 00 00 *84 03 *02 00 00 00* 84 03 

But the only way I see to see if the mod is working, is to measure de voltage with a multimeter.

There are other polaris gpus with a different vddci config into the VOI:

04 07 0C 00 0E 00 00 00 00 00 00 00

These values indicate a voltage control through svid2 values. In these gpus I suppose vddci values are setted with the powerplay values, and controlled by the second loop of the voltage controller. So I think in these cases the mod can be done without problem, but I am guessing. 

In your 470, maybe one thing I see that could be intersting to see, is that maybe the second loop of your voltage controller is controlling the mvddc voltage. You could try to add the voltage controll for afterburner using this guide: https://forums.guru3d.com/threads/third-party-graphics-card-hardware-database.399542/


----------



## hellm

mynm said:


> I have no idea if the extra 1000mhz mod can be done only adding it into powerplay, like I think hellm is doing it. At leas for your gpu.


yep, there has to be changes made to the header and other subtables as well, not only inserting the extra memory step to the MclkDependency table. You could compare the powerplay table i made with an original one. Vento was the first to implement this mod on a 480 BIOS.


----------



## mynm

hellm said:


> yep, there has to be changes made to the header and other subtables as well, not only inserting the extra memory step to the MclkDependency table. You could compare the powerplay table i made with an original one. Vento was the first to implement this mod on a 480 BIOS.


Yes, ok, thanks, I know the header part, but no the other subtables part, I will see. I am talking about the VOI GPIO vddci related values. Do you or Vento did these values mod?.


----------



## hellm

what i said was only regarding the extra 1000MHz Step.
the gpio vddci thing is interesting, i was about to mod the voi table on a 580 BIOS, but the guy who wanted to do the testing also had no time.. maybe next year, but i would rather have the card here and know whats happening.


----------



## mynm

hellm said:


> what i said was only regarding the extra 1000MHz Step.
> the gpio vddci thing is interesting, i was about to mod the voi table on a 580 BIOS, but the guy who wanted to do the testing also had no time.. maybe next year, but i would rather have the card here and know whats happening.


Ok, nice, I see that in your xfx bios conversion, you are using the three gpio voltages 580 values, so is working. Will be interesting to see if it is using the setted gpio voltage. 

I see one bios table that I think could be related to the gpio values, but I am only guessing, the GPIO_Pin_LUT table, this is the one I get for my 380 with a ATOMdis dump, plus some info of the atombios.h linux kernel file:



Spoiler






Code:


data_table  0000a4ce  #0c  (GPIO_Pin_LUT):

  Size         0024
  Format Rev.  01
  Param Rev.   00
  Content Rev. 01

  00000000:            8d48 0001  8d48 0802  8d48 1003        .H...H...H..
  00000010: 8d48 1804  8d48 1a05  8d48 1c06  8301 053d    .H...H...H.....=
  00000020: 8301 013e                                     ...>            

  NOTE: General revisionless dumper only.

  0000:  ATOM_COMMON_TABLE_HEADER sHeader                    :
    0000:  USHORT usStructureSize                              = 0x0024     (36)
    0002:  UCHAR ucTableFormatRevision                         = 0x01       (1)
    0003:  UCHAR ucTableContentRevision                        = 0x01       (1)
  0004:  ATOM_GPIO_PIN_ASSIGNMENT asGPIO_Pin             [0] :
    0004:  USHORT usGpioPin_AIndex                             = 0x488d     (18573)
    0006:  UCHAR ucGpioPinBitShift                             = 0x00       (0)
    0007:  UCHAR ucGPIO_ID                                     = 0x01       (1)
  0008:  ATOM_GPIO_PIN_ASSIGNMENT asGPIO_Pin             [1] :
    0008:  USHORT usGpioPin_AIndex                             = 0x488d     (18573)
    000a:  UCHAR ucGpioPinBitShift                             = 0x08       (8)
    000b:  UCHAR ucGPIO_ID                                     = 0x02       (2)
  000c:  ATOM_GPIO_PIN_ASSIGNMENT asGPIO_Pin             [2] :
    000c:  USHORT usGpioPin_AIndex                             = 0x488d     (18573)
    000e:  UCHAR ucGpioPinBitShift                             = 0x10       (16)
    000f:  UCHAR ucGPIO_ID                                     = 0x03       (3)
  0010:  ATOM_GPIO_PIN_ASSIGNMENT asGPIO_Pin             [3] :
    0010:  USHORT usGpioPin_AIndex                             = 0x488d     (18573)
    0012:  UCHAR ucGpioPinBitShift                             = 0x18       (24)
    0013:  UCHAR ucGPIO_ID                                     = 0x04       (4)
  0014:  ATOM_GPIO_PIN_ASSIGNMENT asGPIO_Pin             [4] :
    0014:  USHORT usGpioPin_AIndex                             = 0x488d     (18573)
    0016:  UCHAR ucGpioPinBitShift                             = 0x1a       (26)
    0017:  UCHAR ucGPIO_ID                                     = 0x05       (5)
  0018:  ATOM_GPIO_PIN_ASSIGNMENT asGPIO_Pin             [5] :
    0018:  USHORT usGpioPin_AIndex                             = 0x488d     (18573)
    001a:  UCHAR ucGpioPinBitShift                             = 0x1c       (28)
    001b:  UCHAR ucGPIO_ID                                     = 0x06       (6)
  001c:  ATOM_GPIO_PIN_ASSIGNMENT asGPIO_Pin             [6] :
    001c:  USHORT usGpioPin_AIndex                             = 0x0183     (387)
    001e:  UCHAR ucGpioPinBitShift                             = 0x05       (5)
    001f:  UCHAR ucGPIO_ID                                     = 0x3d       (61)
  0020:  ATOM_GPIO_PIN_ASSIGNMENT asGPIO_Pin             [7] :
    0020:  USHORT usGpioPin_AIndex                             = 0x0183     (387)
    0022:  UCHAR ucGpioPinBitShift                             = 0x01       (1)
    0023:  UCHAR ucGPIO_ID                                     = 0x3e       (62)


/****************************************************************************/
// Structure used in GPIO_Pin_LUTTable
/****************************************************************************/
typedef struct _ATOM_GPIO_PIN_ASSIGNMENT
{
  USHORT                   usGpioPin_AIndex;
  UCHAR                    ucGpioPinBitShift;
  UCHAR                    ucGPIO_ID;
}ATOM_GPIO_PIN_ASSIGNMENT;

//ucGPIO_ID pre-define id for multiple usage
// GPIO use to control PCIE_VDDC in certain SLT board
#define PCIE_VDDC_CONTROL_GPIO_PINID        56

//from SMU7.x, if ucGPIO_ID=PP_AC_DC_SWITCH_GPIO_PINID in GPIO_LUTTable, AC/DC swithing feature is enable
#define PP_AC_DC_SWITCH_GPIO_PINID          60
//from SMU7.x, if ucGPIO_ID=VDDC_REGULATOR_VRHOT_GPIO_PINID in GPIO_LUTable, VRHot feature is enable
#define VDDC_VRHOT_GPIO_PINID               61
//if ucGPIO_ID=VDDC_PCC_GPIO_PINID in GPIO_LUTable, Peak Current Control feature is enabled
#define VDDC_PCC_GPIO_PINID                 62
// Only used on certain SLT/PA board to allow utility to cut Efuse.
#define EFUSE_CUT_ENABLE_GPIO_PINID         63
// ucGPIO=DRAM_SELF_REFRESH_GPIO_PIND uses  for memory self refresh (ucGPIO=0, DRAM self-refresh; ucGPIO=
#define DRAM_SELF_REFRESH_GPIO_PINID        64
// Thermal interrupt output->system thermal chip GPIO pin
#define THERMAL_INT_OUTPUT_GPIO_PINID       65


typedef struct _ATOM_GPIO_PIN_LUT
{
  ATOM_COMMON_TABLE_HEADER  sHeader;
  ATOM_GPIO_PIN_ASSIGNMENT   asGPIO_Pin[1];
}ATOM_GPIO_PIN_LUT;





I see 6 pin IDs plus two more related uno ID 61 relted to "VRHot feature is enable" and one ID 62 "Peak Current Control feature is enabled".

Maybe the ids 1 to 6 could be voltages?, so maybe it could work.

But I have no idea of how the Masking works, for my 380 the ulGpioMaskVal is 00 80 10 00, ID 1 seems 00 00 00 00, ID 2: 00 80 00 00, ID 3: 00 80 00 00 and ID 4:00 80 10 00, so I don't see other values for ID 5 and 6.

For the rootmoto's bios one, ulGpioMaskVal is 02 80 10 00, ID 2: 00 00 10 00, ID 3: 02 00 00 00 and ID 4: 00 80 00 00, so there are more value availables. *EDITED:* I forgot one voltage more, the 00 00 00 00 for 800mv so ID 1, this maybe is for boot.

I have no idea if the ulGpioMaskVal can be changed, I don't know how masking is working, I don't have the skills and studies to know how this is working.


----------



## hellm

The Devil 590 uses the exact same GPIO voltage values as the 580 does.

i would try just slightly different voltages, and see what happens. +50mV on the 580 version:

...
02 80 10 00	ulGpioMaskVal
00 00 00 00	ulVoltageId
52 03 //850mV
00 00 10 00	ulVoltageId
84 03 //900mV
02 00 00 00	ulVoltageId
B6 03 //950mV
00 80 00 00	ulVoltageId
E8 03 //1000mV

04 00 24 00 00 04 00 00 02 80 10 00 00 00 00 00 52 03 00 00 10 00 84 03 02 00 00 00 B6 03 00 80 00 00 E8 03


----------



## mynm

hellm said:


> The Devil 590 uses the exact same GPIO voltage values as the 580 does.
> 
> i would try just slightly different voltages, and see what happens. +50mV on the 580 version:
> 
> ...
> 02 80 10 00	ulGpioMaskVal
> 00 00 00 00	ulVoltageId
> 52 03 //850mV
> 00 00 10 00	ulVoltageId
> 84 03 //900mV
> 02 00 00 00	ulVoltageId
> B6 03 //950mV
> 00 80 00 00	ulVoltageId
> E8 03 //1000mV
> 
> 04 00 24 00 00 04 00 00 02 80 10 00 00 00 00 00 52 03 00 00 10 00 84 03 02 00 00 00 B6 03 00 80 00 00 E8 03



I forgot one voltage more, sorry, the 00 00 00 00 for 800mv, and 850 for the 590, this I think is for boot, because polaris only have three states for the memory. 

What would be intersting is to see if 480 gpus can use 580 gpus voltages for vddci. 

Acording to my tests voltage values aren't working, maybe are only used to indicate the used voltage. My 380 is using three voltages of VOI ones that are the same for the four powerplay voltages, plus the first one for boot.

Only voltgeIds are working so you only can change the voltage to a lower or a higher one changing the ids.

Sorry, if this is not understandable enough, I have to improve my English level.


----------



## hellm

We had this in the beginning, as i copied the whole voi table from the reference 480 to the aorus 580 BIOS. It somehow decreased the performance, don't remember any more how exactly, but i am sure it doesn't work.

Your english is good enough. We can ask questions, too. 
Best and most human way to learn a language, listen to it. TV with english subtitles. Or watch buildzoid's vids, doesn't have subs, but i found it has a very beneficial effect. So.. yeah.


----------



## mynm

hellm said:


> We had this in the beginning, as i copied the whole voi table from the reference 480 to the aorus 580 BIOS. It somehow decreased the performance, don't remember any more how exactly, but i am sure it doesn't work.


But did you tested to measure the voltage with a multimeter?, the thing is that maybe the problem is the conversion fron 480 to 580, not the 580 with a 480 voi. Because the 480 bios or some chip into the 480 (I have no idea how the gpio is working) could don't have all the programed voltages for the gpio and maybe the highest vddci vooltage could not work.

The performance decreace could be caused by the lower vddci of the 480 voi. I have tested to decrease the highest vddci voltrage from 1100mv to 975mv and I get more memory erros, but no performance lost, maybe because my H5GC4H24AJR memory is setted only to 1475 and is not a hight value, but maybe the same memoy clocked to 1750 or 2000 mhz like in 480 or 580, could have a performance lost. 



hellm said:


> Your english is good enough. We can ask questions, too.
> Best and most human way to learn a language, listen to it. TV with english subtitles. Or watch buildzoid's vids, doesn't have subs, but i found it has a very beneficial effect. So.. yeah.


Thanks, some times I think that my posts are not understandable. Yes, I have to listen more films or serials in English, I don't remember the last time I see one film or serial in English  , but I see some youtube tech channels, bouildzoid's one among them.

EDITED: my 380 is dead, I was trying to measure vddci and suddenly I have touched some thing accidentally with the multimeter black wire and now is dead. So I am not going to use the multimeter with a new gpu. I have no idea what gpu to buy. Maybe a cheap 570 4gb. Edited: I saw a 570 4gb for 100€ but just now is out of stock,  , I am out of luck.

Edited: I have just bought a 580 nitro+ 4gb with dual bios, for 180€, I saw a 570 8gb for 140, but without dual bios, so no dual bios no fun.


----------



## adiif1

Hi at the moment have 580 8gb hynix GTS XXX Edition OC+
with this bios "https://www.techpowerup.com/vgabios/192497/xfx-rx580-8192-170410"

i set manualy voltage core and memory in bios, everything is ok ( frequency ) but no voltage 
I set the controller to 0.8v but in windows is still 1v :/
i dont know why please help! 

if i set manualy in overdriventool all work good :C

Thanx!


----------



## datspike

hellm said:


> *Vcore:*
> 
> 
> Spoiler
> 
> 
> 
> search for these bytes:
> 0C 01 03 06
> The following 3 bytes correspond to the maximum Vcore indicated in mV x100. The minimum Vcore is right next to it. From these values the P-States are calculated.
> 
> (^^ 480 version)
> example:
> 1125mV: 112500 -> 1B774 -> 74 B7 01
> 1150mV: 115000 -> 1C138 -> 38 C1 01
> 1175mV: 117500 -> 1CAFC -> FC CA 01
> 1200mV: 120000 -> 1D4C0 -> C0 D4 01
> In addition, this value needs to be adjusted, not too far away:
> (Don't change any other bytes than the "xx xx" mV values)
> 480:
> 8A 00 F1 FF FF FF xx xx
> 580:
> 8A 00 EB FF FF FF xx xx
> 1125mV x4 -> 4500 -> 1194 -> 94 11
> 1150mV x4 -> 4600 -> 11F8 -> F8 11
> 1175mV x4 -> 4700 -> 125C -> 5C 12
> 1200mV x4 -> 4800 -> 12C0 -> C0 12
> 25mV steps only.


I just wanted to let you all know that you can actually set those last 2 bytes (8A 00 EB FF FF FF xx xx) as you wish.
For example you want 1.1125 vcore VID under load:
1112mV (just a tad lower than 1.1125) x4 > 4448 > 1160 > 60 11


----------



## mynm

datspike said:


> I just wanted to let you all know that you can actually set those last 2 bytes (8A 00 EB FF FF FF xx xx) as you wish.
> For example you want 1.1125 vcore VID under load:
> 1112mV (just a tad lower than 1.1125) x4 > 4448 > 1160 > 60 11


Yes, I think that is working like you say acording with the tests I did whit my broken 380, like I said here: https://www.overclock.net/forum/27689100-post841.html. 

But maybe is better to use this list of svid2 voltages https://www.overclock.net/photopost/data/1381417/8/8d/8def2051_SVI2Voltages.jpeg

I have now a 580 nitro+, I will test it to see how is working with it.


----------



## rootmoto

@mynm I did the third party voltage controller thingy and it didn't expose a 2nd loop for MVDDC. It should be the same I2C address as the one in the Gigabyte R9 270 cause when I ran a i2cdump, it just crashed Afterburner for me.


----------



## mynm

rootmoto said:


> @mynm I did the third party voltage controller thingy and it didn't expose a 2nd loop for MVDDC. It should be the same I2C address as the one in the Gigabyte R9 270 cause when I ran a i2cdump, it just crashed Afterburner for me.


So voltage vddc controll is not working for you with afterburner?, or only the second loop?. I have tested afterterburner with my 580 and I can get voltage controll with the third party mode, but the second loop seems to be not working and I get system freezes using AB, so I had to uninstall it.

My 580 is using the ncp 81022 so I can't help you to test, I bought the the nitro+ because is the lower priced 580 with dual bios I saw (and driver path is not needed) and as the 380 lost was unexpected. I forget it haves the ncp 81022, the 480 nitros haves the IR one, even the lower priced 570 4gb I saw have the IR controller, but not dual bios (I don't have a igpu or a second pc and gpui), I have no idea how shappire can be using it. 

Also I am having some aleatory artifacts and freezes problem after log when windows starts, and stuck core at the highest dpm after gaming. Maybe is a driver problem, I'm using the 18.12.3 driver, I have to test 18.12.1.1 to see if it solves the proble.

Also I am doing an undervolting tests using the asic profiling table, and I am getting good results  . I will explain how to do it, is to long to explain.


----------



## datspike

I found out that 


Code:


UCHAR  ucEnableApplyAVFS_CKS_OFF_Voltage

controls the ability to set the voltage through 


Code:


USHORT usMaxVoltage_0_25mv

Must be set to zero for usMaxVoltage_0_25mv to actually do something


Spoiler















Fun thing - my RX 590 Nitro "gaming" (1560\2100) bios which I've saved by using AtiFlash was corrupted. It was not letting the pc post from full shutdown, hanged at B2.
Turns out GPU-Z is better for bios saving, huh


----------



## hellm

thx! :thumb:

So, this is the reason why the MaxVddc and MaxVoltage_0_25mv differ in the 590 rom! The previous Polaris cards have the zero by default.



mynm said:


> [..] my 380 is dead, I was trying to measure vddci and suddenly I have touched some thing accidentally with the multimeter black wire and now is dead. So I am not going to use the multimeter with a new gpu.[..]


Ouch! I guess my only GPU is also not compatible with this hisgh risk adventures.. i am sorry i gave u an idea for a way to kill your card. 

..but congrats to your new Polaris card.


----------



## mynm

datspike said:


> I found out that
> 
> 
> Code:
> 
> 
> UCHAR  ucEnableApplyAVFS_CKS_OFF_Voltage
> 
> controls the ability to set the voltage through
> 
> 
> Code:
> 
> 
> USHORT usMaxVoltage_0_25mv
> 
> Must be set to zero for usMaxVoltage_0_25mv to actually do something
> 
> 
> Spoiler
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Fun thing - my RX 590 Nitro "gaming" (1560\2100) bios which I've saved by using AtiFlash was corrupted. It was not letting the pc post from full shutdown, hanged at B2.
> Turns out GPU-Z is better for bios saving, huh


Interesting, but what is this doing?. I found that AVFS is some tingh related to power effiiency: https://www.extremetech.com/gaming/...ficiency-improvements-update-on-25x20-project . About cks, I don't know what it means, I remember to test some relates values about it into the powerplay table and if I remember correctly with it enablet I was guetting highes voltages.

I have tested also an undervolting to my 580 nitro. And I can get for now 1340 with 1.093v, I have no idea if it is totally stable or not.

My stock voltages are the ones of the first attached image. Is extrange because the voltage is 1.15v from dpm 4 to 7.

My stock Asic Profiling table is the second attached image.

I have highlighted some values I had used on it . I don't have used ulaNoCalcVddcPerDPM, but I think it is relted to ulEvvNoCalcVddc.

My modded Asic Profiling table is the third attached image.

I have changed: 


ulEfuseMin to 1500: inceasing this value is decreasing the 1 to 7 dpm voltages 

ulmaxVddc to 1.093v and usMaxVoltage to 1.093, without changing them even if dpm7 voltage is 1.093, the voltage is going higher up to 1.15v if wattman voltages are setted in auto. The same happens with the stock values, even if dpm7 is 1.15v the voltages can go up to 1.175v.

ulEvvDefaultVddc to 1.093 and ulEvvNoCalcVddc to 1.093, I have changed boht because if not the dpm voltage is 1.15v, but I have no idea if is needed to change both voltages.

The fourth image is the result, I had to lower the dpm 2 core mhz to 800 because if not it was no stable.

With the stock bios I am getting a 14763 firestrike graphics core, and with the mod I get 14977, because the stock bios gpu was power throttling.




hellm said:


> Ouch! I guess my only GPU is also not compatible with this hisgh risk adventures.. i am sorry i gave u an idea for a way to kill your card.
> 
> ..but congrats to your new Polaris card.


Thanks. Don't worry at all, is my fault, I din't have to test more things about the vddci, I was testing some mod to the Ids and the mask, but without success. I had no thought that test the gpu with the multimeter was so risky.


----------



## hellm

thx, i will link this info in post#3. :thumb:
I guess i should have linked a lot more.. will do some changes next year, and now that mynm has a Polaris we might see more info very soon anyway.. 
..and on the NCP81022. There is a data sheet.. https://media.digikey.com/pdf/Data Sheets/ON Semiconductor PDFs/NCP81022.pdf


----------



## Merutsu

mynm said:


> I have tested also an undervolting to my 580 nitro. And I can get for now 1340 with 1.093v, I have no idea if it is totally stable or not.


1.093v should be fine for ~1400mhz core. For 1340mhz you can lower voltage to ~1.050v


----------



## mynm

hellm said:


> thx, i will link this info in post#3. :thumb:
> I guess i should have linked a lot more.. will do some changes next year, and now that mynm has a Polaris we might see more info very soon anyway..
> ..and on the NCP81022. There is a data sheet.. https://media.digikey.com/pdf/Data Sheets/ON Semiconductor PDFs/NCP81022.pdf


You are welcome.

I'm having some problems with my gpu one is that after gaming some times clock is stuck at the max dmp like here: https://community.amd.com/thread/222777 , that is a one year old report so seems to not be solved... 

The thing is that to solve it I have to restart the pc and after login I get artifacts and a VIDEO_TDR_FAILURE Atikmpag.sys blue screen like here: https://community.amd.com/thread/230386

But I am not sure if the two problesm are related. 

I have tested 18.12.3 and 18.12.1.1, but only using DDU to unistall.

Now I am testing this: "Then uninstall all AMD driver software using Windows Uninstall. Now download and run DDU (Display Driver Uninstaller) in safe mode. This will completely eliminate any leftover AMD driver software or files. Delete if you have C:\AMD folder in the Root Directory. reboot." like is say in the link.

I am using the stock bios to be sure that is not my modded bios problem. But I remember to had the problem with the stock bios after intalling afterburner so I was thinking afterburner are the guilty. And then had installes trixx with no problem, but maybe it is using some thing into windows register, because the gpu have some led that can be configured, so maybe it can cause some problem as well.

If the problem is not solver I will have to return the gpu to the store. But maybe I have to do a clean windows instalation before to test if a problem with older driver.



Merutsu said:


> 1.093v should be fine for ~1400mhz core. For 1340mhz you can lower voltage to ~1.050v


I had tested 1380 with 1.093v and was no stable, so I'm not lucky . 

The thing is that with my 380 I saw a point where bios core clock can't be increase without needing 50mv more than with software. The point was between 1040 and 1075 mhz I don't remember were exactly and with 1040mhz the stock bios was using the max asci profiling voltage 1.225, and going for more than that I was seeing 1.225 for lower dpm, like I see here with the 580 of using 1.15v for lower dpms. I have to test if lowering the clocks I am getting lower voltages than 1.15v for the lower dpms and if I can do better ocing with software.


----------



## Merutsu

mynm said:


> The fourth image is the result, I had to lower the dpm 2 core mhz to 800 because if not it was no stable.


I remember that my nitro rx580 has -25mV offset for DPM1-6 states with stock bios. Did you remove these offsets?



mynm said:


> I had tested 1380 with 1.093v and was no stable, so I'm not lucky .


what vddc gpu-z shows under 100% gpu load?


----------



## mynm

Merutsu said:


> I remember that my nitro rx580 has -25mV offset for DPM1-6 states with stock bios. Did you remove these offsets?


I didn't have changed the vddcoffstes I only have changed the vddgfxoffsets to 00 to get a lower vddv when memory is at dpm 2 and 3 like you can see in the attached image 




Merutsu said:


> what vddc gpu-z shows under 100% gpu load?


I am not using the undervolted bios now, I remembert to see near less and near 1.093 with the gpuz render test, and hwinfo shows a 1.093 VID.

While gaming and benching I see a 1.093 VID and vddc is lower and near it, but hwinfo shows maxs of 1v and some times more, but like I said I don't see them while gaming with riva tuner + hwinfo, I don't have installed afterburner for monitorig the OSD because it seems to be broken some thing related wint the voltage control and monitoring.


I think I have solved the problem of clock stuck and VIDEO_TDR_FAILURE (ATIKMPAG.SYS).

The stuck clock problem one was solved like this: "Then uninstall all AMD driver software using Windows Uninstall. Now download and run DDU (Display Driver Uninstaller) in safe mode. This will completely eliminate any leftover AMD driver software or files. Delete if you have C:\AMD folder in the Root Directory. reboot." 

But the TDR error persisted. I was using 18.12.3 drivers and amd panel suggest 18.12.2, so I donwloaded it from amd site. I instaled it, but I was getting the error again, and amd panel suggest again 18.12.2 (?), so I click on fast install. But error keep happening. 

So searcing for the error, I found this link: https://troubleshooter.xyz/wiki/fix-video_tdr_failure-atikmpag-sys/ and using the method one, updating through Device Manager, windows installed some thing, and the problem seems solved. Driver is still now 18.12.2 and amd panel still recomendes 18.12.2 (?). I don't understand what is happeing with the drivers.

I am going to stay some time with the stock bios, and see if the problem is really solved.

*Edited:* nope, I see artifacts and a restart after windows login but no the VIDEO_TDR_FAILURE. I am tired, I don't know what to do.


----------



## datspike

mynm said:


> Interesting, but what is this doig?. I found that AVFS is some tingh related to power effiiency: https://www.extremetech.com/gaming/...ficiency-improvements-update-on-25x20-project . About cks, I don't know what it means, I remember to test some relates values about it into the powerhttps://www.overclock.net/forum/attachment.php?attachmentid=241988&thumb=1play table and if I remember correctly with it enablet I was guetting highes voltages.


At stock my card was using 1.119v at 1560Mhz and it sometimes rose to something like 1.143. Seemed like it was based on the gpu core temp.
Now there's also cards which use straight 1.2v as stock voltage, RX 590 Nitro which I bought for my friend last month did it.


----------



## mynm

datspike said:


> At stock my card was using 1.119v at 1560Mhz and it sometimes rose to something like 1.143. Seemed like it was based on the gpu core temp.
> Now there's also cards which use straight 1.2v as stock voltage, RX 590 Nitro which I bought for my friend last month did it.



But is UCHAR ucEnableApplyAVFS_CKS_OFF_Voltage to 00 enabling AVFS or enabling the usMaxVoltage_0_25mv voltage to be used like a max voltage or the voltage for dpm 7?

Is your stock USHORT usMaxVoltage_0_25mv 1.075v and the value for your friend gpu 1.212v?



About my problem with the TDR failure atikmpag.sys, I am testing TdrDelay to 16, to 8 was not working.


----------



## datspike

mynm said:


> But is UCHAR ucEnableApplyAVFS_CKS_OFF_Voltage to 00 enabling AVFS or enabling the usMaxVoltage_0_25mv voltage to be used like a max voltage or the voltage for dpm 7?
> Is your stock USHORT usMaxVoltage_0_25mv 1.075v and the value for your friend gpu 1.212v?
> About my problem with the TDR failure atikmpag.sys, I am testing TdrDelay to 16, to 8 was not working.


At stock USHORT usMaxVoltage_0_25mv is both 1212mv for me and for him, while UCHAR ucEnableApplyAVFS_CKS_OFF_Voltage is set to 01

I believe what UCHAR ucEnableApplyAVFS_CKS_OFF_Voltage does is that it disables the gpu ability to auto set it's voltage based on silicon quality. Except for some reason some cards have that "silicon quality" auto voltage working (my card, 1.119v to 1.143v stock), while others don't (friends card, fixed 1.2v voltage at stock)

And BTW. I'm playing with increasing vddci and for some reason it does not want to go higher than 1000mv. 
I'm increasing it via 0x9D8B voltage imc dpm2 offset - pic for reference


----------



## Merutsu

datspike said:


> And BTW. I'm playing with increasing vddci and for some reason it does not want to go higher than 1000mv.
> I'm increasing it via 0x9D8B voltage imc dpm2 offset


do you change offset or pointer? 0x9D8B it is a pointer (0B), so changing it to 0C, 0D, 0E should increase IMC voltage by 50mV with every step. May be 1000mV is the max. possible voltage for IMC? The default is 950mV. I have changed IMC0 and IMC1 and didn't change IMC2, so I don't know what the max. voltage


----------



## mynm

datspike said:


> At stock USHORT usMaxVoltage_0_25mv is both 1212mv for me and for him, while UCHAR ucEnableApplyAVFS_CKS_OFF_Voltage is set to 01
> 
> I believe what UCHAR ucEnableApplyAVFS_CKS_OFF_Voltage does is that it disables the gpu ability to auto set it's voltage based on silicon quality. Except for some reason some cards have that "silicon quality" auto voltage working (my card, 1.119v to 1.143v stock), while others don't (friends card, fixed 1.2v voltage at stock)


So have you and your friend the same 590 with the same bios and getting a differnt voltage for the same clocks?, it seems that asic quality is adjusting the voltage. Do you have a diferent asic quality?




datspike said:


> And BTW. I'm playing with increasing vddci and for some reason it does not want to go higher than 1000mv.
> I'm increasing it via 0x9D8B voltage imc dpm2 offset - pic for reference





Merutsu said:


> do you change offset or pointer? 0x9D8B it is a pointer (0B), so changing it to 0C, 0D, 0E should increase IMC voltage by 50mV with every step. May be 1000mV is the max. possible voltage for IMC? The default is 950mV. I have changed IMC0 and IMC1 and didn't change IMC2, so I don't know what the max. voltage


I am not sure if those pointers are changing IMC/vddci, what I am sure is that are changing the min per dpm vddc.

The IMC/vddci thing starts, because my and other 380 users were seen a second voltage into hwinfo, @The Stilt and @buildzoid said that it was vddci. Then I discovered that those pointers, vddcOffsets and vddgfxOffsets were changing that value, I don't have technical knowledge about this things, the hwinfo vddci were to hight to be the vddci, but I can't be sure 100% sure it was not.

I have recentlly used a multimeter to mesure my gpu voltages, and the hwinfo vddci seems to be only one phase for the core. And that some values into VOI are changing the real vddci, that can not be seen in hwinfo and only can be measured with a multimeter for 380 gpus. I don't know if is the same for polaris gpus. 

I don't know if the pointers, vddcOffsets and vddgfxOffsets are used to change IMC/vdcci for polaris gpus. It was a suggestion I did time ago based on how was working for my 380. Maybe somebody was thinking it was a statement, I didn't ever said I was 100% sure. And I am not qualified to say that it is working like this. 

As @The Stilt and @buildzoid starts this thing, maybe they could say some thing about this. I had PMed The Stilt time ago about vddci for polaris without response. PMed recentlly buildzoid about measuring points for the 380 without response. I have broked my 380 trying to know more things about this things. I am not goint to use the multimeter with my new 580.
I can't do more about this, sorry.


----------



## datspike

mynm said:


> So have you and your friend the same 590 with the same bios and getting a differnt voltage for the same clocks?, it seems that asic quality is adjusting the voltage. Do you have a diferent asic quality?
> 
> ...I can't do more about this, sorry.


Yeah, the same RX 590 Nitro SE from Sapphire.
The VOI table are the same, but his card is working at 1.2v at stock, and my card works at 1.119v to 1.144v depending on the temps (higher temps = higher voltage)
The only differences between out cards are that his card is using Micron memory and has 72% asic quality, while mine is Hynix and has 80% asic quality.

While undervolted at stock clocks his card does [email protected] while mine is capable of [email protected]

You don't have to apologize


----------



## mynm

datspike said:


> Yeah, the same RX 590 Nitro SE from Sapphire.
> The VOI table are the same, but his card is working at 1.2v at stock, and my card works at 1.119v to 1.144v depending on the temps (higher temps = higher voltage)
> The only differences between out cards are that his card is using Micron memory and has 72% asic quality, while mine is Hynix and has 80% asic quality.
> 
> While undervolted at stock clocks his card does [email protected] while mine is capable of [email protected]
> 
> You don't have to apologize


But do your gpus have the same exactly bios?. 

I had tested the 590 nitro asic prof into my 580 nitro and I was getting the same voltages than with mine for overdrivetool. I didn't have tested if the voltage behaviour was the same. 

I had tested also a 580 nitro + bios with 1411mhz core 2000mhz memory, was no estable for that core clock but I didn't see memory errors, I was getting the same per dpm voltages for overdrivetool, with the same asic profiling table and VOI, but I think I was getting lower voltage while gaming and benching, but I am not sure.

I don't want to test this now, untill solving the TDR failure atikmpag.sys problem. TdrDelay to 16 seems to be working to solve it, but I have to test more because it is only happeing after windows login. Edited: just happen again.

Maybe I didn't have to apologize, was not my intention. Only I am just tired of this.


----------



## Merutsu

mynm said:


> I don't want to test this now, untill solving the TDR failure atikmpag.sys problem. TdrDelay to 16 seems to be working to solve it, but I have to test more because it is only happeing after windows login. Edited: just happen again.


If it happens only after windows login, disable autostart for all programs. Try to increase DPM0 voltage up to 775mV or 800mV. Or may be it's a faulty card.


----------



## mynm

Merutsu said:


> If it happens only after windows login, disable autostart for all programs. Try to increase DPM0 voltage up to 775mV or 800mV. Or may be it's a faulty card.


Thanks. I don't want to change the voltages. I am testing 17.1.1 drivers as are drivers that windows are intalling by defaut. I have tried before 18.12.3, 18.12.2 and 18.10.1 whql. 

About the autostart, with 2018 drivers I was getting windows UAC messages about the driver, with 17.1.1 I am not getting them, but maybe if some thing of the driver is not autostarted because was needing my permission, can it cause the problem?. I didn't have any problem about this with my 380. I will try to disable, other autostarted programs if 17.1.1 is not working.

If with 17.1.1 drives the problem is solved, this is a driver or windows problem and not the gpu. I will try it some time and to install newer drivers to see when it started to happen.


----------



## Merutsu

mynm said:


> About the autostart, with 2018 drivers I was getting windows UAC messages about the driver, with 17.1.1 I am not getting them, but maybe if some thing of the driver is not autostarted because was needing my permission, can it cause the problem?


No. But you can install the driver only via device manager to test it(or completely disable UAC). This is how I install the driver since I don't need control panel, relive and other stuff


----------



## mynm

Merutsu said:


> No. But you can install the driver only via device manager to test it(or completely disable UAC). This is how I install the driver since I don't need control panel, relive and other stuff


Thanks for the info. 17.1.1 driver seems to be ok, tested some loop of restarts and did not have the problem, and some starts afrer turning it off some time and didn't have the problem.


----------



## mynm

I have found one multiemter test done by @jstefanop about IMC/vddci/wattman voltage that I didn't remember: https://www.overclock.net/forum/26068687-post2803.html

He said wattman memory voltage is changing vddci. But I have tested to change the pointers and was changing the overdrivetool memory voltage and was used as a min vddc. But I didn't see if wattman one was changing, and with my gpu I don't see the vddci in hwinfo. 

I am getting a second gpu tomorrow I will test it if I don't see any problem with it. I am a littel bit nervious and tired with the gpu problem plus more thing I have to do, sorry if I troubled somebody with my posts.

Happy new year to all.


----------



## hellm

happy new year


----------



## mynm

About the 580 nitro+ problem of getting artifcts and a blue scree at windows start, I have tested all the whql driver up to 17.11.4 version, without success, the defaut windows 17.1.1 seems to not haver the problem, but it is older than the 580...

I don't know if it is a driver problem, my gpu problem or even a extrange incompatibility with my mobo (who knows). So I had to buy other model of gpu. And the second lower pricend and early available 580 with dual bios I saw, was the xfx 580 gts.

I haven't had any problem with it about the artifcts and a blue scree at windows start, but I had some problems with stuck cloks after gaming.

Setted voltages again are wrong, and worst than the nitro+ ones, dpm 4 voltage is higher than dpm 7 one as you can see in the attached image. Hwinfo and the rest of programs monitores values seems worng. This two things are unforgivablea and a shame so I am going to return it. 

Trying to get a I2C dump with the nitro+ and with this xfx one, I get intermittent green secreens and I had to reboot. 

With the nitro and the XFX gpus, the last Afterburner beta offset voltage is not working and is breaking trixx offset voltage. It can't be used with riva tuner for monitoring and seems to be breaking monitoring. Closing the program is not solving the problem and a restart is needed.

A bout the cooling the nitro+ is much better, the nitro heatsink is like twice the xfx one. So it is loud, I get 80º with 2230rpms while with the nitro for the same game I get 74º and 1200rpms.

I am going to return the nitro+, and I can return the xfx untill february 28, so I will stay with it untill I see some offer or new gpus. If somebody could advise me in what gpu to but will be appreciated.

Edit: is this xfx one ok?: http://www.xfxforce.com/en-us/products/amd-radeon-rx-500-series/rx-580-gtr-8gb-dd-led-rx-580p8dfwr

Edit: Some times fans are at 100% a few seconds when windows stars.


----------



## mynm

To say some thing relevant for the conversion thread, and not only my stuffs, sorry, I am goint to say some differences I see between the nitro+ and the gts VOIs about the vddci.

nitro+ VOI is:



Code:


42 00 03 01 01 03 0E 00 10 96 20 00 00 00 00 00 
FF 00 01 07 0C 00 0E 00 00 00 00 00 00 00 [B]04 00 
24 00 00 04 00 00 02 80 10 00 00 00 00 00 20 03 
00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 
B6 03[/B]

The bolded values indicates a GPIO control for the vddci like in the 380.

gts VOI is:



Code:


1C 00 03 01 01 07 0C 00 0E 00 00 00 00 00 00 00 
[B]04 07 0C 00 0E 00 00 00 00 00 00 00[/B]

The bolded values indicates a svid2 control for the vddci.

So maybe there could be differences about the min vddci, maybe the nitro is using the gpio values for the per dpm memory clocks.

And the gts could be using the per dpm memory vddci values into the powerplay.

I think that the pointers thing and watman memory voltage is only used for the min per dpm vddc voltage and not for the vddci, at least in this gpus.

But I don't know if I should test this thing if I am going to return the gts...

If you want I could test it. Should not be risky if I only test to undervolt the vddci.

Edited:

As you can see in the attached image of the xfx gts PowerPlay, the vddci values into the powerplay are 950mv, and that is what I see always for the vddci with hwinfo.

And the pointed values are the ones used in OverdriveNTool.

So I think I can confirm, without having tested it, that for this xfx 580 gts the pointers are used for the min per dpm memory vddc voltage, and the PowerPlay per dpm vddci values are used for the values for it.

Like I said I can test if you want, to be 100% sure.


----------



## Merutsu

mynm said:


> Like I said I can test if you want, to be 100% sure.


A month ago I did some tests. I tried to change those values (marked red on your pic) for aourus rx570 and nitro rx580. Aorus rx570 has 900 (memory DPM2) by default and I changed it to 925. With this mod mininig rig is always crash to bsod(bugcheck code 0x000000ea) as soon as I launch mining software. Later I changed the value from memory dpm1 (850 to 825) for nitro rx580 and got bsod(bugcheck code 0x00000141) while watched a movie. It seems using any other value will result a bsod.

//Now I think maybe videodriver must be reinstalled after this mod, or 50mV step only can be used - this is what I haven't tested.


----------



## mynm

Merutsu said:


> A month ago I did some tests. I tried to change those values (marked red on your pic) for aourus rx570 and nitro rx580. Aorus rx570 has 900 (memory DPM2) by default and I changed it to 925. With this mod mininig rig is always crash to bsod(bugcheck code 0x000000ea) as soon as I launch mining software. Later I changed the value from memory dpm1 (850 to 825) for nitro rx580 and got bsod(bugcheck code 0x00000141) while watched a movie. It seems using any other value will result a bsod.
> 
> //Now I think maybe videodriver must be reinstalled after this mod, or 50mV step only can be used - this is what I haven't tested.


But do you see an vddci value with hwinfo?, and do you see this line: 04 07 0C 00 0E 00 00 00 00 00 00 00 into the VOI?. Without this line I think it can't work. 

For my 380 changing these values to a lower than 825mv I was getting green screens, but it was not working, it didn't change the multimeter measures vddci values. So the green secreen could be only a some kind of protection, like your bsods.

The nitro gpus have this lines 04 00 24 00 00 04 00 00 02 80 10 00 *00 00 00 00 *20 03 *00 00 10 00 *52 03 *02 00 00 00 *84 03 *00 80 00 00 *B6 03, and some gigabyte gpus I see have that line aswell. 

With that line, voltages are setted by the bolded values and only can be one of these values. This is tested with my 380 and a multimeter, so I know for sure it is working like this.

Edited: I see now that at the PowerPlay image I have written "for men" instead of "for mem"  , sorry, it is corrected now.


----------



## Merutsu

mynm said:


> But do you see an vddci value with hwinfo?


no and I never saw vddci voltage in gpuz or hwinfo for rx570/580 (aorus and nitro)


mynm said:


> and do you see this line: 04 07 0C 00 0E 00 00 00 00 00 00 00 into the VOI?. Without this line I think it can't work.


no, nitro and aorus didn't have this in a stock bios


mynm said:


> As you can see in the attached image of the xfx gts PowerPlay, the vddci values into the powerplay are 950mv, and that is what I see always for the vddci with hwinfo.


It seems you are right and there are two ways how imc voltage can be controlled.
Thanks for the info


mynm said:


> Like I said I can test if you want, to be 100% sure.


Well, only if you are really have a free time for this 
I am not planning to change it since everything works great and I don't have any issues.


----------



## mynm

Merutsu said:


> no and I never saw vddci voltage in gpuz or hwinfo for rx570/580 (aorus and nitro)
> 
> no, nitro and aorus didn't have this in a stock bios
> 
> It seems you are right and there are two ways how imc voltage can be controlled.
> Thanks for the info
> 
> Well, only if you are really have a free time for this
> I am not planning to change it since everything works great and I don't have any issues.


I have tested it but it seems that is not working, hwinfo vddci is 950mv always, like before.

But aida 64 reports now:

MCLK DPM0 = 300 MHz (VDDCI: 0.90000 V)
MCLK DPM1 = 1000 MHz (VDDCI: 0.92500 V)
MCLK DPM2 = 2000 MHz (VDDCI: 0.95000 V)

And before:

MCLK DPM0 = 300 MHz (VDDCI: 0.95000 V)
MCLK DPM1 = 1000 MHz (VDDCI: 0.95000 V)
MCLK DPM2 = 2000 MHz (VDDCI: 0.95000 V)

Maybe vddci is locked. I don't know.

*Edited:*

But is working to setting a -25mv offset to the VOI bolded 0E that is 1110 so 11 llst 3 and 10 initil programed offset: 

Changing the 04 07 0C 00 *0E* 00 00 00 00 00 00 00

To 0D that is 1101 se 11 and 01 -25mv

04 07 0C 00 *0D* 00 00 00 00 00 00 00

*Edited:*

     

OK what is working is to change this B6 03 so 950mv to 84 03 900mv into the ASIC Init table:



Code:


75 00 01 02 00 08 02 01 02 00 52 47 52 02 02 65
02 07 52 0D 55 00 02 52 0D 52 23 2C 25 02 01 3D 
25 02 06 45 17 00 51 02 52 3D 52 39 66 04 02 8C
02 2E 00 02 0D 02 01 00 52 43 02 05 02 04 00 [B]B6
03 [/B]52 43 02 F9 02 01 52 05 02 01 02 00 0E E5 02 
08 52 0A 02 05 02 02 00 00 00 52 43 02 05 02 30
75 00 40 52 0B 02 01 02 01 0E E5 02 08 52 0B 0D 
65 D0 05 02 5B

Like you can see in the secon attached image


----------



## hellm

mynm said:


> [..]
> 
> 
> 
> OK what is working is to change this B6 03 so 950mv to 84 03 900mv into the ASIC Init table:
> 
> 
> 
> Code:
> 
> 
> 75 00 01 02 00 08 02 01 02 00 52 47 52 02 02 65
> 02 07 52 0D 55 00 02 52 0D 52 23 2C 25 02 01 3D
> 25 02 06 45 17 00 51 02 52 3D 52 39 66 04 02 8C
> 02 2E 00 02 0D 02 01 00 52 43 02 05 02 04 00 [B]B6
> 03 [/B]52 43 02 F9 02 01 52 05 02 01 02 00 0E E5 02
> 08 52 0A 02 05 02 02 00 00 00 52 43 02 05 02 30
> 75 00 40 52 0B 02 01 02 01 0E E5 02 08 52 0B 0D
> 65 D0 05 02 5B
> 
> Like you can see in the secon attached image



Great work again :thumb:

as i said, sometime in the future i will update post#3.. just have really little time lately..


----------



## mynm

hellm said:


> Great work again :thumb:
> 
> as i said, sometime in the future i will update post#3.. just have really little time lately..


Thanks :thumb:, Don’t worry, take your time.

It seems that I have solved some problems with the gpu increasing the page file. Some games where closed without an error, but windows event
viewer was showing an error about low virtual memory. I had page file to 2000mb for years without problems, now I am testing 16gb. Maybe a higher page file is needed with more vram.


----------



## MixedC

People say pubg works without pagefile,
on my system, when I disable pagefile PUBG just crashes after loading 8GB of my total 12GB of system memory and 3.5GB of VRAM out of 8GB.

Not sure if this has any relevance but in case, I share this with you.


----------



## mynm

MixedC said:


> People say pubg works without pagefile,
> on my system, when I disable pagefile PUBG just crashes after loading 8GB of my total 12GB of system memory and 3.5GB of VRAM out of 8GB.
> 
> Not sure if this has any relevance but in case, I share this with you.


Interesting, it seems that a higher pagefile is needed for more vram. For example, I have played all shadow of the tomb raider with my 380 4gb with texture quality to high and pagefile to 2000mb without problems, but with the 580 8gb and ultra quality for the textures was crashing without increasing pagefiles. 

Maybe for PUBG is the same, so with low quality is not crashing and with ultra is crashing, so that could be the reason why for some people is working and for other not. I don't have the game to test.


----------



## mynm

About Vddci @buildzoid said here: https://youtu.be/8Sgvn1jECss?t=66 that he kills a gpu increasing the vddci barely more than stock, so don't increase it for caution.

Other thing I see now about the vddci on the xfx GTS, is that into powerplay it don't have dynamic vddci in the platform caps. So maybe that is why it is using the value into the AsicInit and not the PowerPlay ones. I thested to change between dynamic an not dybanic vddci with the 380, and was not working ok with non dynamic, I had no problem doing it, but this is the other way around, I have no idea if it is safe to test this.

About the xfx 580 gts voltages, it seems to have a +80mv or + 100mv voltage offset. I have tested to undervolt it and I can use a trixx -120mv offset, that is a real -150mv offset. But it is not setted into the VOI. Maybe is caused by a diference into the SetVoltage table, this gpu is the only one I see that don't have some values into it. So maybe introducing them could work, but I can't test this because the FF part of the bios before the gop is to small, and I don't know how to increase bios size or if ti can be done.

Edites: I have done the test using Vento041's ATOMTableResize, and is not working, so I have no idea where the voltage offset is.


----------



## mynm

datspike said:


> Yeah, the same RX 590 Nitro SE from Sapphire.
> 
> The only differences between out cards are that his card is using Micron memory and has 72% asic quality, while mine is Hynix and has 80% asic quality.
> 
> While undervolted at stock clocks his card does [email protected] while mine is capable of [email protected]


Are you using Afterburner or trixx to undervolt, or wattman?. My RX 590 Nitro+ black version, have a 75% asic quality and uses Hynx memory. 

It don't have a 1560 mhz bios, it only have the same 1545 mhz bios for both bios switches, even if the box says it have one boost bios and one silent, and the shop says it have a 1560 boost.

As you know, my dpm3 voltage is 1.181v and dpm7 is 1.15v, as with your gpu. So I have tested to set dpm 3 to 1.15v, with wattman and OverdriveNTool, and I get game crashes. But if I set dpm 3 to 1.15v and dpm 7 to 1.175v, it seems stable. Do you see the same problem?.

I have no idea what is happening, the 590 nitro+ black version is newer version than the blue Special Edition one, if they haven't put the 1560mhz bios on this gpu, maybe is because it can not do 1560 with the boost bios. So is a lower quality silicon. And I am afraid if it is not stable even with 1540mhz. I will test it.

Edited: I have been gaming and I got a crash in one game, but I don't know why windows was not working ok after that, so I had to restart it with the reset button. With the 580 gts I didn't have this problem, I think it is not stable, I think I am going to return it.


----------



## Gkat

woops, wrong thread. :h34r-smi


----------



## iakoboss7

mynm said:


> Are you using Afterburner or trixx to undervolt, or wattman?. My RX 590 Nitro+ black version, have a 75% asic quality and uses Hynx memory.
> 
> It don't have a 1560 mhz bios, it only have the same 1545 mhz bios for both bios switches, even if the box says it have one boost bios and one silent, and the shop says it have a 1560 boost.
> 
> As you know, my dpm3 voltage is 1.181v and dpm7 is 1.15v, as with your gpu. So I have tested to set dpm 3 to 1.15v, with wattman and OverdriveNTool, and I get game crashes. But if I set dpm 3 to 1.15v and dpm 7 to 1.175v, it seems stable. Do you see the same problem?.
> 
> I have no idea what is happening, the 590 nitro+ black version is newer version than the blue Special Edition one, if they haven't put the 1560mhz bios on this gpu, maybe is because it can not do 1560 with the boost bios. So is a lower quality silicon. And I am afraid if it is not stable even with 1540mhz. I will test it.
> 
> Edited: I have been gaming and I got a crash in one game, but I don't know why windows was not working ok after that, so I had to restart it with the reset button. With the 580 gts I didn't have this problem, I think it is not stable, I think I am going to return it.


it has happened to my rx 480 nitro+ also, both bios where the same (both the "slow" ones), speak with them to send you a bios to flash or do it yourself from the database.


----------



## mynm

iakoboss7 said:


> it has happened to my rx 480 nitro+ also, both bios where the same (both the "slow" ones), speak with them to send you a bios to flash or do it yourself from the database.


Thanks. The 480 nitro+ have different versions with differnt clocks: http://www.sapphiretech.com/catapage_pd.asp?cataid=305&lang=eng so maybe yours is ok if it is not specified in the box. But for the 590 I only see two 1560mhz versions: http://www.sapphiretech.com/catapage_pd.asp?cataid=355&lang=eng and the box says it have two differnt bios.

I sended a ticket to the sapphire technical service yesterday, asking for the 1560 mhz bios and about the voltage problems. But, I think this gpu is not stable with the stock 1545mhz clock, I have to test more.


----------



## datspike

mynm said:


> Are you using Afterburner or trixx to undervolt, or wattman?.


I'm using OverdriveNTool for testing and after finding stable values I'm modifying the AsicProfilingInfo.



mynm said:


> As you know, my dpm3 voltage is 1.181v and dpm7 is 1.15v, as with your gpu. So I have tested to set dpm 3 to 1.15v, with wattman and OverdriveNTool, and I get game crashes. But if I set dpm 3 to 1.15v and dpm 7 to 1.175v, it seems stable. Do you see the same problem?.


I think my card works quite happily even if DPM<6 voltage is set higher than DPM7 voltage.



mynm said:


> I have no idea what is happening, the 590 nitro+ black version is newer version than the blue Special Edition one, if they haven't put the 1560mhz bios on this gpu, maybe is because it can not do 1560 with the boost bios. So is a lower quality silicon.


I don't recall different 590's having "different" chip binning aka XTR/XTX on the 580, but it may be the true.
As a reference point for you:
RX 590 SE #1 - [email protected] stable, [email protected] stable
RX 590 SE #2 - [email protected] stable

Here's my 1560Mhz bios with Hynix memory support


----------



## mynm

datspike said:


> I'm using OverdriveNTool for testing and after finding stable values I'm modifying the AsicProfilingInfo.
> 
> 
> I think my card works quite happily even if DPM<6 voltage is set higher than DPM7 voltage.
> 
> 
> I don't recall different 590's having "different" chip binning aka XTR/XTX on the 580, but it may be the true.
> As a reference point for you:
> RX 590 SE #1 - [email protected] stable, [email protected] stable
> RX 590 SE #2 - [email protected].125v stable
> 
> Here's my 1560Mhz bios with Hynix memory support


Thanks. If you set dpm 3 to 7 with 1.150v, are wattman and OverdriveNTool working?.

Edited: Maybe I did the question wrong. 

If you set dpm 3 to 7 to 1.150v with wattman or OverdriveNTool, do you have any problem?, because as I said, I can't do this, I need to set dpm 7 to 1.175v if dmp 3 is set to 1.150v.


----------



## mushroomboy

If anyone wants to know, the Best Buy XFX FS 4GB can be bios flashed to the XFX GTS RX 580 XXX 4 GB. I've also got the ram to 1900, might try 2000 and see if it holds. Temps were 73/74 on ROTTR, going to do more tests. 

Original Card: https://www.techpowerup.com/gpu-specs/xfx-rs-rx-480-triple-x-best-buy-exclusive-4-gb.b4199
Original Bios: https://www.techpowerup.com/vgabios/185855/xfx-rx480-4096-160805
New Bios: https://www.techpowerup.com/vgabios/192098/xfx-rx580-4096-170410

I know, "don't flash over the whole bios". However you have 2, I also had to install a new switch because my bios switch broke. =( I DEFINATELY cannot sell this very easily now. However, you have 2 bios images. What's the worst that can happen? =P Anyways, this was a very nice upgrade. Yeah I'm still around doin computer stuff, just not here. I haven't tested the other HTMI outlets, no idea if those work. Maybe I'll post again, maybe not. WEEEEEEOOOOOOOOOOOOOOO


----------



## datspike

mynm said:


> Thanks. If you set dpm 3 to 7 with 1.150v, are wattman and OverdriveNTool working?.
> 
> Edited: Maybe I did the question wrong.
> 
> If you set dpm 3 to 7 to 1.150v with wattman or OverdriveNTool, do you have any problem?, because as I said, I can't do this, I need to set dpm 7 to 1.175v if dmp 3 is set to 1.150v.


I've just done 15 minutes of Superposition stresstest - it works fine with 1.15v on dpm3 to dpm7. Draws a bunch of power tho, that 12nm process is super leaky.
Sorry for a late answer, was a bit busy last weekend.


----------



## mynm

datspike said:


> I've just done 15 minutes of Superposition stresstest - it works fine with 1.15v on dpm3 to dpm7. Draws a bunch of power tho, that 12nm process is super leaky.
> Sorry for a late answer, was a bit busy last weekend.


Thank you very much, don't worry. For my, with 1.15v on dpm3 to dpm7 is instantly unstable. Seems it is not stable with the stock clock, maybe is only unstable for like 5 or 10 mhz. I have tested 1520mhz and seems to work with the stock voltages, I will test more. But I think is better to return it to the shop.

I get a response of the sapphire tech support, they say that this gpu have only the 1545mhz bios, and about the dpm 3 to 1.181v and the test setting it to 1.15v, that they don't guarantee any undervolt or overclock issue.

I sended a message again to them, saying that my gpu seems to be not stable with the stock clocks, but it seems ok with 1520mhz, asking if they have a recent bios that could solve the problem, or what they suggest I can do.


----------



## datspike

@mynm you can try the 1560mhz bios from the SE. It's a known working one at least.


----------



## mynm

datspike said:


> @mynm you can try the 1560mhz bios from the SE. It's a known working one at least.


I don' t know what to do, this one is the SE 1560 version with hynx memory https://www.techpowerup.com/vgabios/206786/sapphire-rx590-8192-181113 but it have the same buld date as mine, I will try to see diferences between the bioses with Vento041's SimpleBiosDiff. 

This is the 1545 bios one for the SE and hynx: https://www.techpowerup.com/vgabios/207043/sapphire-rx590-8192-181113-2 ,it only have some changes into powerplay, usCKSVOffsetandDisable is 26 in my bios and 0D in the SE one, and TDP and TDC related values are slightly higher in my bios. 

I think is better to wait for the support response, to see if they have a better bios.

*Edited:* the diferences between the 1560 SE bios and mine are usCKSVOffsetandDisable to 0D, the clocks, some fans tables values and higher TDP and TDC related values. Also TV_VideoMode/DispOutInfo is different, but I have no idea for what it is used. Also seems to have more values added at the beginning of the bios, but the Vento041's tool don't see these differences.

I have no idea what usCKSVOffsetandDisable vales are doing.

*Edited:* Sapphire support suggest me to contact with the shop, so I am going to return the gpu and ask for a new one.


----------



## GalaxyMaster

Hi,

A while ago I converted the stock BIOS for my MSI RX 480 Gaming X 8G to a 580 bios as described in the third post. It's been working very well so far. I am trying to add the 1000 MHz memory P-state like in the conversions in the second post, since I am running a dual-monitor setup and my memory is now pegged at 2000 MHz.

I first extracted the PowerPlayInfo data table from my bios using ATOMTableResize. After a bit of looking around I found documentation for this table in the linux kernel here. Using this info I color-marked the table to keep track of where things were and compared my table to the one in the original conversion for my card (found in post #2). I was able to find and understand most of the differences with help of the kernel documentation, but one thing in particular is still a mystery to me: the "GoldenPPID" and "GoldenRevision" values near the beginning of the data table. I can't find any info on what these are and do anywhere on the internet. It doesn't seem to be used by the driver as evidenced by the lack of its usage in the linux driver, so it's probably some internal BIOS thing. The problem is, they're different between my BIOS and the conversion in the second post. In my BIOS it's


Code:


4D 06 00 00 7F 24 00 00

 and in the BIOS from the second post it's


Code:


0A 06 00 00 3B 24 00 00

Another question I have is if the only modifications I have to do to add the P-state are in the PowerPlayInfo data table, or if there are some other modifications I have to do elsewhere too.

So my questions are:
- What are "GoldenPPID" and "GoldenRevision"? What do they do, and are they important for what I'm trying to achieve? Why are they different between my BIOS and the conversion in post #2? Are they just some kind of unique ID?
- Is the PowerPlayInfo table the only table I need to modify or do I need to change other tables too? If so, which?
- Are the changes I made correct? (see below)

For reference, here's my original PowerPlayInfo table:


Spoiler



testy


Code:


Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000  34 03 07 01 00 4D 00 4D 06 00 00 7F 24 00 00 19  4....M.M....$...
00000010  00 00 00 00 80 02 01 40 0D 03 00 E8 6E 03 00 4B  ....€.   [USER=97586]@...[/USER]èn..K
00000020  00 32 00 4D 00 94 02 8B 02 00 00 B5 01 3B 01 77  .2.M.”.‹...µ.;.w
00000030  00 F9 00 D1 01 F9 02 00 00 C4 02 00 00 13 03 2D  .ù.Ñ.ù...Ä.....-
00000040  03 00 00 00 00 00 00 00 00 00 00 00 00 01 02 00  ................
00000050  00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00  ................
00000060  00 00 00 07 00 01 00 00 00 00 00 05 00 00 00 00  ................
00000070  00 00 00 00 00 00 00 00 10 EE 02 00 00 00 00 00  .........î......
00000080  00 02 FF 00 00 00 00 00 00 03 FF 00 00 00 00 00  ..ÿ.......ÿ.....
00000090  00 04 FF 00 00 00 00 00 00 05 FF 00 00 00 00 00  ..ÿ.......ÿ.....
000000A0  00 06 FF 00 00 00 00 00 00 07 FF 00 00 00 00 00  ..ÿ.......ÿ.....
000000B0  00 08 FF 00 00 00 00 00 00 52 03 00 00 00 00 00  ..ÿ......R......
000000C0  00 84 03 00 00 00 00 00 00 B6 03 00 00 00 00 00  .„.......¶......
000000D0  00 E8 03 00 00 00 00 00 00 1A 04 00 00 00 00 00  .è..............
000000E0  00 4C 04 00 00 00 00 00 00 7E 04 00 00 00 00 00  .L.......~......
000000F0  00 CF 03 00 00 00 00 00 00 00 08 84 03 00 00 00  .Ï.........„....
00000100  00 00 00 02 FF 00 00 00 00 00 00 03 FF 00 00 00  ....ÿ.......ÿ...
00000110  00 00 00 04 FF 00 00 00 00 00 00 05 FF 00 00 00  ....ÿ.......ÿ...
00000120  00 00 00 06 FF 00 00 00 00 00 00 07 FF 00 00 00  ....ÿ.......ÿ...
00000130  00 00 00 08 FF 00 00 00 00 00 00 01 08 00 00 00  ....ÿ...........
00000140  30 75 00 00 00 00 00 80 00 00 00 00 01 E6 FF 80  0u.....€.....æÿ€
00000150  ED 00 00 00 00 00 00 00 00 00 00 02 E6 FF 78 63  í...........æÿxc
00000160  01 00 00 00 00 00 88 13 00 00 03 E6 FF B4 A4 01  ......ˆ....æÿ´¤.
00000170  00 00 00 00 00 00 00 00 00 04 E6 FF 44 BF 01 00  ..........æÿD¿..
00000180  00 00 00 00 00 00 00 00 05 E6 FF 3C D1 01 00 00  .........æÿ<Ñ...
00000190  00 00 00 00 00 00 00 06 E6 FF D0 E2 01 00 00 00  ........æÿÐâ....
000001A0  00 00 00 00 00 00 07 00 00 D0 FB 01 00 00 00 00  .........Ðû.....
000001B0  00 00 00 00 00 00 02 00 52 03 00 00 E8 03 30 75  ........R...è.0u
000001C0  00 00 00 00 0B B6 03 00 00 E8 03 40 0D 03 00 00  .....¶...è   [USER=81536]@....[/USER]
000001D0  00 00 08 00 00 00 90 E2 00 00 F8 24 01 00 18 F6  .......â..ø$...ö
000001E0  00 00 00 00 00 00 A8 DE 00 00 08 B4 FF 18 F6 00  ......¨Þ...´ÿ.ö.
000001F0  00 80 38 01 00 88 0D 01 00 00 00 00 00 00 FA 00  .€8..ˆ........ú.
00000200  00 09 9B FF A0 09 01 00 08 4C 01 00 F8 24 01 00  ..›ÿ ....L..ø$..
00000210  00 00 00 00 70 11 01 00 0A 82 FF 28 1D 01 00 A8  ....p....‚ÿ(...¨
00000220  5B 01 00 68 3C 01 00 00 00 00 00 E0 28 01 00 0B  [..h<......à(...
00000230  69 FF C8 2C 01 00 60 67 01 00 F0 4F 01 00 00 00  iÿÈ,..`g..ðO....
00000240  00 00 68 3C 01 00 0C 37 FF 80 38 01 00 18 73 01  ..h<...7ÿ€8...s.
00000250  00 78 63 01 00 00 00 00 00 08 4C 01 00 0D 05 FF  .xc.......L....ÿ
00000260  38 44 01 00 D0 7E 01 00 00 77 01 00 00 00 00 00  8D..Ð~...w......
00000270  C0 57 01 00 0E 00 00 F0 4F 01 00 A0 86 01 00 A0  ÀW.....ðO.. †.. 
00000280  86 01 00 00 00 00 00 78 63 01 00 01 17 00 00 02  †......xc.......
00000290  00 1D 00 00 09 03 A0 0F 64 19 34 21 D0 07 A0 0F  ...... .d.4!Ð. .
000002A0  70 17 94 2A 01 64 00 E4 12 60 09 78 63 01 00 49  p.”*.d.ä.`.xc..I
000002B0  12 64 00 64 00 64 00 64 00 64 00 64 00 64 00 01  .d.d.d.d.d.d.d..
000002C0  3B 3C 00 00 04 2C 01 00 00 2C 01 6E 00 6E 00 00  ;<...,...,.n.n..
000002D0  00 00 00 2C 01 5A 00 00 00 00 00 5E 00 02 00 69  ...,.Z.....^...i
000002E0  00 50 00 50 00 73 00 73 00 5F 00 00 00 90 10 96  .P.P.s.s._.....–
000002F0  00 90 00 00 06 00 00 00 00 01 06 00 00 01 01 00  ................
00000300  01 01 01 00 02 01 01 00 02 01 01 00 02 01 01 00  ................
00000310  02 01 01 01 03 00 10 00 00 00 00 00 00 00 10 00  ................
00000320  00 00 00 00 00 02 10 00 00 00 00 00 00 00 01 00  ................
00000330  00 00 00 00                                      ....





And here's my modified table:


Spoiler






Code:


Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000  41 03 07 01 00 4D 00 4D 06 00 00 7F 24 00 00 19  A....M.M....$...
00000010  00 00 00 00 80 02 01 40 0D 03 00 E8 6E 03 00 4B  ....€.   [USER=97586]@...[/USER]èn..K
00000020  00 32 00 4D 00 A1 02 98 02 00 00 B5 01 3B 01 77  .2.M.¡.˜...µ.;.w
00000030  00 F9 00 DE 01 06 03 00 00 D1 02 00 00 20 03 3A  .ù.Þ.....Ñ... .:
00000040  03 00 00 00 00 00 00 00 00 00 00 00 00 01 02 00  ................
00000050  00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00  ................
00000060  00 00 00 07 00 02 00 00 00 00 00 05 00 00 00 00  ................
00000070  00 00 00 00 00 00 00 00 10 EE 02 00 00 00 00 00  .........î......
00000080  00 02 FF 00 00 00 00 00 00 03 FF 00 00 00 00 00  ..ÿ.......ÿ.....
00000090  00 04 FF 00 00 00 00 00 00 05 FF 00 00 00 00 00  ..ÿ.......ÿ.....
000000A0  00 06 FF 00 00 00 00 00 00 07 FF 00 00 00 00 00  ..ÿ.......ÿ.....
000000B0  00 08 FF 00 00 00 00 00 00 52 03 00 00 00 00 00  ..ÿ......R......
000000C0  00 84 03 00 00 00 00 00 00 B6 03 00 00 00 00 00  .„.......¶......
000000D0  00 E8 03 00 00 00 00 00 00 1A 04 00 00 00 00 00  .è..............
000000E0  00 4C 04 00 00 00 00 00 00 7E 04 00 00 00 00 00  .L.......~......
000000F0  00 CF 03 00 00 00 00 00 00 00 08 84 03 00 00 00  .Ï.........„....
00000100  00 00 00 02 FF 00 00 00 00 00 00 03 FF 00 00 00  ....ÿ.......ÿ...
00000110  00 00 00 04 FF 00 00 00 00 00 00 05 FF 00 00 00  ....ÿ.......ÿ...
00000120  00 00 00 06 FF 00 00 00 00 00 00 07 FF 00 00 00  ....ÿ.......ÿ...
00000130  00 00 00 08 FF 00 00 00 00 00 00 01 08 00 00 00  ....ÿ...........
00000140  30 75 00 00 00 00 00 80 00 00 00 00 01 E6 FF 80  0u.....€.....æÿ€
00000150  ED 00 00 00 00 00 00 00 00 00 00 02 E6 FF 78 63  í...........æÿxc
00000160  01 00 00 00 00 00 88 13 00 00 03 E6 FF B4 A4 01  ......ˆ....æÿ´¤.
00000170  00 00 00 00 00 00 00 00 00 04 E6 FF 44 BF 01 00  ..........æÿD¿..
00000180  00 00 00 00 00 00 00 00 05 E6 FF 3C D1 01 00 00  .........æÿ<Ñ...
00000190  00 00 00 00 00 00 00 06 E6 FF D0 E2 01 00 00 00  ........æÿÐâ....
000001A0  00 00 00 00 00 00 07 00 00 D0 FB 01 00 00 00 00  .........Ðû.....
000001B0  00 00 00 00 00 00 03 00 52 03 00 00 E8 03 30 75  ........R...è.0u
000001C0  00 00 00 00 08 52 03 00 00 E8 03 A0 86 01 00 00  .....R...è. †...
000001D0  00 0B B6 03 00 00 E8 03 40 0D 03 00 00 00 00 08  ..¶...è   [USER=81536]@....[/USER]...
000001E0  00 00 00 90 E2 00 00 F8 24 01 00 18 F6 00 00 00  ....â..ø$...ö...
000001F0  00 00 00 A8 DE 00 00 08 B4 FF 18 F6 00 00 80 38  ...¨Þ...´ÿ.ö..€8
00000200  01 00 88 0D 01 00 00 00 00 00 00 FA 00 00 09 9B  ..ˆ........ú...›
00000210  FF A0 09 01 00 08 4C 01 00 F8 24 01 00 00 00 00  ÿ ....L..ø$.....
00000220  00 70 11 01 00 0A 82 FF 28 1D 01 00 A8 5B 01 00  .p....‚ÿ(...¨[..
00000230  68 3C 01 00 00 00 00 00 E0 28 01 00 0B 69 FF C8  h<......à(...iÿÈ
00000240  2C 01 00 60 67 01 00 F0 4F 01 00 00 00 00 00 68  ,..`g..ðO......h
00000250  3C 01 00 0C 37 FF 80 38 01 00 18 73 01 00 78 63  <...7ÿ€8...s..xc
00000260  01 00 00 00 00 00 08 4C 01 00 0D 05 FF 38 44 01  .......L....ÿ8D.
00000270  00 D0 7E 01 00 00 77 01 00 00 00 00 00 C0 57 01  .Ð~...w......ÀW.
00000280  00 0E 00 00 F0 4F 01 00 A0 86 01 00 A0 86 01 00  ....ðO.. †.. †..
00000290  00 00 00 00 78 63 01 00 01 17 00 00 02 00 1D 00  ....xc..........
000002A0  00 09 03 A0 0F 64 19 34 21 D0 07 A0 0F 70 17 94  ... .d.4!Ð. .p.”
000002B0  2A 01 64 00 E4 12 60 09 78 63 01 00 49 12 64 00  *.d.ä.`.xc..I.d.
000002C0  64 00 64 00 64 00 64 00 64 00 64 00 01 3B 3C 00  d.d.d.d.d.d..;<.
000002D0  00 04 2C 01 00 00 2C 01 6E 00 6E 00 00 00 00 00  ..,...,.n.n.....
000002E0  2C 01 5A 00 00 00 00 00 5E 00 02 00 69 00 50 00  ,.Z.....^...i.P.
000002F0  50 00 73 00 73 00 5F 00 00 00 90 10 96 00 90 00  P.s.s._.....–...
00000300  00 06 00 00 00 00 01 06 00 00 01 02 00 01 01 02  ................
00000310  00 02 01 02 00 02 01 02 00 02 01 02 00 02 01 02  ................
00000320  01 03 00 10 00 00 00 00 00 00 00 10 00 00 00 00  ................
00000330  00 00 02 10 00 00 00 00 00 00 00 01 00 00 00 00  ................
00000340  00                                               .





Here are the changes I made:


Spoiler




First I changed the NumEntries byte in the MclkDependencyTable from 02 to 03. Then I added the 1000 MHz entry between the 300 MHz and 2000 MHz entries with a VDDC index of 08, corresponding to the value of 52 03 (aka 850 mV) in the VDDC lookup table, a VDDCI value of 52 03 (850 mV), MVDD the same as the other entries and of course a 1000 MHz clock.
I fixed all the offsets that were screwed up due to the extra bytes at the start of the data table.
In the "State Array" I changed the MemoryClockIndexHigh byte from 01 to 02 (so the new P2 state which was previously P1 is now the highest memory state).
I changed the MCLKIndex byte in the VCE State Table from 01 to 02 for each entry (6 total).
These changes added 13 bytes to the data table, so I increased the Structure Size at the very beginning of the data table by 13 (from 31 03 to 41 03).




Lastly, here are some bits of information I found in the linux kernel documentation that might be of interest:


Spoiler



- In the MclkDependencyTable the fist byte in a given entry is the index for VDDC in the VDDC lookup table. This controls the minimum core voltage at a given memory clock, and is what post #1 changes when editing the "IMC voltage".
- The following 2 bytes are apparently VDDCI, aka the "real" IMC voltage. On my stock BIOS it's set to 850 mV (52 03) on P0 and 950 mV (B6 03) on P1. On most RX 580 BIOSes it seems to be 800 mV at P0, 850 mV at P1 and 950 mV at P2. I haven't tested this but it seems like this is a real way to control VDDCI.
- The next 2 bytes are a voltage offset, I haven't seen it used.
- The 2 bytes after that are apparently MVDD, aka memory chip voltage. As far as I know this is always set to 1.5 V on Polaris cards. The value in the BIOS (E8 03) seems to suggest a value of 1000 mV, which is obviously wrong. I'd guess this is a placeholder and unused, but feel free to experiment with it if you're feeling adventurous.



EDIT: Since making this post I've mostly answered my own questions. By comparing my modified BIOS to the one in post #2 I can pretty confidently say that the only data table you need to modify to add the P-state is PowerPlayInfo. All other data tables were identical (other than VRAM_Info, but that's only because I modified my memory timings). With regards to the GoldenPPID and GoldenRevision values in the PowerPlayInfo table I searched the linux drivers some more and found that in other versions of the pptable.h header file there are comments stating "PPGen use only". Clearly this means the values aren't used other than in PPGen (at least on the driver side, it might still be used internally in the BIOS). I can't find much on "PPGen" but by the name I'd guess it's a tool for OEMs to generate PowerPlayInfo tables. I'd guess the GoldenPPID is just a unique identifier, and GoldenRevision maybe some kind of version tag. As for my last question, I can't be sure, but I'm pretty confident that I did the mod correctly. I've double checked all the offsets at the start of the PowerPlayInfo table, and I used ATOMTableResize to make sure I imported the new table with all the necessary adjustments. Still, it would be nice if somebody could look over what I did and verify I didn't miss something important. My card doesn't have a BIOS switch, so if the card doesn't boot recovery will be a hassle.

EDIT2: I went ahead and flashed the new BIOS, and it's working fine. At first I thought the new P-State didn't work because the memory was still pegged at 2000 MHz at idle, but after a bit of googling I found out that the 1000 MHz step for dual monitors only works when both monitors have the same resolution. I did verify that the P-State does actually work by disconnecting 1 of my monitors and doing some hardware accelerated video decoding. So I guess my mod was successful, but useless to me at the same time. At least I learned quite a lot in the process.


----------



## hellm

sorry i didn't answered yet and will now in a rather short way, i am a little busy lately..

about the voltages, most of your questions are in this "not so little anymore" thread.. read backwards, mynm posted some stuff i should have linked by now,.. again, sorry i have little time right now.

be carefull, there are some sub tables to be changed, in order to make the 1000MHz working properly. You also have to change some sub table offsets in the header. If you copy the pptable from post#2 in HxD (or else..), a 480 and a 580 pptable as well, you should be able to identify all the relevant bytes. Some tables stay the same, some are like the 580 version. MMDependency table stays 480, for instance.


----------



## GalaxyMaster

I did compare the PowerPlayInfo tables from multiple roms to verify what I was doing was correct, and as you can see in my second edit I did end up getting it working (though it ended up being useless for my setup, but that's besides the point). I simply added the state to the MclkDependencyTable according to the linux driver documentation and by comparing with the rom in post #2. Then I fixed all the offsets at the start of the table that got screwed up by the added bytes, and changed the highest memory state index from 01 to 02 in the State Array and VCE State tables. In the end it wasn't too hard to figure everything out. If you want you can link my post or adapt it as a guide for adding the 1000 MHz memory step, though you don't have to of course.


----------



## hellm

Done, added in FAQ so far.. Hopefully you didn't left something, only scanned your post.. but i am grateful for any donation here :thumb:

I made at least VDDCI (thx @mynm) now accessible through post#3.. will make it nice someday..


----------



## mynm

hellm said:


> Done, added in FAQ so far.. Hopefully you didn't left something, only scanned your post.. but i am grateful for any donation here :thumb:
> 
> I made at least VDDCI (thx @mynm) now accessible through post#3.. will make it nice someday..


The way to change the vddci depends of the gpu.

The post that you have linked is only one of the ways to modify the vddci, it seems to be only for gpus with none dynamic vddci. 

I see, and I have explained in this thread, two more ways to modify it if gpus haves dynamic vddci.

If you see into the VOI vddci control by svid2, you can modify it with the powerplay values.

If you see GPIO control, you can modify it in the VOI.

But according to one Buildzoid's video, it seems that is risky to increase it. So maybe this is only safe if it is reduced.

I will try to explain again, but i am busy. 


I have now the new 590 nitro and seems to work ok. It have a lower ASIC quality, 67.7%, so it cames with 1.206v for the dpm 3... instead of 1.181v for the dpm 4. And is using 1.2v instead of 1.15v. I have no idea how it can come like this...

Sapphire technical sopport seems to see this ok, so I will try to mod the bios to solve the problem. I can not believe that I have to this...


----------



## hellm

np, i will leave a note.. thx, again, and yeah, busy times


----------



## elises1

Hallo @hellm,
first of all thank you for the great work, it is much appreciated.
I have a RX 480 Nitro+ 4G which I managed to flash with your modded BIOS I found on the first page (first post).
To be honest I did update the GOP using Lordkag GOPupd tool before flashing it and it went well (the tool "repaired" some sort of discrepancy on the BIOS as well).
I enjoyed the lower heat and consumption at ildle but am a bit worried about the current draw of the GPU at full power:
I measure power consumption at the 240v socket and during Superposition testing the power is some 250 Watts more than idle. With a 80+ PSU this means about 200 watts going into the GPU (plus the power it drains when idle). with a 6+2 pin plug that's "just" ok (150W from the cable and 70W from PCIE rail) but don't feel confident.
is there a more conservative BIOS available? should I start from scratch off my original RX 480 BIOS?
thanks


----------



## hellm

lordkag's GOPupd tool is very useful , and it can also update with the patched GOP version; this is the magic verion from post#3. i guess the discrepany is because it was a patched gop version before.

i explained it a few pages ago. Measurement isn't really taking place on a hardware level, and even the 480 BIOS will show exact the same higher values as a real 580 BIOS does. And, only Afterburner reads the same values which the controller sees, and even them are of by 10-20%. So, better disable power limit and pick a voltage/clockrate the card will sustain with the given cooling.
Nothing we could do here. If you aren't sure what the card uses, i can only recommend a DDM with a clamp. VRM works as before, only some slightly difference in power management, nothing else.

the more conservative BIOS would be from post#2 or just like that if you follow post#3. If you want to use the BIOS from #2, you have to copy over the vram info table. Just copy and paste over the one found in the BIOS file. Use ATOMBIOSreader to figure out start and length, then copy from #1 4GB to the 8GB version from #2. correct crc afterwards (see post#3), done.


----------



## mynm

mynm said:


> I don' t know what to do, this one is the SE 1560 version with hynx memory https://www.techpowerup.com/vgabios/206786/sapphire-rx590-8192-181113 but it have the same buld date as mine, I will try to see diferences between the bioses with Vento041's SimpleBiosDiff.
> 
> This is the 1545 bios one for the SE and hynx: https://www.techpowerup.com/vgabios/207043/sapphire-rx590-8192-181113-2 ,it only have some changes into powerplay, usCKSVOffsetandDisable is 26 in my bios and 0D in the SE one, and TDP and TDC related values are slightly higher in my bios.
> 
> I think is better to wait for the support response, to see if they have a better bios.
> 
> *Edited:* the diferences between the 1560 SE bios and mine are usCKSVOffsetandDisable to 0D, the clocks, some fans tables values and higher TDP and TDC related values. Also TV_VideoMode/DispOutInfo is different, but I have no idea for what it is used. Also seems to have more values added at the beginning of the bios, but the Vento041's tool don't see these differences.
> 
> I have no idea what usCKSVOffsetandDisable vales are doing.
> 
> *Edited:* Sapphire support suggest me to contact with the shop, so I am going to return the gpu and ask for a new one.


I have tested what is doing usCKSVOffsetandDisable, if it is increased is increasing some kind of minimun "AVFS voltage VID" (I don't if is AVFS or other thing). 

My default value for it is 26, with it my voltage, if I set powerlimt to + 20% to get a constant clock of 1545, is between 1.18v and 1.212v and most of the time to 1.2v.

I have tested the 590 niro+ SE 1545mhz bios that have D for this value, and the min voltage is lowered to like 1.16v, so my gpu is not stable.

With it to 0 the minimun is 1.15v.

With it to 32 is between 1.2v and 1.212v, I see some droops to 1.16v, but most of the time is 1.212v.

If I set the powerlimt to +20% my gpu is not stable, with 0 seems to be stable. So to get a constant and stable 1545mhz it seems I need to increase usCKSVOffsetandDisable to see less voltage drop. I have to test if with it to 32 is enough.

I have no idea if this is only working with 590 gpus, that I see is needing the driver patch to mod the bios, or if it can work with 580 gpus, that have this value setted to 0, afaik. 

I think that Vega haves aswell the usCKSVOffsetandDisable value, but I don't know what is the default value for it.

Other thing I see is that using wattman not auto voltage or OverdriveNTool to change the voltages, is not using a this range of voltages.

Edited:

I see Vega haves usCKSVOffsetandDisable and a usAVFSOffset values, so maybe it is not a AVFS offset for the 590. 

00 00 USHORT usCKSVOffsetandDisable; /* Bits 0~30: Voltage offset for CKS, Bit 31: Disable/enable for the GFXCLK level. */
00 00 USHORT usAVFSOffset; /* AVFS Voltage offset */ }

Could be intersting to test these values en Vega.


----------



## mynm

The forum seems broken since my last post here, maybe with this post it will be ok.

With all the usCKSVOffsetandDisable vales to 32 +20% seems stable.

About my pc problems, I had a blue screen and the dump is similar to this one: https://community.amd.com/thread/226266 that says it is a AUEPMaster.exe problem, and acording to this: https://community.amd.com/thread/233629 is used for "AMD User experience Program". So I have removed 19.1.2 drivers and installed 18.12.1.1 without checking it. 
Seems to work, but I also have removed two ram sticks, and I am using the other two to 1333mhz, because one person with my same MB had this problem with the ram. 
Also I don't have wattman activated, because I see that with it activated in 19.12.1.1 drivers, the max memory frecuency is sometimes been lowered to 1750mhz fron 2000mhz, so it can cause instability. 

I haven't had problems in three days, but I have to test this more days.


----------



## snipernote

hello @hellm
i have power color rx 480 red devil card but its v2 with 1290mhz bios
Powercolor Red Devil AX RX 480 8GBD53DHV2/OC
validation https://valid.x86.fr/zybxe9

i am having an issue with my both stock bioses when both UEFI on and secure boot on standard
i get a nasty blue/yellow gpu bios screen for 5 seconds before system continues to boot , how can i fix this ? (i have confirmed this screen goes away if i changed the GPU as i have upgraded to Vega 56 red dragon now)
this really bothers me alot !!! , i still have the rx480 card for my brother gaming pc ( msi ge60-0ND i7-3610qm , 8gb ram , windows 8.1 and the gpu is working on e-gpu bracket flawlessly )


update : yesterday i flashed the red devil 480 to 580 original converted bios and its working fine now , i had to lower the clock speed in wattman to 1330mhz @ 1200mv as my card is a bad overclocker , metro exodus ran fine at 1680x1050 High settings with 30+ fps for over 2 hours without a problem , so far so good !


----------



## hx801217

hi @hellm 

I bought a RX570 for mining, which is an OEM product. I don't know what manufacturer is produced it.
According to your guide, i changed the byte from 0x0F to 0x07 which at offset 0xD7, but after updating VBIOS, the driver still recognizes it as RX570, can't become 580, what else did I not do?


----------



## hx801217

hi @hellm 

I bought a RX570 for mining, which is an OEM product. I don't know what manufacturer is produced it.
According to your guide, i changed the byte from 0x0F to 0x07 which at offset 0xD7, but after updating VBIOS, the driver still recognizes it as RX570, can't become 580, what else did I not do?

that is the original bios


----------



## hellm

An update to this is problem is in faq (post#3) and a few pages back i believe. We can't convert a gpu with deactivated shaders to a 580 anymore. Even the new Polaris 30 is identified by GPU revision from the driver.
I guess for Linux it should still work somehow? Windows user do need the driver patch for everything else than a full Polaris 10/20 GPU.
@snipernote
glad you could fix it.


----------



## aaronsta1

i upgraded my rx 480 strix to a rx 580 strix top. it seems to work just fine at the default 1411 @ 1.17v
on the default rx 480 bios i was limited to around 1375mhz even pushing the voltage up to 1.2v

my question is, should i also copy the 1750 memory strap to the 2000 clock?


----------



## hellm

Yes, it seems. Better build your own custom, use the latest Asus update, or just use BIOS files from post#1/#2. Read a few pages, and you figure it out. All about the right progamming of the PWM Controller, and a few other things. For more knowledge on timings, there used to be also a Polaris BIOS thread.. i left link in post#1, also some info, i recommend the UberMix timings for samsung GDDR5.


----------



## DAM20

I recently bought an adaptor to attach the 2 fans of my Arctic Liquid Freezer 120 to the gpu, problem is, there's no way to let them work properly...
Already set max fan speed at 1400 via hex and the rest via editor, but no matter what, I always have a strange fan curve and never goes at target speed after hitting max temp...
0 rpm is disable, is there any way to let aio fans works?


----------



## dsanke

hello, hellm
do you know how does fuzzy fan logic work?
what does the " 64 00 64 00 64 00 64 00 64 00 64 00 64 00" mean?


----------



## hellm

since i cooled with water, never got the chance to test it. Only different values with 580 cards, all 480s have the "64" byte, seen some 96 and what not on 580 customs. I believe it is something about duty cyle for pwm on the fans for the 7 states? i don't think it is about the fuzzy logic.


----------



## mynm12345

hi, thanks for the nice explanation on polaris bios editing, recently picked up 2x rx 470s off taobao for 140 usd incl shipping and one of them is now doing 1̶4̶6̶5̶m̶h̶z̶ ̶@̶1̶.̶2̶v̶ ̶a̶n̶d̶ ̶1̶9̶5̶0̶m̶h̶z̶ 1500mhz @1.205v and 2230mhz mem with really tight timings with the 570 bios mod and some tdp mods(rock solid!!!), the other one however seems to be having some issues with temp throttleing, it seems to throttle as soon as it hits 74c, i've tried changing the temp target from 4A(74) to 54(84c) but it doesnt want to boot at all with these settings, has anyone got a clue on how to fix this?
thx

https://imgur.com/a/URElSRI
https://imgur.com/a/oSSgPqJ

edit now gets into windows with 84 temp target, still throttles at 74c tho

btw im not mynm, just created this account name was suggested as default by overclockers.net sry about that


----------



## Hexbyte

Nevermind my previous wall of text, my issues are solved and I can boot into UEFI mode normally now. I'd still love to hear some information about those memory straps though, could someone give me a more detailed/in depth explanation of what the different values represent, how they function and what you achieve by copying the values over the 1750/2000 straps etc.?


----------



## morecs

mynm said:


> Interesting, but what is this doing?. I found that AVFS is some tingh related to power effiiency: https://www.extremetech.com/gaming/...ficiency-improvements-update-on-25x20-project . About cks, I don't know what it means, I remember to test some relates values about it into the powerplay table and if I remember correctly with it enablet I was guetting highes voltages.
> 
> I have tested also an undervolting to my 580 nitro. And I can get for now 1340 with 1.093v, I have no idea if it is totally stable or not.
> 
> My stock voltages are the ones of the first attached image. Is extrange because the voltage is 1.15v from dpm 4 to 7.
> 
> My stock Asic Profiling table is the second attached image.
> 
> I have highlighted some values I had used on it . I don't have used ulaNoCalcVddcPerDPM, but I think it is relted to ulEvvNoCalcVddc.
> 
> My modded Asic Profiling table is the third attached image.
> 
> I have changed:
> 
> 
> ulEfuseMin to 1500: inceasing this value is decreasing the 1 to 7 dpm voltages
> 
> ulmaxVddc to 1.093v and usMaxVoltage to 1.093, without changing them even if dpm7 voltage is 1.093, the voltage is going higher up to 1.15v if wattman voltages are setted in auto. The same happens with the stock values, even if dpm7 is 1.15v the voltages can go up to 1.175v.
> 
> ulEvvDefaultVddc to 1.093 and ulEvvNoCalcVddc to 1.093, I have changed boht because if not the dpm voltage is 1.15v, but I have no idea if is needed to change both voltages.
> 
> The fourth image is the result, I had to lower the dpm 2 core mhz to 800 because if not it was no stable.
> 
> With the stock bios I am getting a 14763 firestrike graphics core, and with the mod I get 14977, because the stock bios gpu was power throttling.
> 
> 
> 
> 
> Thanks. Don't worry at all, is my fault, I din't have to test more things about the vddci, I was testing some mod to the Ids and the mask, but without success. I had no thought that test the gpu with the multimeter was so risky.


 @mynm, those voltages on your second screenshot were attained by editing the API table? or did you use PBE?


----------



## mynm

morecs said:


> @*mynm* , those voltages on your second screenshot were attained by editing the API table? or did you use PBE?



They are edided using an hex editor. I don't know what API table is. PBE don't have the option to edit the Asic profiling table.


----------



## adiif1

Its possible to undervolt under 1v?

https://ufile.io/qis4inb8

i set 0.850v on vcore + controler ram but still msi afterburner and gpu-z show VDDC 1v :/


xfx 580 8 gb hynix


----------



## BlackGarnett

Greetings hellm, I got a POWERCOLOR RED DEVIL RX 480/8GB, I downloaded and flashed your Original 480-580 bios mod, did some benchmark and looks stable, But when Idle I see that the sensors from Radeon Overlay, GpuZ and HwInfo shows that when idle is constant 30W. Is that normal? Even tho I'm going to attatch some screenshots. Thanks in advance, and great work for all these years with it.

EDIT: I tested the bios with games and after 10-15min of gameplay the textures in-game started to fail, they show terrain, dust, snow, etc in other colors, and some characters too, roof and lights started to flick and shine a lot so i had to flash back the stock Bios. What could be causing this in the mod bios?


----------



## hellm

hey, sorry my answer took a while..
@mynm12345
no idea. But i suggest to keep the temp below that value, temp limits are there for a reason. Also take a look at your VRM temperature.
@adiif1
the answer is in the thread, sorry i can't say on what page.. look for IMC voltage, because that second voltage is a voltage floor, can't go under that value with your vcore.
@BlackGarnett
same here, your answers are in the thread, i suggest to read it backwards and search for power limit or something. The 30% is indeed a software bug, and there are more infos about temperature, power limits and so on. I made sure the VRM is working as it should, so any change would be through different voltage and power limit, at least at maximum load.


----------



## overpower

I have an rx 480 already modded to 580. I'm using msi afterburner mostly to turn off the always off fans (by fan settings to minimum 30%). I have an issue, which from google search I found to be common. My middle fan wont spin. If I try to spin in my self, it will start spinning until I turn off the pc. While the pc is booting, the middle fan will start again spinning for the bios screen and then until it get into windows and get the settings from msi ab is too late and only the other 2 fans will spin at the min settings.

So I can remove the 0 fan using hex editor as I saw at the 1st post.
Will it work in my case? I want to set it to spin always at 25-30%. Is it possible for only the middle fan or all 3 fans are connected via 1 port on the gpu? 

Strix 480 8gb oc version
@hellm


----------



## hellm

I am guessing you modded your 480 by simply flashing the original 580 strix BIOS? If the fan profile doesn't fit your card, the middle fan might be affected somehow. I believe it is getting less voltage than the other two, and that would be more cost effectiv with a simple voltage divider. Also the BIOS doesn't have multiple PWM settings or something.

I made the conversions for a reason, most of all wrong vrm settings can be really bad. Wrong fan settings are only getting on your nerves..

Try one of my BIOS files or mod your own, don't blind flash a BIOS from another card. Even if it looks very similar.


----------



## mynm

@*hellm* 


I have tested three compatible 580 nitro bios with my 590 nitro, two of them where working without problems and driver patch isn't needed when doing a bios mod, with the 590 is needed.

The problem I see is that I can't reach my stock 1545mhz core clock with the same voltage. So maybe they have done some improvements to the 590 bioses to gain highest core clocks, or maybe into drivers. 

I remember that some one have tested a 590 bios into a 580 without success, in this thread or the polaris bios mod thread.
I think that maybe the cause could be that 590 bioses have much lower voltages for the same clocks than the 580 ones.
Also it seems that the worst 580 comes with lower clocks like 1340mhz vs 1411 or 1450 for the good ones. 

But on the 590 gpus the differences bettwen clocks are lower, 1545mhz to 1580, and they are using powerplay usCKSOffsetandDisable values to adjust the voltages. The values are bettwen D and 32 (on 580 bioes are 0), so the default voltages are increased between +12.5mv and +50mv.

So if you know anybody how wants to test or anybody here wants to test a 590 bios into a 580, 570 or 480, 470, I think it's bettes to use the bioses with the highest usCKSOffsetandDisable values, and decrease the clocks to the 580 stock ones , or maybe lower, and then adjust the clocks and usCKSOffsetandDisable values.

*Edited: *about using a 590 bios for 480 or 470 gpus, it could be more difficult as 590 have diferent values for vddci into voltage object info table and asic init table. So some changes into this tables will be have to be maded. My 590 have the same config as the 580 one, so using a 590 bios into a 580 could be easy. 

Also I think some of this thread 480 to 580 bioses conversion have some mistakes in the vddci configuration. Hellm knows it, but the problem is that you have to use a multimeter to know vddci values, so it will be helpfull if somebody have one and can test it.

*Edited: *I have tried the bios name conversion from 590 to 580, only the stock 590 bios named to 580. And it can be done changing E6 01 to E6 07 and Polaris30 to 20. But I have black screens in games with the stock clocks, I have to test if with lower clocks if it's ok.

I also have tried the stock 590 bios named to 480 changing E6 01 to C6 07 and and Polaris30 to ELLESMERE, but it is reconiced like a 580.

So maybe the drivers is doing some thing to the 590 gpus to can achieve higher clocks or some feature is needed for the 590.

*Edited: *I have tested the stock 590 bios named to 580 with 1500mhz instead of the stock 1545mhz and is working ok. I don't have tested how near to 1545mhz I can go and I think that is not wort to test it. The gpu should be stable with the stock cloks. So for bios moding it seems that is better to use the driver patch than the rename to 580 or using a 580 bios, at least untill it don't stops working.


----------



## MixedC

I am removing this post to prevent confusion.
...and leaving this piece of information for others who may face this issue.

If you experience weird throttling at temperatures such as 60C,70C and nothing else matters, even thought your sensors doesn't report high temps and you have enough power-limit headroom, it is still because of high temps but sensors doesn't catch it. Changing thermal paste gets rid of the throttling issue.


----------



## mrtang42

I have a msi rx 480 gaming x 8G. After I flash your original conversion rx480-580 bios for MSI. GPUZ and amd driver both report that the memory type is unknown. Could you double check it? Thank you!


----------



## hellm

You double checked you vram in the first place? You want to share your original BIOS file?


----------



## mrtang42

@hellm, Thank you for your reply. My MSI RX480 GAMING X has samsung vram. I think samsung is the only brand it comes with.
The bios in the first post works fine. Only the bios from the second post has the memory type unknown issue.


original bios from here:

https://www.techpowerup.com/vgabios/196214/msi-rx480-8192-170727


----------



## hellm

hmm, thx for the info. I will look into it, but might take a few days..


----------



## mynm

hellm said:


> hmm, thx for the info. I will look into it, but might take a few days..



Hi hellm, I have taken a look to your 480 msi bioses and the mrtang42 bios and I suggest you to changes the real msi 480 to 580 conversion bios VOI table from this:



46 00 03 01 01 03 12 00 08 96 10 00 00 00 00 00 8D 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 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 B6 03*


To this:


46 00 03 01 01 03 12 00 08 96 10 00 00 00 00 00 8D 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*


As the vddci config for the 480 gpus could not be working ok if you are using the 580 one, as you know.


----------



## hellm

If you change it to the 480 version, as u suggest, it won't work. And since the only controller is the IR3567B, i mean the only one that could talk, we checked the i2c dump in the beginning. all fine.
And there is a reason to it. Since i took an IR3567B 580 BIOS with exact the same configuration as the targeted cards, it doesn't matter how VDDCI is implemented. As long as it is implemented legit and as it should be, which it was from the start. Would i mix it with an 480 VOI version, it not only wouldn't work properly (we tested this), it would screw up the way VDDCI is implemented. The card doesn't know what BIOS it had before.
For the post#2 original conversions, they all have the 480 table, of course. Same reason, cause the rest of the BIOS is 480, works as intended.

For the not recognized problem, i have an idea. I updated the vram info table to the 580 version, that could have caused issues. But then again, if the only issue is a confused gpuz.. or it is soime other reason we don't know yet. i will definitely look into it, as i said might take some time..


----------



## mynm

If you see this buildzoid's video about the 480 msi pcb






I understand vddci isn't controlled by the IR3567B controller, I understand it is using another cotroller for the vddci and mvddc. 

And the IR3567B config is only this part 01 03 12 00 08 96 10 00 00 00 00 00 8D 00 00 00 FF 00 where you have added the 8D register for the voltage offset. 

The default bios is using this 01 03 0E 00 08 96 10 00 00 00 00 00 FF 00 so there is no confing for the IR3567B controller, as there is no one register added to it.


The problem I see into the vddci confiig is that the 480 config seems to be using only 850mv, but the 580 one is using 800mv and 850mv. The lower value for the 480 vddci VOI config is 850mv, and for the 580 one is 800mv, so we can't be sure if the 480 can use the 800mv min voltage and we can't know if it used or what voltage is using. 


I remember one Vento041's conversion bios where he is using the stock 480 VOI into a 580 bios without problems.

The biggest problem is that we can't know if the vddci config is working ok without measuring it with a multimeter. If somebody could measure it will be great.

*Edited:*

I also forgest that maybe you will have to do a change into the asic init table:

The 480 one is:

8E 00 01 02 00 08 02 01 02 00 52 47 52 02 02 65 02 07 52 0D 55 00 02 52 0D 52 23 2C 25 02 01 3D 25 02 06 45 17 00 51 02 52 3D 52 39 02 0D 02 01 03 52 43 66 04 02 8C 02 2E 00 02 0D 02 01 00 52 43 02 05 02 *04* 00* 52 03* 52 43 02 F9 02 01 52 05 02 01 02 00 0E E5 02 08 52 0A 02 05 02 02 00 00 00 52 43 02 05 02 *04* 00 *52 03* 52 43 02 05 02 30 75 00 40 52 0B 02 05 02 *04* 00 *52 03* 52 43 02 01 02 01 0E E5 02 08 52 0B 0D 65 D0 05 02 5B

The 580 one is:

95 00 01 02 00 08 02 01 02 00 52 47 52 02 02 65 02 07 52 0D 55 00 02 52 0D 52 23 2C 25 02 01 3D 25 02 06 45 17 00 51 02 52 3D 52 39 02 0D 02 01 03 52 43 66 04 02 8C 02 2E 00 02 0D 02 01 00 52 43 02 05 02 *04* 00 *52 03* 52 43 02 0D 02 02 03 52 43 02 F9 02 01 52 05 02 01 02 00 0E E5 02 08 52 0A 02 05 02 02 00 0E 06 52 43 02 05 02 *04* 00 *20 03* 52 43 02 05 02 30 75 00 40 52 0B 02 05 02 *04* 00 *52 03* 52 43 02 01 02 01 0E E5 02 08 52 0B 0D 65 D0 05 02 5B

The 04 says that the values is related to the vddci like into the VOI table. And it sets the value for the VOI, acording to some tests I did with a multimeter with my 380.

So I think that you will have to changes the seconf 20 03 (800mv) to 52 03 (850mv). 

Your config for the VOI with the 580 values is : 

46 00 03 01 01 03 12 00 08 96 10 00 00 00 00 00 8D 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 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 B6 03*

My sugested vales are the 480 ones:

46 00 03 01 01 03 12 00 08 96 10 00 00 00 00 00 8D 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*

The problem is that the asic init table selects the min and max value for the vddci acording to the green value, but the values that actually are setting the voltages are the orange ones. So the 480 don't have a *00 00 00 00 *for *20 03 *(800mv)and maybe it can't support that voltage. So I think that is better to set the 480 vddco config.


----------



## hellm

As i said, wouldn't make much sense to mix anything. Also, if vddci is controlled by the same controller as gddr5 voltage, well that one doesn't speak, meaning doesn't have a serial interface, so it can't be set by BIOS or anything. Also, i think it is a single buck controller, whatever..

Here is the thing, i guess you think of some sort of controller, that is card specific and has to be programmed like on the original BIOS. That is not the case. In fact, you would screw all up by mixing the different ways; and that is beyond the 480/580 thing. Because the difference in 480/580 version is not related to the different ways to implement it; it fits with the other 480/580 stuff, AMD changed this with Polaris20

Again, not the 480 or 580 can do anything, it is the same GPU. I know what is electrically on the card, there is no mysterious controller missing.

You aúntderstand what i am trying to say? Not 480/580 asic_init matters, it just mattersd if the asic_init is the right one for the given voi table, and that is the case if you don't change it and cross BIOS versions. So, vddci is implemented in the right way.


----------



## mynm

Yes, the problem is that I'm not sure if the vddci controller have these especific voltages programmed on it and you only can select between then, and the vddci config needs these especific orange vales to set these especific voltages. So in these case your BIOS is wrongly setted. 
And we can't know it without measuring the vddci with a multimeter.

But if you have info about it and you are sure it is not the case, it wouldn't be a problem.


----------



## hellm

I am sure.


----------



## mynm

hellm said:


> I am sure.



Ok :thumb: . Is a sad for my to don't have my 380 or a 480 to test this with a multimeter and be sure it's ok. I'm not going to put in risk my 590 or losting its warranty. If you are sure it's ok I don't have more to say.


----------



## hellm

mrtang42 said:


> @hellm, Thank you for your reply. My MSI RX480 GAMING X has samsung vram. I think samsung is the only brand it comes with.
> The bios in the first post works fine. Only the bios from the second post has the memory type unknown issue.
> 
> 
> original bios from here:
> 
> https://www.techpowerup.com/vgabios/196214/msi-rx480-8192-170727


Sorry almost forgot about your problem. Seems to be confirmed by at least one user, so it appears some cards have this problem.

I compared the tables of the custom models and the reference card, and they have slightly different VRAM info tables. But these few bytes vary also in different BIOS versions for the same card, so this should be fine, related to other tables.
I didn't change those tables, left them as i they were in the BIOS. The MSI BIOS i took from TPU, a user pointed me to it. It is a valid BIOS, was some newer version, i don't know. Having a look on this VRAM info table, it is also not much different, but not just the usual bytes. And the obvious is in the name string:
Usual Samsung GDDR5:
K4G80325FB
what i found in the msi original conversion BIOS:
K4G80325FB_WCK2CK
..when i have a look at the previous version i used, the same name string:
K4G80325FB_WCK2CK
..the table in the 580 BIOS i used is the usual style. No one complaint, only had good feedback. And there were many Gaming (X) owners with testing involved, not once the memory came up.
So, i don't know what to do with that, maybe u can upload your Gaming X BIOS version?


----------



## mrtang42

hellm said:


> Sorry almost forgot about your problem. Seems to be confirmed by at least one user, so it appears some cards have this problem.
> 
> I compared the tables of the custom models and the reference card, and they have slightly different VRAM info tables. But these few bytes vary also in different BIOS versions for the same card, so this should be fine, related to other tables.
> I didn't change those tables, left them as i they were in the BIOS. The MSI BIOS i took from TPU, a user pointed me to it. It is a valid BIOS, was some newer version, i don't know. Having a look on this VRAM info table, it is also not much different, but not just the usual bytes. And the obvious is in the name string:
> Usual Samsung GDDR5:
> K4G80325FB
> what i found in the msi original conversion BIOS:
> K4G80325FB_WCK2CK
> ..when i have a look at the previous version i used, the same name string:
> K4G80325FB_WCK2CK
> ..the table in the 580 BIOS i used is the usual style. No one complaint, only had good feedback. And there were many Gaming (X) owners with testing involved, not once the memory came up.
> So, i don't know what to do with that, maybe u can upload your Gaming X BIOS version?


Sadly, I no longer have the original bios since the one from TPU is newer. I now have the one from TPU in my rx 480.


----------



## overpower

I have asked this again and got no answers.

I'm using the rx480 strix 8gb from op. I have a hardware issue tho. My middle fan wont spin at all. Only if I force it with my finger to spin. What i want is from the fans to always run at 30% at least. I have set that from msi afterburner, but still between bios boot screen and windows log in, it stops spinning and it wont until the next boot (which they will temporary spin at max for a sec).

Is there any way to set it from gpu bios to always run at 30%? I see the fan settings section at op, but i cant figure out how to edit the bios (open it etc)
@hellm


----------



## hellm

overpower said:


> I have asked this again and got no answers.
> 
> I'm using the rx480 strix 8gb from op. I have a hardware issue tho. My middle fan wont spin at all. Only if I force it with my finger to spin. What i want is from the fans to always run at 30% at least. I have set that from msi afterburner, but still between bios boot screen and windows log in, it stops spinning and it wont until the next boot (which they will temporary spin at max for a sec).
> 
> Is there any way to set it from gpu bios to always run at 30%? I see the fan settings section at op, but i cant figure out how to edit the bios (open it etc)
> @hellm


I believe i answered this before. All the fans are fed by the same power source, so if one of them doesn't work as intended, everything indicates a hardware failure. BIOS only delivers one fan settings table.

Now for the 30% minimum, yes that is possible. I believe you have to raise the idle PWM value, found in the fan settings section in post#3.
If you don't know how to edit it, try a hex editor. I can recommend HxD.


----------



## overpower

hellm said:


> I believe i answered this before. All the fans are fed by the same power source, so if one of them doesn't work as intended, everything indicates a hardware failure. BIOS only delivers one fan settings table.
> 
> Now for the 30% minimum, yes that is possible. I believe you have to raise the idle PWM value, found in the fan settings section in post#3.
> If you don't know how to edit it, try a hex editor. I can recommend HxD.


Yeah, i know it's a hardware issue, I just wait for either black friday or Christmas holidays to buy another gpu to send this one back. They told me it could take up to 2 months to test it etc, and i dont want to stay without a gpu. After that, I'll sell it. If i spin it manually, it will stay like this, so I want to mod the bios to keep the minimum 30% so at the boot of the pc where all fans works, they will go down to 30 and not at zero fan setting

I mostly didnt knew which editor to use. Thanks


----------



## overpower

@hellm

As you can see here i found the fan settings. At first pic I highlight the min pwn setting. Is this correct? At the right of the window I see -48 for the first value and 208 for the other.
Secondly, I believe that I could just turn off the zero fan setting which i highlight at the 2nd picture (I believe this is it).

To flash the rom, should I change anything so I wont get the "same bios" pop up message?

Edit: Sorry for double post, I thought they would merge


----------



## hellm

Not that min PWM, i meant the "idle PWM", sorry. The right one is found at offset 0x9E7F in your BIOS, and it is set to 0x23 = 35% PWM. So this should already be higher than what you want.
For the Zero RPM thing, yes, you found the byte to switch that off.

Before flashing, pls read the !!! marked stuff, at least, because without your card won't boot. You have to at least correct the checksum; and since your modded your BIOS, you have to either turn the id to a 580 BIOS, or patch the driver. For UEFI boot, you also have to copy the magic GOP to your BIOS. I think this information is found all over post#3.. 

..oh, and if you want to spare yourself all that BIOS flashing trouble, SPPT works also for Polaris:
https://www.overclock.net/forum/70-...g-tweaking-rx-400-series-25.html#post25834851
you will find the complete fan table there


----------



## overpower

hellm said:


> ..oh, and if you want to spare yourself all that BIOS flashing trouble, SPPT works also for Polaris:
> https://www.overclock.net/forum/70-...g-tweaking-rx-400-series-25.html#post25834851
> you will find the complete fan table there


If I'm not mistaken, I cant turn off the zero setting using WattTool, right? Only min/max



hellm said:


> Before flashing, pls read the !!! marked stuff, at least, because without your card won't boot. You have to at least correct the checksum; and since your modded your BIOS, you have to either turn the id to a 580 BIOS, or patch the driver. For UEFI boot, you also have to copy the magic GOP to your BIOS. I think this information is found all over post#3..


If I try to edit your modded bios, by just editing the hex value, I'm not good to go with the flashing? I'm already using your modded 480 strix, I just want to change the hex value for zero fan setting


----------



## hellm

afaik Zero RPM is only deactivated by that one byte in the BIOS.

If you are using one of my modded BIOS files, you only have to update CRC with PBE after you edited it. You could also update the GOP, but this is not necessary.


----------



## overpower

@hellm 3 days now and each time I open the pc, except the time between bios and lock screen, the fans starts to work, all 3 of them. Before that, they would only start after I logged in so msi ab could start and set the fan profile. I don;t know why it behaves like that. I guess gpu have more voltage at the boot so it's enough for the fan to start? Even if I chose manually 100% fan speed, the middle one wouldn't spin before. 

Thanks for all the help


----------



## jswjimmy

Hello,

Sorry if this has already been covered but I couldn't find it using the search.

I have a XFX GTR RX 480 Triple X Edition 8GB (the Best Buy one with hard swap fans). I saw early in the thread that someone had already flashed this card but my question is a little more specific. 

My overall goal is to lower power consumption while also boosting performance(but at stock speed). I have until now just been lowering the mV on the GPU and the RAM. From what I have been reading flashing to a RX 580 will help boost performance slightly (because of the tighter ram timings) and use slightly less power (since the power management is better on the updated bios). Do I have this correct?

If so is there a premodded BIO I can download for this card? I'm more than comfortable using a HEX editor (I modded the bios on my Pentium 2 motherboard back around 1999 for large IDE support) but if I can save time using a premade one that would be nice.


----------



## hellm

At full speed, with the same voltage and clock rates your card will use the same amount of power as before. There might be a tiny gain in performance, so efficiency is slightly better.

In idle, you can achieve the same with a 480 BIOS by activating, sorry i forgot the exact name of this option, some power save mode in the driver. The 580s don't have that option, it is activated by default, and you can't change that.

Memory timings should improve efficiency, but you also have more power consumption after all, because GPU utilization at least for the mem controller is also raised.

The two BIOS files for the XFX GTR should also fit your card. Though, you should consider the safety suggestions if you have some special edition; so be sure you have samsung vram and an IR3567B voltage controller on your card.


----------



## Châu Tô

sorry guy I now this toppic is old but I'm new here and I just wonder that can I flash my gigabyte RX570 8GB gaming to RX580 8Gb? (just to show off with my friend )


----------



## hellm

Châu Tô said:


> sorry guy I now this toppic is old but I'm new here and I just wonder that can I flash my gigabyte RX570 8GB gaming to RX580 8Gb? (just to show off with my friend )


yeah.. you're a little late to the party. So, i am sorry, but u have to search for your answers. First thing, the reason for this thread was to use proper modified BIOS version, so we can be sure the card is running as intended, speaking of the VRM.
For your problem, there should be some information for 570 Gigabyte here, might even be an modded 580 BIOS for this card buried in this thread. I don't know anymore, we had something about Gigabyte and Sapphire 570s i believe.
Since the new 590 and the special chinese 570-580-hybrid card, the driver rejects a 580 with less than max shader count. Should be some info on this in the FAQ, you need a driver patch with your GPU. And if you find nothing else, post#3 gives you all you need to mod the original BIOS of your card.


----------



## GabCar

hellm said:


> yeah.. you're a little late to the party. So, i am sorry, but u have to search for your answers. First thing, the reason for this thread was to use proper modified BIOS version, so we can be sure the card is running as intended, speaking of the VRM.
> For your problem, there should be some information for 570 Gigabyte here, might even be an modded 580 BIOS for this card buried in this thread. I don't know anymore, we had something about Gigabyte and Sapphire 570s i believe.
> Since the new 590 and the special chinese 570-580-hybrid card, the driver rejects a 580 with less than max shader count. Should be some info on this in the FAQ, you need a driver patch with your GPU. And if you find nothing else, post#3 gives you all you need to mod the original BIOS of your card.


Would it be possible to flash a 570 to a chinese 580 bios id so that we dont have to mod the drivers every update since they have the same shader count


----------



## hellm

Afaik only the Polaris20 RX580 with original sub ID and full shader count doesn't need the driver patch.


----------



## GabCar

hellm said:


> Afaik only the Polaris20 RX580 with original sub ID and full shader count doesn't need the driver patch.


I am running a rx580 chinese edition and modified the bios in many ways looking to get the best perf per watt, no luck with any modification: tried the -50 undervolt and the maximum voltage 1125mv values but they do not work at all. But at least i don't need to mod the drivers for the card to work, this is the modded bios i uploaded on techpowerup

https://www.techpowerup.com/vgabios/215992/215992


----------



## rootmoto

Anyway to stop thermal throttling after 75 degrees celsius? I have edited the temperature target to 95 degrees celsius in the BIOS but it still throttles afterwards. @mynm @hellm @Vento041


----------



## dustwashere

Hi guys. I ask for help (and I apologize for my English). there is an asus strix RX 480. there is a very big desire to flash its RX 580. not for overclocking, but for macos, for metal2 (mojave-katalina). Labeling my STRIX-RX480-8G-GAMING graphics card. GPU Clock frequencies: 1266 MHz, Memory Clock: 2000 MHz. please help me find the “best” BIOS for my video card (I don’t need overclocking, I need stable operation, no games, but for the system to identify my RX 480 as RX 580)
official bios is now installed 015.050.000.001.000000 BIOS Build date: 2017-06-28 04:17:00 

UPD
everything turned out, edited the BIOS according to the instructions from the third post


----------



## Redwoodz

Question: Anyone ever tried to flash a 590 to a 580? Asking for a benchmark comp. If so is there anyway to tell after succesful flash?


----------



## Nighthog

Anyone have the orginal XFX RX 480 rs 4Gb BIOS around?

I lost mine some time back as I had Windows issues when I went X570. 

I've upgraded to a Vega 64 and it might come in handy as some people I know have pursued interest in my old rx 480. But I no longer have stock BIOS for the card. The users after me can't use custom bios. Too much hassle to give them support every driver update to fix the driver signing issue.


----------



## deepor

Nighthog said:


> Anyone have the orginal XFX RX 480 rs 4Gb BIOS around?
> 
> I lost mine some time back as I had Windows issues when I went X570.
> 
> I've upgraded to a Vega 64 and it might come in handy as some people I know have pursued interest in my old rx 480. But I no longer have stock BIOS for the card. The users after me can't use custom bios. Too much hassle to give them support every driver update to fix the driver signing issue.



There's downloads here: https://www.techpowerup.com/vgabios/

Try to find your card there.


----------



## Nighthog

deepor said:


> There's downloads here: https://www.techpowerup.com/vgabios/
> 
> Try to find your card there.


Thanks for that, found the card there.

I searched the XFX site but they had removed all older than RX 500 series from their site. You could earlier get some bios version there and thought it would still be around, sadly not.

Thanks again for making this so much easier!


----------



## thankx

*I'm Stumped*

1, there is no option for "Update CRC" in Polaris Bios Editor (v1.7.2).

2, I can't find the hex values "8D 00 00 00 FF" in my bios using HxD to change vcore.

I've been trying to wrap my brain around what I'm missing but I can't figure this out.

I have an MSI RX 480 ARMOR 4G OC card. Any help would be very much appreciated!


----------



## Drew Fryer

I've read about 50 pages of this thread, and another on Polaris bios editing also on this forum.
Seems things have changed over the years regarding drivers and this conversion.
So Can someone please break it down for me..

I have an RX 470 4gb.
What was/is the main reason for flashing the video card bios to that from a 570?
Could the gains from the increased clocks just have been done via modifying the 470 bios? Or is there some other benefit for having the card show up as if it was a 570.(or 580 as I understand was required to get the driver to work?) (Until recently)

Seeing the following update on post#3..
"Update: since the 590, the driver compares the shaders/revision of the GPU. So, only the 480 can be switched to 580 with the no-patch benefit. All other SKU's have to patch the driver."

I may be missing something somewhere on how to patch the driver,(other than just running the ati pixel-patcher.exe) but this brings me back to, can I not get the same gains from modifying the 470 bios? Which I think means i still have to use pixel patcher due to the modified bios.

To which leads me to, even if I were to modify the bios.. and figure out how to patch the driver.. will I likely run into an issue since my 470 is a secondary GPU for my multi monitor setup, and the primary is a 390x ?

My Reasons for wanting to modify my 470 was more for fun than necessity. Though both of my GPUs are used moderately to heavily on a daily basis. Thus if I was able to get lower temps from this card, the 390 would be easier to manage, and/or better performance out of this card than it'll help and I may even offload a little more to this GPU from the 390x


----------



## hellm

@thankx
Maybe this version corrects it automatically on save. If not, it would be very bad.. cause no BIOS would ever boot. So you have to correct CRC byte, btw, it is found at offset 0x21.

I added the ""8D 00 00 00 FF" bytes to the custom roms myself. And the 0xFF at the end means this is the end of the subtable, actually these are the two datatypes:
8D 00 = 0x8D = register on PWM controller
00 00 = this is the 6.25mV multiplier (some customs have 0x02 or 0x04 here, if register 0x8D is found)
Some BIOS have them, some not. You can add them, but then you maybe have to resize tables.

But since you also can edit the maximum and minimum voltage (post#3), offset isn't really needed anymore. Take in mind an offset applies all the time, it is also affecting idle voltage.

@Drew Fryer
Don't just flash some 570 BIOS, it has to be modified to fit your card.
Since you have a 470, you have to patch the driver either way. Benefits from a BIOS mod, if you don't need more voltage, would be the possibility to edit memory timings. But since you use it as a secondary card, not really worth it, i guess.


----------



## LordSiphi

thank you very much to post these bios and sorry for my inglesh i'm learning yet 

i tried pass rx480 to rx580 but i have some problem in bandwidth , have a bios with the bandwidth 64 and unknown, and other with 128 bandwidth
i'm having problem with this bios MSI RX480 Gaming X 8G 

i'm using original bios have how do you convert that bios to rx580 gaming x 8gb (samsung) ?
my graphicard's rx480 gaming x 8gb


----------



## allasqwe28

I try add 1000mhz memory state to my Shappire Pulse RX 470 .I did everything like in a post https://www.overclock.net/forum/67-...rx470-rx480-rx570-rx580-100.html#post27826668. My modify powerplay table looks well but I have a problem some values have shifted on bios when i add new powerplay . I used ATOMTableResize to do it. .Maybe somebody can help me add modify powerplay table to this bios ???Below modify PPtable and stock bios.Thanks.


----------



## dsanke

*AMD fools Chinese consumer again.*

RX 590 GME is RX 580, just like RX 580 2048SP is RX 570. The only difference is the device ID changed from 67DF to 6FDF.


----------



## ch3mn3y

Hello.
Just found this thread. I was thinking to flash my MSI RX480 Gaming X 8G to its RX580 counterpart. Now it;'s just lying around as I got RX580 Nitro SE and didn't want to do CF coz of a lot different clocks (didn't play with OC). And, yeah, I know it would be better to sell tham and buy something more powerful in one card. But it would take time and why not? 

However I have one questiont: Which tye of reflash is better - IR or Original?
Card I have is available in first post, but I'm not sure if it has IR controller (it probably has if there aren't 2 types of every card). I cannot check now as I'm out of home for a week or two, but than I'll have 2 weeks of time thanks to the quarantine time in Poland 

I tried to find answer in this thread, but there are to many posts...

EDIT: Found this https://www.overclock.net/forum/26619385-post489.html
So there are two types of cards and I have one that does not have the IR controller?


----------



## Sb1982

Broken UEFI after mod time, need help please. I'm new to editing the hex, so maybe someone will fix the 'magic uefi' patch for me, please? Very grateful!


----------



## hellm

@Sb1982
You might want to try lordkag's UEFI Updater, i think it also has an option for the patched version, or magic one, as i call it.
AMD and Nvidia GOP update
@LordSiphi
I have no fix for that. Try to copy and paste the vram info table. There is more than one version of the Gaming X. Sorry for the inconvinience.
@allasqwe28
Sorry i can't help. Try to read in the Hawaii BIOS thread on how to resize tables another way, and check the pp tables of post#2.
@ch3mn3y
If that is the case you can still make some mods on your own. Timings are most interesting.


----------



## kozak0211

Hi, i've got a problem with bios MSI RX580 8GB GAMING HYNIX which i met first time... 

VOI STOCK is very short:



Code:


34 00 03 01 01 07 0C 00 0E 00 00 00 00 00 00 00 04 00 24 00 00 04 00 00 02 80 10 00 00 00 00 00 20 03 00 00 10 00 52 03 02 00 00 00 84 03 00 80 00 00 B6 03

Could someone tell me, how to do voltage offset in this VOI? Or could someone tell me how to get any info which voltage controller is to get datasheet of this? I need to do voltage offset on this card. I can't get any info about voltage controller, aida doesn't show anything (i attached files from aida)


----------



## Redwoodz

Redwoodz said:


> Question: Anyone ever tried to flash a 590 to a 580? Asking for a benchmark comp. If so is there anyway to tell after succesful flash?





dsanke said:


> RX 590 GME is RX 580, just like RX 580 2048SP is RX 570. The only difference is the device ID changed from 67DF to 6FDF.


 Thanks for the answer. I didn't end up joining the competition.


----------



## Jumy

share my experience,
from
RX480 Sapphire Nitro OC 8GB (NON +) 11260-20-20G (Micron), always problem with aggressive change pcie x1 x2 spike and my sensible eyes see all microstuter and skip frame, fps increase in number but my tweaked dcuII 7970 goes smoother in almost all games, the numbers are not the gaming experience
ORIGINAL BIOS https://www.techpowerup.com/vgabios/190082/sapphire-rx480-8192-161222
to
RX580 Sapphire Pulse 8GB (1 month in use for now with little undervolt + modded timings, colder and faster and fix "almost ALL" my previous problem, atiWinflash burn as original)
https://www.techpowerup.com/vgabios/197940/sapphire-rx580-8192-171120

need a try if... it looks the same with +25mV in all pState
https://www.techpowerup.com/vgabios/198216/sapphire-rx580-8192-171114

now finally seems a decent card, 76% ASIC


----------



## QTargetQ

Hello im wondering does this conversion works on sapphire 4gb non plus variant? Could i use nitro+ or will it not work?


----------



## QTargetQ

Hello im wondering will this work on non plus variant of the card? Could i use nitro+ or will it not work?


----------



## Jumy

not + have different vrm forget it, my advice is to look at the pcb of your card and search for same pcb, ram type, video out and power connectors

see well your pcb and maybe you have 8gb...
This is my card if can help


----------



## sv_cheats1

Hello!
My graphic card is MSI RX480 Gaming X 8G, it's now converted to 580, bios from the first post(msi480-580.zip), it works fine but the "Bandwidth" looks incorrect in GPU-Z.











Can you guys fix it?


----------



## Bride

Hi guys, I just received a Powercolor RX480 8GReference model, 6 pin power connector. I flashed a Powercolor RX580 8G, the less clocked one, but during Time Spy Extreme benchmark, black screen and i have to power off the system. Then rebooting it, everything ok. I am thinking if can be a problem of power connectors or something else. I tried with other Powercolor RX580 BIOS, but same problem. Thanks


----------



## DAM20

Bride said:


> Hi guys, I just received a Powercolor RX480 8GReference model, 6 pin power connector. I flashed a Powercolor RX580 8G, the less clocked one, but during Time Spy Extreme benchmark, black screen and i have to power off the system. Then rebooting it, everything ok. I am thinking if can be a problem of power connectors or something else. I tried with other Powercolor RX580 BIOS, but same problem. Thanks


This one should work Powercolor RX 580 VBIOS, but maybe lower the clocks a bit via editor.


----------



## Bride

tks @DAM20 already tried previously, but I will decrease the clocks as you suggested


----------



## Bride

Done! this little baby is working as well...


----------



## DAM20

Oh you got samsung, try this memory timing on the 2000 strap: 777000000000000022CC1C00106A5D4DD0571016B90D060C0060070014051420FA8900A0030000001011333DC0303A17
If you have no errors while playing/testing is pog


----------



## Bride

DAM20 said:


> Oh you got samsung, try this memory timing on the 2000 strap: 777000000000000022CC1C00106A5D4DD0571016B90D060C0060070014051420FA8900A0030000001011333DC0303A17
> If you have no errors while playing/testing is pog


Ciao man, unluckily I already sold the modded GPU, anyway I changed the string previously, but I don't know if is the same one mentioned by you


----------



## DAM20

Bride said:


> Ciao man, unluckily I already sold the modded GPU, anyway I changed the string previously, but I don't know if is the same one mentioned by you


Might be, the editor can one click apply the "ubermix" timings, the one I posted should be more compatible with similar performance.


----------



## Bride

hellm said:


> It is not necessary to patch the driver since the RX 580 is not checked for signed BIOS.


Hi, for the RX 470 still necessary? tks


----------



## Ataru83

hi to all!
I'm here to ask help to restore my xfx rx580 card... i do more test with many bios and i try to transform my rx 580 to rx 590 flashing rx 590 bios on my rx 580 card. The problem i have now is that my card can't boot in uefi (gop device unknow in MB bios) and i cant see the boot screen even if i enable csm. i reflashed many times the original bios of that card but with no luck... when i flash the bios i see the "older asic vbios isn.t signed"
thanks

ps: i add my orig bios i just change the extencion in txt to upload here


----------



## Aretak

I got my hands on a Sapphire RX 480 Nitro 4G recently and flashed it with the Hynix BIOS from the first post earlier, and I'm really impressed with the result. The power saving behaviour on the desktop is *so* much better. With the stock BIOS the clocks and voltage bounce around all over the place when doing things like watching videos and the GPU gets hot enough for the fans to have to start kicking in, which is really annoying. With the modified "580" BIOS, the clocks and voltage are *much* more stable when watching videos (i.e. they stay down at 300MHz for the most part) and the GPU runs a full 15-20 degrees cooler on the desktop as a result, meaning the fans don't have to come on any more. Zero issues with crashing or flickering or black screens or anything so far either and performance under gaming load is as expected too.

So, a bit late, but thanks for the BIOS. It's a massive improvement. I know in the past you could achieve a similar benefit for the RX 480 via the Radeon software, but those options seem to be completely gone in the latest version at least. It only offers overclocking. Plus I usually just install the driver via Device Manager to skip AMD's bloatware anyway.


----------



## mpiulg83

Hello Everyone. I have read many posts here and I did not find anything related to what may be happening to me. 

I have a RX480 (standard AMD) which I have flashed with your RX580 successfully a couple of time. I have done this mainly because my RX480 crashes and I hoped the flash to 580 would help due to higher TDP.
Unfortunately it did not, so I put back the RX 480 one.
The card crashes specifically right after the first boot of the computer, then it works fine when I restart. With games like Warzone, it crashes without any specific pattern. I could play for hours with no issues, or it could crash (all frozen) or it could reduce the FPS drastically.

I managed to get it working properly by undervolting it a little but and reducing the max clock (state 7). However, it could still crash right after logging in Windows just in the first machine boot (after being off for several hours, like overnight). This will also reset Wattman and I need to reload the profile manually.

Is anyone of you having the same experience?
Is there a way I can disable Zero Fan, add +50% power, set fan speeds to custo value, undervolt and possibly underclock, so I will keep the card stable and with default setting instead of using Wattman?

Thanks for reading this post


----------



## Bride

Ataru83 said:


> hi to all!
> I'm here to ask help to restore my xfx rx580 card... i do more test with many bios and i try to transform my rx 580 to rx 590 flashing rx 590 bios on my rx 580 card. The problem i have now is that my card can't boot in uefi (gop device unknow in MB bios) and i cant see the boot screen even if i enable csm. i reflashed many times the original bios of that card but with no luck... when i flash the bios i see the "older asic vbios isn.t signed"
> thanks
> 
> ps: i add my orig bios i just change the extencion in txt to upload here


if I remember as well, there is an utility that can patch your modded ROM file in UEFI


----------



## Bride

mpiulg83 said:


> Hello Everyone. I have read many posts here and I did not find anything related to what may be happening to me.
> 
> I have a RX480 (standard AMD) which I have flashed with your RX580 successfully a couple of time. I have done this mainly because my RX480 crashes and I hoped the flash to 580 would help due to higher TDP.
> Unfortunately it did not, so I put back the RX 480 one.
> The card crashes specifically right after the first boot of the computer, then it works fine when I restart. With games like Warzone, it crashes without any specific pattern. I could play for hours with no issues, or it could crash (all frozen) or it could reduce the FPS drastically.
> 
> I managed to get it working properly by undervolting it a little but and reducing the max clock (state 7). However, it could still crash right after logging in Windows just in the first machine boot (after being off for several hours, like overnight). This will also reset Wattman and I need to reload the profile manually.
> 
> Is anyone of you having the same experience?
> Is there a way I can disable Zero Fan, add +50% power, set fan speeds to custo value, undervolt and possibly underclock, so I will keep the card stable and with default setting instead of using Wattman?
> 
> Thanks for reading this post


you can, give a look here








Polaris Bios Editing ( RX5xx / RX4xx )


Polaris Bios Editing RX590/RX580/570/560/RX480/470/460 Last update: 12/03/2021 New Drivers Allow modded Bios on RX580/590, RX480 needs "Atikmdag - Patcher" to fix the Code 43 error/Drivers not loading Atikmdag-Patcher - Bios Enabler - Code 43 Fix RX480 > RX580 Conversion PBE - Polaris Bios...




www.overclock.net


----------



## mpiulg83

Bride said:


> you can, give a look here
> 
> 
> 
> 
> 
> 
> 
> 
> Polaris Bios Editing ( RX5xx / RX4xx )
> 
> 
> Polaris Bios Editing RX590/RX580/570/560/RX480/470/460 Last update: 12/03/2021 New Drivers Allow modded Bios on RX580/590, RX480 needs "Atikmdag - Patcher" to fix the Code 43 error/Drivers not loading Atikmdag-Patcher - Bios Enabler - Code 43 Fix RX480 > RX580 Conversion PBE - Polaris Bios...
> 
> 
> 
> 
> www.overclock.net


Great! Thanks. I have worked on it and it seems to be ok now!


----------



## mpiulg83

mpiulg83 said:


> Great! Thanks. I have worked on it and it seems to be ok now!


I have tried to set Fuzzy Fans to 0 on Polaris bios editor but the driver crashes unfortunately.

I need to keep the temp down but the fan won't spin when I want because of fuzzy fans.

Is the driver supposed to crash?


----------



## Bride

mpiulg83 said:


> I have tried to set Fuzzy Fans to 0 on Polaris bios editor but the driver crashes unfortunately.
> 
> I need to keep the temp down but the fan won't spin when I want because of fuzzy fans.
> 
> Is the driver supposed to crash?


try to keep it on "1" and set PWM at 0


----------



## mpiulg83

Bride said:


> try to keep it on "1" and set PWM at 0


Thanks for your reply. Not sure of which PWM value though.

are you referring to Min, Med or High or Max PWM values?


----------



## Bride

mpiulg83 said:


> Thanks for your reply. Not sure of which PWM value though.
> 
> are you referring to Min, Med or High or Max PWM values?
> 
> View attachment 2489628


try:
temp histeresis: 2
min t 20
med 60
max 100
target t 100
legacy keep it on 1
min pwm 50
med 50
high 50
max 50
sensitivity keep it
acoustic kepp it


----------



## mpiulg83

Bride said:


> try:
> temp histeresis: 2
> min t 20
> med 60
> max 100
> target t 100
> legacy keep it on 1
> min pwm 50
> med 50
> high 50
> max 50
> sensitivity keep it
> acoustic kepp it


Thanks Bride, I have tested it but no effect.

The fans really start spinning faster when I reach 80-85C for some reason.

I need the computer to start with the fans at 30-35%, then spin faster after 65-70C. I could achieve this with Radeon Software, but I need to give this computer to my daughter who will not pay attention to this, so I needed this written in the BIOS. The fan is not noisy at 30-35% anyways.
Disabling Fuzzy Fans should help, but the driver crashes. I can actually "hear" my settings applying while Windows is starting, but then everything stops as soon as I get into the Welcome screen.

I also have another issue, which is more and more common. The card freezes at idle or right after the first/second restart of the computer. For example in the morning, or after hours not using the computer. It absolutely works when on load, but it seems to have issues on idle, until it reaches a temp of 30-33C. It seems it suffers cooler temps when on idle?

Anyone having the same experience? 

I am on the latest driver 21.4.1.

Thanks!


----------



## Bride

mpiulg83 said:


> Thanks Bride, I have tested it but no effect.
> 
> ....
> 
> I am on the latest driver 21.4.1.
> 
> Thanks!


i forgot to let you decrease the maximum fan rpm (max fan speed)... try a value 1800 rpm and check temperatures.


----------



## mpiulg83

Bride said:


> i forgot to let you decrease the maximum fan rpm (max fan speed)... try a value 1800 rpm and check temperatures.


Hello, ok perfect, I will try that and will be back to you. I am uploading the BIOS with atiflash every time I make changes with polaris bios editor. All the other settings take effect (mV settings, memory timings etc), not the fan management.

by the way, I just woke up and turned on my computer after the night (8 full hours being off) and the card crashed again. I restarted the computer and meanwhile the card went from 24C to 32C, and it is now stable.


----------



## mpiulg83

Hello, just did it and GPU-Z still shows 713RPM. I need something around 1500RPM, but that just does not happen. It start spinning faster when the CPU gets hotter, around 80C.

This is my bios setting (you will notice a RX580 with RX480 clocks. This is because it is a RX480 but I needed to be able to change the Powertune settings as well as timing and GPU voltages without having issues with the BIOS signature. I noticed that RX580's BIOS does not require signature or work done on the driver).
You can see I have applied the settings you suggested me, apart from min. temp 30C instead 20C. I can overclock the card, but my priority is having something stable which does not require maintenance as I am giving this PC to my daughter. I










And this is my GPU-Z at the moment:









Once that is clarified, I would like to find out why it crashes in the morning one/two times before being absolutely stable.

Kind regards


----------



## Bride

mpiulg83 said:


> Hello, just did it and GPU-Z still shows 713RPM. I need something around 1500RPM, but that just does not happen. It start spinning faster when the CPU gets hotter, around 80C.
> 
> ......
> 
> Once that is clarified, I would like to find out why it crashes in the morning one/two times before being absolutely stable.
> 
> Kind regards


try to use this Polaris Editor and AMD Winflash (rename PDF to ZIP). WinFlash takes time. So wait few minutes until you'll receive the reboot message


----------



## mpiulg83

Bride said:


> try to use this Polaris Editor and AMD Winflash (rename PDF to ZIP). WinFlash takes time. So wait few minutes until you'll receive the reboot message


Hello

Thanks for your suggestion. I have tried that and with both the default bios and the one modded myself I get "Unsupported ROM" and strange values, like these:



















In anycase, I decided to go back to the default bios (unmodded) and I flashed it.
I accepted the idea or playing at 75-85C at this point, I will probably apply a new thermal paste.

My issue is another though. The computer constantly crashes at the first and sometimes at the second boot and I don't know why. It seems that the card is not reliable below 30C... Did anyone have the same experience, anything I can do? Maybe overvolting / overclocking the states 1- 2 - 3 could be helpful?

Thanks a lot guys


----------



## mpiulg83

Hello Guys

Just so you know, I have fixed everything by just going back to the Adrenaline drivers in the Powercolor website, which are Adrenaline v 19.8.1.
The drivers are what has started creating issues on my RX 480 (Powercolor Reference), I am now ok and the card does not crash anymore.

Thanks for your help!


----------



## carr

Hi guys!

Pretty new around.. Can i have a little late help? 
My win10 vrmtool shows this. 
can it be solved?
It have a XFX RX 480 8gb XXX. 
Thank you


----------



## Bride

carr said:


> Hi guys!
> 
> Pretty new around.. Can i have a little late help?
> My win10 vrmtool shows this.
> can it be solved?
> It have a XFX RX 480 8gb XXX.
> Thank you
> View attachment 2518023


try to use this editor attached, rename it .exe


----------



## A_Man_Eating_Duck

I know this is an old thread but i just wanted to say a big thank you to @hellm for creating these bios mods.

I have flashed my Sapphire RX480 Nitro+ 8G with the IR controller version (nitro+480-580.rom) from the first post and my GPU idle temps are now lower than my CPU idle temps. On the original firmware temps would start at 42C and would always creep up and up triggering the fan in an endless cycle of heating and cooling, now the fan never spins at idle. The GPU-Z power draw readings are showing the correct values compared to the other RX480 -> RX580 bioses i've tried, i know it's a driver bug on other bioses but it's nice to see the correct readings.










The only issue I had with the bios was that the power limits seem to be too low for my card which caused some occasional glitching and then eventually my monitor going in to standby after 20-30mins of gaming. Increasing the power limits to match Vento's BCB v0.05.3 base bios (TDP=300W, TDC=200A, Max Power Limit=300W) fixed the occasional glitching and the monitor standby issue. Zero crashes when testing with Superposition set to 8k Optimized which is the highest power draw readings i've seen in GPU-Z outside using furmark.

Thanks again for your hard work.


----------



## chris89

Does anyone know why there is a trigger at 50°C not found in the BIOS that I can find at least when running 00 on zero fan mode disabled versus 01? I need to tweak the temperature trigger point of when the fan ramps up initially.


----------



## mirzet1976

chris89 said:


> Does anyone know why there is a trigger at 50°C not found in the BIOS that I can find at least when running 00 on zero fan mode disabled versus 01? I need to tweak the temperature trigger point of when the fan ramps up initially.
> View attachment 2537580


You can't find 50C because I think the trigger is 40C and why you don't use a polaris bios editor


----------



## chris89

Well after a long time of editing & testing I found the perfect fan profile. Edit the max rpm to you card & test if u wish.
Ideal BIOS Fan Profile That Actually Works Good AMD Polaris? | Overclock.net


----------



## hellm

Sorry, only thing i can say is that RBE also supports Polaris. @mynm knows a lot more than i do about this, he did all the Polaris stuff and for me it feels like decades behind.


----------



## chris89

@hellm True that. Mynm is such a good helper, he knows everything about hex editing video card bios.

He just now helped me setting the actual VDDCI that actually worked to 1.000v.


----------



## mynm

chris89 said:


> @hellm True that. Mynm is such a good helper, he knows everything about hex editing video card bios.
> 
> He just now helped me setting the actual VDDCI that actually worked to 1.000v.


1V is too high for the VDDCI. The higher stock value I have seen for it at a bios is 900mV. Do you see the VDDCI at Hwinfo?, could you pass me a screenshot?.


----------



## chris89

@mynm @hellm Thank you so much!

Far Cry 5 is prone to getting memory errors. No matter what I do.

I'm still getting memory errors even after setting 1.000v VDDCI. Maybe I'll just stick with stock memory clocks...

Stock VDDCI for my cards sees 0.875-0.925v (it varies from time to time)


----------



## mynm

@chris89 if the stock VDDCI goes up to 0.875v, like you said to me at the PM, and you have changed it like I had said to you, it have to be VDDCI. And not one of the VRM phases like at the 380. I am not sure if increasing VDDCI you could see less errors, but you could have gpu driver crashes o black screens if is to low. I was thinking it could be at 800 mV and that this could be the problem. But at 875mV it seems is not, as my 590 have 850mV for 2000 MHz and almost every gpu with 2000 Mhz and even 2100 have 850mV for the VDDCI. The problem here could be the MVDDC that could be at 1.350 V for the gpus with the memory at 1750MHz and 1.5V for the gpus with 2000 or 2100Mhz. But MVDDC can't be changed at your bios, so you only can lower the Mhz to see less erros.

*Edited: *I have enabled the black background version of the web and with it I did not see that the letter was in bold, sorry 😅


----------



## mynm

A_Man_Eating_Duck said:


> I know this is an old thread but i just wanted to say a big thank you to @hellm for creating these bios mods.
> 
> I have flashed my Sapphire RX480 Nitro+ 8G with the IR controller version (nitro+480-580.rom) from the first post and my GPU idle temps are now lower than my CPU idle temps. On the original firmware temps would start at 42C and would always creep up and up triggering the fan in an endless cycle of heating and cooling, now the fan never spins at idle. The GPU-Z power draw readings are showing the correct values compared to the other RX480 -> RX580 bioses i've tried, i know it's a driver bug on other bioses but it's nice to see the correct readings.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> The only issue I had with the bios was that the power limits seem to be too low for my card which caused some occasional glitching and then eventually my monitor going in to standby after 20-30mins of gaming. Increasing the power limits to match Vento's BCB v0.05.3 base bios (TDP=300W, TDC=200A, Max Power Limit=300W) fixed the occasional glitching and the monitor standby issue. Zero crashes when testing with Superposition set to 8k Optimized which is the highest power draw readings i've seen in GPU-Z outside using furmark.
> 
> Thanks again for your hard work.


Hi, one thing I see that could be causing the problem is that your gpu could have a low ASIC quality. So as the 580 bios will have higher closks than the 480 and the VDDC have a 25mV thermal margin, with a lower TDP you will see lower temps and a lower VDDC, that can cause the instability. But increasing the TDP, the temp will be higher aswell as the VDDC and you don't see the problem.

*Edite:* or maybe is the otherwise , sorry. You have a high ASIC quality, but as the 580 bios VDDC is not tuned for the 480 ASIC quality, you get a low voltage for the increased core clocks.


----------



## A_Man_Eating_Duck

Thanks for the reply @mynm, yup the ASIC quality on my card is only 69.5%. Their isn't any change to the clocks on my RX480 compared to the RX580 BIOS so i found it strange for it to be power starved. 

So in your opinion should i be finding the sweet spot for the TDP, TDC and Max Power Limit instead of just jamming it up to 300w/200w/300w (based off Ventoo's RX480 to RX580 Bios for the same card)?


----------



## mynm

If you have the same clocks as at the 480 bios you are getting lower voltages for them at the 580 bios than at the 480 bios. So the easy and quicker way I see to solve this, is to put the asicprofiling table of your 480 at the 580 bios, so you will get the same voltages.


----------



## A_Man_Eating_Duck

Thanks @mynm.

I have a feeling the moving the ASIC profiling table from my backup RX480 bios over to this bios may be quite a bit above my skill level. Would you have any links to any good guides that explain the process?


----------



## chris89

@A_Man_Eating_Duck What types of gains are you looking to make? Mining or Gaming? My Gigabyte Gaming OC AMD RADEON RX 560 4GB is ASIC 72.2%. I set my RX 560 to 256W TDP & Max TDP 256W & 256A TDC & set my temperature limits to 84°C (As that is the ideal temperature to keep the card from becoming damaged over long periods of load & still give adequate performance over time holding max boost clock). I set the shutdown temp to 88°C which is ideal so not matter what my card will never become damaged if the fans fail under full load it will throttle out to 84°C then shutdown @ 88°C. Polaris wide I find for 3D, 1175mV vCore is max ideal because 1200mV will black screen if set in the BIOS which can also yield beyond 1400Mhz core clock if desired. Please attach your BIOS .rom as a .pdf.

@mynm there goes mynms genius again  haha

I hope we can actually find out where to search offset location for the memory voltage according to Wattman. I can get stable 2000mhz memory on hynix from 1750mhz on 875mV from 850mV stock. By changing the Wattman memory voltage does not change the VDDCI but rather I notice the idle VDDC voltage goes up from 850mV to 875mV.

*PS - I see errors if Wattman is left default memory voltage 850mV, but if I set 875mV no errors at 2000Mhz. According to HWInfo there is no way of seeing the Wattman changed memory voltage except at idle, it changes from obviously 850mV to 875mV which gives the required stability & error free operation. If only we could find out how & where the hex offset location is in the BIOS.

By the way @mynm how do I find out where Wattman is changing the memory voltage in hex offset location in BIOS? So I can search a string like 0C 01 03 06 like for VDDC.

Thanks again*


----------



## A_Man_Eating_Duck

Hi @chris89, not looking for any gains per say but i would like to keep the max power consumption down to my RX480 levels. 

I'm currently using the Sapphire RX480 Nitro+ 8G bios (IR Controller only) from the first post. Which i needed to increase the TDP=300W, TDC=200A, Max Power Limit=300W for it to be stable in games like dying light.


http://extreme.pcgameshardware.de/attachment.php?attachmentid=1002730&d=1531494276



I've attached the back up of the performance bios of my Sapphire RX480 Nitro+ 8G.

I had a look at moving my ASIC profiling table over but started losing my nerve when i was using ATOMBIOSReader to locate the ASIC block on the RX480 backup bios and then HxD to copy that block to Sapphire RX480 Nitro+ 8G bios (IR Controller only). Just didn't have the guts to flash the card with the new bios even though red bios editor and polaris bios didn't flag any issues.


----------



## chris89

@A_Man_Eating_Duck Best to stick with Stock BIOS. What card do you have?

Does anyone think that this card is capable of going from 4GB to 8GB?


----------



## mynm

A_Man_Eating_Duck said:


> Thanks @mynm.
> 
> I have a feeling the moving the ASIC profiling table from my backup RX480 bios over to this bios may be quite a bit above my skill level. Would you have any links to any good guides that explain the process?


You can use this tool maded by Vento041 




chris89 said:


> @mynm there goes mynms genius again  haha
> 
> I hope we can actually find out where to search offset location for the memory voltage according to Wattman. I can get stable 2000mhz memory on hynix from 1750mhz on 875mV from 850mV stock. By changing the Wattman memory voltage does not change the VDDCI but rather I notice the idle VDDC voltage goes up from 850mV to 875mV.
> 
> *PS - I see errors if Wattman is left default memory voltage 850mV, but if I set 875mV no errors at 2000Mhz. According to HWInfo there is no way of seeing the Wattman changed memory voltage except at idle, it changes from obviously 850mV to 875mV which gives the required stability & error free operation. If only we could find out how & where the hex offset location is in the BIOS.
> 
> By the way @mynm how do I find out where Wattman is changing the memory voltage in hex offset location in BIOS? So I can search a string like 0C 01 03 06 like for VDDC.
> 
> Thanks again*


I have enabled the black background version of the web and with it I did not see that the letter was in bold I one of my post to you, sorry 😅.

I had explained where the Wattman memory voltage can be changed at the bios and what is it doing, and where you can change the VDDCI:




> About the vddci, the memory voltage at the amd panel is not the vddci, it is only the minimun vddc when the mamory is at the highest dpm. The vddci can be changed in differnt ways depending on the gpu. Is long to explain. Pass me the bios and I will try to change it. Maybe it have 800mv for 1750 mhz and for 2000Mhz you will need 850mv.





> The limits for the vddci are at the asic init table, if you want to increase the vddci you have to adjust the gray and red values.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> But I thing that maybe is not worth to change the vddci, if you see menory errors the problem will be your modded timings.
> 
> If you want to change the min wattman memory voltage, you have to change the green 01 to one of red numbers I have put, that are the voltages highlighted in red. The gray highlighted values is the Vddci.


If you get 850mV for the VDDC for the DPM 7 core clock and you set 875 mV for the wattman memory voltage for the memory at 2000 Mhz, you will get 875 mV for VDDC at the DPM 7 core clock when the memory is at 2000 Mhz. If you want to increate the DPM 7 core clock voltage you can increate the core Mhz until you see it at 875mV. I don't know what is your maximun limit for the VDDC at your bios, maybe you will have to increase it like is explained at the first post of this thread. I think I can't explain this better, sorry if is not understable.


----------



## A_Man_Eating_Duck

@chris89, The card i have is a Sapphire RX480 Nitro+ 8G. I would prefer to keep to the Sapphire RX480 Nitro+ 8G bios (IR Controller only) modded bios just for the much lower idle temp (10 - 15 degrees lower) that it gives the card. Maybe i just have to live with the higher power consumption when gaming.

@mynm, I just tried the ATOMTableResize by Vento041, it reads my original Sapphire RX480 Nitro+ 8G performance bios that i backed up with GPU-Z. I can export the ASIC_ProfilingInfo/ASIC_VDDCI_Info table but when i try and open the Sapphire RX480 Nitro+ 8G (IR Controller only) bios from the first post it just crashes.



Code:


D:\New folder (35)\ATOMTableResize_0.03b4>java -jar ATOMTableResize_0.03b4.jar
Exception in thread "AWT-EventQueue-0" java.lang.AssertionError: Impossible [from, to) offsets.
        at loader.Loader.prod_assert(Unknown Source)
        at bios.Range.<init>(Unknown Source)
        at bios.Section.<init>(Unknown Source)
        at bios.Data.<init>(Unknown Source)
        at bios.BiosUtils.doBiosImageMap(Unknown Source)
        at bios.BiosHandler.<init>(Unknown Source)
        at ui.MainView.<init>(Unknown Source)
        at ui.UiUtils.lambda$runMainUI$0(Unknown Source)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$500(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)


----------



## mynm

Yes, is not working, I don't know why. I will see if the bios is ok but it will take me some time, but if it works for your gpu it will not have any problem and it could be a problem in the tool . Pass me your bios and I will change it, as I don't know if there is a guide of how to do it with other tool to get the possitions of the tables and and hex editor to change it. I remember one gupsterg guide, but I think is erased cause of changes in the forum. Making a guide would also take a long time for me, but I will try to do it if I don't see one.

*Edited: *I see now you have attached your bios at a previous post, sorry.
*
Edited: *I have attached the mod to the 480 to 580 bios changing its asic profile table to the one at your 480 bios. I will try to see if the 480 to 580 bios is ok, it should be ok but I will see it, but it will take me some time as I said.


----------



## A_Man_Eating_Duck

Thanks mynm,

I gave your bios a try and tested with superposition at 8k. right from the start the card was slightly throttling it's GPU clocks between 1299 - 1340Mhz. I rolled back to the RX480-RX580 bios with the TDP, TDC and max power limit raised and it's rock solid at 1340Mhz.

When i did a rough averaging of the power usage between your bios and RX480-RX580 bios there was only about 15-25w difference so maybe I'm making a mountain out of a mole hill in regard to the excess power usage.

thanks again for moving the ASIC profiling tables across so i can test. I think i'll just truck along with my current tweaked bios instead of delving any deeper.


----------



## chris89

Happy Early Merry Christmas Everyone! Luv u guy's!

@A_Man_Eating_Duck Please attach a HWinfo screenshot showing the symptoms your experiencing & point them out to me. *I can try to fix your BIOS*. Please attach a fresh original untouched version of your BIOS that came with your card originally here renamed to .PDF ill rename it to .ROM

@mynm Thank you buddy. I'll post back when I get my RX 480 4GB reference on the 28th or before to see if we can get it to go to 8GB. It has to be Samsung Module's. I'm crossing my fingers it's not Hynix.


----------



## chris89

Hi may someone help me convert or find a full replacement 480 4gb hynix reference pcb to 580 4gb hynix?

Rename .pdf to .rom

Thanks

@mynm my card can do 1920x1080 in safe mode or in windows normal without the display driver installed. As soon as I install the display driver does it go "No Signal" on my TV (85" UHD Sony) over HDMI 2.0 high quality braided cable. So I have to go into windows in "Low Resolution Mode" at 1024x768 to get it to work. Do you know why I can't get 4K as usual and what not with the display driver installed? The card starting going hay wire after a couple bio flashes. I don't know why?


----------



## chris89

@mynm Do you know a way to increase the VCE SoC frequency & voltage to improve encoding performance with Handbrake? I'm using a RX 480 4GB Hynix.

Thanks


----------



## DAM20

Is there a way to use secure boot on a modded 480/580? I already enabled UEFI, but Idk how to fix the signature, I know atikmdag-patcher should work, but I was looking for a hex bios mod of some sort


----------



## chris89

@DAM20 Check out 
*"magic" UEFI:*
(done by *lordkag*, tested by *gupsterg*, ..copied by me)
For these GOP UEFI files the signature check was overridden. But they also lost their signature, so no secure boot is possible. 
[BIOS Mod] RX480 -> RX580 Conversions + How-to RX470/RX480 -> RX570/RX580 | Overclock.net


----------



## DAM20

chris89 said:


> @DAM20 Check out
> *"magic" UEFI:*
> (done by *lordkag*, tested by *gupsterg*, ..copied by me)
> For these GOP UEFI files the signature check was overridden. But they also lost their signature, so no secure boot is possible.
> [BIOS Mod] RX480 -> RX580 Conversions + How-to RX470/RX480 -> RX570/RX580 | Overclock.net


So is a choice between having a UEFI compatible card or a working secure boot, well rip


----------



## chris89

Can someone explain fan sensitivity to me? My fan takes longer than I would prefer to ramp up & longer than I prefer to slow down. Any way to make it instantly go to full speed upon load & instantly go to idle upon leaving load?


----------



## chris89

@DAM20 I'm using the "magic" UEFI GOP mod on my BIOS & do not need CSM mode enabled. It works fine now.


----------



## DAM20

chris89 said:


> @DAM20 I'm using the "magic" UEFI GOP mod on my BIOS & do not need CSM mode enabled. It works fine now.


Yep, CSM off / only UEFI works, but the secure boot doesn't, so according to microsoft not 100% win11 compatible kek


----------



## chris89

Oh yeah I guess so, my secure boot is off. I forgot about that. Yeah I guess it's fine though right?


----------



## DAM20

chris89 said:


> Oh yeah I guess so, my secure boot is off. I forgot about that. Yeah I guess it's fine though right?


I think so, almost all the win11 requirements are bypassable, also, if AMD will enable SAM for Polaris, it should work.


----------



## kilogrm70

What would be a good bios to use for an RX 480 4GB reference card with Elpida Memory?


----------



## rootmoto

@mynm I seem to get clock throttling issues due to reaching a certain temperature point. Is there a way to adjust this value? I have adjusted temperature target but still experiencing clock throttling. This is the BIOS I am using: https://download.gigabyte.com/FileL...GD_F81.zip?v=de7f8f579aa641265b2472a425d9a010

EDIT: After monitoring using WattTool, it appears to be when VRM reaches past 78 degrees Celsius, clock throttling kicks in, is there a way to adjust VRM clock throttle temps in the BIOS?

I am using the RX 580 Aorus BIOS.


----------



## PrivateDouchebag

Hi, i got a bit lost in this thread. I am looking for a bios for an RX 480 8GB Reference model. It should be for gaming, not mining, slightly undervolted so its power efficient and keep cool, and possible a 580 mod or other benefits like small increase in timings .
Is there some place to download a prebuild bios or do i have to start from scratch and create it from the original bios.
Any help welcome. Thanks!


----------



## s3boun3t

Hi, I'm posting here because I've had a problem for several weeks.

I have a modded bios for my saphire rx580 nitro+.
the bios works fine, better than the original one

but when I start up I can't see the bootscreen
I know it's because of secureboot, I saw on the front page that it was because of the gop, what to do etc

but I don't understand.

Can you help me please?

thx


----------

