Overclock.net banner

Fiji Bios Editing ( Fury / Fury X / Nano / Radeon Pro Duo )

300K views 2K replies 189 participants last post by  Wasmachineman_NL 
#1 ·
*** 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.

Quote:
Originally Posted by AlKappaccino View Post

Greetings,

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, 4x4GB@1600mhz 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.




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.




[/IMG]

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.


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:





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):



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

AtomBIOS
AtomBios is the ROM on card.

Quote:
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
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

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

3. Install git , type command sudo apt-get install git

4. Clone the AtomDis files , type command git clone git://people.freedesktop.org/~mhopf/AtomDis


5. Now compile the downloaded AtomDis files, type command make

6. To see supported commands for atomdis type command ./atomdis

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
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:-

Code:

Code:
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

ATiFlash
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:-

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

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



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?
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
*** 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
Concepts

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)
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 #[GPU No] @ mem [variable text] ]

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

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
Right click below image and open in new tab to see bigger size.



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.





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

How to edit OverDrive Limits in PowerPlay
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.

So in stock ROM RAM freq. 500MHz OD RAM Limit 500MHz = no RAM slider.

So in ROM RAM freq. 500MHz OD RAM Limit 525MHz = moveable RAM slider.

So in ROM RAM freq. 525MHz OD RAM Limit 500MHz = RAM section appearing but no slider.

So in ROM RAM freq. 525MHz OD RAM Limit 525MHz = no RAM section in OD.


How to edit Maximum ASIC Temperature
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
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"

TDC

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
Quote:
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
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.

Notes:

i) You will see a message appear as below, this is not an issue, if you see a differing message please post in thread.

Code:

Code:
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
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
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.

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

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 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
Note: This guide is for where IR3567B is used on PCB as Voltage Control Chip.

Link to .

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.


FAQ

What is EVV?
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?
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?
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 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?
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
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?
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

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.
 

Attachments

See less See more
9 55
#4 ·
I would consider it safe
smile.gif
and will be flashing it to my Sapphire Fury Tri-X STD edition
wink.gif
(ETA Friday
biggrin.gif
). Only flash to one bios position so you have other position to recover from.

In the context of your question when comparing STD edition bios vs OC edition (stock PL) there is only changes in:-

FirmwareInfo 1 hex value 02 vs 03 (this table in Hawaii was ignored for any mods as nothing much going on).

PowerPlayInfo have increased GPU Freq. 1000 vs 1040 and 2 unknown hex values at present.

All IDs (DeviceID / BoardID / SubsystemID, etc) are the same between them.

OC edition (stock PL) vs OC edition (increased PL) only changes in:-

PowerPlayInfo by 6 values , 5 of them I currently think maybe fan or temp related and 1 is defo related to PowerLimit.

I did mark PowerPlay way back 07/11/15 and plan to first concentrate on this table first for mods.
 
#5 ·
Quote:
Originally Posted by gupsterg View Post

I would consider it safe
smile.gif
and will be flashing it to my Sapphire Fury Tri-X STD edition
wink.gif
(ETA Friday
biggrin.gif
). Only flash to one bios position so you have other position to recover from.

In the context of your question when comparing STD edition bios vs OC edition (stock PL) there is only changes in:-

FirmwareInfo 1 hex value 02 vs 03 (this table in Hawaii was ignored for any mods as nothing much going on).

PowerPlayInfo have increased GPU Freq. 1000 vs 1040 and 2 unknown hex values at present.

All IDs (DeviceID / BoardID / SubsystemID, etc) are the same between them.

OC edition (stock PL) vs OC edition (increased PL) only changes in:-

PowerPlayInfo by 6 values , 5 of them I currently think maybe fan or temp related and 1 is defo related to PowerLimit.

I did mark PowerPlay way back 07/11/15 and plan to first concentrate on this table first for mods.
So on the BIOS switch that I flash this one to, it should become 1040MHz Fury right? Also would your edits negate the downclocking with VSYNC on in Crimson? Or will I still need Clockblocker?

Also, if display doesn't show after flashing, switching the BIOS should solve it right?
 
#6 ·
Yes, you will have default clock of GPU 1040MHz once you flash the Sapphire Fury Tri-X OC Edition ROM; this can be modified as well (soon be a section in OP)
wink.gif
.

