Modifying the VBIOS
Just as with the previous generation of RX cards, you can edit the BIOS of the RX580 graphic card to adjust the memory straps to get better performance when mining. One thing to note is that since it is still early in the release cycle, some of the standard tools you may be used to are not yet compatible with the RX5xx series. The first thing I noticed was that Wattool-0.92 utility incorrectly reported the memory timing as 1000 MHz, but the latest GPU-z 1.20.0 correctly reported it as 2000 MHz. So instead of using Wattool, I decided to just use the built-in core and memory timing commands which are accessible within in the Claymore miner configuration.
The memory settings are also a bit different than the previous generation, so that you will need to find a compatible BIOS editor. After searching around, I found a version of the Polaris BIOS editor that works with the RX5xx series, which can be found here: https://github.com/jaschaknack/PolarisBIOSEditor…
You will also need a copy of the latest version (2.74) of the ATIFlash tool which can be found here: https://www.techpowerup.com/download/…
While I did not need to patch my drivers after modifying the VBIOS I have heard reports that some RX570’s do require the use of the AMD/ATI Pixel Clock Patcher. I am including the link to the relevant forum thread here for good measure. You can find the download link and more information on how to apply the Pixel Clock patch here: https://www.monitortests.com/forum…
The first thing you will need to do is fire up the AtiFlash 2.74 tool to save your current VBIOS. After extracting the downloaded files, open the AtiFlash directory and right click on the ATIWinflash.exe file, and select Run as administrator. This option will allow you to modify the VBIOS files. If you try running the tool without the administrator privileges set you will get an error.
Once the AtiWinFlash tool has opened (it may take several seconds as it scans for all of your GPUs) you should see a screen similar to the one below.
One thing to note with the AtiWinFlash GUI is that there is a limit of how many active cards can be displayed at once. You will be able to only see 3 or 4 cards, depending on your system. If you are BIOS flashing a rig with 4 or more cards, you may need to flash them in batches. On this particular rig that I have on the test bench, it currently has 5 GPUs, so I will do the first three, then shutdown and unplug two of the cards that I flashed, and then reboot and flash the remaining two.
There is also a command line utility (ATIFlash.exe) that works as well and you can flash all 5, 6, or 7 cards (depending on your rig setup) in one go, but it sometimes complains about compatibility when used under Windows 10. The GUI seems to work regardless, so it may be worth the shortcomings to use it instead.
To save your BIOS simply select the radio box next to the card you want to save the BIOS off of and then click on the Save button. A Window’s save as dialog will appear, select a folder and a file name that you will remember. I usually create a separate folder for each make, model, and configuration of every card I have, and in this case I made a folder called MSI RX580 Armor 8G Samsung to denote the various differences there can be among the cards I own. I also name the BIOS rom descriptively as seen above. You will want to name it to somehow designate it as the original or default BIOS in case you ever need to restore it.
If you look closely at the image above you will see my descriptive file name as well as just a plain bios.rom file. This is because I usually save off at least two version of the original for safety. I create one bios.rom file that I never touch and will always know it is a clean copy of the original. I then create a second, more descriptively named version, that I will work off of when I make the modifications.
This strategy can help prevent any accident overwrites when modifying the bios files later on. If you have a lot of rigs like I do, it may be a good idea to also create a master folder on a separate USB stick that contains all your original BIOS. In the worse case event, the TechPowerUp site also maintains a VBIOS rom database, but it always best to have your own as there can be slight variations even among the same make and model.
Once the rom file has been saved, you can now open up the Polaris BIOS Editor folder and run the PolarisBiosEditor.exe to edit the rom file you just saved. Again, use your copy with the descriptive named file as explained above, leaving the plain bios.rom image untouched.
One of the things that is different with the RX5xx series cards is that there are two different sets of memory timings. They are prefixed with either a 1: or a 2: before the speed. As can see in the image above, the lower 1:240, 1:400, 1:600, etc. are listed. If you scroll down a bit you will see the same pattern repeated with a 2:250, 2:400 and so on. I believe this has to do with the type of memory installed on your GPU. For Samsung, the 1:xxx values seem to be the ones to modify, and for Micron and possibly others, the 2:xxx settings seem to apply.
For this example I copied the 1:1750 value to the 1:2000 position, so that both the 1:1750 and 1:2000 now have the same values. Samsung seems to run tighter memory timings right out of the factory, so you do not have to copy from as low of memory straps as other brands to get the same mining performance. Indeed, if you copy the straps from too low of a position you may get worse results. For Micron and other brands, you may need to copy from the 1650 or lower position, but again since this is Samsung memory we are just going to copy the 1:1750 value into the 1:2000 value.
So once the timings have been changed, I save off a copy of the modified rom as MSI_RX580_8G_1-1750_mod.rom noticing the descriptive nature of the filename. In this case I try to identify the card and timing strap I copied from along with mod to indicate it is a modified version. You can come up with your own naming system, but I would suggest that the more information that is included the easier it will be to identify later on down the road, especially if you have multiple rigs with various makes and models of GPUs.
Once the modified rom file is saved, we can then fire up the AtiWinFlash utility again, open the modified rom you just saved, select a card to write the modified BIOS image to, and press the Program button. This process can be somewhat unnerving the first time you do it, as you computer will seemingly freeze up and it can sometimes take a minute or longer for the process to return.
If this happens, you may be tempted to think your system had froze up, but have patience before attempting to restart the rig. I would say most times the process completes in 45-90 seconds, but I would wait at least 5 minutes before assuming the worst and force a restart.
Once the program has completed the flashing of the rom image to the card, a message stating success will be displayed. After confirming this dialog, you will be presented with the option whether to reboot now or later. If this is the last card you are flashing you can go ahead and reboot now, otherwise click on No and repeat the above process this time selecting a different card to flash.
Once all of the cards have been flashed you will need to reboot the machine for the changes to take effect. If you have more than 4 cards, you may need to do them in two batches as I mentioned earlier, thus you maybe need to flash 3 and 3 or some such combination to match the number of cards in your rig.