GOP Update and Extraction Tool (Ampere)

After a long wait, the UEFI GOP toolkit for Ampere and newer architectures is now officially available.

This toolkit inherits most of the features from the Turing version and has been redesigned based on the changes introduced in the Ampere and subsequent architectures. It has also undergone limited testing.

sample

Next, I would like to talk about the differences between the new version and the previous one.

If you have used previous versions, you may have noticed issues such as the Ampere firmware failing validation or initialization after modifications . These issues arise because the Ampere architecture and subsequent architectures introduced multiple digital signatures to ensure the integrity and security of GOP modules.

To address this, the new version includes digital signatures in the EFI module files. This toolkit allows you to extract EFI module files with digital signatures and apply them to different firmware using the update tool.

It is important to note that since UEFI GOP content cannot work without digital signatures, the tricks used in the previous version and modified GOP modules can no longer be applied. You can only update to new versions with the same module size. For earlier released devices or low-cost devices, it may not be possible to update to any new version.

For example:
0x60010 → 0x60012 or 0x6000a → 0x6000b

Within firmware, UEFI GOP modules of the same version may have different digital signatures due to variations in compile parameters or device IDs. Repeatedly storing the same UEFI GOP content with different digital signatures is not a wise approach.

To address this, this version introduces a Lite mode, which stores only the digital signature and header parameters in the new file when EFI module files of the same version but with different digital signatures already exist. The update tool will automatically identify whether Lite mode is being used and reference the original file for processing.

Given the complexity of device combinations, the toolkit will no longer directly provide EFI module files. Instead, users can collect, organize, or distribute EFI module files based on their specific needs.

More comprehensive details will be published in the QA section. The previous version will remain as independent branches, continue to receive updates, and will be mutually incompatible to avoid compatibility issues.

English : GOP Tools_20241216.zip · Google Drive
简体中文 : GOP 工具_20241216.zip · Google 云端硬盘

Disclaimer and Copyright Statement
· If you believe that we have infringed your rights, please notify us by email.
· You can correct the bugs or optimize the algorithm in the program and release the modified version, but you are not authorized to use it for commercial purposes without permission.
· Firmware operations carry some risks. Please seek professional help and bear any losses that may result on your own.

5 Likes

GOP Update Tool (Ampere)
Tool to update the UEFI Graphics Output Protocol module in the graphics card firmware file.

Latest version
0.1.1

Supported models
NVIDIA Ampere micro-architecture and newer

Support platform
Windows 7 or later (some effects do not display properly in Windows 7)

*Requires PowerShell 2.0 and higher

Instructions
Use GPU-Z, NVFlash extraction or get the firmware file from the brand’s official support page, drag and drop the firmware file to the GOP Update Tool icon and follow the prompts to update it with the GOP module stored in the local directory.

Q&A

  • No file input detected, please drag and drop the firmware file to the batch.
    Please re-drag the firmware file or update package to the GOP Update Tool icon.
    Since the drag-and-drop function of the Windows platform does not support paths containing some special symbols, please move the file to a directory that does not contain special symbols or enter GOP Update Tool path space firmware file or update package path on the Windows Command Line and press Enter to execute operate.

E.g :

