AMD and Nvidia GOP update (No requests, DIY)

@isooox - Thanks, yes, sorry, that is 64KB chip, only way past this is to replace that chip with 128KB chip instead
It’s easy to do, if you can solder.

@Lost_N_BIOS Hello, I have a small question. Considering my post on the previous page, is it fairly safe to flash the that new bios on my GPU (with nvflash TU116_new.rom -6)? The post has a diff between the two, stock and updated and outputs of verify and compare commands. I want to know because the hang-on-reboot issue is driving me insane and I can’t return my GPU in the middle of doing my project…

@trax7 - Sorry, I can’t answer that, I am not a Nvidia user so I don’t have any clue about any of that. @Sylar76 will have to continue helping you, and or answer about this etc.
I can say, if you have secondary card to recover with, it’s safe to flash any BIOS, because if it bricks, you can always boot to another card as first card, then reflash original dump to the bricked card (or any other known working vBIOS)

@trax7 Try it with the same tips provided by @Lost_N_BIOS .





I tried flashing it with nvflash64 -i0 -6 TU116_updGOP2.rom --log output.log and it failed at 64% with the following error, log attached.

EDIT: EEPROM write protection is off, of course.

output2.txt (16.9 KB)

@trax7

Try this patched version of NVFlash in order to flash modded bios on RTX cards.

nvflash64_patched_5.590.0.zip (2.91 MB)

Thank you! We have progress! Here are logs from the flash (still failed due to certificate mismatch) and from --compare and --verify. I am getting a lot more passes than before. Flash logs attached too.

verify.PNG

compare.PNG

output3.txt (16.9 KB)

Hi and thanks for the tool.

I have followed the instructions:
Created a folder c:\0 and extracted all files into it. Saved my .rom from GPU-Z and droped it into GOPupd.bat.

I got the following screen (attached).

Card is an Asus ROG Vega 64.

Many thanks!

Capture.PNG

Vega.zip (135 KB)

I have installed Python and the previous error was resolved.

Reporting the message as instructed.

Many thanks!

Vega.zip (135 KB)

Capture3.PNG

************************* GOPupd 1.9.6.5


Update EFI GOP


Drop VBIOS file on this .bat


File Not Found
Using python from C:\Users<user>\AppData\Local\Programs\Python\Python38-32\python.exe

Dumping info from = 218960.rom


ID of ROM file = 1002-67DF



Extracting with UEFIRomExtract by AndyV


Found compressed EFI ROM start at 0x5c
Input size: 70052, Output size: 70848, Scratch size: 13360

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


Extracting with Python…



EFI ROM is present, but is not standard GOP type.

EFI image is NOT signed!

Machine Code = x64

Checksum CRC32 = 742357B1

PE Checksum = 00 (Should be 11F3B)

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


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

Not GOP or GOP is not common type! Please report it!


Reporting new GOP :
https://www.techpowerup.com/vgabios/218960/218960

Hi, I have a Sony Vaio VPCYB35AN which I use for my studies or really light browsing, it has AMD E-450 APU I believe which has the ATI HD 6320 and I am currently using CLOVER to emulate UEFI, I have tried using the

1
 
PatchVBios
 
in clover to get full resolution support, well it worked for another laptop which has a dedicated 7670M but it didn't work for this, and I found about GOPUpdater, so I checked my device ID and I'm using manjaro
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 

sudo lspci -v
[sudo] password for sungold:
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Wrestler [Radeon HD 6320] (prog-if 00 [VGA controller])
Subsystem: Sony Corporation Device 9082
Flags: bus master, fast devsel, latency 0, IRQ 18
Memory at 80000000 (32-bit, prefetchable) [size=256M]
I/O ports at 3000 [size=256]
Memory at 90200000 (32-bit, non-prefetchable) [size=256K]
Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
Capabilities: [50] Power Management version 3
Capabilities: [58] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
Kernel driver in use: radeon
Kernel modules: radeon
 

 

So my device ID is 9082 which I believe is different from the ID used for reference 6320 I found [insanelymac.com/forum/topic/299614-asus-eah6450-video-bios-uefi-gop-upgrade-and-gop-uefi-binary-in-efi-for-many-ati-cards/?do=findComment&comment=2042212]here[/UR].
So I should try GOPUpdater or first do I have to modify my original vbios with my reference device ID. I have attached my vbios dump which is readable in a hex editor.

6320_vbios.zip (36.4 KB)


Hi there and thank you very much for providing this tool and the GOPs :slight_smile:

I am currently trying to get my Tornado F5 (MSI barebone, typically named 16L1) and its 1080 GTX updated to a slightly more recent GOP.
The current GOP is 0x30002.

The tool does provide some lines that make me hesitate, which is why I would appreciate it if someone could help me out.
I have attached (zip file, compressed with 7zip) the supposedly GOP-updated VBIOS as well as the initial VBIOS.
I have been running this VBIOS for some time now without errors.

