Overclock.net - An Overclocking Community - View Single Post - Fiji Bios Editing ( Fury / Fury X / Nano / Radeon Pro Duo )

View Single Post
post #1 of (permalink) Old 02-24-2016, 03:16 AM - Thread Starter
Meddling user
gupsterg's Avatar
Join Date: Jan 2015
Location: Lurking over a keyboard
Posts: 7,160
Rep: 774 (Unique: 354)
*** Under Construction Last update: 21/02/17 ***

Updated 23/03/17:-

i) added AlKappaccino testing data of OC'ing

Note:- As of Fiji bios editor v1.2 all mods most users may require can be done. The manual mods are still in OP for those that wish to know how the editor was developed on mods I tested. They are also there so others may develop a mod and share it.

Note:- Any stock ROM even with a UEFI/GOP module within it, is technically non-UEFI once modified. There is a bios signature within Legacy ROM section, which is a hash of the hashes of protected tables within ROM. As the mods we do are within the protected tables and we can't update the signature in Legacy ROM to reflect the changes it will fail UEFI checks, thus you need CSM support enabled in motherboard bios to use a modded ROM. The only solution to allow custom UEFI ROM with CSM = Off, is to use a custom UEFI/GOP module in ROM. This solution was provided by Lordkag of Fernando's Win-RAID Forum. The update tool is located in appropriate heading below.

Make backup of original bios on video card, for each switch position.

Edit copies of your original bios, so you always have original unedited bios to use if things go bad.

Do not flash both bios positions as then at least you'll have option to boot from other if something goes wrong.

Do not have HWiNFO, GPU-Z, MSI AB, TriXX, etc running in the background when flashing ROM to card.

Warning: Using this guide to edit your bios will void your warranty (if card has one). This guide is provided assuming a user knows implications of what they are doing. I accept no responsibility for damage from using this information. All efforts are being made to double check information but there maybe errors.

AlKappaccino testing data of OC'ing (Click to show)
Originally Posted by AlKappaccino View Post


late to this party, but anyways. I started to oc my Fury X again, after I went back to stock when ReLive came live and now I want to share some OC results with you.

I use OPs custom BIOS and changed MVDDC back to stock 1.300V. My card at stock runs VID on DPM7 with 1.187V which I changed to 1.231V. I used the already set +25mV offset but decreased VID of DPM0-DPM6 accordingly to match stock values again. So DPM0-6 is stock and DPM7 is around 1.256V under usage.

Core Clock on 1140mhz at 1.256V runs stable so far, running multiple stress tests. OC in percent = +8%

HBM can run stock with -25mV but for 545mhz, 1.300V is necessary Going higher results in memory error. OC in percent = +8%

GPU gets around 48-50°C, VDDC Temp get as high as 65°C and MVDDC is around 49°C. Logged with HWiNFO64.
I use a pretty aggressive cooling curve though, running 1,900rpm most of the time, which is an acceptable noise level for me.

And before I forget, my HW is: Windows 10, AMD ReLive 17.3.1, Radeon Fury X, Xeon E3-1231v3, [email protected] of DDR3 ram

So I ran a few benches to see the performance difference between stock, core oc, HBM oc and both overclocked. I ran each test 3 times and used the average of those for the diagrams.

Valley Benchmark (Click to show)

So first of, Valley benchmark with Ultra Preset. Min and Max FPS is not that important. 0,1/1/99-percentile would be much better, but I wanted to keep it simple. Let's talk about avg. FPS then.
We can see, that HBM oc only already gives us a boost of around +12%. Core OC gives us a boost of +15%. OCing both, results in literally the same, even a bit less. Even though the card maintained their max clock speeds, some kind of throttling seems to take place.

3D Mark (Click to show)


Next up, 3D Mark. In Fire Strikes High Performance test, HBM oc gives +2%, core and both oced give around +8% performance boost. Again Core gives you more performance per % of oc, but oc on both tends to be even a tidbit worse than ocing only the core.

Heading over to 3D Marks Time Spy benchmark, we see a very interesting result. HBM oc now gives us -1.7% performance in overall score, on graphics it's withing margin of error. Core oc however increases our performance by around +5%. Again, OC on botch results the same.

Deus Ex: Mankind Divided (Click to show)

