GOP Update and Extraction Tool (NVIDIA Only)

Chapeau bas You’re great, just timely responded to our needs, :slight_smile: Kudos.

Hi all! I need help.

My computer is not loaded after completely de -energizing. After replacing the power supply and the motherboard, the situation has not changed. Perhaps the problem is in my RTX2060S video card. I ask you to help with the modification of the vbios. The dump is made from the latest version of GPU-Z.

Thank you.
TU106.zip (676.8 KB)

any news about this situation I have the same issue for my 3090. Do i need to have specific version for nvflash?

@guru3d
NVIDIA BIOS Signature Lock Broken, vBIOS Modding and Crossflash Enabled by Groundbreaking New Tools | TechPowerUp

i have test this one but i am having Invalid firmware image detection for my 3090 both with Ampere : 0x60017 and 0x60012

@wudimobile Tool works great for turing after trying on two cards. Just FYI I have found 0x7000D GOP (ADA Lovelace) in a newer vBIOS if interested.

Anyone with ampere that has DUAL bios may want to try this modded nvflash tool to force update the modded bios with updated GOP.

2 Likes

Hello, guys! What does it mean (MOD) in some versions of GOP? What’s the difference between MOD (the inscription to the right of the version number) and normal (nonMOD, without “MOD” inscription) versions?

What files are referring to?
MOD aka Modified

@wudimobile
I do not know which specific file this refers to. For example, for Turing GPUs in recent GOP Nvidia & AMD 2024.zip or GOP Tools_20230326.zip there are GOP versions: 0x5001f (MOD), and ordinary 0x5001f. On the original screenshot by wudimobile in the first message you may see: [2] 0x5001f (MOD).
What is the modification itself that distinguishes (MOD) from original source?

Thank you for your interest in this project.
Your question has been updated in the Q&A, please check it out.

1 Like

I tried to use this tool to upgrade a new GOP image (extracted from Asus 82.4 KB file on MEGA) for my Ampere card (RTX3060Ti) for fixing the problem of no signal from the boot and BIOS screen displays when connected using the DP1.4 connector.
It successfully modifies the VBIOS file, but when I apply it to the GPU with nvflashk it fails, it seems that there are other validation mechanisms for the VBIOS file for the Ampere architecture that nvflashk can’t bypass …
Here are the logs from nvflashk:

*** NVFLASH LOG FILE ***
Command-line : -6 GA104_0x60018.rom -L log.txt 
nvflashk pre-release
github.com/notfromstatefarm/nvflashk - Safer GUI version with autorecovery coming by September! 

Command: flash

Product name:NVIDIA GeForce RTX 3060 Ti
DID:0x24C910DE - SSID:0x16FB10B0

NV Driver Version : 54617
<0>: DisplayID = 00002000
Pad(0/8): DispMask=00000000, MODE=I2C, USED=Used, PWR=OFF
Pad(1/8): DispMask=00000000, MODE=I2C, USED=Used, PWR=OFF
Pad(2/8): DispMask=00000100, MODE=I2C, USED=Used, PWR=OFF
Pad(3/8): DispMask=00000600, MODE=AUX, USED=Used, PWR=OFF
Pad(4/8): DispMask=00001800, MODE=AUX, USED=Used, PWR=OFF
Pad(5/8): DispMask=00006000, MODE=AUX, USED=Used, PWR=ON
Pad(6/8): DispMask=00000000, MODE=I2C, USED=Used, PWR=OFF
Pad(7/8): DispMask=00000000, MODE=AUX, USED=Unused, PWR=OFF
 Counts of USB-C connected monitor : 00
Disable D3 cold capability before unloading driver...

