AMD and Nvidia GOP update (No requests, DIY)


This makes for more questions that answers, but lets brainstorm a bit to see if it produces a new idea:

1) In the 1.9.3 image, what exactly is where the pointer points (I could get this myself by looking with a hex editor the ROM, but I’m a brick when it comes to understanding binary or code. As an absolute I NEED INSTANT GRATIFICATION procastinator guy, I get easily frustrated with anything related to programming)?
Basically, on the original image it should be the beginning of the Microcode, but since you’re relocating it somewhere else with the pointer staying the same, it should probabily be a random part of the GOP code, which for the Microcode loader should be garbage data. I’m surprised that loading that works at all, which carries me to the next question…

2) What happens if the -apparently optional- Microcode in the ROM is random, garbage data?
Based on the 1.9.3 image results, I would think that the Microcode loader should validate it or something, and may decide to skip loading it, instead of outright crashing. I suppose that there should be either a hardcoded Microcode in the GPU, or maybe it works with no Microcode at all. It should be too much coincidence if the garbage data where the old pointer points is somehow compatible enough to get the GPU running.

3) Is possible to ask the GPU which Microcode version is running?
As far that I know based on CPUs, Microcodes are versioned, and some low level Software like the BIOS can tell you which Microcode version a CPU is running. Linux and Windows also got specialized kernel-level modules to check the current version and load newer Microcode if available during boot, since it was deemed to be easier for this to be done by the OS rather that needing a BIOS update. However, when it comes to GPUs, I don’t have idea about how much flexibility you have to deal with the Microcode.

4) If the answer to point 3 is a bold No, what alternative methods are available to know if a Microcode has been loaded at all? Is possible to dump the running Microcode to compare it to what is on the ROM (Or an embedded hardcoded Microcode)?
Also based on my understanding on CPUs (That comes from horror histories like this one), during the 386 era, which was before a formal way to ask the Processor what it was existed (The 486 CPUID instruction), developers of Processor identification applications relied on trying to reproduce know bugs of each Processor to figure out by trial-and-error what the Processor could be, as a certain bug or combination of them was usually exclusive to a particular Processor vendor/model/revision. Since in the same way that there are no changelog between different AMD GOP versions, I doubt that we know specific Microcode differences, I don’t think that we have the required level of detail available for such alternative. At least it would require to know how a Juniper with no Microcode/default hardcoded Microcode behaves vs loading the one provided by the ROM one. As is hard to believe that the GPU actually works with garbage Microcode, I would think that it doesn’t get loaded at all in the 1.9.3 ROM, but does in the Image3. It could be worth to check that.

5) Is the Microcode in the ROM loaded by the GPU when it gets initialized during POST? Can the Drivers also update it when the OS boots?
All these could further complicate testing. Even further complicated because every generation or specific GPU could behave differently to the others…


My belief at this point is that since the two Images that worked are those where the Microcode pointer is intact (Regardless if the Microcode is valid or garbage), then either it is mean to be a static value, or at least on the Junipers is not a simple pointer, and may be validated or something by another value. I suppose that some viable tests would be checking with two sets of ROMs, one set where all the Images have the intact Microcode pointer and point to either the correct Microcode or garbage data, and another where the microcode pointer changes to match it. I suppose that the first set will always work, and the second will never do so. This way we will know if that pointer is actually a magic number of sorts, or whatever else that shouldn’t be modified at all. If you want to mythbust what happens with Junipers, I think is worth to identify if that pointer is the magic culprit before any further testing.



The thing is that with no changelog or detailed info about what changes are in the AMD GOP, or what bugfixes the Microcode has (Or if the Drivers update it later during boot, so it means that having the Microcode available at POST may be rather redundant. In that case, having the latest GOP would be certainly better), is a bit too hard to figure out what one of those two choices is better. Its summarized pretty much as "choose between option 1 that works, or option 2 that also works". With no pros or cons, I become indecise, then my brain BSODs. As such, I propose a built-in RNG based solution to workaround my edge case…
Talking seriously, I can feel the pain of having loads of different AMD GOP versions and not knowing what the functional differences are due to lack of manufacturer information to know which one is better in different scenarios…


QEMU users should probabily be the easiest to deal with of all your tool users. Since you aren’t limited by the ROM size in this scenario, the straightforward way would be if you merely append the GOP at the end of the file, change the pointers required to reference the VBIOS tables, and call it a day. You don’t need to be creative with tricks like Microcode relocation, rearrange existing code, nor touch anything else from the original ROM to make room for the GOP. I’m nearly absolutely confident and extremely optimistic that this should work in a near universal way, with the massive advantage of no risk of breaking what is already there. Where I’m not sure is how OVMF behaves, or if it has quirks that you should be aware of.
Based on what I know about ROM images (I researched that topic a bit out of curiosity when I begun exploring if modding the VBIOS for adding the GOP was possible. Not much later I discovered your tool :D), inside a ROM you can have multiple images that are separated by an header. There is the legacy header, which is called "Standard PCI Expansion ROM Header", and another introduced by the UEFI spec which is the "EFI PCI Expansion ROM Header". As the vanilla OVMF is a pure EFI Firmware, it should only look for the second one and ignore everything else. What I don’t know is how a Firmware scans the ROM to figure out where the headers are, if they do a full linear scan, or if they look at specific boundaries (Say, if there are partitions with a specific size like 32/64/128 KiB or so, and it only looks for headers at those points). I can ask in OVMF Mailing List if you need any specific info, but chances are that it either behaves strictly to spec, or is relaxed enough to be compatible with mainstream Motherboard Firmwares.

As always, with a few more QEMU testers this would be much more fun. Your tool is close to perfection, it extended the life of entire generation of cards.