On Deus Ex: Mankind Divided (DX:MD) I used the built in benchmark on DX12, combined with a custom preset (Ultra with tweaks) I set up for my game. We can now see, that HBM oc does nothing and even the 8% core clock increase gives us only 4,8% FPS increase. I was curious whether the increased HBM clock really does nothing, so I also measured the frametimes using OCAT/PresentMon with those results:

Frame Times over 30sec in DX:MD (Click to show)

While definitely not the best frametimes, we see that HBM oc performs exactly as stock. Only core clock increase results in a better avg. result but oc on both give us the shortest spikes and overall best timings. Which is interesting, considering the reported FPS is the same.

Conclusion: While not the most comprehensive benchmark, I get a similar pattern throughout each test and I try to extend that when I got time. HBM oc does literally nothing at all, with the exception of Valley benchmark. Increasing the core clock results in minor performance increases, but you're very limited on how far you can push the card. A typical combination of both, seems to run the card into some kind of throttling (The clockspeeds stayed at max though). We can often see a slight decreased performance, even though it should be always slightly higher at minimum. But temps are okay, so are the used voltages. As of now, it seems that you gain nothing from HBM OC, but it may vary in different applications. I'll try to look further into this.

Oh and yeah, here are some AIDA64 screen I took. One is full stock (1050/500), the other full oc (1140/545):

AIDA64 (Click to show)

Fury X 3DMark 13 Mega bench (FS / FSE / FSU over 250+ runs) by gupsterg

Warning: Spoiler! (Click to show)
AtomBios is the ROM on card.

AtomBios info

Atom is basically a byte code scripting language used to write little scripts to handle basic card initialization tasks (asic init, setting engine/memory clocks, modesetting).