Disable D3 cold capability successfully on GPU index 0x00.
FindDevices:
Device:0000:00:00:00=1022:1480:1462:7C94
Device:0000:00:00:02=1022:1481:1462:7C94
Device:0000:00:01:00=1022:1482:0000:0000
Device:0000:00:01:01=1022:1483:FFFF:FFFF
Device:0000:00:01:02=1022:1483:FFFF:FFFF
Device:0000:00:02:00=1022:1482:0000:0000
Device:0000:00:03:00=1022:1482:0000:0000
Device:0000:00:03:01=1022:1483:FFFF:FFFF
Device:0000:00:04:00=1022:1482:0000:0000
Device:0000:00:05:00=1022:1482:0000:0000
Device:0000:00:07:00=1022:1482:0000:0000
Device:0000:00:07:01=1022:1484:FFFF:FFFF
Device:0000:00:08:00=1022:1482:0000:0000
Device:0000:00:08:01=1022:1484:FFFF:FFFF
Device:0000:00:14:00=1022:790B:1462:7C94
Device:0000:00:14:03=1022:790E:1462:7C94
Device:0000:00:18:00=1022:1440:0000:0000
Device:0000:00:18:01=1022:1441:0000:0000
Device:0000:00:18:02=1022:1442:0000:0000
Device:0000:00:18:03=1022:1443:0000:0000
Device:0000:00:18:04=1022:1444:0000:0000
Device:0000:00:18:05=1022:1445:0000:0000
Device:0000:00:18:06=1022:1446:0000:0000
Device:0000:00:18:07=1022:1447:0000:0000
Device:0000:01:00:00=1E0F:0009:1E0F:0001
Device:0000:02:00:00=1022:43EE:1B21:1142
Device:0000:02:00:01=1022:43EB:1B21:1062
Device:0000:02:00:02=1022:43E9:FFFF:FFFF
Device:0000:03:00:00=1022:43EA:FFFF:FFFF
Device:0000:03:09:00=1022:43EA:FFFF:FFFF
Device:0000:04:00:00=8086:2522:8086:3806
Device:0000:2A:00:00=10EC:8125:1462:7C94
Device:0000:2B:00:00=10DE:24C9:10B0:16FB GPU
Device:0000:2B:00:01=10DE:228B:10B0:16FB
Device:0000:2C:00:00=1022:148A:1462:7C94
Device:0000:2D:00:00=1022:1485:1462:7C94
Device:0000:2D:00:01=1022:1486:1462:7C94
Device:0000:2D:00:03=1022:149C:1462:7C94
Device:0000:2D:00:04=1022:1487:1462:EC94
Filter-out on-motherboard PLX bridge device.
No PLX/PEX switch was detected, skip to filter-out non-NVIDIA PLX/PEX switch.
One to one mode
Testing adapter: NVIDIA GeForce RTX 3060 Ti (10DE,24C9,10B0,16FB) S:00,B:2B,D:00,F:00

Disable NV driver before start if NV driver loaded.



The NVFlash succeed to disable the NV Driver automatically.
Adapter: NVIDIA GeForce RTX 3060 Ti (10DE,24C9,10B0,16FB) S:00,B:2B,D:00,F:00

Failed to raise ROM and uC perf clocks.
Flashing on blank EEPROMs will be slow.
uproc 05.00 ready to be used.
Preparing secure operation after kicked start.
Actual SPI clock frequency (Hz): 73636364
Serial EEPROM identified.
EEPROM ID (9D,7015) : ISSI IS25WP016D 1.65-1.95V 16384Kx1S, page

Action: Identify EEPROM.
EEPROM has been identified, skipping.
Action: Read EEPROM image.
Reading EEPROM (this operation may take up to 30 seconds)

Reading EEPROM bytes.
Start: 0x00000000
Count: 2097152(0x00200000)
Read complete.

Testing Image: GA104_0x60018.rom
IFR image mode
Current      - Parsed Production VBIOS version: 94.04.94.00.9D
Replace with - Parsed Production VBIOS version: 94.04.94.00.9D

Mismatch Type: Computed: 0x00000300
Mismatch Type: Adjusted: 0x00000000

