Jump to content

I was thinking of building an editor for Nvidia GPU BIOS files in C# or Python but I think it will be too hard(and I might not have the required knowledge for it). 

Mostly worried about some kind of proprietary Nvidia code or something like that.

 

 

Link to comment
https://linustechtips.com/topic/1238663-rom-editor/
Share on other sites

Link to post
Share on other sites

The biggest hurdle isn't necessarily the language you use, but rather understanding a proprietery format with little to no public information.

 

And testing may be difficult if a broken file leaves the GPU in a state that is unrecoverable.

 

What exactly are you trying to achieve by modifying the bios that can't be done otherwise?

Remember to either quote or @mention others, so they are notified of your reply

Link to comment
https://linustechtips.com/topic/1238663-rom-editor/#findComment-13957574
Share on other sites

Link to post
Share on other sites

On 8/25/2020 at 10:01 PM, adobug said:

I am trying to present the code in a readable format and make it editable

That's going to be quite the task. You're talking about disassembling a (proprietary?) machine language, turning it into assembler then (hopefully) into a higher level language. The code may be compressed, obfuscated and/or even encrypted. Publishing your work would most likely come back to bite you, since you may be revealing trade secrets of a company that's not very keen on this happening.

 

As a starting point, you may want to read this: Pinczakko's Guide to Award BIOS Reverse Engineering. This is about a specific computer BIOS, not GPUs, but it should give you an idea about the type of work that's involved.

 

Unless you're talking about tweaking values (like NiBiTor does)? This is a fair step removed from actually disassembling/modifying the BIOS code itself.

Remember to either quote or @mention others, so they are notified of your reply

Link to comment
https://linustechtips.com/topic/1238663-rom-editor/#findComment-13968170
Share on other sites

Link to post
Share on other sites

Another thing to keep in mind is that current nvidia cards' firmware is signed, so it won't work if you modify those.

FX6300 @ 4.2GHz | Gigabyte GA-78LMT-USB3 R2 | Hyper 212x | 3x 8GB + 1x 4GB @ 1600MHz | Gigabyte 2060 Super | Corsair CX650M | LG 43UK6520PSA
ASUS X550LN | i5 4210u | 12GB
Lenovo N23 Yoga

Link to comment
https://linustechtips.com/topic/1238663-rom-editor/#findComment-13970286
Share on other sites

Link to post
Share on other sites

As a wise Uncle once said...

Come, Jackie We must do RESEARCH - Uncle Chans research - quickmeme

 

First step, clarify the scope the of your project.  As @Eigenvektor pointed out, there's a difference between just tweaking specific values, and disassembling the entire bios.  Look at the current state of the art, and see what is already being done, and compare that with what you want to do.

 

Second, as Uncle said, "research", cause you are going to need a lot of it.  I'd suggest taking a look at the documentation of Nvidia's public libraries. It's entirely possible they've added an API that vastly simplifies the kind of things you will need to do.  Barring that, I'd go into some forums dedicated to gpu overclocking, and discuss some of it with any developers there.

Finally, you're going to need to do some research into how C#/.NET can be used to communicate with devices in Windows.  It's possible there's a library in python for it, but I'm somewhat doubtful, so for the time being I'd stick with C#.

 

To be clear, it's doable and you will undoubtedly learn a lot, but you are in for a very tedious and long project my friend.

Best of luck to you.

Link to comment
https://linustechtips.com/topic/1238663-rom-editor/#findComment-13973399
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×