There are two sets of tables in ATOM: command tables (basically scripts that execute certain functionality) and data tables (structs that store board/system specific information (type and number of connectors/encoders used on the board, power states, ddc lines, panel info, etc.).

The command tables are versioned and there are specific structs defined for the inputs to the command tables. These are all defined in atombios.h and ObjectID.h. Command tables can also call other command tables and look up data in data tables.

Extract from, another useful page to view.

AtomDis (AtomBios parser) installation and usage in Ubuntu
Warning: Spoiler! (Click to show)
1. Used this guide to install VM of Ubuntu , I used Ubuntu 32bit version.

2. Click Files icon in launcher bar , you will now be in your user home directory. Right click a empty section and select Open Terminal
Screenshot for referencing (Click to show)

*** Commands in terminal window are case sensitive ***

3. Install git , type command sudo apt-get install git
Screenshot for referencing (Click to show)

4. Clone the AtomDis files , type command git clone git://people.freedesktop.org/~mhopf/AtomDis
Screenshot for referencing (Click to show)

5. Now compile the downloaded AtomDis files, type command make
Screenshot for referencing (Click to show)

6. To see supported commands for atomdis type command ./atomdis
Screenshot for referencing (Click to show)

7. You can make atomdis output data to txt by adding >filename.txt , for example gaining tables of a bios.

./atomdis yourbiosfilename l >bios_tables.txt

Another method I use is selecting and copying created tables list in terminal window and the pasting it into PasteBIN. I can then share this paste or view it in windows whilst Ubuntu running in VM, I also use googledrive as I quick method of transferring files between windows & Ubuntu VM.

AtomBiosReader for Windows by @kizwan
Warning: Spoiler! (Click to show)
Creates tables for a ROM like AtomDis in Linux, in the created tables lists you will find "Command Tables" and "Data Tables". Pretty much all edits we will be doing are"Data Tables".

Extract from created tables list for a ROM:-
000f:   a0da  Len 02b4  Rev 07:01  (PowerPlayInfo)

Each table gets a hexadecimal number in the list, in above example PowerPlay is 000f.

After that we see the offset location for PowerPlay in the ROM = a0da , if we pick "Search" then select "Goto" from menu bar in HxD (hex editor) and type that offset location the cursor will go there.

After that we see length in hexadecimal of the PowerPlay table in the ROM, 02B4 . If we pick "Edit" then "Select block" from menu bar in HxD and enter the offset location a0da and the length 02B4 the whole PowerPlay will be selected out of ROM.

ATOMBIOSReader.zip 74k .zip file

Warning: Spoiler! (Click to show)
Windows command line version (Click to show)
Run command prompt in administrator mode to flash; it can take longer than DOS version to finish flash on previous gen cards, so do wait. Below is screenie of completed flash message.

Link:- Video of me flashing ROM to my Fiji card

Saving ROM

1. Download ATiFlash zip, place all files in directory where you will run ATiFlash.

2. Run command prompt as administrator, navigate to where ATiFlash is on your system, mine is in C:\Users\XPS

3. To save ROM enter atiflash -s 0 romname.rom , once complete you can flip bios switch to save other position bios.

Note:- Check saved ROM is 256KB, also GPU-Z now does support backup of ROM for Fiji.

Flashing ROM

1. Download ATiFlash zip, place all files in directory where you will run ATiFlash.

2. Run command prompt as administrator, navigate to where ATiFlash is on your system, mine is in C:\Users\XPS

3. To flash enter atiflash -p 0 romname.rom , do wait for message on screen "Restart System To Complete VBIOS Update."

Forcing a flash of ROM with different SSID / DeviceID

1. Download ATiFlash zip, place all files in directory where you will run ATiFlash.

2. Run command prompt as administrator, navigate to where ATiFlash is on your system, mine is in C:\Users\XPS

3. To flash enter atiflash -p 0 romname.rom -f , do wait for message on screen "Restart System To Complete VBIOS Update."

Notes:- Do not have HWiNFO , GPU-Z, MSI AB, etc running in the background when flashing card. If your system is OC'd (ie CPU) make sure it is stable or I would advise flash at stock. If you have not fixed checksum you will see an error same as below image.

ATiFlash.zip 185k .zip file
Windows GUI version (Click to show)
Set shortcut properties so it runs as administrator.

After a ROM is flashed successfully you will see message shown below.

Be aware you may note the AtiWinFlash progress bar showing "Not Responding" momentarily when flashing a modded ROM, this is normal behavior, the flash will complete successfully.

AtiWinFlash.zip 1200k .zip file

Version of AtiWinFlash (Click to show)

Notes:- Do not have HWiNFO , GPU-Z, MSI AB, etc running in the background when flashing card. If your system is OC'd (ie CPU) make sure it is stable or I would advise flash at stock.

Having issues after a flash like clocks, etc not being correct?
Warning: Spoiler! (Click to show)
1st step reset drivers to default, so far I have not needed to reinstall drivers for a bios mod to take as default.

Next if you have profiles and settings saved in MSI AB / GPU Tweak / TriXX , etc you may need to either delete the settings files for those apps or uninstall them without keeping profiles, etc and then reinstall. I'd also make sure install folders for those apps are empty / deleted after uninstall prior to reinstalling. Looking at Asus graphics card support pages GPU Tweak II uninstaller does not remove everything so they have a special uninstaller on their site.

Another thing that has come to light is it's best to not set "Extend Official Overclocking Limits" in MSI AB prior to a flash of ROM, as clocks,etc maybe wrong after flash.

Fiji Bios Editor by @DDSZ
Warning: Spoiler! (Click to show)
*** More info to be added, currently I'd advise read the thread wink.gif ***

Fiji_BIOS_Editor_v1.2.zip 10k .zip file

Mirror: Fiji Bios Editor v1.2 on my GD
SHA-1 Checksum: 91BC541C20D8D4A430756DD234C34413E6D86DD4

How to edit GPU Core voltage
Warning: Spoiler! (Click to show)

The 3 methods of voltage modification that can be used by us.

i) The PowerPlay can be modified for VID for a DPM, DPM is a GPU state, this has a clock and voltage associated with it, manually set or "auto calculate".

ii) A GPU core voltage offset through the voltage control chip, this effects all DPM states, may they be manually set or "auto calculate".

iii) A combination of the 2 above methods.

Manually setting VID for a DPM

Right click image below and open in new tab to see large version.

Increasing VID for a DPM based on an OC in OS via SW

Example:- In image heading Manually setting VID for a DPM the example card has DPM 7 as 1212mV on stock ROM. So if it required +56mV in MSI AB/Trixx, etc to achieve a GPU clock OC of 1145MHz and we wish to set that OC in ROM you would edit:-

i) DPM 7 GPU clock from 1050 to 1145.
ii) DPM 7 VID from 1212mV to 1268mV (ie 1212mV+56mV=1268mV)

