GPU graphics card on a workbench with USB flash drive and ESD mat under amber studio lighting

Version Overview

nvflash is NVIDIA's GPU firmware flash utility, distributed in command-line form for Windows (nvflash.exe) and Linux (nvflash binary). NVIDIA does not officially distribute nvflash for enthusiast use; it is obtained from community archives where AIB partners and NVIDIA employees have released builds tied to specific driver development cycles.

The version number format is a dotted quad (e.g., 5.820.0). The third component increments with each architecture generation; a version must meet or exceed the minimum required for the target GPU's generation. Using an insufficiently versioned nvflash against a newer GPU produces "No NVIDIA display adapter found" or a device detection error even when the card is correctly installed and the driver is loaded.

ArchitectureGPU SeriesMinimum nvflashFlash Support
KeplerGTX 600 / 7005.160.0Full
MaxwellGTX 900 / Titan X5.170.0Full
PascalGTX 10 / Titan Xp5.340.0Full
TuringRTX 20 / GTX 165.580.0Full
AmpereRTX 305.710.0Full
Ada LovelaceRTX 405.800.0Full
BlackwellRTX 505.820.0Partial (signed)

Command Reference

Information and Enumeration

# List all NVIDIA GPUs in the system with index, device ID, SubVendor ID, BIOS version
nvflash --list
nvflash -l

# Display current GPU's BIOS version, device ID, SubVendor ID without modifying
nvflash --version
nvflash -v

# Display detailed adapter information for adapter index 0
nvflash -i 0 --version

Saving (Backup)

# Save BIOS from the default (first) adapter
nvflash --save output.rom
nvflash -s output.rom

# Save from a specific adapter index (multi-GPU)
nvflash -i 1 --save gpu1.rom

# Save with verification (read back and compare)
nvflash --save output.rom --verify

Flashing

# Flash BIOS — same device ID and SubVendor ID (prompts for confirmation)
nvflash target.rom

# Flash BIOS — force (skip confirmation prompt)
nvflash -6 target.rom

# Flash to specific adapter index
nvflash -i 1 -6 target.rom

# Override SubVendor ID check (cross-flash between AIB variants)
nvflash -6 target.rom
# Note: -6 is the combined flag for SubVendor override + force flash

# Override SubVendor check only (still prompts for confirmation)
nvflash --overridesub target.rom

Protection and Access

# Disable BIOS write protection (required on some Windows configurations)
nvflash --protectoff

# Re-enable write protection after flash
nvflash --protecton

# Check current protection status
nvflash --getprotection

Verification

# Compare a ROM file against the installed BIOS without flashing
nvflash --compare target.rom

# Verify after flash by reading back and comparing
nvflash target.rom --verify

Flags Quick Reference

FlagLong FormFunction
-l--listList all NVIDIA adapters with IDs and BIOS versions
-v--versionShow BIOS version of installed adapter
-s [file]--saveSave current BIOS to file
-6 [file](combined)Flash with SubVendor override + force (most common flash command)
-i [n]--adapterTarget adapter index n (multi-GPU systems)
--overridesubOverride SubVendor ID check without forcing
--protectoffDisable hardware write protection
--protectonRe-enable hardware write protection
--compareCompare ROM file to installed BIOS without flashing
--verifyRead back after flash and compare

Linux Usage Notes

The Linux nvflash binary is functionally identical to the Windows executable. Key differences:

Error Code Reference

Error MessageCauseResolution
No NVIDIA display adapter foundWrong nvflash version / driver protection activeUse --protectoff; verify nvflash version ≥ minimum for GPU generation
SubSystem ID mismatchTarget BIOS has different SubVendor IDUse -6 flag if PCB is confirmed compatible
ROM image is not compatibleDevice ID mismatch — wrong GPU dieDo not override; find correct BIOS for the installed device ID
ROM is read-onlyWrite protection activeRun nvflash --protectoff first
Signature verification failedModified BIOS rejected (Ampere/Ada/Blackwell signing)Use only validated stock BIOSes on Ampere and later
Failed to initialize adapterDriver conflict / another process holds GPUClose all GPU applications; run from clean boot or safe mode

Standard Flash Workflow

# Complete nvflash workflow — single GPU system, Pascal/Turing

# Step 1: Check GPU detection and note device/SubVendor IDs
nvflash --list

# Step 2: Save backup (MANDATORY)
nvflash --save original_bios.rom

# Step 3: Verify backup file size is correct (should be 256KB–2MB)
# On Windows: dir original_bios.rom
# On Linux: ls -lh original_bios.rom

# Step 4: (Optional) Compare new BIOS with current before flashing
nvflash --compare target_bios.rom

# Step 5: Flash
nvflash -6 target_bios.rom

# Step 6: Reboot
# Step 7: Verify new BIOS version in GPU-Z
Blackwell (RTX 50) Notes
nvflash 5.820 or later is required for RTX 50 series. Standard BIOS replacement (same card, updated stock BIOS) works normally. Modified BIOSes with edited power or clock tables are rejected by Blackwell's enhanced signature validation. Do not attempt to force-flash unsigned BIOSes on Blackwell — the result is a non-functional card requiring hardware recovery.

Frequently Asked Questions

What is the current stable nvflash version for RTX 40 and RTX 50 cards?
nvflash 5.820 or later is required for RTX 50 (Blackwell) series support. For RTX 40 (Ada Lovelace) and earlier, nvflash 5.770 or later is recommended. Version 5.820 adds full Blackwell device enumeration and corrects a partition-table offset change introduced in Blackwell BIOS format revision 3.
Why does nvflash return "Protected" when I try to flash?
NVIDIA locks the BIOS flash partition on most consumer GPUs. The --protectoff flag disables this protection temporarily for the current session, allowing a write operation. Syntax: nvflash --protectoff modified.rom. Protection is re-enabled on the next cold boot. Some AIB-specific BIOSes (particularly EVGA FTW variants) require both --protectoff and explicit confirmation of the device index.
Can I use nvflash to recover a card that won't POST?
Yes — nvflash can flash a card that is not currently driving display output, provided the card is enumerated on the PCI bus. Boot the system with a working secondary GPU or iGPU driving the display, with the target card present but without display cables. nvflash will detect the device and allow a BIOS flash over PCIe even without display output from the target card.
Does nvflash work in Windows 11?
nvflash for Windows is supported in Windows 10 and 11. Run as Administrator — without elevated privileges, nvflash cannot access the PCI device registers needed for the flash operation. Windows Defender may flag nvflash as a potentially unwanted application due to its hardware-write capability; this is expected behavior for low-level firmware tools.
How do I verify a flash completed correctly?
After flashing and rebooting, use nvflash --check to compare the currently active BIOS against a reference file. GPU-Z's Advanced tab also shows the BIOS version string from the ROM header — compare the version string before and after to confirm the new BIOS is loaded. For power limit changes, GPU-Z sensor view shows the power limit ceiling as set by the active BIOS.
What is the difference between nvflash and nvflash64?
nvflash64 is the 64-bit binary; nvflash is the 32-bit binary. On modern 64-bit Windows and Linux installations, nvflash64 is preferred — it avoids the 32-bit memory addressing limitations that can affect devices with BIOSes larger than 2MB. Both binaries accept the same command-line flags and operate identically otherwise.