• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.
  • The forums have been upgraded with support for dark mode. By default it will follow the setting on your system/browser. You may override it by scrolling to the end of the page and clicking the gears icon.

GPU BIOS development or opensource GPU BIOSes?

Joined
Jan 5, 2010
Messages
3 (0.00/day)
Hello everyone!
  • Is anyone aware of tools for reading, flashing and editing GPU BIOSes on Linux?
  • ^ If yes, links, documentation, any other help would be greatly appreciated. Everything I've seen thus far is Windows based.
  • NiBiTor is an nVidia BIOS editor, but 1) I can't parse the bios rom I have 2) I can't find a manual describing BIOS boot options 3) it doesn't allow me to edit the BIOS itself.
  • I'm more specifically interested in editing the instructions being called by the vBIOS during the GPU initialization process. I have found some info about vBIOS decoding/decompiling, but the ROM I downloaded seems to be signed by a vendor cert. Basically I would need to brute force an RSA encryption to get any further in this direction.
  • nVidia and ATI (now AMD) have been around for a long time, and people have been modifying and cracking software for just as long, so I suspect there's already some information available, if only for older devices.
  • My interest on the topic is in no way to steal some software - my goal is to test a theory I have about a completely different approach to manufacturing PCs, but in order to create a proof of concept, I have to make gfx cards initialize in a different manner.
  • I have no preference of nvidia or ati (or even intel, although I'm not a fan), and I'm not specifically targeting the "latest and greatest" or "cutting edge". As long as I can get any gfx card or gfx chipset to initialize with a custom bios, I'll be satisfied. I think I'll have to contact the manufacturers directly to move past the proof of concept anyways, but without the PoC, there won't be anything tangible to discuss, so I'm at a deadlock.
  • Is anyone aware of any sources of GPU BIOSes available, besides https://sourceforge.net/p/openradeonbios/wiki/Home/ ?
Best regards,

Mikhail
 
reading & flashing: check our downloads section, from time to time a linux flashing software leaks, which we post

nibitor is very old, the nvidia bios format has changed a lot since then

the bios is not encrypted, just signed, which is somethign that is checked during initialization/flashing, so you can't modify the bios and flash it to a card

I have to make gfx cards initialize in a different manner.
Tell us more. There's SO much happening during VBIOS init, I think this is a dead end. Can't you use the various UEFI mechanism to smuggle in your payload?
 
reading & flashing: check our downloads section, from time to time a linux flashing software leaks, which we post

nibitor is very old, the nvidia bios format has changed a lot since then

the bios is not encrypted, just signed, which is somethign that is checked during initialization/flashing, so you can't modify the bios and flash it to a card


Tell us more. There's SO much happening during VBIOS init, I think this is a dead end. Can't you use the various UEFI mechanism to smuggle in your payload?
Could you tell me or point me to more information about the UEFI mechanisms to smuggle payload into the VBIOS? I'm digging, but I have to admit - I don't always know what I'm looking for (i.e. names of term and mechanisms that I should be searching for). I've been programming for a long time now, but haven't touched firmware for PCIE or graphics devices yet.

I'm working on a proof of concept for an idea similar to KVM-VGA passthrough, but a slightly different approach. For proof of concept, using UEFI to smuggle something onboard sounds like a good idea, depending on what exactly that would allow me to smuggle onboard.

For the long term, I expect I would need to really hack up a VBIOS. More specifically, if we are using nvidia as an example, I would need to change:

And I'm not just talking about changing the BIT table, but also the data and functions it points to. There might be some other parts I would need to touch as well,

Best regards,

Mikhail
 
Due to the digital signature on NVIDIA it won't be feasible to mod the BIOS

Looking at the boot process, you could customize the boot loader or try something with "EFI drivers"
 
Back
Top