AMD and Nvidia GOP update (No requests, DIY)

The tool cant override/downgrade the GOP, find an older vbios for your gpu model, with a lower GOP version in it.

You need the 1.69 MagicGOP, do please note that this so called “Magic Gop” is not always a solution for fixing the UEFI boot/CSM off, on all RX series models/brands around…

1 Like

Hello guys.
I tried the tool to update GOP on my MSI GTX 1070 Gaming X.
But unfortunately the updated FW bricked my card (bios refused to boot up with it).
Luckily I was able to recover the GPU by inserting it into second PCI-E and booting with another (AMD) card.

I add archive with original, original updated using this tool, and original updated using official nVidia GOP update tool.
Maybe it will help you to find the problem and improve your tool :slight_smile:
MSI.GTX1070.8192.161024.zip (460.2 KB)

@Benik3
I’m using the same updated GOP 0x30013 ( x64 ) on an MSI GTX 1060 AERO ITX OC 6Gb… no problems at all.

EDIT:

Well i dont know if you’re aware of it, but this GOP driver is only used by the EFI system bios upon boot and has no impact on loaded OS or drivers.
Usually we should update the EFI GOP to solve incompatibility issues when outputting to display devices, other than that has no impact on normal OS loaded.

Weird. I tested the vbios 2x.
PC even didn’t boot into MB bios and VGA error LED on MB was on…

I have a Zotac GT 210 card.
I have dumped the bios using GPU-Z and it was 63k in size.
I have applied the GOP update script to it but it made the rom file increase to 123k
When I try to flash the rom file with nvflash, I get the error “ROM image too large for EEPROM” and the flash aborts.

Same here.
You need to solder EEPROM chip that has at least 128KB of memory or more.
I used what i had, which is ZB25D40 which has 512KB.
Use cheap USB programmer for 25 series SPI EEPROM like CH431a to flash modded bios to new EEPROM chip, then solder it instead original.
Tested and succesfully working.

1 Like

A post was split to a new topic: MSI RX580 8Gb Armor OC vbios to restore

Hey folks !!
Sapphire HD 5870 Eyefinity 6 - For the life of me i can’t locate a rom file with GOP nor can i make one with GOP_Update (microcode / GOP update makes file size either too small or too large) needs to be 128k.
Can anyone help me out here?
Cypress.zip (46.0 KB)

Anyone ?

You’re funny…

Anyone ?

Is it possible to enable UEFI in the BIOS of the GTS 450?

Doubt it, due to most size of ROM ICs being 64Kb, if you hava model with 128 you can try it (GF10x) as long as you know how to recover.
There’s also some vbios on TPU used on those fake 1050 Ti (GTS 450), that claims UEFI support.

EDIT:

No and never can be. Have you at least checked your IC model and rom size… it could be a wasting time search for nothing, if you have a standard IC unless soldered a new bigger IC or if the rom even likes your pcb…
Nothing more to add, over_n_out.

Yes, 64KB.
Where can I find the BIOS for the fake GTS 450? I would like to try to use it. Is he on 64KB?

I have a chip on 64KB.
Maybe it is possible to replace the chip with 128KB? How to do this and will there be a result?

Hi guys. It’s been a while. I would like to know, if there are some changes in GOP updater. Is there any new version besides GOP_Updater_v1.9.6.5.k_mod_v0.5.2 ? Is there any chance that I can update GOP driver on RTX 2080Ti using this tool or is it still only possible manually? Please, direct me guys to the way of how to update the GOP driver to the newest possible version on RTX 2080Ti Founder Edition.

Sill works for TUxxx (5001F), no further releases of the tool exists for now…
Another NVidia tool/updater here:
GOP Update and Extraction Tool (NVIDIA Only) - BIOS/UEFI Modding / BIOS Modding Guides and Problems - Win-Raid Forum (level1techs.com)

1 Like

Thanks. I’ve found the second tool just after asking. It Works. The first one throws back some errors. So I’m not sure it works properly with Turing GPU’s.

Gave it a shot with v0.4.8. It identifies that the file will end up too large (over 128KB) if using the latest GOP and keeping the identified microcode block near the end. However, it provides an option to use an older, smaller GOP instead that results in a file under 128KB even with the microcode maintained.

I did both, but of course the “option A” file (using the newer GOP and retaining the microcode) is over 128KB and so can’t be used as it won’t all fit.

However, the “option B” file using the older, smaller GOP is just 121KB, and I would guess it should work fine.

Cypress_w_GOP.zip (266.7 KB)