Hey lordkag,

I’ve made a dump of my GPU with nvflash - it’s attached on my post. I had to disable my graphics adapter (in Device Manager) before the dumping procedure in order to do it properly - this is okay, yes? I am not very experienced in BIOS flashing/modding - especially when it comes to GPUs. I hope my attachment contains all necessary info.

Do I really need to dump the BIOS of my motherboard, too? Or is that just optional?

According to GPU-Z, my graphics card does support GOP ("UEFI" box is checked) - but whenever I tried to install Win7 without CSM, it always failed an error message, that at least 1 HW component isn’t EFI-compatible…

Thanks,

AZ


Your issue is Windows 7, it can’t do a pure UEFI Boot. During boot it makes calls that fails if there is no classic VBIOS, which is what happens with CSM disabled. Basically, you can’t install or boot W7 without CSM for that reason, even if your Video Card Firmware does support UEFI GOP. If you want to disable CSM for pure UEFI, then you need W8+.


As trivial info, the OVMF guys (UEFI Firmware for VMs) workarounded that by adding a shim (A minimal Driver) to replicate what W7 needs from the VBIOS, so they can use W7 in an otherwise pure EFI enviroment without requiring a full SeaBIOS CSM. If you like reading the details, is near the end of this TXT (Point 2). Is conceptually rather similar to other workarounds like the traditional BIOS PS/2 Keyboard emulation for USB.
http://www.linux-kvm.org/downloads/lerse…per-c770f8c.txt

Namely, the Windows 2008 R2 SP1 (and Windows 7) UEFI guest’s default video driver dereferences the real mode Int10h vector, loads the pointed-to handler code, and executes what it thinks to be VGA BIOS services in an internal real-mode emulator. Consequently, video mode switching used not to work in Windows 2008 R2 SP1 when it ran on the "pure UEFI" build of OVMF, making the guest uninstallable. Hence the (otherwise optional, non-default) Compatibility Support Module (CSM) ended up a requirement for running such guests.


I don’t think that you can mod a propietary BIOS to add something like that. Besides, the OVMF implementation is valid for the QEMU emulated Video Cards, but not sure if anything else.


Your issue is Windows 7, it can’t do a pure UEFI Boot. During boot it makes calls that fails if there is no classic VBIOS, which is what happens with CSM disabled. Basically, you can’t install or boot W7 without CSM for that reason, even if your Video Card Firmware does support UEFI GOP. If you want to disable CSM for pure UEFI, then you need W8+.




Yeah, I already guessed that ("missing" VGA driver) since a few weeks, but wanted to seek advise on WinRAID forums before giving up pure UEFI on Windows 7 - then, I did a test yesterday: in order to detect an already existing GOP driver (respectively to confirm that not the Hardware but the OS is the source of the problem), I turned CSM off and then inserted the W8.1 Setup-DVD. Next, I did the same with the W7 Setup-DVD (SP1 is already included). I got the confirmation of what I already guessed since weeks: with the W8.1 DVD, I could successfully enter Windows Setup - and with the W7 DVD, the same error message occured again…

If I install W7 with CSM enabled, does that necessarily mean my system is not really running in UEFI mode? (respectively UEFI features are not being used?)

AZ

@lordkag
found newer nvflash v5.306 and v5.319 with 32-bit/64-bit .exe file. :slight_smile:

NVFLASH5306.zip (2.19 MB)

nvflash_5.319.zip (2.66 MB)



very uefull tool
Many thanks

@lordkag

i got multiple people mentioning (including me), that the ati signature fiel doesnt work on windows 8.1:

We all get : Windows has stopped this device because it has reported problems. (Code 43) , it is working on win 7 and win 10, but not on 8.1

any ideas or workaround?

Hi, I have an EVGA Geforce GT 730 with this BIOS:

Dumping info from = gk208_saved.rom



NVIDIA Firmware Update Utility (Version 5.292.0)
Simplified Version For OEM Only

IFR Data Size : 1152 bytes
IFR CRC32 : 265FF8FC
IFR Image Size : 1536 bytes
IFR Image CRC32 : C68F90AF
IFR Subsystem ID : 3842-1733
Image Size : 163840 bytes
Version : 80.28.78.00.32
~CRC32 : 90F19C62
Image Hash : 43FF3556C766B106C060D50BC0F03313
OEM String : NVIDIA
Vendor Name : NVIDIA Corporation
Product Name : GK208 Board - 21320010
Product Revision : Chip Rev
Device Name(s) : GeForce GT 730
Board ID : E420
PCI ID : 10DE-1287
Subsystem ID : 3842-1733
Hierarchy ID : Normal Board
Chip SKU : 302-0
Project : 2132-0010
CDP : N/A
Build Date : 06/27/14
Modification Date : 04/17/15
UEFI Support : Yes
UEFI Version : 0x1002D (Apr 23 2014 @ 18350298 )
UEFI Variant Id : 0x0000000000000204 ( GK1xx Multi-Display )
UEFI Signer(s) : Microsoft Corporation UEFI CA 2011
InfoROM Version : N/A
GPU Mode : N/A
Sign-On Message : GK208 P2132 SKU 10 VGA BIOS




Press any key to exit…


The BIOS dump from the card is attached.

gk208_saved.rar (119 KB)



Running GOPUpd:


************************* GOPupd 1.9.5


Update EFI GOP


Drop VBIOS file on this .bat


Dumping info from = gk208_saved.rom


Found Nvidia IFR header before ROM start, size 0x600

ID of IFR header = 3842-1733

ID of ROM file = 10DE-1287



Extracting with UEFIRomExtract by AndyV


Found compressed EFI ROM start at 0x50
Input size: 66480, Output size: 127520, Scratch size: 13360

