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.!!!!
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.
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.
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.
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/T...-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-a...l#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.
F0 7D C6 0F
F0 7D E6 0F
F0 7D E6 07
F0 7D E6 01 (doesn't work for Polaris10/20, GPU Stepping recognized)
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)
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)
8A 00 F1 FF FF FF xx xx
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.
Originally Posted by mynm
[..]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.[..]
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.
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
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.
(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! AMDGOP184.108.40.206.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) AMDGOP220.127.116.11.50 AMDGOP18.104.22.168.50 AMDGOP22.214.171.124.50 AMDGOP126.96.36.199.50 AMDGOP188.8.131.52.50
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.
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.
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?
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.
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..
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?
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.
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.