Note:- Setting more than 1300mV will make windows BSOD just before logon, so if your card has 1 ROM position be careful you don't set more than 1300mV for a DPM. The only way to gain more than 1300mV is to use a ROM which has a GPU core voltage offset. Only factory ROMs which have this so far is Sapphire Fury Nitro, for other cards use my ROM packs in heading further down OP.

SVI2 Compliant Voltages

The below image has SVI2 compliant voltages table, which can be used when manually setting VID per DPM in Fiji bios editor. Right click image below and open in new tab to see large version.

Editing GPU Core voltage offset

See heading My Fiji VDDC/MVDDC offset ROM packs and finding voltage offset in ROM until further update here.

Gaining VID per DPM information and i2cdump for voltage control chip (IR3567B)
Warning: Spoiler! (Click to show)
Registers dump via AiDA64 will produce VID per DPM, I used AIDA64 Extreme v5.60.3700.

Note: In menu > view > status bar must be enabled to see menu shown in video for registers dump.

When we have 2 or more GPU in a system then only 1 cards VID per DPM is shown neatly in registers dump. You'll find headings within dump:-

[ ATI GPU #[[B]GPU No[/B]] @ mem [[B]variable text[/B]] ]

Then below that is the registers for that card.

So let's say GPU 1 was shown with nice neat VID per DPM in registers dump, then head over to registers below heading for GPU 2. Then you'll note:-

[SCLK DPM0 / MinVddc = 0.90000 V]
[SCLK DPM0 / SclkFreq = 300 MHz]

and so on.

Here is video to ref, I do make a mistake at one point wink.gif .

Currently on my card AiDA64 is not giving i2cdump, so I added -i2cdump command switch to MSI Afterburner to get info of IR3567B voltage controller chip. In the install dir of MSI Afterburner you will find I2CDUMP.TXT with dumped info.

Example of how your shortcut property for "Target" box should be:-

"C:\Program Files (x86)\MSI Afterburner\MSIAfterburner.exe" -i2cdump

Note: the space between " -

To aid thread if members can attach the 2x created TXTs, I would appreciate it cheers.gif (please do test at stock).

Top window registers dump via AiDA64, near end is VID. Lower window i2cdump via MSI AB, bus 6 id 30 is where on my ref PCB Fury IR3567B responded.

How to edit GPU Frequency per DPM
Warning: Spoiler! (Click to show)
In Fiji Bios editor is PowerPlay tab, here you can set GPU frequency per DPM, DPM 0 = lowest state DPM7 = highest state.

Right click below image and open in new tab to see large version.

Note: Forgot to state in the above image if GPU clock is decreased and VID is set as "auto calculate" you will see decreased VID.

Archived manually editing GPU Frequency per DPM using hex editor (Click to show)
In PowerPlay is a section which sets GPU frequency per DPM, DPM 0 = lowest state DPM7 = highest state.

What you see in the notepad window:-

i) take hex values do endian conversion (the switching of hex values)

ii) convert HEX to DEC

iii) knock of the 00 to make value to MHz

To set a new value of GPU frequency for a DPM do the reverse of above, fix checksum and flash. Be aware that changing a frequency will mean ROM will recalculate a new EVV VID for that DPM(view logs below).

Note:- The maximum VID I've seen so far on my Fury Tri-X has been 1.250V for GPU clocks above 1000MHz.

How to edit cooling profile in ROM
Warning: Spoiler! (Click to show)
Right click below image and open in new tab to see bigger size.

Archive (Click to show)
There are two modes of fan control, standard aka look up table (LUT) and advanced aka fuzzy logic (FL).

Here is screenie of Overdrive section for FL (stock method) and LUT.

Editing Advanced fan mode (FL) (Click to show)
In PowerPlay near lower section is cooling profile (right click image and open in new tab to see at best res).

Note:- fix checksum before flashing ROM

LUT enable mode works but sticks to one PWM rather than the 3, so currently until I find a way for it to work only use FL mode or custom curves via MSI AB, etc. It maybe driver issue or something else.

Due to few question about the mod I've added image below hopefully explaining what this mod does.

The values I modded to improve cooling profile on Fury Tri-X (air cooled) also work the same way on Fury X (AIO).

Extra cooling profile information for advanced manual modders
Warning: Spoiler! (Click to show)