---------------------------------------------------------------


Extracting with GOPupd…


Nvidia GOP 0x1002D Variant 0x0000000000000204 = GK1xx_Multi-Display

Dated: Apr 23 2014 Changelist 18350298

Most likely signed by: Microsoft Corporation UEFI CA 2011

Machine Code = x64

Checksum CRC32 = 0902209E

---------------------------------------------------------------


Processing with GOPupd…
*************************

Latest available GOP is 0x10030


Do you want to update GOP to 0x10030? Y for yes or N for no: y

EFI is NOT last image!

Fixing ID, last-image-bit and checksum for EFI image.


File “gk208_saved_updGOP.rom” with updated GOP 0x10030 was written!


---------------------------------------------------------------


Press any key to exit…


This results in GOP updated from 0x1002D (Apr 23 2014 @ 18350298 ) to 0x10030 (Sep 18 2014 @ 18895660 ):

Dumping info from = gk208_saved_updGOP.rom



NVIDIA Firmware Update Utility (Version 5.292.0)
Simplified Version For OEM Only

IFR Data Size : 1152 bytes
IFR CRC32 : 265FF8FC
IFR Image Size : 1536 bytes
IFR Image CRC32 : C68F90AF
IFR Subsystem ID : 3842-1733
Image Size : 164864 bytes
Version : 80.28.78.00.32
~CRC32 : C00DFB4C
Image Hash : 43FF3556C766B106C060D50BC0F03313
OEM String : NVIDIA
Vendor Name : NVIDIA Corporation
Product Name : GK208 Board - 21320010
Product Revision : Chip Rev
Device Name(s) : GeForce GT 730
Board ID : E420
PCI ID : 10DE-1287
Subsystem ID : 3842-1733
Hierarchy ID : Normal Board
Chip SKU : 302-0
Project : 2132-0010
CDP : N/A
Build Date : 06/27/14
Modification Date : 04/17/15
UEFI Support : Yes
UEFI Version : 0x10030 (Sep 18 2014 @ 18895660 )
UEFI Variant Id : 0x0000000000000204 ( GK1xx Multi-Display )
UEFI Signer(s) : Microsoft Corporation UEFI CA 2011
InfoROM Version : N/A
GPU Mode : N/A
Sign-On Message : GK208 P2132 SKU 10 VGA BIOS




Press any key to exit…


I’ve already flashed the updated BIOS and it seems to work, but the problem I had with the stock GOP (namely, the BIOS menu screens being cut out off the display, or in case of having 2 displays connected to 2 of the card outputs, the menu screens being split across both displays) persists.

My question is: what is exactly the difference between the three GK1xx GOP types, standard, MxM and MultiDisplay?
Can I change my GOP from MultiMonitor to standard?

Thanks!

@lordkag

Capture.PNG

Nvidia GOP GP1xx 0x30004.rar (944 KB)

I do have few NVIDIA cards at hand,

First a Point of View 9800GT (G92), I don’t think it will be of any help.

Second, a Point of View GT 520 (GF119), which do NOT have UEFI GOP driver, however, sine it looks like GF119 is listed, I gave it a try.

Stock ROM:
GF119.rom

CRC32: 45C69769
MD5: B2DD0460BE0049046A202EC800CE7F76
SHA-1: 1DC73352D5A629E679C76764DC0032E295F957E8


Dumping info from = GF119.rom



NVIDIA Firmware Update Utility (Version 5.292.0)
Simplified Version For OEM Only

IFR Data Size : 0 bytes
Image Size : 62464 bytes
Version : 75.19.4C.00.02
~CRC32 : 45C69769
Image Hash : N/A
OEM String : NVIDIA
Vendor Name : NVIDIA Corporation
Product Name : GF119 Board - 13100001
Product Revision : Chip Rev
Device Name(s) : GeForce GT 520
Board ID : 1943
PCI ID : 10DE-1040
Subsystem ID : 0000-0000
Hierarchy ID : Normal Board
Chip SKU : 300
Project : 1310-0001
CDP : N/A
Build Date : 12/16/11
Modification Date : 02/22/12
UEFI Support : No
UEFI Version : N/A
UEFI Variant Id : N/A ( Unknown )
UEFI Signer(s) : Unsigned
InfoROM Version : N/A
GPU Mode : N/A
Sign-On Message : NVIDIA GeForce GT 520 VGA BIOS




Press any key to exit…


Updating process,



************************* GOPupd 1.9.5


Update EFI GOP


Drop VBIOS file on this .bat


Dumping info from = GF119.rom


ID of ROM file = 10DE-1040

No EFI ROM found!

No EFI ROM found or error on decompression !!!


Extracting with GOPupd…


---------------------------------------------------------------


Processing with GOPupd…


GOP is not present!!!


Do you want to update GOP to latest available? Y for yes or N for no: Y

Warning! GOP type missing! Continue only if you know what you are doing!

Product name = GF119 Board. This might (!!) be used to determine your GPU architecture.


Do you still want to update GOP? Select the number of your GPU architecture:

1 = GT21x
2 = GF10x
3 = GF119
4 = GK1xx
5 = GM1xx
6 = GM2xx
7 - GP1xx 8 = GK1xx_MXM
9 = GM1xx_MXM


Enter choice: 3

Fixing last-image-bit in PCI Structure of Legacy ROM!

Using last byte for checksum!

EFI is last image.

Fixing ID, last-image-bit and checksum for EFI image.


File “GF119_updGOP.rom” with updated GOP 0x10030 was written!


---------------------------------------------------------------


Press any key to exit…


Updated ROM:

GF119_updGOP.rom

