[Guide] Remove UEFI Image from NVIDIA vBIOS

I’m looking at the vBIOS and mine doesn’t look the same.

It’s a MXM card so perhaps a bit different?

I have a Alienware M17xR3 that gives 8 beeps (GPU failure) with M4000M (maxwell), but works with 780m (kepler).

I installed AMD 8970M (UEFI vBIOS) and got 8 beeps, used RBE7 to make non uefi vBIOS and it works. My theory is, the M4000M will work as well, including all 9XXM and MX000M nVidia cards maybe even P5000M but need to remove UEFI.

188251.zip (142 KB)

Untitled.png

@ssj92 - Send me original unedited correct model dump of the GPU (M4000M ?) that you want GOP removed from, then I can do for you. Is that what is attached above?


Yes the top one attached is a original vBIOS for M4000M.

I just tried modding mine too if you can take a look. Attached to this post.

May I ask if you are using the same method as OP or a different one?

M4000M_M17xR3.zip (67.8 KB)

@ssj92 - I am not doing same as OP, similar, but not same. I will do the edit, then you can compare to your edit
Yes, this is odd one, but I’ve not done many Nvidia either, so could be that making me think it’s odd? What you have shown in your image is not the GOP, but the start area of the legacy ROM. GOP starts at 0x1D400h
Due to nvidia signatures, hashed roms and such, this may always fail? - http://s000.tinyupload.com/index.php?fil…711339364096125

If this does not work, I’m sure @Sylar76 can probably remove the GOP for you properly

I’m sorry, could you try this vBIOS? I had my friend with M4000M do a fresh dump of the vBIOS. The one earlier is from a public dump of M4000M.

He has a programmer too so he can always flash back. Thank you

So these ROMs do have a UEFI portion though? I would assume that is what is causing the issue on our older Alienwares not booting with these newer cards. Someone had mention a BIOS mod but they never came back to post it so my UEFI theory is our only hope.

GM204.zip (139 KB)

@ssj92

According to the zipped file you attached before it seems a normal legacy+uefi nvidia bios with GM2xx uefi gop table (the same used on desktop cards).

I’ve updated it to the latest uefi gop table, dated 2017. If you disable CSM inside bios and boot in full UEFI mode it should work.

GM204_updGOP.zip (137 KB)


Hi @Sylar76 I actually need the UEFI (gop) portion removed from vBIOS completely. The laptop we are trying to use this in, does not have UEFI at all and it seems having UEFI in the vBIOS causes no post.

Thank You

@ssj92 - He could test that one I did earlier, since he has programmer. If it fails, be sure he tests it unedited as well, so you know the unedited one works or not.
Here is the other one, if I removed it correctly should be OK - This new vBIOS you gave is older version, in case you didn’t notice. You can open vBIOS in Maxwell II vBIOS tweaker 1.36 to see date/version/checksum (or GOP updater)

GOPRemove.png


http://s000.tinyupload.com/index.php?fil…247701647496623

@ssj92

Ok, try this please.

GM204_NOUEFI.zip (67 KB)

After Fermi-based cards, nVidia has more images in their roms. I don’t know if the images following after the UEFI-image are depending from the position in the rom, probably no, otherwise described way to remove UEFI-image won’t work. Adding empty code at the end isn’t necessary since nvflash will recognize image-lenght on its own. If you want to use SPI-flasher: Image should have same lenght as the complete dump.

But it is safe to leave the positions in the rom: overwrite the UEFI-part with empty code and set last rom indicator in VBIOS from 0x00 to 0x80 and correct checksum.

@Lost_N_BIOS & @Sylar76 I have sent your vBIOS’ for testing and will update when they have tried them.

@Ludolf So assuming I follow the OP guide, how would I change last rom indicator and correct checksum? If this method works, I would have like 5 more vBIOS to do this to.

@Sylar76 - thanks! I see your edit is exact same as I did, except the very last byte you FF’d.
I eye-balled that during my edit, thinking it was maybe checksum for GOP I at first, but then was not sure if overall checksum byte etc so I left it since GOP UPD tool seemed to indicate the GOP image ended before that based on size given
I was not sure if that should be left in place or not, since GOP UPD put GOP’s size to end a few lines before that byte. Do you think leaving it on mine would render vBIOS bricked, or OK?

