AMD GPU BIOS modification has a longer and more varied history than NVIDIA's — partly because AMD's toolchain evolved across more distinct architecture generations, and partly because AMD's RDNA 2 and earlier architectures offered a notably broader scope for firmware-level modification than NVIDIA contemporaries. The Polaris memory timing strap technique alone made AMD Radeon cards the hardware of choice for compute workloads requiring maximum memory bandwidth per dollar from 2017 through 2019.
In 2026, the landscape has shifted. RDNA 3 and RDNA 4 cards are the current platform, and while full BIOS replacement remains possible via VBFlash, the most practical performance modification for these architectures is AMD's Soft Power Play Table via MorePowerTool — a registry-based approach that delivers most of the TDP unlocking benefit without flash chip operations. This guide covers both paths in full, plus the complete Polaris timing strap workflow for those still working with GCN-era hardware.
Tool Compatibility Matrix
AMD GPU BIOS tool compatibility matrix — ATIFlash, VBFlash, MorePowerTool, and timing strap editing support by architecture
Backing Up Current AMD GPU BIOS
Before any operation, save the installed card's current firmware. The save command is:
# Windows — RX 6000 and older (ATIFlash)
ATIFlash -s 0 original_bios.rom
# Windows — RX 7000 and RX 9000 (VBFlash)
vbflash -s 0 original_bios.rom
# Linux — any supported AMD GPU (amdvbflash)
sudo amdvbflash -s 0 original_bios.rom
The 0 is the adapter index. For systems with multiple AMD GPUs, list all with ATIFlash -i or vbflash -i first. Verify the backup file size against the expected range for the architecture (see compatibility matrix section above). A file under 20 KB indicates a failed read.
ATIFlash — RX 6000 and Earlier
Command Reference
# List adapters
ATIFlash -i
# Save BIOS from adapter 0
ATIFlash -s 0 backup.rom
# Flash BIOS to adapter 0 (with confirmation prompt)
ATIFlash -p 0 target.rom
# Flash BIOS — force (no confirmation)
ATIFlash -f -p 0 target.rom
# Flash BIOS — ignore compatibility check (cross-flash)
ATIFlash -f -p 0 -i target.rom
-i (ignore) flag bypasses device ID validation. Cross-flashing between cards with different PCB revisions — even within the same model family — can cause VRM misconfiguration or display controller initialization failure. Verify that the target BIOS is from a card with an identical PCB revision before using -i.
VBFlash — RX 7000 and RX 9000 (RDNA 3 / RDNA 4)
AMD VBFlash uses the same command structure as ATIFlash. For RX 9000 series, use a VBFlash build dated mid-2025 or later:
# List adapters
vbflash -i
# Save BIOS from adapter 0
vbflash -s 0 backup.rom
# Flash BIOS to adapter 0
vbflash -f -p 0 target.rom
For RX 9070 XT and RX 9070 (Navi 48), the BIOS file is typically 2–4 MB. Verify the device ID before flashing: RX 9070 XT uses device ID 0x7446; RX 9070 uses 0x7447. Check the installed card's device ID with GPU-Z before selecting a BIOS from any repository.
MorePowerTool — RDNA Power Table Modification
MorePowerTool is the preferred approach for power limit modifications on RDNA 1 through RDNA 4. It avoids flash chip operations entirely and delivers most of the TDP unlocking benefit via AMD's Soft Power Play Table (SPPT) mechanism.
Setup and Use
- Install the AMD Adrenalin driver (21.12+ for RDNA 2; 23.x+ for RDNA 3; 25.x+ for RDNA 4).
- Launch MorePowerTool. The installed AMD GPU should be detected automatically.
- In the GPU tab, increase the TDP Target value. A 10–20% increase over factory TDP is a practical starting point. For example, an RX 7900 XTX at factory 355 W can be raised to 390–425 W.
- Click "Write" to apply the settings to the registry.
- Reboot to activate the SPPT.
- Verify via GPU monitoring software (HWiNFO64, AMD Adrenalin overlay) that the power limit counter now reads the new target.
To revert: open MorePowerTool and click "Load Default" + "Write", then reboot, or delete the SPPT registry entries manually from HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000.
Polaris Timing Strap Modification (RX 400 / RX 500)
The Polaris timing strap modification is one of the most impactful GPU BIOS techniques ever developed for consumer hardware. RX 480, RX 580, and related cards use GDDR5 memory, and the VBIOS contains timing parameter sets (straps) for different memory clock speeds. The community discovered that copying the timing strap from the highest supported memory clock (e.g., 2000 MHz) to lower clock levels allows the memory controller to use those aggressive timings at all operating points, effectively increasing memory bandwidth without requiring a higher clock speed.
Workflow with Polaris BIOS Editor (PBE)
- Save the current BIOS:
ATIFlash -s 0 rx580_original.rom - Open in Polaris BIOS Editor.
- Navigate to the Memory section. The timing strap table shows entries for each supported memory frequency.
- Copy the timing strap from the highest frequency entry (2000 MHz or 1750 MHz depending on the installed GDDR5 vendor) to all lower frequency entries.
- Save as a new file and flash:
ATIFlash -f -p 0 rx580_timing_mod.rom
Expected results: 5–15% improvement in memory-bound compute workloads, with no impact on core clock behavior. The modification has no meaningful impact on gaming frame rates except in memory bandwidth-bound scenarios (high resolution, heavily tessellated scenes). GPU temperature impact is minimal — the timing change does not increase memory controller power consumption significantly.
AMD GPU Recovery Procedures
Dual-BIOS Switch Recovery (Sapphire Nitro+ / ASRock Phantom Gaming)
Power down, toggle the physical BIOS switch to the backup position (position 2 / "Silent"), boot normally. The card will POST from the secondary slot. From the running OS, reflash position 1 via ATIFlash/VBFlash. After confirming primary slot is stable, the switch can be returned to position 1.
Secondary GPU Recovery
Install any secondary GPU (Intel/AMD integrated graphics or a spare card). Boot with the bricked AMD card installed but providing no display output. It will appear in Device Manager as "Unknown" or with an error code. Target it by adapter index in ATIFlash/VBFlash and reflash using the backup ROM:
ATIFlash -i # note the adapter index of the bricked card
ATIFlash -f -p 1 original_bios.rom # adapt index as shown
SPI Programmer Recovery
A CH341A programmer with a SOIC-8 clip adapter can write directly to the flash chip on the GPU PCB. This is the last-resort option requiring no secondary GPU or dual-BIOS switch. Identify the flash chip (look for the SOIC-8 package near the PCIE connector, typically labeled with a 25Q or 25L series part number). Connect the clip, open flashrom, and write the backup file. Confirm the flash chip is not write-protected (check WP# pin state on the PCB).
Frequently Asked Questions
What is the difference between ATIFlash and VBFlash?
What does the ATIFlash -f flag do?
Can I cross-flash between AMD AIB partner BIOSes?
What is MorePowerTool and why use it instead of flashing BIOS?
What AMD GPU architectures support BIOS modification in 2026?
How do I identify my AMD GPU's device ID?
lspci -nn | grep -i vga.What is the AMD Polaris timing strap modification?
Does flashing AMD GPU BIOS void warranty?
What is the dual BIOS on Sapphire and ASRock AMD cards?
What is AMD's Soft Power Play Table (SPPT)?
Can I use Linux to flash AMD GPU BIOS?
sudo amdvbflash -s 0 backup.rom to save, sudo amdvbflash -f -p 0 target.rom to flash. Boot to text mode before flashing: systemctl isolate multi-user.target.