It is very very early days in bios modding Fiji
redface.gif
, so at present downclocking I can't help with but hope when I have my own card I can find a solution
smile.gif
.

If you flash Sapphire Fury Tri-X OC Edition ROM and card does not post or have an issue in OS then I would do as I did with the 4x 290/X cards I've been playing with. Boot system with DOS USB stick using other bios position, whilst PC on switch bios position to bad flash side and flash with correct bios.
 
#7 ·
Quote:
Originally Posted by gupsterg View Post

Yes, you will have default clock of GPU 1040MHz once you flash the Sapphire Fury Tri-X OC Edition ROM; this can be modified as well (soon be a section in OP)
wink.gif
.

It is very very early days in bios modding Fiji
redface.gif
, so at present downclocking I can't help with but hope when I have my own card I can find a solution
smile.gif
.

If you flash Sapphire Fury Tri-X OC Edition ROM and card does not post or have an issue in OS then I would do as I did with the 4x 290/X cards I've been playing with. Boot system with DOS USB stick using other bios position, whilst PC on switch bios position to bad flash side and flash with correct bios.
I'll flash the Tri-X OC BIOS over the stock one. I tested the secondary one, it works fine. So if i screw up the first flash, I can just stick with using the secondary BIOS for now.
 
#8 ·
Cool
smile.gif
, added "PowerLimit" heading and some info to OP. More info to be added once I've done some tests with my card (arriving today
biggrin.gif
).

I should be able to add heading about GPU clock editing (+per DPM) as well today
smile.gif
.
 
#9 ·
@gupsterg

That BIOS I gave should have modded voltage as well as the power limits. I see I did the power limits wrong so I'll do a retest for the throttling today.
 
  • Rep+
Reactions: dagget3450
#10 ·
My card has arrived also today
biggrin.gif
, just gotta find time to install and then do some tests
smile.gif
.

We were unaware of that 270 value, you may recall I stated Hawaii had 3 values; back in Nov 15, I could only find 2 values at the time for Fiji ROM. Now how I'm more sure of values is due to being able to read pointers in PowerPlay to sections (this info will soon be added to Hawaii/Fury bios mod threads).
Quote:
Originally Posted by The Stilt View Post

If the temperature is below the throttling temperature (75°C) and the power draw stays below the TDP (270W, PowerTune / Power Control @ 0%), it is definitely a driver issue and not directly related to PowerTune or PowerPlay. Disabling PowerPlay is definitely not the correct approach to solve it, since it will mess up the power management completely.
I believe it is TDC due to how in Hawaii TDC is always lower than TDP/MPDL (and equal to each other), plus we have info regarding how in Sapphire Fury OC bios is upped "PowerLimit" (I think they did not lift limit to full extent).
Quote:
The vBIOS switch on top of the card allows users to switch between two different vBIOS versions. One is set to a 75C temperature target that keeps the power to the GPU limited to 300W and the other version is set for an 80C GPU temperature target and a 350W power limit
Quote from.

Anyhow testing will get to the bottom of it
smile.gif
.

Like I said in Fury owners club, in hawaii if TDC wasn't upped and only TDP/MPDL was card would throttle. I also experienced this on a 295X2 when doing mods for @ENTERPRISE.

I hope my Fury unlocks (if I was honest I only bought it to do bios mods!LOL) ....
 
#11 ·
For TDC I recommend not going over 420A. The MOSFETs are 70A at 125C and 90A at 100C but the chokes are 71A at all temps as far as I can figure out. I have a new BIOS ready to test for myslef based of the Stilt BIOS you posted but I'm leaving for an LN2 even this weekend and don't want to potentially kill my PC before I leave.
 
  • Rep+
Reactions: gupsterg
#12 ·
+rep for info
thumb.gif
.

Agree, I think I read AMD state good for 400A in some PR material.

Mind doing a little test for me?

I have added heading Gaining per DPM VID information and i2cdump to OP, IR3567B is responding on bus 6 id 30.

I wanna compare VID and i2cdump, strangely the dump is looking familiar to hawaii. Do you have oscilloscope to see if we change fSW of VRM what is result? looking at dump I suspect it is currently 480kHz like Hawaii.

*** edit ***

@NBrock & @Noirgheos

Any chance of you guys also providing dumps? Do at stock for whichever ROM you guys are on, please attach both txts as will make comparing easier. I will attach mine also to relevant post ASAP.
 
#13 ·
Quote:
Originally Posted by gupsterg View Post