Current      - Version:94.04.94.00.9D ID:10DE:24C9:10B0:16FB
               GPU Board (Normal Board)
Replace with - Version:94.04.94.00.9D ID:10DE:24C9:10B0:16FB
               GPU Board (Normal Board)
Action: Flash image.
Action: Identify EEPROM.
EEPROM has been identified, skipping.
Action: Read EEPROM image.
Reading EEPROM (this operation may take up to 30 seconds)

Reading EEPROM bytes.
Start: 0x00000000
Count: 2097152(0x00200000)
Read complete.
G001.0000.94.01
G001.0000.94.01
InfoROM Release Level: 0x00(Current) v.s.0x00(File)
   NOTES: GENERIC_DEFAULT = 0, GENERIC_POPULATED = 1 
          PRODUCT_DEFAULT = 2 ,PRODUCT_POPULATED = 3 
InfoROM Release Version: G001.0000.94.01(Current) v.s. G001.0000.94.01(File)
INFOROM_FLASH_TYPE: 0x05
INFOROM_FLASH_TYPE_GENERIC_DEFAULT_TO_GENERIC_DEFAULT
Refresh InfoROM Backup (IB) block from the source vbios in EEPROM.
Preserve License image...
Preserve InfoROM OBD object...
Succeed to preserve InfoROM OBD.
Preserve InfoROM OEM object...
Succeed to preserve InfoROM OEM object.
Preserve InfoROM BRD object...
Succeed to preserve InfoROM BRD.
Preserve InfoROM RPR object...
RPR preservation completes.
Preserve InfoROM RRL object...
Skip to preserve InfoROM RRL data for EEPROM does not have RRL data.
Preserve InfoROM BBO object...
Succeed to preserve InfoROM BBO object.
Compress the backup InfoROM on composing InfoROM image...
Leverage current InfoROM offset and remove the existed InfoROM before composing new InfoROM
InfoROM PCI base offset: Current offset = 0xC0E00
                         New offset = 0xC0E00
Final PCI expansion ROM size is 209408(0x33200) bytes
Final InfoROM Offset = 0x000B7E00 ( Absolute Offset 0x000C1000)
RFRD Settings    | ROMImage   | Final      |
InfoRomOffset    | 0x000C1000 | 0x000C1000 |
InfoRomSize      | 0x00031000 | 0x00031000 |

InfoROM Offsets    | ROMImage | InputAlt | Final    |
NBSI OpRom Offset  | 0x0C0E00 | 0x000000 | 0x0C0E00 |
NPDS Struct Offset | 0x0C0E20 | 0x000020 | 0x0C0E20 |
NPDE Offset        | 0x0C0E40 | 0x000040 | 0x0C0E40 |
NBSI DIR Offset    | 0x0C0FE0 | 0x000FE0 | 0x0C0FE0 |
JFFS Offset        | 0x0C1000 | 0x001000 | 0x0C1000 |
Delete the current InfoROM block from the target vbios image.
Num of Objects = 7
Num of RW Objects = 1
Size of image with dummy RO blocks  = 2304
Compress the backup InfoROM on merging InfoROM to ROM image...
Proceeding with data compression...

Compress the backup InfoROM on composing InfoROM image...
Leverage current InfoROM offset and remove the existed InfoROM before composing new InfoROM
InfoROM PCI base offset: Current offset = 0xC0E00
                         New offset = 0xC0E00
Final PCI expansion ROM size is 209408(0x33200) bytes
Final InfoROM Offset = 0x000B7E00 ( Absolute Offset 0x000C1000)
RFRD Settings    | ROMImage   | Final      |
InfoRomOffset    | 0x000C1000 | 0x000C1000 |
InfoRomSize      | 0x00031000 | 0x00031000 |