@ssj92 - I don’t think NVIDIA has first/last rom indicator, at least I didn’t notice this when looking during your edit. Checksum for legacy rom is not touched, so does not need updated/remains correct.
If it is there, it would be the 18th byte after PCIR, at least this is what it is in AMD

I’ve put FF to the whole uefi region (including the last byte) as @ssj92 needs only the legacy part and that has the correct checksum. Of course, if you add or restore the uefi part the last byte must be different from FF, as it will indicate the relative uefi checksum.

Checksum: It is checksum-8-calculation. If you overwrite an image with values 0x00h or 0xFFh, checksum will be 0, which is correct. Many images are based on this type of calculation (sum of all bytes=0). You can calculate it w/ some hex-editors or bios-editors.

Last rom indicator: Look at this picture: file.php?url=http%3A%2F%2Ffiles.homepagemodules.de%2Fb602300%2Ff16t892p15729n3_dQaPzkHv.png&r=1&content=AMD_and_Nvidia_GOP_update_%28No_requests%2C_DIY%29
You see 0x11h bytes between PCIR-String and last rom indicator. This is the header of UEFI-image, but in VBIOS-images you will find the same position. I checked the rom uploaded from Sylar76, it has indicator w/ correct value 0x80h.

@Sylar76 - GOPUpdater tool said it was not that long, ie did not include last byte image only 75696 length, which end few lines before that last byte. That’s why I was not sure if that was GOP checksum, or overall, or some other changed byte to fix other checksum etc.
Yes, I see the legacy byte/checksum, we don’t touch that and it remains correct in both for the legacy image (6B)

@Ludolf - Yes, thanks for linking, I could not find that info to link for ssj92 earlier It’s as I mentioned above, 18 bytes after PCIR, for some vBIOS (not always, I think)
If that 19th byte (80) after PCIR in this vBIOS legacy image is the last image indicator for this vBIOS, then legacy was always set as first image, neither Sylar76, nor I changed that (Check stock from post #25)
And notice, that 80 is NOT 12h past PCIR but 13h, at 12h past PCIR is 00

You want something done, gotta do it yourself. I’m still waiting for them to test the vBIOS…

Meanwhile, I am tempted to get a Quadro P5000M and test it myself. Issue is…mobile pascal cannot be flashed with nvflash, required programmer. There’s some sort of check I guess for mobile cards. My friend has a programmer and lives 5 mins away so that’s not the issue.

Would this same method work on a Pascal based Quadro? I can always put the card in my other Alienware which works fine with it, but I definitely want to test this with the current one without UEFI.

@Lost_N_BIOS @Sylar76

@ssj92 - What!? I guess it was not important to them to boot or something?? Who is “they” to you?
Yes, it should work same on Pascal

@Lost_N_BIOS They’re a fellow NBR forum enthusiast. There’s a few of us who own like 4-10 of the original 2010-2014 Alienware laptops with MXM slots. We have been upgrading them over the years since MXM format has almost stayed constant.

I just need to also buy the 120Hz 3D display for my laptop since Pascal only supports eDP. My laptop’s current 1080p 60Hz display is LVDS.

A lot to invest to test this theory lol. I also need to learn BIOS editing, these things seem very important to learn for people like me who like to stuff newer hardware into older computers.

There’s a forum member who made a tool called “Mobile Pascal TDP tweaker” that allows you to edit TDP on the mobile pascal card vBIOS. Someone said modifying the TDP on Quadro cards causes black screen. I am not modding anything except UEFI so I am assuming I wouldn’t run into this issue?

Thanks again for all the help.

You can try to mod the card to “uefi-less”, but to my knowledge, with active CSM-mode the machine will load only the legacy-bios/emulate legacy bios, also the vga-bios, no GOP.

UEFI/GOP in vga-bios is optional, but vga-part is always mandatory, because most functions will be controlled by vga-bios (memory, timings, frequency, port-definitions,…) which are additionally needed for uefi.

Editing bios for MXM is much harder than PCIe-cards. For some hints follow the documentations from nVidia: https://download.nvidia.com/open-gpu-doc/
Especially BIOS-info-table and device control block.

@ssj92 - Ohh, OK, surprised they’ve not replied back yet then… Yes, I am familiar with the Mobile Pascal TDP tweaker
You may or may not run into brick, depends on if entire BIOS is signed or just the individual portions, or nothing is signed (then it will be OK for sure)
Using a programmer and making backup first is a must for this kind of edit + Test on a laptop, since you can’t easily plug in another card to flash first card vBIOS back