+rep for info
thumb.gif
.

Agree, I think I read AMD state good for 400A in some PR material.

Mind doing a little test for me?

I have added heading Gaining per DPM VID information and i2cdump to OP, IR3567B is responding on bus 6 id 30.

I wanna compare VID and i2cdump, strangely the dump is looking familiar to hawaii. Do you have oscilloscope to see if we change fSW of VRM what is result is gained? looking at dump I suspect it is currently 490kHz like Hawaii.

*** edit ***

@NBrock & @Noirgheos

Any chance of you guys also providing dumps? Do at stock for whichever ROM you guys are on, please attach both txts as will make comparing easier. I will attach mine also to relevant post ASAP.
I can do it tonight.
 
#14 ·
Will very much appreciate it
cheers.gif
 
#17 ·
Hey sorry for not responding. I also don't know how to dump. I think I'll wait until you guys get some good mods going on, and then I'll flash that BIOS to one of the switches.

Can we make requests?

1040MHz stock,
500W power limit default (will this possibly make things unstable?)

Pretty sure stock is 450W right?

Maybe using 500W will help me achieve 1100MHz without extra voltage, because thanks to AMD adding voltage lowers FPS. I already did try out maxed power limit sliders on stock though...
 
#18 ·
@subscribers

Heading Gaining per DPM VID information and i2cdump has been updated with MSI AB i2cdump video and shortcut properties info.

Hoping today to test some edits as have been marking / viewing PowerPlay table .



@Noirgheos

How to dump = view heading Gaining per DPM VID information and i2cdump in OP.

Yes you can make requests and I will fulfil ASAP; but bare in mind that takes time away from me viewing ROM and furthering modding. Main idea is to document all mods in OP and then each person does their own modding. Whilst people do their own modding I'm hoping they will learn to explore ROM themselves and thus point out mods; this is how we progressed with hawaii bios modding
smile.gif
.
 
#20 ·
A compare of Sapphire Fury Tri-X OC stock PL & increased PL is show in image heading How to edit PowerLimit (with data values)
smile.gif
.
 
#22 ·
Cheers for link
smile.gif
.

The bios that Buildzoid was using (in that thread) he only modded 2 out of 3 values IMO, originally way back in Nov 15 I thought those were the only 2. Now I have found the 3rd
smile.gif
, I'm hoping once he finds time to retest it has an effect
smile.gif
.
 
#24 ·
Would there be any way to increase the other voltages and not only the Vcore with a modified BIOS on a Fury X in order to make it overclock higher? I am asking this because as people may know Fury X overclocking only scales to a certain point with more Vcore (for me personally that is about +120mV) and Xtreme Addict raised the other voltages in order to achieve his 1400MHz overclock, so I assume what the Fury X "needs" in order to overclock higher is more of the other voltages.
 
#25 ·
Quote:
Originally Posted by rt123 View Post

Great news.
Best of luck.
I'm gonna do some OC'ing / tests but at present tweaking fan profile. Stock is great for really quiet operation, but temps were getting near 75C, which I didn't want TBH. Now I've got FL mode tweaked some what I'm seeing about ~65C. Still the card is "inaudible", I keep checking if the fans are actually spinning.
Quote:
Originally Posted by Neon Lights View Post

Would there be any way to increase the other voltages and not only the Vcore with a modified BIOS on a Fury X in order to make it overclock higher? I am asking this because as people may know Fury X overclocking only scales to a certain point with more Vcore (for me personally that is about +120mV) and Xtreme Addict raised the other voltages in order to achieve his 1400MHz overclock, so I assume what the Fury X "needs" in order to overclock higher is more of the other voltages.
No I won't be able to mod bios to support changing the "other voltages", for example only card I know out of the box which allows say 0.95V rail voltage control is Matrix 290X (don't know about past gen cards) and this had extra voltage controller chip to allow it (AFAIK).

TBH I don't know if we'll nail voltage mods via bios but I will be trying. Hawaii was GEN 1 EVV card, Fiji is GEN 2 EVV and this was what The Stilt said about it on Guru3D a year or so ago.

First aim is just to see what can be done with PowerPlay, next would be to get VID mods via bios.

Due to IR3567B being used on Fury/X what was learnt in hawaii bios modding can be applied, that could mean potentially PT1/PT3 type ROMs for Fury/X.
 
Top