InfoROM Offsets    | ROMImage | InputAlt | Final    |
NBSI OpRom Offset  | 0x0C0E00 | 0x000000 | 0x0C0E00 |
NPDS Struct Offset | 0x0C0E20 | 0x000020 | 0x0C0E20 |
NPDE Offset        | 0x0C0E40 | 0x000040 | 0x0C0E40 |
NBSI DIR Offset    | 0x0C0FE0 | 0x000FE0 | 0x0C0FE0 |
JFFS Offset        | 0x0C1000 | 0x001000 | 0x0C1000 |
Num of Objects = 7
Num of RW Objects = 1
Size of image with dummy RO blocks  = 2304
Num of Objects = 7
Num of RW Objects = 1
Size of image with dummy RO blocks  = 2304
Num of Objects = 7
Num of RW Objects = 1
Size of image with dummy RO blocks  = 2304
Skip proceeding with preservation table for Pascal or newer chip.
EEPROM    size: 00200000
Image     size: 000F4000
Unused    size: 0010C000
Filled    size: 0000C000

Start VBIOS verification
Send VV Command... 
Command id: 0x3000000E Command: NV_UCODE_CMD_COMMAND_VV failed
Command Status: NV_UCODE_CMD_STS_COMPLETE
Error Code = 0x00000040(64): NV_UCODE_ERR_CODE_CERT20_VDPA_SIG_INVALID


VBIOS verification error, update aborted.

Restore the NV driver state automatically, and a reboot is required.

Delete the cached vbios from registry


Restore D3 cold capability after NV driver restoration...

Enable D3 cold capability successfully on GPU index 0x00.
Restore D3 cold capability after 01 try.

NOTE: Exception caught.
Nothing changed!



ERROR: Invalid firmware image detected.

Exit Code: 2

@CirnoSalt You can use Nvidia’s NVIDIA_DisplayID_Firmware_Updater_1.1 for the 3000 series to update the GOP to version 60012 if you are on 60010 or earlier.

Link to download:

NVIDIA_DisplayID_Firmware_Updater_1.1-x64.exe

And also NVIDIA GPU Firmware Update Tool for DisplayID | NVIDIA (custhelp.com)

Sorry, i’m wrong, the other update is for older generation

Unfortunately, the original GOP version of my GPU is already “0x60015”, but DisplayPort 1.4 is still malfunctioning in this version, and NVIDIA’s official update tool hasn’t been updated for a long time, so it can’t take effect on it. I’ve contacted both NVIDIA and the GPU OEMs during the past six months, but they only shirk their responsibilities to each other and don’t want to fix the problem … :frowning:
After searching, I found that only Asus and Zotac noticed the problem and updated their GOP version to “0x60018”, I had to try to extract these VBIOS myself and modify the GOP using this tool, but some kind of signature mechanism introduced by the Ampere architecture seems to make this impossible.

1 Like

nvflashk - Flash any BIOS to NVIDIA GPUs - Safe board ID bypass up to 4xxx series | TechPowerUp Forums

I’m having the same problem with my 3060Ti, nvflashk can’t write to the modified VBIOS, it just shows:
Error Code = 0x00000040(64): NV_UCODE_ERR_CODE_CERT20_VDPA_SIG_INVALID
ERROR: Invalid firmware image detected.

@CirnoSalt I can see this becoming a big problem for the 3000 and 4000 series as more new models of monitors are released.

Nividia really need to pull their finger out and update their firmware tools with the latest GOP version.

@karfel
The NVIDIA TU100 family doesn’t support RBAR, what your looking is to add a GOP as your dump vbios doesn’t contain one, this is probably because the system has an Intel iGPU for boot and it uses the GOP driver from the mboard bios.
The results in the laptop boot could be instable.
For REBAR mods a mboard bios mod is necessary, this is the current project present in this forum, followed by the NvStrapsReBar for enabling Resizable BAR on Turing 20/16 series.
Good luck.

I just got a 4090, is there any update for this card?

Did you tried the version 0x60017 that has already the gop update tool?
Update the card to 0x60017 and then flash it with nvflashk.

1 Like