Overclock.net › Forums › Graphics Cards › AMD/ATI › Fiji Bios Editing ( Fury / Fury X / Nano / Radeon Pro Duo )
New Posts  All Forums:Forum Nav:

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

post #1 of 1477
Thread Starter 
*** Under Construction Last update: 06/12/16 ***

Updated 06/12/16:-

i) Added heading OCP Limit / VRM Temperature Limit Inf in FAQ section.

Updated 18/10/16:-

i) First 9 headings of OP have been redrafted if required.

Updated 09/10/16:-

i) Fury Nitro STD & OC edition ROM packs added.

Updated 04/09/16:-

i) Using GOPupd tool to update/add UEFI/GOP module so custom Fiji ROM will work with CSM=Off .


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.


AtomBIOS
Warning: Spoiler! (Click to show)
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
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:-
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
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)
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)
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"

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

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

FAQ

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.

Edited by gupsterg - 12/6/16 at 4:23am
post #2 of 1477
post #3 of 1477
So the Sapphire Fury OC bios is safe to flash to a 1000MHz Fury right? I can barely hit 1080MHz on stock voltage.
post #4 of 1477
Thread Starter 
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.
Edited by gupsterg - 2/24/16 at 9:26am
post #5 of 1477
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?
Edited by Noirgheos - 2/24/16 at 10:48am
post #6 of 1477
Thread Starter 
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.
post #7 of 1477
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.
post #8 of 1477
Thread Starter 
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.
Edited by gupsterg - 2/25/16 at 4:48am
post #9 of 1477
@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.
post #10 of 1477
Thread Starter 
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) ....
Edited by gupsterg - 2/25/16 at 10:11am
New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: AMD/ATI
Overclock.net › Forums › Graphics Cards › AMD/ATI › Fiji Bios Editing ( Fury / Fury X / Nano / Radeon Pro Duo )