*** 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.
Fury X 3DMark 13 Mega bench (FS / FSE / FSU over 250+ runs) by gupsterg
AtomBIOS
AtomDis (AtomBios parser) installation and usage in Ubuntu
AtomBiosReader for Windows by @kizwan
ATiFlash
Having issues after a flash like clocks, etc not being correct?
Fiji Bios Editor by @DDSZ
How to edit GPU Core voltage
Gaining VID per DPM information and i2cdump for voltage control chip (IR3567B)
How to edit GPU Frequency per DPM
How to edit cooling profile in ROM
How to edit OverDrive Limits in PowerPlay
How to edit Maximum ASIC Temperature
How to edit PowerLimit
Using GOPupd tool to update/add UEFI/GOP module so custom Fiji ROM will work with CSM=Off
How to edit ROM for data/command table length changes
My Fiji VDDC/MVDDC offset ROM packs and finding voltage offset in ROM
Adding VDDC Offset to Fury X ROM
FAQ
What is EVV?
What is DPM?
What's the difference between VID and VDDC?
Does HBM clock in steps?
OCP Limit / VRM Temperature Limit Info
How do I get monitoring data like VRM temperature / VRM Amps & Watts?
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
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:
Fury X 3DMark 13 Mega bench (FS / FSE / FSU over 250+ runs) by gupsterg
AtomBIOS
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.
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:
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
Extract from created tables list for a ROM:-
Code:
Code:
000f: a0da Len 02b4 Rev 07:01 (PowerPlayInfo)
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
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.
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.
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
***
Fiji_BIOS_Editor_v1.2.zip 10k .zip file
Mirror: Fiji Bios Editor v1.2 on my GD
SHA-1 Checksum: 91BC541C20D8D4A430756DD234C34413E6D86DD4
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.
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
.
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
(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.
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
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
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.
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.
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.
Extra cooling profile information for advanced manual modders
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).
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.
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.
How to edit Maximum ASIC Temperature
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:
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.
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:
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:
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.
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.
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
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
, 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
.
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.
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
but easily doable if you learn ROM mod which is point of placing manual mods in OP
.
Note: For Radeon Pro Duo as there is master and slave ROM you will need to edit each as required.
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
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
.
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
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
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.
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.
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.
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
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.
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.