"C:\Users\Your Name\Desktop\GOP Tools\GOP Update Tool.bat" C:\Users\Your Name\Desktop\GA106.rom
  • Please check the file size and try again.
    Please check your firmware file size, the GOP Update Tool (Ampere) supports sizes ranging from 500KB to 2MB (2097152 bit).
    If the firmware file meets the architecture requirements, the size should not be less than 976KB, otherwise your firmware file may be incomplete or corrupted.
    Given the nature of the Ampere architecture that allows incomplete firmware to be written, the firmware size should be at least greater than 500KB.

  • Missing available GOP module files, please confirm and try again.
    Unable to find GOP module files from inventory directory, please keep files with .efi suffix and try again.

  • Firmware read error, please check and try again.
    Please close programs that may be using the firmware file or update package and check the file’s read permissions.

  • Unsupported architectures (0x…) .
    Firmware that does not support this architecture, for Turing architectures (0x500…) Please consider using the GOP Tools (Turing), and for AMD and earlier architectures, please consider using the GOP Updater.

  • No GOP module detected.
    The GOP module could not be detected from the imported firmware file. Some mobile platforms (laptops or tablets) use the integrated graphics card built into the CPU for video output and initialization, so the graphics card is not configured with the GOP function.

  • Which version should I choose?
    Comparing the versions, it is clear that in addition to the structural refactoring of the program in some specific versions, updated versions usually include additional code additions and modifications. From experience, we believe that this represents functional fixes or stability improvements to the original program in some cases. We recommend using the latest version on devices without compatibility issues for a better user experience.
    In addition, there may be more than one version of the option that is similar and contains parentheses.
    For example, 0x60012 (2504) with parentheses is the Device ID in the GOP parameters; the full Device ID is 10DE-2504, and those without parentheses correspond to 0000-0000.
    The device ID in the GOP parameters does not affect the actual functionality, so there is no need to select the exact same device ID version as the device.

  • Can I downgrade?
    In theory, you’re free to change the version of the GOP module. However, considering the rarity of this requirement and factors such as device stability,This tool does not currently provide this feature. If you have such a need, please contact us.

  • Why does the Device ID as 0000-0000?
    Some firmware, especially OEM products, have not configured the GOP Device ID during compilation, and therefore use the default value of 0000-0000.

  • The GOP module file suitable for version 0x… update was not found.
    A GOP module file of the same size and newer than this firmware file could not be found in the current directory, the firmware may already have the latest GOP version for the current technology.
    If you want to check for updates manually, you can find the latest released firmware file for a card with the same architecture from the brand or the official support page of the TechPowerUp and check for a higher version using the Extraction and Normalization tool.

  • The required file was not found, please confirm and try again.
    The required GOP module file is missing, close the program that may have deleted this file and try again.
    For Lite mode, check if the original reference file for the EFI module file is missing.

  • Cache verification failed, please close unnecessary programs and try again.
    The temp\FW2 cache file created by the GOP Update Tool has been modified, please close the program that may have modified this file or folder and retry.
    Also, do not run multiple instances at the same time.

  • Firmware export failed, a file with the same name already exists.
    A firmware file with the same name as the exported file already exists, if you have already performed the update and need to do it again, manually delete the original update file and perform it again.

  • Firmware update failed due to unknown error.
    The firmware file encountered an error during the update process and failed to validate, please check your Powershell platform version and environment configuration and retry.
    If you are still experiencing this issue, please contact us.

  • What is Lite Mode?
    A storage space-saving solution that contains only digital signatures and parameters and no GOP content. When in use, the GOP Update Tool (Ampere) calls the same version of the file that contains the GOP content to process the firmware.

  • Can module files built in using the Extraction and Normalization Tool (Turing) or GOP Updater be used in this release?
    Module files extracted using other versions cannot be used in this release. This release introduces support for digital signature extraction in response to feature changes in the ampere and update architectures, and GOP module files extracted using other tools or previous releases do not contain digital signatures and therefore cannot be validated.
    Conversely, updating GOP module files extracted by the Extraction and Normalization Tool (Ampere) using the GOP Update Tool (Turing) or the GOP Updater will also result in an error, as digital signatures are not required for GOP modules in the Turing Architecture and previous versions.

  • What are the differences from previous versions?
    No more update support for non-firmware files such as update packages.
    No support for modified GOP module files.
    No support for updating to a different sized GOP module.
    New lite mode.
    Added support for digital signatures.
    Added support for updating or extracting non-complete firmware.

2 Likes

2024.12.16

  • Fixed a bug where only the first option was executed.(by @Dagal)

2024.12.09

  • initial version.
1 Like

@wudimobile

For simple understanding for example i have and rtx 3060 card with gop 0x60015.
I found a rtx3060 with gop 0x60019.
I drag the vbios with gop 0x60019 to Extraction and Normalization Tool.
It creates a .efi file.

Then i go to gop update tool and drag the vbios with the gop gop 0x60015 and then it asks to update it to
gop 0x60019.

This is the way the update work? Then i can flash it?

I apologize for using translation tools to communicate with you.

Yes. The extraction and Extraction tool is used to extract GOP module from VBIOS and store it in .efi format on your computer.
The GOP update tool can use your extracted .efi file to version other VBIOS, they don’t all need to be RTX3060, as long as the architecture and GOP size are the same.

Example:
You can extract GOP from RTX A400 and use it on RTX3060.

1 Like

Thanks.
One last question i need the normal nvflash to flash the vbios or the modded-bypass nvflash?

The processed firmware passes validation properly, so you can use any version of NVFLASH to flash the device.

2 Likes

Thanks i updated my rtx 3060 with gop 0x60019 and i updated it with normal nvflash.

After flash when i extracted it with gpu z and check the md5 is different from the md5 that the gop update tool created but i checked it and it has the new gop.

It seems that nvflash something change when it flashes the vbios back to the card.

My startup time from 22 second to am4 socket went to 18 second.

Thank you for your feedback.