CRC32: 69F6B6E2
MD5: E5B35A383D59C0E2AADD14EF330EA38C
SHA-1: 0A2699FFF3866211EC20D63895FAA5B5E821C564



Dumping info from = GF119_updGOP.rom



NVIDIA Firmware Update Utility (Version 5.292.0)
Simplified Version For OEM Only

IFR Data Size : 0 bytes
Image Size : 127488 bytes
Version : 75.19.4C.00.02
~CRC32 : 69F6B6E2
Image Hash : N/A
OEM String : NVIDIA
Vendor Name : NVIDIA Corporation
Product Name : GF119 Board - 13100001
Product Revision : Chip Rev
Device Name(s) : GeForce GT 520
Board ID : 1943
PCI ID : 10DE-1040
Subsystem ID : 0000-0000
Hierarchy ID : Normal Board
Chip SKU : 300
Project : 1310-0001
CDP : N/A
Build Date : 12/16/11
Modification Date : 02/22/12
UEFI Support : Yes
UEFI Version : 0x10030 (Sep 18 2014 @ 18895660 )
UEFI Variant Id : 0x0000000000000003 ( GF119 )
UEFI Signer(s) : Microsoft Corporation UEFI CA 2011
InfoROM Version : N/A
GPU Mode : N/A
Sign-On Message : NVIDIA GeForce GT 520 VGA BIOS




Press any key to exit…



Third, An EVGA GTX 780 SC (GK110)

Stock ROM:

GK110.rom

CRC32: 143169DA
MD5: C15821BC77D4F25A45DCEF253FE62D22
SHA-1: 76999A5D13068FF7B1A4A601E6A345E9F3702275




Dumping info from = GK110.rom



NVIDIA Firmware Update Utility (Version 5.292.0)
Simplified Version For OEM Only

IFR Data Size : 1272 bytes
IFR CRC32 : 598F6116
IFR Image Size : 1536 bytes
IFR Image CRC32 : F6FF70B3
IFR Subsystem ID : 3842-0784
Image Size : 200192 bytes
Version : 80.80.31.00.82
~CRC32 : AB67B47D
Image Hash : 90FCC440533AE26F7CD8D1D835373C89
OEM String : NVIDIA
Vendor Name : NVIDIA Corporation
Product Name : GK110B Board - 20830021
Product Revision : Chip Rev
Device Name(s) : GeForce GTX 780
Board ID : E613
PCI ID : 10DE-1004
Subsystem ID : 3842-0784
Hierarchy ID : Normal Board
Chip SKU : 300-0
Project : 2083-0021
CDP : N/A
Build Date : 09/30/13
Modification Date : 11/26/13
UEFI Support : Yes
UEFI Version : 0x10026 (Sep 13 2013 @ 16871300 )
UEFI Variant Id : 0x0000000000000004 ( GK1xx )
UEFI Signer(s) : Microsoft Corporation UEFI CA 2011
InfoROM Version : N/A
GPU Mode : N/A
Sign-On Message : GK110B P2083 SKU 21 VGA BIOS




Press any key to exit…



Update process,



GOPupd 1.9.5


Update EFI GOP


Drop VBIOS file on this .bat


Dumping info from = GK110.rom


Found Nvidia IFR header before ROM start, size 0x600

ID of IFR header = 3842-0784

ID of ROM file = 10DE-1004



Extracting with UEFIRomExtract by AndyV


Found compressed EFI ROM start at 0x50
Input size: 69040, Output size: 133288, Scratch size: 13360

---------------------------------------------------------------


Extracting with GOPupd…


Nvidia GOP 0x10026 Variant 0x0000000000000004 = GK1xx

Dated: Sep 13 2013 Changelist 16871300

Most likely signed by: Microsoft Corporation UEFI CA 2011

Machine pre = x64

Checksum CRC32 = 9BE23732

---------------------------------------------------------------


Processing with GOPupd…


Latest available GOP is 0x10034


Do you want to update GOP to 0x10034? Y for yes or N for no: Y

EFI is NOT last image!

Fixing ID, last-image-bit and checksum for EFI image.


File “GK110_updGOP.rom” with updated GOP 0x10034 was written!


---------------------------------------------------------------


Press any key to exit…


Updated ROM:

GK110_updGOP.rom

CRC32: DBFE47FB
MD5: D0280DFF65FCB36725593BBEF4C39D7F
SHA-1: 5870A11B7EAA2E0B6520EA22012A4C57A67F2D50



Dumping info from = GK110_updGOP.rom



NVIDIA Firmware Update Utility (Version 5.292.0)
Simplified Version For OEM Only

IFR Data Size : 1272 bytes
IFR CRC32 : 598F6116
IFR Image Size : 1536 bytes
IFR Image CRC32 : F6FF70B3
IFR Subsystem ID : 3842-0784
Image Size : 201216 bytes
Version : 80.80.31.00.82
~CRC32 : 399CB116
Image Hash : 90FCC440533AE26F7CD8D1D835373C89
OEM String : NVIDIA
Vendor Name : NVIDIA Corporation
Product Name : GK110B Board - 20830021
Product Revision : Chip Rev
Device Name(s) : GeForce GTX 780
Board ID : E613
PCI ID : 10DE-1004
Subsystem ID : 3842-0784
Hierarchy ID : Normal Board
Chip SKU : 300-0
Project : 2083-0021
CDP : N/A
Build Date : 09/30/13
Modification Date : 11/26/13
UEFI Support : Yes
UEFI Version : 0x10034 (Oct 9 2015 @ 20044574 )
UEFI Variant Id : 0x0000000000000004 ( GK1xx )
UEFI Signer(s) : Microsoft Corporation UEFI CA 2011
InfoROM Version : N/A
GPU Mode : N/A
Sign-On Message : GK110B P2083 SKU 21 VGA BIOS




