GOP Update and Extraction Tool (Ampere)

@wudimobile Hi, thank you for your thoughtful and well considered answer.

The project is yours and I respect whatever decisions you make, you have provided your reasoning and I can understand wanting to “have a better chance of discovering more new discoveries to generalize more devices” and “get more people involved, getting their hands dirty to find and acquire what they need, rather than having everything ready to go”.

This approach is fine with me, Win-RAID is an enthusiast forum and some prior knowledge on most topics is usually needed.

I was thinking of the lowest denominator, a person new to computers that may be trying to fix an issue with their Nvidia GPU display output - but even they can try things for themselves and learn.

You have made the disclaimer:

· Firmware operations carry some risks. Please seek professional help and bear any losses that may result on your own.

My only suggestion is to make this stand out a bit more (large text/bold), I wouldn’t want someone to blame you for their mistakes.

I also respect the effort and time taken to translate everything into English so that many more people can benefit from your hard work - thank you.

2 Likes

Thank you for your respect, understanding and support.

There are a lot of great program developers in this forum. From my immature development experience and thoughts on program development, the goal is to make the program as convenient as possible, but if a program is too convenient, the user loses thinking. In addition, if there are no limits, then this often leads to undesired results.

For example, if a car is designed so that anyone can drive it easily, accidents can occur when people (e.g., children) who do not have driving skills drive it.

At the beginning of the project I also thought about whether to design it as a fully automated tool, i.e., the user only needs to double-click the mouse, and the tool will automatically do all the operations including selecting and writing, which is even more convenient than the tool released by NVIDIA. All the user knows is: the graphics card’s software is updated.

While NVIDIA’s cards generally feature a recovery mode to ensure that the device can be flashed with the correct firmware again, if it is ever designed this way, fewer users will pay attention to the details and think about it, which will lead to a higher failure rate and a reduced ability to solve problems.

For commercial companies, this might be a good way to increase profitability. For this project, however, there is no help or benefit.

So in my opinion there has to be a process, either a learning or exploratory process, where the user can understand what they are doing and know that “apples are grown in the ground”.

On top of that, we currently have very little access to firmware, and the vast majority of it comes from commercially available gaming graphics cards. One is that these cards have a very short firmware support cycle, so we can only get GOP firmware that is half a year old or even a year old, and the newest firmware is usually only found on professional graphics or compute cards. The other problem is that if the site where we get the firmware is no longer reliable, then the project itself will be difficult to continue.

Therefore, I would also expect to see users who have access to or the ability to work with professional graphics or compute card vendors to be involved in creating and organizing releases so that the information and content is more accurate and reliable.

Sorry if I’ve rambled on a bit, but it’s been a pleasure to interact and swap ideas with you.

If you have any other suggestions and ideas in the future, no need to worry please let me know, your ideas and suggestions will make the project better and more perfect.

2 Likes

This is just my opinion. I think that the GOP files for the update should already be in the same folder with your program. What is the reason for the absence of GOP files?
Let’s take as an example a user and my situation with GOP 0x6000C.
The user downloaded your program, found out what version of GOP he has, went to the site for a new GOP, downloaded, extracted and … if he has 0x6000C (or some other one that cannot be updated), then the update will not work.
My opinion: I think that the GOP files for the update should already be in the same folder with the program (or on your server). What do you think?

1 Like

He want the user to understand what he is doing that is the reason that don’t have the gop in a folder.

Thank you for your offer.

Sorry if this is a bit trivial, but please allow me to summarize the reasons for not adding GOP module files.

  1. due to the digital signature limitation of only updating to the same size version, and the fact that there are so many combinations of device IDs, it would be very time-consuming, labor-intensive, and impractical to provide a module file that is available to all devices.

  2. I don’t have special access to niche versions, so I can’t add those I can’t get to the distribution. Also, sites like TechPowerUp have access restrictions that limit access after a certain number of visits, so I can’t efficiently get more firmware just by myself.

  3. Users are fully capable of and should take the initiative to find the files they need on their own, rather than relying on others to do everything for them.

  4. I want to prioritize development and research over searching and sorting through different versions, which puts the cart before the horse.

  5. there are people better suited for the job and better able to step up to the job than me searching and organizing through the limited firmware available.

  6. The GOP module files are developed by NVIDIA and signed by Microsoft, and distributing this copyrighted content freely creates a legal risk.

As you can see, when users get used to someone else having everything ready for them, it becomes difficult and unpleasant to even get their hands dirty looking for the files they need, and that needs to change.

Thank you for your reply.
I don’t agree with you completely and I don’t want to change your mind, but I respect your project and your contribution to the industry.
In any case, you are the developer of this program and the final say will be yours.
If GOP files are not present, then I think it is obligatory to publish a list of GOP file compatibility, as @chinobino pointed out.

Our forum has people of different races, cultures and ideas, and it’s great to see that you understand different cultures and ideas.

The above content is more about reality than just my ideas.
Now you have GOP extraction tools, including Turing and Ampere and newer architectures, and the specifications are in place. If there are no major changes to the VBIOS structure in the future, it is likely that Blackwell architecture will continue to be supported. Would you be willing to take the time to summarize and publish a GOP file compatibility list? Or as an extension, you can upload each version to the forum for direct download.

If you like, I will write your link to this post for easy reference and indicate your copyright, which will help more people who need help.

@wudimobile
I probably found a bug and want to tell you about it to fix it.
If there is more than one GOP file for updating in the program folder and if you click on the number “2” or other than “1”, then the update still occurs from the first position.
111

Edit. I also wanted to ask you about the digital signature. I downloaded 3 different bios with GOP 0x60019 with A5 size and they all have different digital signatures. Are there any recommendations when choosing them or does it not matter. Thank you.

2 Likes

Thank you for your feedback.
The issue has been confirmed and I will fix it and release an update as soon as possible.

Addition:
The issue comes from the fact that using the syntax set/p would make the return value 1, and since the return value was used as an option, it was always the first option that was executed.
This has been fixed with new version 0.1.1(20241216), please update to the new version.
Thanks again for your positive feedback.

Regarding your question about digital signatures:
The digital signature of the GOP module is calculated based on the GOP size, GOP content and header parameters. Usually the same version of GOP has the same size and content (occasionally there are official errors that lead to some special versions with bigger or smaller sizes), but the GOP device IDs in the header parameters will be different, thus resulting in different digital signatures.

Some firmware digital signatures with identical GOP size, GOP content and header parameters are also partially different, I think there may be some invisible parameters involved in the digital signature calculation.

Based on my limited testing, I have not found that the different digital signatures associated with GOPs have an impact on actual functionality and efficiency at this time.

2 Likes