Graphics card firmware, similar to e.g. mechanical hard disk firmware, does not only store the program code, but also includes logs and some unique information that changes when the firmware is written, which is why you noticed the different checksums.

There is no way to control these changes instrumentally, and they don’t affect the actual operation of the code, so you don’t have to worry about them.

Also, if I remember correctly, 0x60019 should be updated to 0x6001D, which you can find on the RTX A400.

1 Like

Thanks for the explanation.
All the cards rtx30xx that i searched, the newest gop that i found is the 0x60019.

Only one card have the 0x6001d and it is the card rtx a400 and because i afraid, i updated to the 0x60019.

Edit:
Finally i updated to 0x6001d without ill-effects.

Generally GOP modules of the same architecture are universal, so you don’t have to worry about problems.

Also I have a guess that some close architectures maybe GOP can be generic as well, I will verify it in the future when I have a chance.

what about release day (non lhr) 3060ti? i have palit 3060ti with gop 0x60009 and i dont know if it could be updated to the latest…

Thank you for your continued interest in this project.
As I mentioned in the article, for early releases and low-cost devices, you may not be able to update to any new version due to current technical limitations.

For now all you can do is either find a higher version of the firmware that is the same size as 0x60009 (size: 0xb3) or try to use the VBIOS of another device and update the GOP firmware based on that.

In addition, for some models, it seems that NVIDIA is not allowing vendors to provide them with the latest version of the GOP firmware, so even recently compiled VBIOSes are still using earlier GOP versions, which have not been encountered on the Turing architecture.

2 Likes

“These issues arise because the Ampere architecture and subsequent architectures introduced multiple digital signatures to ensure the integrity and security of GOP modules”.

Hello, can you tell and clearly show where these digital signatures are located in the bios and GOP.

Hello.
I’m sorry, but I can’t provide you with the exact location of the digital signatures, as they are in different locations (offsets) in different firmwares and there are some variations, and it would take a long time to fully explain them, and relying on a translation tool could easily lead to misunderstandings generating additional risks.

If it is convenient, you can tell me what you want to achieve and I can help you as much as I know how.

I wanted to know for myself where these digital signatures are located in bios or GOP.

EDIT. I’m probably doing something wrong with this tool.
In one folder there is our program (GOP Update Tool.bat) my bios.rom (GOP 0x6000C) and two GOP files (0x60019 and 0x6001D) and when dragging bios.rom into GOP Update Tool.bat there is always this message: “The GOP module file suitable for version 0x6000С update was not found”.
That is, there will be no updates?

@wudimobile Thank you for sharing your amazing work with us!

Is it possible for you to extend the list that shows which already known GOP versions/sizes are compatible? e.g.

0x60009
0x60010 → 0x60012
0x60014 → 0x60015 → 0x60017 → 0x60019 → 0x6001d
0x6001a → 0x6001b
0x6001c

Could you possibly list all known combinations? It would be very useful as a quick reference.

1 Like

Regarding your question, please refer to [The GOP module file suitable for version 0x… update was not found.] in the QA section, in the Ampere architecture and newer architecture, there is no freedom to change the size of the module due to the constraints of verifying the GOP content with digital signatures, therefore can only be updated to the same size.
In your case, 0x6000C is a different size than the other versions, so the tool won’t include it in the options, which is why you don’t see them.
As I replied with @Koekieezz: For early versions and low-cost devices, you may not be able to update to any new version due to current technical limitations.

All you can do now is to find a higher version of the firmware with the same size as 0x6000C, or try to use another device’s VBIOS and update the GOP firmware on top of that.

Also, for some models, NVIDIA doesn’t seem to allow vendors to provide them with the latest version of the GOP firmware, so even recently compiled VBIOSes are still using earlier GOP versions.

2 Likes

Thank you for your continued advice and attention to the project.

Yes, these suggestions you have made are very useful and this will bring the most direct reference point for all users.

I have also thought about your suggestion, but I have some considerations.
The first is that I would prefer to focus my limited efforts on the tools and the development itself, so that I also have a better chance of discovering more new discoveries to generalize more devices.
Then, like everyone else, I rely on a number of established channels for VBIOS, so I don’t have an unusual ability to get niche releases. In addition, sites like TechPowerUp, for example, have restricted access and therefore severely limit efficiency.
On top of that, I see that there are also some users who are collecting and organizing themselves, and I think it makes sense to get more people involved, getting their hands dirty to find and acquire what they need, rather than having everything ready to go, which I think is a misconception that exists with a lot of software, and the end user still doesn’t get anything out of it.
Finally, I am also considering the copyright issue, which will affect the future direction of this tool.

Considering the above, I think it is a good thing to let more people participate. What do you think?