Press any key to exit…


Fourth, an EVAG GTX 970 SC (GM204)

Stock ROM:

GM204.rom

CRC32: 4D2A7A39
MD5: FCE2D02ABBE704589619451F87EA8B80
SHA-1: D8B4A1DCF06BD770D634903F178ECD69E53E2BA3



Dumping info from = GM204.rom



NVIDIA Firmware Update Utility (Version 5.292.0)
Simplified Version For OEM Only

IFR Data Size : 1940 bytes
IFR CRC32 : 0FEC8C94
IFR Image Size : 2048 bytes
IFR Image CRC32 : 094AA363
IFR Subsystem ID : 3842-2974
Image Size : 200704 bytes
Version : 84.04.84.00.71
~CRC32 : FE24D76B
Image Hash : 43C891D9D1566CFC22FE75A618C8BDFE
OEM String : NVIDIA
Vendor Name : NVIDIA Corporation
Product Name : GM204 Board
Product Revision : Chip Rev
Device Name(s) : GeForce GTX 970
Board ID : E908
PCI ID : 10DE-13C2
Subsystem ID : 3842-2974
Hierarchy ID : Normal Board
Chip SKU : 200-0
Project : G401-0010
CDP : N/A
Build Date : 07/02/15
Modification Date : 03/30/16
UEFI Support : Yes
UEFI Version : 0x2000C (Jul 13 2015 @ 19761346 )
UEFI Variant Id : 0x0000000000000006 ( GM2xx )
UEFI Signer(s) : Microsoft Corporation UEFI CA 2011
InfoROM Version : N/A
GPU Mode : N/A
Sign-On Message : GM204 VBIOS (HWDIAG)




Press any key to exit…



Updating process,



GOPupd 1.9.5


Update EFI GOP


Drop VBIOS file on this .bat


Dumping info from = GM204.rom


Found Nvidia IFR header before ROM start, size 0x800

ID of IFR header = 3842-2974

ID of ROM file = 10DE-13C2



Extracting with UEFIRomExtract by AndyV


Found compressed EFI ROM start at 0x50
Input size: 72112, Output size: 138720, Scratch size: 13360

---------------------------------------------------------------


Extracting with GOPupd…


Nvidia GOP 0x2000C Variant 0x0000000000000006 = GM2xx

Dated: Jul 13 2015 Changelist 19761346

Most likely signed by: Microsoft Corporation UEFI CA 2011

Machine pre = x64

Checksum CRC32 = D89CA636

---------------------------------------------------------------


Processing with GOPupd…


Latest available GOP is 0x2000E


Do you want to update GOP to 0x2000E? Y for yes or N for no: Y

EFI is NOT last image!

Fixing ID, last-image-bit and checksum for EFI image.


File “GM204_updGOP.rom” with updated GOP 0x2000E was written!


---------------------------------------------------------------


Press any key to exit…


Updated ROM:

GM204_updGOP.rom

CRC32: BFF6FE40
MD5: A5E2E40309EBA80FFCD7D64617E7BE35
SHA-1: 25BE6497D424E79CA1EBC8CEF3FAD1BA94B6BEBB



Dumping info from = GM204_updGOP.rom



NVIDIA Firmware Update Utility (Version 5.292.0)
Simplified Version For OEM Only

IFR Data Size : 1940 bytes
IFR CRC32 : 0FEC8C94
IFR Image Size : 2048 bytes
IFR Image CRC32 : 094AA363
IFR Subsystem ID : 3842-2974
Image Size : 200192 bytes
Version : 84.04.84.00.71
~CRC32 : 338C2A74
Image Hash : 43C891D9D1566CFC22FE75A618C8BDFE
OEM String : NVIDIA
Vendor Name : NVIDIA Corporation
Product Name : GM204 Board
Product Revision : Chip Rev
Device Name(s) : GeForce GTX 970
Board ID : E908
PCI ID : 10DE-13C2
Subsystem ID : 3842-2974
Hierarchy ID : Normal Board
Chip SKU : 200-0
Project : G401-0010
CDP : N/A
Build Date : 07/02/15
Modification Date : 03/30/16
UEFI Support : Yes
UEFI Version : 0x2000E (Dec 18 2015 @ 20273307 )
UEFI Variant Id : 0x0000000000000006 ( GM2xx )
UEFI Signer(s) : Microsoft Corporation UEFI CA 2011
InfoROM Version : N/A
GPU Mode : N/A
Sign-On Message : GM204 VBIOS (HWDIAG)




Press any key to exit…


Fifth, a MSI GTX 1060 6GB (GP106)

Stock ROM:

GP106.rom

CRC32: 33519792
MD5: 61D2448CB45414CDEA66F59EB6AF1589
SHA-1: B6201844C1923B2843792BB5A171FDD3E8604B4F



Dumping info from = GP106.rom



NVIDIA Firmware Update Utility (Version 5.292.0)
Simplified Version For OEM Only

IFR Data Size : 2172 bytes
IFR CRC32 : 3A77267A
IFR Image Size : 2560 bytes
IFR Image CRC32 : B4932D31
IFR Subsystem ID : 1462-3281
Image Size : 247808 bytes
Version : 86.06.0E.00.27
~CRC32 : 64A65773
Image Hash : BCA64B6EB1647D3ACDBE4CFE46D013FB
OEM String : NVIDIA
Vendor Name : NVIDIA Corporation
Product Name : GP106 Board
Product Revision : Chip Rev
Device Name(s) : Unknown
Board ID : EF09
PCI ID : 10DE-1C03
Subsystem ID : 1462-3281
Hierarchy ID : Normal Board
Chip SKU : 400-0
Project : G410-0030
CDP : N/A
Build Date : 06/20/16
Modification Date : 06/30/16
Build GUID : 00000000000000000000000000000000
UEFI Support : Yes
UEFI Version : 0x30002 (Apr 1 2016 @ 20605201 )
UEFI Variant Id : 0x0000000000000007 ( GP1xx )
UEFI Signer(s) : Microsoft Corporation UEFI CA 2011
InfoROM Version : G001.0000.01.03
GPU Mode : N/A
Sign-On Message : GP106 PG410 SKU 30 VGA BIOS
MSINV328MH.121