How to edit OverDrive Limits in PowerPlay
Warning: Spoiler! (Click to show)
Note: From Fiji bios editor v1.2 OverDrive limit can be modified using it, this section has been kept here to show how the manual mod is done, so users will learn more about ROM and share mods they develop.

Near the top of PowerPlay is OverDrive Limits.

Example Memory clock limit:-

50 C3 00 00 , switch the HEX values = 00 00 C3 50 , convert to DEC = 50000 , trim 00 to make MHz = 500

To set 525MHz, add 00 to the end of value 52500 , convert to HEX 00 00 CD 14 , switch HEX values = 14 CD 00 00 .

Overwrite original values in PowerPlay using hex editor and save ROM, open ROM in Fiji Bios editor and resave to fix checksum and flash.

If we up RAM frequency in PowerPlay (ie HBM clock) and don't increase OverDrive RAM Limit, HBM/RAM performance is not limited.

Note 1: When we raise RAM OverDrive Limit in PowerPlay higher than set HBM clock in PowerPlay you will not require "Extend Official Overclocking Limits" to be selected in MSI AB to be able to increase HBM clock. You will also see a slider in OverDrive page to be able to alter HBM clock.

Note 2:- If you change HBM clock in ROM higher than OverDrive Limit for RAM you will not be able to change GPU clocks via software (ie MSI AB, this was tested with default settings in driver/MSI AB). You will see a HBM slider in OverDrive page but it can not be moved.

Note 3: If we wish to mod ROM to be like "factory ROM" but have increased HBM clock in PowerPlay then match RAM OverDrive Limit to it. Then in OverDrive page of driver you will have no slider for HBM clock adjustment and you will need to enable "Extend Official Overclocking Limits" in MSI AB to increase HBM clock via software.

OD page, stock ROM (Click to show)
So in stock ROM RAM freq. 500MHz OD RAM Limit 500MHz = no RAM slider.

OD page, ROM with OD RAM Limit increased only (Click to show)
So in ROM RAM freq. 500MHz OD RAM Limit 525MHz = moveable RAM slider.

OD page, ROM with RAM frequency increased in PowerPlay only (Click to show)
So in ROM RAM freq. 525MHz OD RAM Limit 500MHz = RAM section appearing but no slider.

OD page, ROM with OD RAM Limit RAM frequency in PowerPlay increased (Click to show)
So in ROM RAM freq. 525MHz OD RAM Limit 525MHz = no RAM section in OD.

How to edit Maximum ASIC Temperature
Warning: Spoiler! (Click to show)
In PowerPlay near lower section is PowerLimit section within that is Maximum ASIC Temperature (right click image and open in new tab to see at best res).

Note:- fix checksum before flashing ROM

How to edit PowerLimit
Warning: Spoiler! (Click to show)
There are 3 values that can be edited, screenshots only show PowerPlay table; the values shown are near the end of this table.

Warning: Anyone implementing this mod needs to be aware you will see no upped % for "PowerLimit" in CCC / MSI AB / TriXX / etc. The new values will become new starting point of "PowerLimit" (ie 0%). When you increase these 3 values in bios and add 50% "PowerLimit" via an OC app you will be going higher than stock settings.

Note: PowerLimit relates to GPU not total board power usage. So you will see higher readings for A/W in HWiNFO for VRM than what you set in PowerLimit as other circuitry and "electrical elements" are not part of PowerLimit.

The 3 values that can be edited are:-

TDP: "Change TDP limit based on customer's thermal solution"

TDC: "PowerTune limit for maximum thermally sustainable current by VDDC regulator that can be supplied"

Maximum Power Delivery Limit (MPDL): "This power limit is the total chip power that we need to stay within in order to not violate the PCIe rail/connector power delivery"


For this knowledge of phases on VRM and spec of components is necessary. Best source is hi res PCB images and then google for tech spec pdfs on mosfets. The ref PCB Fury / X are 6 phase VRM, IMO 400A is max depending on load / temps, temps greatly effect what VRM can output without running into an issue.

Simple explanation regarding VRM

The VRM takes the 12v and steps it down to lower voltage for GPU,etc to use, the VRM converts the higher voltage, lower current supply to a low voltage, high current supply.

MPDL relates to what power can be delivered to card from mobo slot/PCI-E plugs.

So a 8+6 config card 300W MAX , 8+8 = 375W , etc just bear in mind warning in red above.