I did try flashing the "nv_gop_GP1xx.efirom" manually via NVFLASH -u (before and after adjusting the device id with a hex editor) but I am only getting this message in return:



Thank you very much in advance for any help or hints :slight_smile:

VBIOS.zip (213 KB)

GOPUpd v1.9.6.5.k mod v0.4.1 beta

changelog:
[093020] v0.4.1 beta
built on: GOPUpd_v1.9.6.5.k [Sylar76]
- Added GOP: AMD 2.13.0.0.0 (THX to clackersx & Sylar76)
- Fixed: minor bugs
- Updated: NVFlash to v5.660.0 64bit (THX to Sylar76)

special thanks to Sylar76 for modifying the GOP: AMD 2.13.0.0.0 file!

>Download<


GOPUpd v1.9.6.5.j mod v0.4 beta

changelog:
[092820] v0.4
built on: GOPUpd_v1.9.6.5.j [Sylar76]
- Added: NVIDIA Ampere Support (THX to Sylar76)
- Changed: Compiler - Python v3.7.9
- Changed: to 64bit engine
- Updated: NVFlash to v5.620.0



Important:
Not yet tested on Ampere.
Let us share your experiences!


beta testing by Sylar76 & clackersx
Many thanks to Sylar76 & clackersx for his support!

Unsure if useful. Extracted from a motherboard bios. MSI X570 ACE 7C35v1C3(Beta version). Perhaps this is a direct link to bios file.
AMD GOP X64 Release Driver Rev.2.13.0.0.0.Jul 13 2020.23:23:37

I can’t figure out a way to try it out on my 5700XT Nitro+, I have included a copy of the rom I currently use if you wanted to modify for me to be a tester before you roll out a build with it included, would rather brick my own stuff than somebody else’s (plus I have bios switch so should be fine to recover anyway)

AMD GOP X64 Release Driver Rev.2.13.0.0.0.zip (42 KB)

PIC.PNG

MY5700XT.zip (195 KB)

@clackersx

Perfect!!!
I’m going to provide a beta for testing today.
And send you the link.

@clackersx

This is the finished Bos file with the GOP update …

MY5700XT_updGOP.zip (202 KB)

@Ruin as expected, worked perfectly. No problems at all, bios also shows gop version correctly (has the ability to show installed GPU gop information)
Thank you! I would say it is safe to use.

@Sylar76 I solved the issue with my GPU and mobo combo. First, a small refresher, the issue was that on reboot (reboot only, cold boot is fine) in UEFI mode, regardless of OS, the PC would hang/freeze on the UEFI logo. In BIOS CSM mode this doesn’t happen as the UEFI GOP driver is never loaded.
Specs: ASUS Sabertooth 990FX R2.0 and NVIDIA 1650 Super
This is an issue with the motherboard BIOS and GPU UEFI driver combo, however, the one responsible is more likely the motherboard BIOS. A new GOP driver might have solved it or might not, I don’t know as I never got around to updating successfully with a custom VBIOS from here.

SOLUTION:
Enable HPET in BIOS… Yes, that’s it. An old timer chip on the motherboard that no OS uses any more since Windows 7-8. Just enabling it in BIOS > Advanced > Southbridge.
Why something from the Southbridge, let alone this impact the GPU, I do not know. The GPU is on PCI-E which is directly wired to the CPU through the Northbridge.

I guess the BIOS chip being connected to the Southbridge impacts this or maybe some synchronization somewhere fails without this legacy timer. Rn I don’t have the time to look into it, but maybe someone that sees this post will and I wish them good luck in finding the root of the issue.

After trying to upgrade a motherboard from a Biostar B350GT5 to a MSI B550 Tomahawk, I’m greeted on the first boot by a screen telling me it only supports graphics cards with GOP. Which I’m pretty sure is the card’s fault, as when I tried to switch from legacy to UEFI for the video card boot it didn’t work. 8 beep for video failure and no display, though it did boot in Linux fine.

Look for a new VBIOS for the card, an XFX RX 560 P2SFG5, but XFX doesn’t seem to provide any VBIOSes at all. So I’ll have to try to fix the GOP.

I’m running Linux, so gopupd and the tools in this thread aren’t going to work as is.

First step is to get the vbios. I turns out this isn’t that hard. The kernel amdgpu DRI driver has a bunch of built in debug features, and one lets the vbios be downloaded. It shows up in debugfs as /sys/kernel/debug/dri/0/amdgpu_vbios. But it’s only 100kB, hmm…

Examine the file, and it has a legacy image at the start and a GOP image at 0xea00. I few changes to GOPupd.py to change the file path separator from ‘\\’ to ‘/’ and the extract works fine on Linux fine to decode the ROM headers and pull out the EFI image. But now the EFIROM needs to be decompressed.