Don’t be concerned that the modded file isn’t exactly 128KB on the nose. GPU-Z and other tools that dump the rom from a card are exhaustive and copy out the entire contents of the flash chip regardless of the data, but there’s nearly always some wasted space that’s not actually storing anything.

If you open the unmodified cypress.rom in a hex editor, you can see that a huge chunk of the end, from 0x1e1e8 through 0x1ffff (7KB) is just padding consisting entirely of “FF”.

GOPupd just truncates any leftover padding from the end of the modified file before saving it (the “Removing unnecessary end padding.” message)

I had similar worries at first back when I used this tool to add a GOP to a Cedar-based HD5450 rom. The “stock” file GPU-Z dumped was exactly 128KB, while the modified one with the GOP added was only 116KB. After comparing the files and seeing that it was just a padding difference, I flashed it and it worked absolutely fine.

Hi there! I’ve been trying to boot into full UEFI but it seems that my vbios gop was not compatible with full UEFI. I’ve been using two vbios provided by TPU (I have a rx580 sapphire dual bios), and both had a 1.6x GOP version. I updeted their GOP with the tool provided by @Ruin here, but it only updates the GOP version to 1.70. It doesnt work and still cant enter into full UEFI, and the Mobo BIOS shows this:

VBIOS FW Version = 0
GOP Driver Version = AMD GOP X64 Release Driver Rev.2.18.0.17.10

Idk if it means that the VBIOS GOP needs to be that version, but if it means that, there is a way to update it? since with the tool I can only update it to 1.70. Screenshot of the GOP update:

Is it possible to add GOP to the legacy BIOS of an old graphics card e.g. NVIDIA GeForce 6200?

I want to use the card in QEMU virt-manager with UEFI64 OVMF_CODE-pure-efi.fd bios

Now I use AMD 6450 card which doesn’t have GOP but in machine configuration I use firmware from similar AMD 7450 card (legacy+GOP) and the card works :smile:

virsh edit xp

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
...

    <loader readonly='yes' type='pflash'>/usr/share/ovmf-x64/2016/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/var/lib/libvirt/qemu/nvram/xp.fd</nvram>

...

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
      </source>
      <rom file='/root/Downloads/7450.bin'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </hostdev>

...

  <qemu:commandline>
    <qemu:arg value='-set'/>
    <qemu:arg value='device.hostdev0.x-vga=on'/>
  </qemu:commandline>

7450.bin is dumped from AMD HD7450 PCIe card and have PCI VEN 1002 DEV 677B but this works with AMD 6450 PCI VEN 1002 DEV 6779

Maybe I need use efirom.exe to build PCI 3.0 OptionRom?

uefiromextract nv_gop_GF10x.efirom GF10x.efi
efirom -f 0x10DE -i 0x0161 -ec GF10x.efi -l 0x030000 -b 6200.rom -o 6200_GOP.rom

or PCI 2.3 OptionRom

efirom -f 0x10DE -i 0x0161 -ec GF10x.efi -l 0x030000 -b 6200.rom -p -o 6200_GOP.rom

or use another efirom file - GK1xx, GM1xx, GP1xx ?
efirom build OK but virt-manager stuck :frowning_face:

efirom -d 6200_GOP.rom
Image 1 -- Offset 0x0
  ROM header contents
    Signature              0xAA55
    PCIR offset            0x001C
    Signature               PCIR
    Vendor ID               0x10DE
    Device ID               0x0161
    Length                  0x0018
    Revision                0x0000
    DeviceListOffset        0x00
    Class Code              0x030000
    Image size              0xEC00
    Code revision:          0x0000
    MaxRuntimeImageLength   0x00
    ConfigUtilityCodeHeaderOffset 0xEA96
    DMTFCLPEntryPointOffset 0x00
    Indicator               0x00
    Code type               0x03   (EFI image)
  EFI ROM header contents
    EFI Signature          0x0EF1
    Compression Type       0x0001 (compressed)
    Machine type           0x8664 (unknown)
    Subsystem              0x000B (EFI boot service driver)
    EFI image offset       0x0034 (@0x34)
Image 2 -- Offset 0xEC00
  ROM header contents
    Signature              0xAA55
    PCIR offset            0x0104
    Signature               PCIR
    Vendor ID               0x10DE
    Device ID               0x0161
    Length                  0x0018
    Revision                0x0000
    DeviceListOffset        0x00
    Class Code              0x030000
    Image size              0xF600
    Code revision:          0x0001
    MaxRuntimeImageLength   0x00
    ConfigUtilityCodeHeaderOffset 0x584E
    DMTFCLPEntryPointOffset 0x3236
    Indicator               0x80   (last image)
    Code type               0x00