My "safe" advise would be:-

a) to take stock values of TDP / TDC / MPDL and add same % to each but taking into context VRM for TDC and PCI-E connector config for MPDL.

b) test what PL you require and set in ROM only that amount, this way if you wanna test a new OC to see if it throttle you can always use MSI AB to add a small amount of PL.

Just as a side note I never run Furmark / Kombuster / OCCT on my GPUs.

Further info
Originally Posted by The Stilt View Post

Hawaii or Fiji based cards don't draw anywhere near the maximum allowed by the specification (i.e 66W) from the PCI-E slot. They draw the power for the GPU VRM from the PCI-E power connectors and the power drawn from the PCI-E bus itself only feeds VDDCI VRM and the display interfaces (on Hawaii) and MVDDC and display interfaces on Fiji.

Below is data from THG for Fury Tri-X, Fury X and Nano. Viewers of data be aware:-

a) high leakage chip would be more draw, we have no idea if these are high/average/low leakage GPU samples.
b) I would use the average figures rather than max, without going into detail the max figures are instantaneous draw figures which occur for a very minute time period but can occur frequently depending upon "factors".

Now to expand on what the PCI-E plugs can provide, what I have placed higher up in this section is PCI-E SIG information but the hardware limits of PCI-E plugs are higher. Most PSU are 6+2 so the 6 pin plug does have 3x 12V.

Using GOPupd tool to update/add UEFI/GOP module so custom Fiji ROM will work with CSM=Off
Warning: Spoiler! (Click to show)
Credit to Lordkag of Fernando's Win-RAID Forum for this app and custom UEFI/GOP module.

i) Download GOPupd v1.9.5 with custom AMD UEFI/GOP module. If you require the original GOPupd tool visit Fernado's Win-RAID forum via this link to right thread.

ii) save your ROM to update with GOPupd using GPU-Z or AtiFlash or use your already modified ROM and view video below.


i) You will see a message appear as below, this is not an issue, if you see a differing message please post in thread.
Data after ROM and not part of EFI! Please report it!

  Recovering extra data at the same offset 0x38000.

ii) the custom UEFI/GOP module in VBios will allow CSM=Off and Fast boot= On, but will not allow Secure boot = On, reason being the signature in UEFI/GOP can not be updated by us AFAIK.

How to edit ROM for data/command table length changes
Warning: Spoiler! (Click to show)
More info to follow, this bat file was created by@Lard and updated by @kizwan

Table_Calculator.zip 2k .zip file

My Fiji VDDC/MVDDC offset ROM packs and finding voltage offset in ROM
Warning: Spoiler! (Click to show)
At the time of this post there are no factory ROMs with VDDC & MVDDC in ROM (Nitro does from factory have VDDC only offset). SO attached are ROMs I made smile.gif , no further support or edits will be done to them by me, whatever you require them to be learn from thread and make it so wink.gif .

After flashing it is recommended to power down PC fully and up to reinitialize voltage control chip (IR3567B) with the new offset data in ROM.

The Fury Tri-X ROMs are stock factory ROMs with:-

i) VDDC & MVDDC offsets added.
ii) VDDC & MVDDC offsets added plus 400MHz timings placed in 500MHz & 600MHz straps.

The Fury Nitro ROMs are stock factory ROMs with:-

i) MVDDC offset added.
ii) MVDDC offset added plus 400MHz timings placed in 500MHz & 600MHz straps.

Thus user will need to run @TX12's unlock tool to gain SP and to do any other mods they require.

The Fury X , Nano and Radeon Pro Duo ROMs are stock factory ROMs with:-

i) VDDC & MVDDC offsets added.
ii) VDDC & MVDDC offsets added plus 400MHz timings placed in 500MHz & 600MHz straps.

So user will need to do any other mods they require.

Note: VDDC & MVDDC ROMs have +25mV VDDC but -25mV MVDDC, so you should see 1.275V in HWiNFO. Only the Fury Nitro VDDC & MVDDC ROMs have +18.75mV VDDC (as they have this from factory) but -25mV MVDDC. To make MVDDC stock or higher user will need to edit ROM, this is so user is taking steps to increase voltage.