The windows executable to extract the data from the compressed ROM is of course useless to me. However, there is a python package on pipy that has two of the UEFI compression algorithms. Apparently they couldn’t use a standard one like zlib or lzma. So I added the ability into GOPupd.py to decompress the ROM itself. This means it doesn’t need the two stage process driven by the batch file or the extra executable.

The card has the 2.0.0.0.0 GOP, and this GOP doesn’t list 1002-67FF RX 560 BAFFIN as supported. Seems like maybe XFX didn’t test their UEFI BIOS at all? It’s not listed in any of the 2.x GOPs. But is in the 1.69.0.15.50.

Here’s where GOPupd logic is little weird. It asks if I want to update to the newest 2.x GOP. I don’t, since it doesn’t support RX 560, but I’ve got to say yes anyway otherwise it stops. Then it tells me my card isn’t in the list and would I like 1.57.0.0.0 instead. I don’t want that either, but need to say yes again. Now I’ve got a new VBIOS with 1.57.0.0.0. Then run GOPupd.py on this new VBIOS and it asks if I’d like to update to 1.69.0.15.50. And now I have the VBIOS I want. Looks like the logic doesn’t let you go from a 2.x to 1.69 directly.

After a little digging, I find that one can get the amdvbflash tool for Linux. I make another backup of my VBIOS with this, and now it’s 256kB. But the first 100kB is exactly the same as what I’ve already used. Flash the new VBIOS, reboot, and hope for the best.

And it doesn’t happen. I figured since it booted fine in legacy mode, even if the GOP didn’t work, I could still reset the bios settings and boot legacy. But nope, won’t even post. Boots ok without the card installed. Also boots ok if I don’t connect the extra power cable for the card, but the card isn’t detected.

So I try booting without the card power connected, login remotely via ssh, and then connect the power and trigger a PCI bus rescan. But no luck. Maybe adding PCIe devices after powerup doesn’t work on B350 chipsets or likely the driver is missing the logic to trigger a PCI-e link retrain because no one does PCI-e hotplug on consumer motherboards.

I’ve got an old PCI graphics card (and a pile of AGP cards, they’ll be valuable antiques one day!) let me try that. Nope, system still won’t boot with the RX 560 installed. PCI card doesn’t work either. It’s keyed dual voltage, but I wonder…

Can I buy a cheap PCI-e card anywhere locally… No, just expensive gaming cards.

But them I remember, I’ve got a computer at work! I forgot there was this office I used to go into everyday. Now where did I put my badge?

Copy the 256 kB firmware file off my computer and head in to the office. Pop the card into my workstation (253 days uptime, I could have made it year…), which thankfully has both an 8pin and 6pin power cable so I run two cards, and it boots! Reflash the XFX RX 560, put it back in my home computer, and it works again!

Enough of this I think. Maybe a different B550 board will support legacy video. But then it occurs to me that I put the new GOP into the 100kB VBIOS file (which did end with the complete GOP ROM, it wasn’t cut off) and not into the 256 kB one. I take a look at the larger dump file and it’s mostly empty after 100 Kb, but not entirely. There’s a section with data in it. Maybe that data was important?

So let’s try again. 1.69 GOP into firmware. Extra data is preserved. Flash new VBIOS. Reboot. And… success! It boots. Still in legacy mode, but at least it’s not dead. Try UEFI mode and that works too. Display is corrupted as it first POSTs but the MB BIOS works ok after that.

Reinstall the MSI B550 board and now it works too. Success! Now I get started retweaking all my memory timings for the new board.

So things learned. Maybe google will index this so the next guy can find it:
XFX RX560 cards come with a broken GOP, but it can be fixed.
GOPupd.py works on Linux with minor editing.
AMD VBIOS can be dumped and flashed in Linux with amdvbflash.
The amdgpu_vbios file in debugfs is NOT the complete VBIOS! It’s just the parts contained inside a PCIR. There might be extra data that is very important. Use amdvbflash to dump the whole bios.

Thanks @lordkag for making GOPupd python and not hiding the source. Something that’s a pain about OC on Linux is that there are so many good OC tools, that are free, but they are always Windows executables only with no source. A ryzen memory timing tool would be about 99% compatible with Linux and there’s plenty of people who could port it, but no source so it doesn’t happen.

XFX RX560 cards have a bad bios.
I reflash my XFX RX460 4Gb to Saphire Radeon RX560 with GOP - it’s good for me in all my system: Linux, Win10 and hackintosh (Mojave) :slight_smile:

I’ve got the 2GB model. I did find once, thought I can’t find it again, some forums posts about using Sapphire BIOS on XFX cards. Seemed like the results were it can work if you use the right VBIOS, or brick the card if you use the wrong one. XFX has six different RX 560 cards, so I didn’t like my odds of getting the right vbios. Since the GOP isn’t card specific for AMD, I figured that would be safer, and wouldn’t possibly change the memory timing.