Overclock.net banner

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

372K views 1K replies 112 participants last post by  chris89 
#1 · (Edited)
RX480 -> RX580 (IR Controller only) -> Post#1
RX480 -> RX580 Original Conversions -> Post#2
Custom Mod + RX470/RX480 -> RX570/RX580 How-to -> Post#3

It is not necessary to patch the driver since the RX 580 is not checked for signed BIOS.
!!!!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 IRxxxx controller.!!!!

Flash How-to
download ATIFlash
  • 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 settings corrected
  • 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 at least RX580 stock
  • PBE editable; UEFI will still work afterwards
RX480 Reference
RX480 Reference XTR Edition (1225mV, 200W, 1366MHz)

Asus RX480 Strix 8G

MSI RX480 Gaming X 8G
MSI RX480 Gaming X 4G Hynix
MSI RX480 Gaming X 4G Samsung

Sapphire RX480 Nitro+ 8G
Sapphire RX480 Nitro+ 4G Hynix
Sapphire RX480 Nitro+ 4G Elpida
Sapphire RX480 Nitro+ 4G Samsung

XFX RX480 GTR BE/XXX 8G

HIS RX480 IceQ X² 8G

Gigabyte RX480 G1 8G
Gigabyte RX480 G1 4G Hynix

PowerColor RX480 Red Devil 8G

PowerColor RX480 Red Dragon 8G
PowerColor RX480 Red Dragon 4G Samsung

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, and since 17.4.1 that also applies to the pointers (6528x) of the Vcore. How to change voltages, see Vcore offset, post#3 and IMC.
Vcore Offset
Search for the hex values "8D 00 00 00 FF" with a hex editor and change the red byte:
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
IMC (Integrated Memory Controller)
Search for the hex values "00 00 00 0C B6 03 00 00" with a hex editor and change the red byte:
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
Memory Timings
Polaris Bios Editing ( RX5xx / RX4xx )
R_Timings - Encode/Decode RX/R9 Memory Straps

copy to 1750MHz and 2000MHz strap

!!! The space in the middle is due to some error in this forum here and needs to be removed !!!

Samsung 4/8G
UberMix v3.1
777000000000000022CC1C00AD615C41C0590E152ECC8608006007000B031420FA8900A00300000010122F3FBA354019
UberMix v2.3 -Less Extreme-
777000000000000022CC1C00AD615B41C0570E152DCB7409006007000B031420FA8900A00300000010123A46DB354019

Hynix H5GC4H24AJ
999000000000000022559D0010DE5B4480551312B74C450A00400600750414206A8900A00200312010112D34A42A3816

Elpida EDW4032BAB
777000000000000022AA1C00315A5B36A0550F15B68C1506004082007C041420CA8980A9020004C01712262B612B3715

Micron MT51J256M3
777000000000000022AA1C0073626C41B0551016BA0D260B006AE60004061420EA8940AA030000001914292EB22E3B16

..or copy 1750MHz strap to 2000MHz strap.
known issues
  • The extra output ports besides the 3x DP and 1x HDMI may not work properly.
  • Power readings are 10-20% higher; this is a driver issue, power draw is not measured directly; real power draw will be the same as before
  • Wattman shows only 1150mV, but auto setting is 1200mV, which is also the maximum. This is not related to my mods.
special thx to @gupsterg, @Vento041, @mynm and lordkag from win-raid forum.
 
See less See more
3
#2 · (Edited)
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
 
#744 ·
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 :D
 
#3 · (Edited)
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
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
[..]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 20 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 => A2 A0 45
Powercolor: 0x148C => *4 = 0x5230 => +2 = 0x5232 => 22 23 45
AMD/ATI: 0x1002 => *4 = 0x4008 => +2 = 0x400A => A2 00 44
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
 
#4 ·
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.
 
#5 ·
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.
smile.gif
 
#6 ·
Great, thank you!
smile.gif


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.
 
#7 ·
Yes, yes, and yes!
smile.gif

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..
 
#8 ·
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?
 
#9 ·
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.
 
#679 · (Edited)
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:

"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
 
#10 ·
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.
 
#11 ·
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:
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.
 
#12 ·
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!
 
#13 ·
Will this work on a RX460 as well? Got a XFX Double Disappation RX460. Be fun to turn it into a 560 if possible?
 
#14 ·
Quote:
Originally Posted by PPBottle View Post

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
biggrin.gif


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


Quote:
Originally Posted by davidm71 View Post

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..
 
#15 ·
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?
 
#16 ·
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.
 
#19 ·
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.
 
#21 ·
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.
 
#23 ·
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?
 
#26 ·
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.
 
Top