Note: Even though the modded ROMs are based on UEFI ROMs, this has been disabled in ROM (ie the modded ROMs are NON-UEFI). The reason being I/we are unable to update a "signature" in the ROM, which when "pure UEFI" mode is enabled on a motherboard, the legacy ROM section due to modification and no "signature" update to reflect this, fails check. So you will need CSM support enabled in motherboard bios. The only way to have above ROM (or your own modded ROMs) working with CSM = Off is to use Lordkag's GOPupd Tool to insert a custom UEFI/GOP module in to video card ROM.

Standard Protection ROMs (Click to show)
Note: Be aware these ROMs have stock factory VMAX limit as 1.48125V for loop 1 (GPU) loop 2 (HBM). So even if you add +300mV offset to GPU and your EVV VID is 1.250V you will not go over 1.48125V. If you manually set your DPM 7 as 1.3V and add +300mV offset to GPU you will still not go over 1.48125V. As we are talking VID, due to LLC (LoadLine Calibration) you will not see 1.48125V VDDC and by that I do not suggest it is safe to use such high VID/VDDC. The HBM voltage has also same voltage limit, I did not increase or decrease this from stock ROM setting.

Fury_Tri-X_ROM_Pack.zip 814k .zip file
Zip SHA-1 hash: c651697a051d1e371fa807aec5ace9f1b9340055

Fury_Nitro_ROM_Pack.zip link to my GD
Zip SHA-1 hash: FD175957C689425462D6E9C5171DB10AF6FE3FC7

Fury_X_ROM_Pack.zip 205k .zip file
Zip Sha-1 hash: 7e863dc6ae1bcbf807d588486bedae6d788cdae3

Nano_ROM_Pack.zip 202k .zip file
Zip SHA-1 hash: fe1a9f6928b5def287a6896bf7c6054b93e8642f

Radeon_Pro_Duo_ROM_Pack.zip 377k .zip file
Zip SHA-1 hash: de2e556eb97c0180bfb81ec97ec8fcdf4a0e0b2e

Enhanced Protection ROMs (Click to show)
Note: These ROMs have VMAX limit as 1.36875V for loop 1 (GPU) loop 2 (HBM). So regardless of what you do in OS you will not go over this limit. Regardless what you do to ROM (ie edit DPM VID and/or voltage offset) you will not go over this limit, only caveat being as long as the protection hex value has not be modified which is independent of other mods we do smile.gif .

Fury_Tri-X_EP_ROM_Pack.zip 814k .zip file
Zip SHA-1 hash: e6664c98e9b7c724d836967d87584d09861aada7

Fury_Nitro_EP_ROM_Pack.zip link to my GD
Zip SHA-1 hash: AE56F831884761F1BFED59065F55BEEF2430B276

Fury_X_EP_ROM_Pack.zip 205k .zip file
Zip SHA-1 hash: 99f02a4c2981821d89cf95289672b9eb5f19a1fd

Nano_EP_ROM_Pack.zip 202k .zip file
Zip SHA-1 hash: 98b1a9a8e8c670cf30947249eb43b39fc91177fa

Radeon_Pro_Duo_EP_ROM_Pack.zip 377k .zip file
Zip SHA-1 hash: fa2460f1ad3b6916cf94501be4030586f7ee76fd

Warning: Using these ROMs will void your warranty (if card has one). These are provided assuming a user knows implications of what they are doing. I accept no responsibility for damage from using these ROMs.

Below is an image of VoltageObjectInfo from voltage offset ROM to illustrate how to change it with in ROM.

Here is a video showing how to use windows calculator for above purpose.

I advise users experimenting with increased MVDDC to mod the cooling profile so HBM is cooler. As Fiji has gen 1 HBM I would assume it may not really tolerate increased MVDDC for lengthy periods, but I don't know for certain. So exercise caution if you value not killing the card.

Note: You can search for the GPU core/HBM voltage offsets in a ROM by using the find command in a hex editor but I highly recommend using the tables lists with each ROM to do this edit so you know you are in the right area of ROM.

Note: Adding the hex values:-

i) 8D 00 xx 00 (xx denoting offset value) for GPU core voltage offset.
ii) 8E 00 xx 00 (xx denoting offset value) for HBM voltage offset.

to another ROM's VoltageObjectInfo is not recommended, reason being adding these values also requires further edits to ROM, which I have not listed here smile.gif but easily doable if you learn ROM mod which is point of placing manual mods in OP wink.gif .

Note: For Radeon Pro Duo as there is master and slave ROM you will need to edit each as required.