Press any key to exit…


No updates available,



GOPupd 1.9.5


Update EFI GOP


Drop VBIOS file on this .bat


Dumping info from = GP106.rom


Found Nvidia IFR header before ROM start, size 0xA00

ID of IFR header = 1462-3281

ID of ROM file = 10DE-1C03



Extracting with UEFIRomExtract by AndyV


Found compressed EFI ROM start at 0x50
Input size: 69552, Output size: 133728, Scratch size: 13360

---------------------------------------------------------------


Extracting with GOPupd…


Nvidia GOP 0x30002 Variant 0x0000000000000007 = GP1xx

Dated: Apr 1 2016 Changelist 20605201

Most likely signed by: Microsoft Corporation UEFI CA 2011

Machine pre = x64

Checksum CRC32 = 1C3CE4F5

---------------------------------------------------------------


Processing with GOPupd…


You already have the latest available GOP!


---------------------------------------------------------------


Press any key to exit…



Sixth, An EVGA GTX 1080 FTW Hybrid (GP104)

Stock ROM:

GP104.rom

CRC32: A5B342EF
MD5: 7357242E2F47E8CFE96C2568CEA1688A
SHA-1: 9D46E9BDE1E5AA5F296BA88573C12C07DC51F4D5


Dumping info from = GP104.rom



NVIDIA Firmware Update Utility (Version 5.292.0)
Simplified Version For OEM Only

IFR Data Size : 2172 bytes
IFR CRC32 : 231B2EDF
IFR Image Size : 2560 bytes
IFR Image CRC32 : F8C91C3E
IFR Subsystem ID : 3842-6288
Image Size : 253952 bytes
Version : 86.04.17.00.80
~CRC32 : A7174737
Image Hash : 3D04421C17A964EDBB41280C7232001F
OEM String : NVIDIA
Vendor Name : NVIDIA Corporation
Product Name : GP104 Board
Product Revision : Chip Rev
Device Name(s) : Graphics Device
Board ID : ED06
PCI ID : 10DE-1B80
Subsystem ID : 3842-6288
Hierarchy ID : Normal Board
Chip SKU : 400-0
Project : G413-0000
CDP : N/A
Build Date : 05/09/16
Modification Date : 07/07/16
Build GUID : 00000000000000000000000000000000
UEFI Support : Yes
UEFI Version : 0x30002 (Apr 1 2016 @ 20605201 )
UEFI Variant Id : 0x0000000000000007 ( GP1xx )
UEFI Signer(s) : Microsoft Corporation UEFI CA 2011
InfoROM Version : G001.0000.01.03
GPU Mode : N/A
Sign-On Message : GP104 PG413 SKU 0 VGA BIOS




Press any key to exit…


No updates available;



GOPupd 1.9.5


Update EFI GOP


Drop VBIOS file on this .bat


Dumping info from = GP104.rom


Found Nvidia IFR header before ROM start, size 0xA00

ID of IFR header = 3842-6288

ID of ROM file = 10DE-1B80



Extracting with UEFIRomExtract by AndyV


Found compressed EFI ROM start at 0x50
Input size: 69552, Output size: 133728, Scratch size: 13360

---------------------------------------------------------------


Extracting with GOPupd…


Nvidia GOP 0x30002 Variant 0x0000000000000007 = GP1xx

Dated: Apr 1 2016 Changelist 20605201

Most likely signed by: Microsoft Corporation UEFI CA 2011

Machine pre = x64

Checksum CRC32 = 1C3CE4F5

---------------------------------------------------------------


Processing with GOPupd…
*************************

You already have the latest available GOP!


---------------------------------------------------------------


Press any key to exit…


All files are attached!

GF119.zip (154 KB)

GK110.zip (270 KB)

GM204.zip (294 KB)

GP106.zip (151 KB)

GP104.zip (149 KB)

G92.zip (40.1 KB)

Hi, I have discovered a new GOP driver for GP1xx.

Source: EVGA GTX 1070 FTW