Adding VDDC Offset to Fury X ROM
Warning: Spoiler! (Click to show)
Note: This guide is for where IR3567B is used on PCB as Voltage Control Chip.

Link to video.

Attached is guide.txt seen in linked video.

guide.txt 3k .txt file

GoogleDoc link to IR3567B registers I'm aware of. The process shown in the video can be used to add registers which may not be in the VoltageObjectInfo of your ROM.

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


What is EVV?
Warning: Spoiler! (Click to show)
EVV = Electronic Variable Voltage, this is the default method of VID setting in ROM. This is based on LeakageID and default GPU clock plus other GPU properties. A VID per DPM will be calculated and set automatically.

In stock ROM PowerPlay we see EVV pointers per DPM, to calculate the pointer you need to add the order (2-8) to 0xFF00 or 65280:

- DPM0 (manually fixed voltage)
- DPM1 (2nd DPM) = 0xFF02 (65282)
- DPM2 (3rd DPM) = 0xFF03 (65283)
- DPM3 (4th DPM) = 0xFF04 (65284)
- DPM4 (5th DPM) = 0xFF05 (65285)
- DPM5 (6th DPM) = 0xFF06 (65286)
- DPM6 (7th DPM) = 0xFF07 (65287)
- DPM7 (8th DPM) = 0xFF08 (65288)

So the DPM VID pointers we see they increase by 1 to denote the next level of DPM EVV VID.

What is DPM?
Warning: Spoiler! (Click to show)
DPM = Dynamic Power Management , when we discuss this it is basically states the bios has for the GPU, there are 8 in ROM (but there are more, read AMD PowerTune PDFs on web). DPM 0 is lowest and DPM 7 is highest, "PowerTune" tech uses these states to manage the GPU for various reasons.

What's the difference between VID and VDDC?
Warning: Spoiler! (Click to show)
VID is the voltage that the GPU requests from voltage regulator, VDDC is the real monitored GPU voltage. Why VID and VDDC will also vary is due to LoadLine calibration, the difference between VID and VDDC due to LLC is termed as VDROOP. VDROOP is not bad, read this linked article and apply it in the sense of the GPU.

This is why we gain VID information per DPM as VDDC can be lower than VID. Please view this linked video carefully as well. I have attached the registers dump showing VID per DPM and HML with the VDDC from per DPM testing below.

Fury_X_GPU-Z_Render_test.zip 11k .zip file

Also we must note due to "PowerTune" tech and different apps load GPU differently we will see different VDDC for same VID and clocks. You can test this by say running 3DM FS and monitoring VDDC in MSI AB and then comparing with a run of Unigine Valley or Heaven.

Does HBM clock in steps?
Warning: Spoiler! (Click to show)
Simple answer YES and I was a skeptic about this but it is true, for longer answer view this post.

OCP Limit / VRM Temperature Limit Info
Warning: Spoiler! (Click to show)
Users may notice in HWiNFO VRM amp readings higher than OCP limits in IR3567B, AFAIK this is not due to an error in HWiNFO but down to how the driver reports this data to it. I have lowered OCP on my card to test if card does shutdown when OCP limit is reached.

How do I get monitoring data like VRM temperature / VRM Amps & Watts?
Warning: Spoiler! (Click to show)
HWiNFO, open application selecting "Sensors"

Useful links

Hex Editors:

1. HxD (great freeware one IMO)
2. Hex Workshop (has more advanced features, like colour mapping,etc; free 30 day trial)

TPU VBios Database: Link

Courtesy of @TX12 (Check OP of his thread for info on below 2 utils)

CUinfo v1.6: Link 1 Link 2
AtomTool v1.1: Link

Display Driver Uninstaller (DDU) : Official site Guru3D Mirror

Archived (Click to show)
Starting this thread as hoping to get some bios mods done to my Fiji card.

So my current ROM collection for compares are:-

Sapphire Fury Tri-X OC Stock PL
Sapphire Fury Tri-X OC Increased PL

Then we have @The Stilt FuryXLCB2 (Link), next we have a selection of ROMs posted by @Xtreme Addict on HWbot forum made by Asus R&D. I would not use the Fury Strix ROMs on ref PCB Fury or Fury X as the VRM design differs greatly, so ROM is setup to reflect that.
gupsterg is offline