attached to this post (=



Extracting with GOPupd…


Nvidia GOP 0x30005 Variant 0x0000000000000007 = GP1xx

Dated: Sep 12 2016 Changelist 21147289

Most likely signed by: Microsoft Corporation UEFI CA 2011

Machine Code = x64

Checksum CRC32 = 97F318EF

Note: The GOP file is not present in my database.

You can help me by reporting it.

Nvidia GOP GP1xx 0x30005r.zip (130 KB)

Updating the 10 series GPUs, (modified the tool to add the new (GP1xx) 0x30005 )

First, MSI GTX 1060 6GB (GP106)

Stock ROM:

GP106.rom

CRC32: 33519792
MD5: 61D2448CB45414CDEA66F59EB6AF1589
SHA-1: B6201844C1923B2843792BB5A171FDD3E8604B4F



Dumping info from = GP106.rom



NVIDIA Firmware Update Utility (Version 5.292.0)
Simplified Version For OEM Only

IFR Data Size : 2172 bytes
IFR CRC32 : 3A77267A
IFR Image Size : 2560 bytes
IFR Image CRC32 : B4932D31
IFR Subsystem ID : 1462-3281
Image Size : 247808 bytes
Version : 86.06.0E.00.27
~CRC32 : 64A65773
Image Hash : BCA64B6EB1647D3ACDBE4CFE46D013FB
OEM String : NVIDIA
Vendor Name : NVIDIA Corporation
Product Name : GP106 Board
Product Revision : Chip Rev
Device Name(s) : Unknown
Board ID : EF09
PCI ID : 10DE-1C03
Subsystem ID : 1462-3281
Hierarchy ID : Normal Board
Chip SKU : 400-0
Project : G410-0030
CDP : N/A
Build Date : 06/20/16
Modification Date : 06/30/16
Build GUID : 00000000000000000000000000000000
UEFI Support : Yes
UEFI Version : 0x30002 (Apr 1 2016 @ 20605201 )
UEFI Variant Id : 0x0000000000000007 ( GP1xx )
UEFI Signer(s) : Microsoft Corporation UEFI CA 2011
InfoROM Version : G001.0000.01.03
GPU Mode : N/A
Sign-On Message : GP106 PG410 SKU 30 VGA BIOS
MSINV328MH.121



Press any key to exit…


Update Process



************************* GOPupd 1.9.5


Update EFI GOP


Drop VBIOS file on this .bat


Dumping info from = GP106.rom


Found Nvidia IFR header before ROM start, size 0xA00

ID of IFR header = 1462-3281

ID of ROM file = 10DE-1C03



Extracting with UEFIRomExtract by AndyV


Found compressed EFI ROM start at 0x50
Input size: 69552, Output size: 133728, Scratch size: 13360

---------------------------------------------------------------


Extracting with Python…


Nvidia GOP 0x30002 Variant 0x0000000000000007 = GP1xx

Dated: Apr 1 2016 Changelist 20605201

Most likely signed by: Microsoft Corporation UEFI CA 2011

Machine Code = x64

Checksum CRC32 = 1C3CE4F5

---------------------------------------------------------------


Processing with Python…


Latest available GOP is 0x30005


Do you want to update GOP to 0x30005? Y for yes or N for no: Y

EFI is NOT last image!

Fixing ID, last-image-bit and checksum for EFI image.


File "GP106_updGOP.rom" with updated GOP 0x30005 was written!


---------------------------------------------------------------


Press any key to exit…


Updated ROM:

GP106_updGOP.rom

CRC32: 294F9BAE
MD5: BBCB7AC97ECF522594B8522F194D668A
SHA-1: AA841C86DF687A50D976E82E5E4DBC40140B2A8D


Dumping info from = GP106_updGOP.rom



NVIDIA Firmware Update Utility (Version 5.292.0)
Simplified Version For OEM Only

IFR Data Size : 2172 bytes
IFR CRC32 : 3A77267A
IFR Image Size : 2560 bytes
IFR Image CRC32 : B4932D31
IFR Subsystem ID : 1462-3281
Image Size : 245760 bytes
Version : 86.06.0E.00.27
~CRC32 : 798C4636
Image Hash : BCA64B6EB1647D3ACDBE4CFE46D013FB
OEM String : NVIDIA
Vendor Name : NVIDIA Corporation
Product Name : GP106 Board
Product Revision : Chip Rev
Device Name(s) : Unknown
Board ID : EF09
PCI ID : 10DE-1C03
Subsystem ID : 1462-3281
Hierarchy ID : Normal Board
Chip SKU : 400-0
Project : G410-0030
CDP : N/A
Build Date : 06/20/16
Modification Date : 06/30/16
Build GUID : 00000000000000000000000000000000
UEFI Support : Yes
UEFI Version : 0x30005 (Sep 12 2016 @ 21147289 )
UEFI Variant Id : 0x0000000000000007 ( GP1xx )
UEFI Signer(s) : Microsoft Corporation UEFI CA 2011
InfoROM Version : G001.0000.01.03
GPU Mode : N/A
Sign-On Message : GP106 PG410 SKU 30 VGA BIOS
MSINV328MH.121



Press any key to exit…


Second, An EVGA GTX 1080 FTW Hybrid (GP104)

Stock ROM:

GP104.rom

CRC32: A5B342EF
MD5: 7357242E2F47E8CFE96C2568CEA1688A
SHA-1: 9D46E9BDE1E5AA5F296BA88573C12C07DC51F4D5


Dumping info from = GP104.rom



NVIDIA Firmware Update Utility (Version 5.292.0)
Simplified Version For OEM Only

IFR Data Size : 2172 bytes
IFR CRC32 : 231B2EDF
IFR Image Size : 2560 bytes
IFR Image CRC32 : F8C91C3E
IFR Subsystem ID : 3842-6288
Image Size : 253952 bytes
Version : 86.04.17.00.80
~CRC32 : A7174737
Image Hash : 3D04421C17A964EDBB41280C7232001F
OEM String : NVIDIA
Vendor Name : NVIDIA Corporation
Product Name : GP104 Board
Product Revision : Chip Rev
Device Name(s) : Graphics Device
Board ID : ED06
PCI ID : 10DE-1B80
Subsystem ID : 3842-6288
Hierarchy ID : Normal Board
Chip SKU : 400-0
Project : G413-0000
CDP : N/A
Build Date : 05/09/16
Modification Date : 07/07/16
Build GUID : 00000000000000000000000000000000
UEFI Support : Yes
UEFI Version : 0x30002 (Apr 1 2016 @ 20605201 )
UEFI Variant Id : 0x0000000000000007 ( GP1xx )
UEFI Signer(s) : Microsoft Corporation UEFI CA 2011
InfoROM Version : G001.0000.01.03
GPU Mode : N/A
Sign-On Message : GP104 PG413 SKU 0 VGA BIOS




Press any key to exit…


Updating process,



GOPupd 1.9.5


Update EFI GOP


Drop VBIOS file on this .bat


Dumping info from = GP104.rom


Found Nvidia IFR header before ROM start, size 0xA00

ID of IFR header = 3842-6288

ID of ROM file = 10DE-1B80



Extracting with UEFIRomExtract by AndyV


Found compressed EFI ROM start at 0x50
Input size: 69552, Output size: 133728, Scratch size: 13360

---------------------------------------------------------------


Extracting with Python…


Nvidia GOP 0x30002 Variant 0x0000000000000007 = GP1xx

Dated: Apr 1 2016 Changelist 20605201

Most likely signed by: Microsoft Corporation UEFI CA 2011

Machine Code = x64

Checksum CRC32 = 1C3CE4F5

---------------------------------------------------------------


Processing with Python…
*************************

Latest available GOP is 0x30005


Do you want to update GOP to 0x30005? Y for yes or N for no: Y

EFI is NOT last image!

Fixing ID, last-image-bit and checksum for EFI image.


File "GP104_updGOP.rom" with updated GOP 0x30005 was written!


---------------------------------------------------------------


Press any key to exit…


Updated ROM:

GP104_updGOP.rom

CRC32: 124DAFE4
MD5: FF1F6480A9BE38654EECC707200C485A
SHA-1: FC37373F306D30426BF1E254EC3309D4190A47D7


Dumping info from = GP104_updGOP.rom



NVIDIA Firmware Update Utility (Version 5.292.0)
Simplified Version For OEM Only

IFR Data Size : 2172 bytes
IFR CRC32 : 231B2EDF
IFR Image Size : 2560 bytes
IFR Image CRC32 : F8C91C3E
IFR Subsystem ID : 3842-6288
Image Size : 251904 bytes
Version : 86.04.17.00.80
~CRC32 : CA8264C4
Image Hash : 3D04421C17A964EDBB41280C7232001F
OEM String : NVIDIA
Vendor Name : NVIDIA Corporation
Product Name : GP104 Board
Product Revision : Chip Rev
Device Name(s) : Graphics Device
Board ID : ED06
PCI ID : 10DE-1B80
Subsystem ID : 3842-6288
Hierarchy ID : Normal Board
Chip SKU : 400-0
Project : G413-0000
CDP : N/A
Build Date : 05/09/16
Modification Date : 07/07/16
Build GUID : 00000000000000000000000000000000
UEFI Support : Yes
UEFI Version : 0x30005 (Sep 12 2016 @ 21147289 )
UEFI Variant Id : 0x0000000000000007 ( GP1xx )
UEFI Signer(s) : Microsoft Corporation UEFI CA 2011
InfoROM Version : G001.0000.01.03
GPU Mode : N/A
Sign-On Message : GP104 PG413 SKU 0 VGA BIOS




Press any key to exit…


All files are attached!

GP104.zip (297 KB)

GP106.zip (300 KB)

whats the reason for updating GOP in a new 1060 or 1080 card?

Any idea why many new graphic cards like the 1060 do not work on a lot of Intel 6 series MB with old bios/uefi version?
Are there any 10 series GPUs without legacy VBIOS?

Capture.PNG

Nvidia GOP GP1xx 0x30005_compr.rar (65.9 KB)

I have successfully updated gop asus gtx660 from 2012 to 2015 thank you|addpics|dh4-1-ac88.png,dh4-2-50d9.png|/addpics|

Hi Lordkag et al,

I am trying to update a GTX 460 (GF104), I’m guessing this is supported due to a GOP being labelled GF10x.

I used GopUpd to add the GOP to my firmware, however when using the firmware with QEMU & OVMF (and the romfile option) the system doesn’t display anything and one core is maxed out.

If possible could you confirm if the GTX 460 is supported by GopUpd, and if so, if the attached firmware is valid.

GF104_updGOP.zip (104 KB)

If anyone needs it, I’ve updated GOP Updater including latest GOP modules.

GOP_Updater_1.9.6.rar (5.14 MB)

@jholder

I’ve updated both GTX460 bios (1024 and 768 Mb version). Try the right one for your graphic card.

GTX460.rar (127 KB)

1 Like

@ LordKag, This is the second time I use your TOOL and thanks for that. I went ahead and update the VBIOS from my EVGA GTX 980Ti Hyb model, but I think there were a difference in size, I don’t know I just point out the picture w/ a red lines so you can check upon it and let me know if everything its fine. This vBios at first was dump using GPU-z and use it to MOD its clockspeed so this time around I did use NVFlash to avoid the patting but since it was dump at first pulled from the card my guess is that the patting was increase when dump the first time use, you can correct me if I’m wrong.

Let me know if its a go to FLASH, TIA.

EDITED: An update from my own work, thank again LORDKAG. I went ahead and tell my self: “I’m not afraid, Fear I leave it hidden in the drawer”. And flash the updateGOP vBios in which already was Modded w/ a OC settings and everything so far is like it suppose to, silky smooth. But I did use the NVFlash tool from one of this posted and I was having problem w/ the CERTIFICATE check, so I went ahead and use a NVFlash Win10 Tool that found and bingo that one did the trick. I’m going to uploaded for anyone else benefit.

GOPupdate-2.JPG

CSR-Compare.JPG

NvflashMBT.zip (1.76 MB)

Whoever use and download the file that I posted its from the same site that I got the file from, JOEDIRT. Also Windows 10 users use the folder that said Win10 and that one is the one that I refer that did the trick on me, cause I’m using Windows 10. So the other one I didn’t test it.