AMD and Nvidia GOP update (No requests, DIY)

@conscript - seems I can’t figure this out again either, I’ve done it in the past, so at a loss as to why I can’t today Please wait for lordkag to explain and help

@lordkag - can you explain this more for 5xxx and 6xxx cards, I can’t get it working again, I tried with 1.9.4 and 1.9.8b - AMD and Nvidia GOP update (No requests, DIY) (17)
EFI GOP is added but file size does not remain 64kb anymore I’ve used this in the past with success, not sure what I’m missing now. I tested with image 1 and 2, correct version is inserted (verified after) same outcome = output is 100+KB

I replaced only amd_gop.efirom with the above images, and then I also tested deleting the second file in GOP folder - amd_gop_1.57.0.0.0.efirom
And I tested with both the image 1 file and AMD GOP 1.48.0.15.33_unsigned_F0B1F439.efirom in the GOP folder, all same outcome either way

@Rickylee
As I said before, this resolution bug is in the GOP itself, you will have to wait for a newer GOP or revert to older one. I can’t patch (every) AMD’s mistake.

@mjw
The first message is harmless, it is the result of trying to find the path to python executable in different standard locations and default to GOPupd.exe when no python installation is found. Does it also happen with latest 1.9.6.5? The others are just informative and not the result of an error, despite their colour. If you select the right option for your card - which is 4 - you should have no problem. The only concern would be the chip size, but that will be NVFlash business to determine.

@conscript and @Lost_N_BIOS
There is no way to bypass that limitation. The GOP is a separate image and it depends on the legacy image for the ATOM tables, at least. You can’t have just the EFI image. What I offered was a solution for 128KB images with microcode located at 0x1A000, where the EFI image would have overlapped. I can only think of adding the resulting larger image as a payload to a bootloader or inside the main BIOS/UEFI firmware, with no guarantee that it will actually work.

Released Version 1.9.6.5:
- Fixed AMD with microcode, offer older GOP when size is an issue. There are two options: A for using the latest GOP and relocating the microcode, resulting in a larger image which can only be added as a payload or inside the main UEFI Firmware - if it even works; option B for using an older GOP and keeping the microcode at the same location and keeping the image size bellow 128KB - the best solution.

Thanks @lordkag - it was so long ago when I last did that, I didn’t realize back then it was a 128kb limit we were tryingmaintain, now that you mention that again it’s obvious maintaining 64kb will be impossible with both orom and EFI.
@conscript - can you solder? If yes, you can desolder current chip and then solder in 128kb chip, but you also need programmer (CH341A - $2.58) and SOIC8 test clip cable (or one of these @ $1.24) to program chip before you solder it back in (Then you can use the larger image)

Thanks @Lost_N_BIOS , Yes, I can solder so maybe I’ll try that later. For now I think I’ll just replace the card.

New card will be quicker, since you’d probably have to order chip from China otherwise really over pay to purchase one locally.
If you purchase those items, it can save you from a bad flash or difficult mod BIOS flash (BIOS trying to say NO) later on, if you do end up ordering for future use, get an SOIC8 Test clip cable too for soldered on motherboard BIOS so you don’t have to desolder those.

@lordkag



My graphics card is an RTX 2070 GAMING Z 8G from MSI.
I tried to update UEFI v0x50006 to v0x50009.



After the update/restart:
The monitor sporadically went on and off after the update (no signal).
Partially come green artifacts.
The system became very unstable due to the update.

Have the old UEFI on it again.

Nevertheless, thank you for your great work!
I’m looking forward to the next version. :wink:

@Ruin
Sadly, I don’t see anything wrong on my part, you can compare the original and resulting image with a hex comparison tool. The EFI image has the same size and stays in the same position, the EFI driver has suffered only minor changes. Maybe they are doing some whole image signature check inside the hardware (PMU is responsible for this, if I recall correctly), in which case I will have to go deeper and compare every RTX image I can get from TPU database (around 99 files).
What is interesting is that NVFlash doesn’t complain about signature failure, which means only parts of the image are signed, as I suspected. I have done some reversing on the ISBN structure in the past, but haven’t found how to obtain those master hashes, yet. Maybe I should revisit these as well.

H!, @lordkag

I catch on https://www.station-drivers.com the latest bios version of the MSI 2080TI with the UEFI v0x50009. (original)
(For the MSI 2070 still no new Bios version.)

I compared the extracted UEFI version:
nv_gop_TU1xx.efirom (GOPUpd_v1.9.6.5) ≠ Nvidia GOP TU1xx 0x50009_compr.efirom (MSI_GTX2080Ti)

hex.png



In different comparisons, these two places always change.

Who would not be better I would use the UEFI 0x50009 from MSI?
Or has no impact on the finished .rom?

I have attached my bios files in original version (MSI_GTX2070.rar) as well as in modified version (MSI_GTX2070_MOD.rar).
And the new original Bios version of Msi 2080Ti with the new UEFI v0x50009. (MSI_GTX2080Ti.rar)

Maybe it will help…

MSI_GTX2070.rar (329 KB)

MSI_GTX2080Ti.rar (330 KB)

MSI_GTX2070_MOD.rar (329 KB)

I have ASUS STRIX GTX 1080 8GB.
Sorry, my english is very bad.

1. Used command line “nvflash64.exe --save myvgabios.rom” and received VGA BIOS image my videocard = “myvgabios.rom”:
Version: 86.04.17.00.E3
Build Date: 05/09/16
Modification Date: 06/30/16
UEFI Version: 0x30007
UEFI Variant ID: 0x0000000000000007 ( GP1xx )
UEFI Signer(s): Microsoft Corporation UEFI CA 2011
InfoROM Version: G001.0000.01.03

2. Open with browser www.techpowerup.com > DATABASES > VGA BIOS COLLECTION.
Search ASUS STRIX GTX 1080 8GB. Found two VGA BIOS images:
a) Asus.GTX1080.8192.160630.rom = 256512 bytes (86.04.17.00.E3) - Old, same as mine.
b) Asus.GTX1080.8192.171016.rom = 268800 bytes (86.04.60.00.BF) - Latest!

3. Used command line “GOPupd.bat Asus.GTX1080.8192.171016.rom” and received VGA BIOS image for update my videocard = “Asus.GTX1080.8192.171016_updGOP.rom” and rename to “latestvgabios.rom”:
Version: 86.04.60.00.BF
Build Date: 01/05/17
Modification Date: 10/16/17
UEFI Version: 0x3000E
UEFI Variant ID: 0x0000000000000007 ( GP1xx )
UEFI Signer(s): Microsoft Corporation UEFI CA 2011
InfoROM Version: G001.0000.01.04

4. Flash VGA BIOS image “latestvgabios.rom” to my videocard:
Used command line "nvflash --protectoff"
Used command line "nvflash64.exe latestvgabios.rom"
Already flashed, reboot…

5. All OK. Thanks for this thread!


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+.




1.) Wouldn’t it be enough, to simply remove the efi bootmgr, vgapnp.sys and vga.sys drivers from the Win7 installation image and then integrate manufacturer graphics drivers (Nvidia, AMD, Intel) instead? According to a source on reboot.pro, they are the only trouble-makers:

Install Windows 7 at UEFI Graphics Output Protocol (GOP) hardware

2.) Does such a "GOP driver" for the operating system exist or does only the GPU have to have one? In other words: do later Windows versions (8 and later) have or need an OS-side GOP driver and/or functions, or is it simply the absence of VGA functions (like described in 1.) ), that makes them work in pure UEFI environments?

If simply 1.) is the case, it would be VERY easy to get W7 to work without CSM…

AZ

Hi,

I dumped the BIOS of a HP OEM Radeon Pro WX 3100 with ATIFlash 2.84.

GOPUpd v1.9.6.5 reports that the GOP file in this BIOS is not present in the database.

Also, when I tried to update the GOP module, it says "Data after ROM and not part of EFI! Please report it!"

BIOS image is attached here. Would you please look into it? Thanks!

wx3100.zip (115 KB)

Hi @lordkag

I just want to second @JanCerny 's request for an option to strip out GOP. I have an alienware aurora R3 system that is no longer receiving BIOS updates. It hangs in POST (blank screen, no boot) with some hybrid BIOS GPUs. Others have reported (also here) the same issue.

I just bought an RX480 and cannot use it in that system due to this issue. It works fine in systems with no EFI at all, or in more recent machines. It’s just that some older machines with partial EFI support have been abandoned by their manufacturers. My system boots into Windows 10 via EFI mode, but it only works if the GPU uses a legacy BIOS with no EFI module. There are no options in the BIOS to force legacy mode.

Thanks for your awesome work on GOPUpd.

all the best,

drbob

PS EDIT: Looking at the BIOS for a card that does boot on my r3 system (an R9 270X) all that may be required is to mark the legacy vbios image at the last image (0x80). The R9270X has an EFI image on it but it is hidden from the motherboard in the aforementioned manner. The RX 480 however correctly marks the legacy images as “not last” and the EFI image as last with 0x80


Replying to my own post… doing the above fixed my issue. I manually edited the BIOS ROM of my RX 480 to set the last image indicator byte to 0x80 in the PCIR header of the first (legacy) vbios image in the ROM. I found this table helpful in identifying the correct byte to set (byte offset 0x15 from the start of the PCIR header), as I found the image @lordkag posted at the top of this thread a bit confusing.

The biggest hassle was finding out how to fix the BIOS checksum. I modified a 0xFF byte in the padding at the end of the legacy image to 0x7F (0xFF-0x80=7F), thereby compensating for the 0x80 I had added to the total, to make the checksum for the entire legacy image match that of the original. There is probably a better way to do this, but I couldn’t work out how the value at 0x21 related to the image checksum. On my RX480 the legacy image occupied offset 0x00 to 0xE5FF

After loading the modified image, my RX480 card no longer hangs at boot in my Alienware Aurora R3 and I can use it normally. Similar mods may well help others with poorly implemented EFI BIOS that can’t cope with the GOP image on a stock radeon card.

I was expecting the modification to trigger the AMD driver vbios signature checks and necessitate use of the AMD/ATI Pixel Clock Patcher driver patch, but with Radeon 18.12.3 at least, this was not necessary.

This is a bit of a tangent from the purpose of this thread I’ve created a new thread for any questions about what I did.

EDIT: Correct hex range example for legacy bios in my ROM, add link to new thread

@drbob : Did you try Polaris BIOS editor (just do small mod like +1 MHz on core)? This utility will damge AMD EFI signature and card will no longer boot up in UEFI mode. You will also need AMD/ATI Pixel Clock Patcher for patching drivers..


I answer this question in the thread I created about the mod to disable UEFI mode.

I have succesfully updated GOP in my Envy x360 notebook that mounts a Ryzen Mobile 2500U equipped with a 15DD Vega 8 Mobile. HP is not very good at updating their firmware, since they put out finally the F.19 update with a nice and less buggy GOP 2.2.0.0 but after that they came back with F.20 bios at the earlier 2.0.2.0 GOP, that is extremely buggy and works only with some driver versions, as the provided ancient 22.19.655.1, which has bugs at playing videos with Netflix and accelerated web browsing. That old GOP is the pain of this good computer.

I extracted the VBIOS using the UBU tool also found in this forum from the F.19 BIOS. A screen also shows the VBIOS version from UBU. From some reason, probably related to the LZMA compressed image, I wasn’t able to obtain a properly ROM containing both VBIOS and GOP togheter, however UBU and UEFITool_NE were able to properly extract VBIOS and GOP images separated.

I had to force lordkag’s python file to detect Vega, since by default if GOP is not provided it wouldn’t look in AMD Vega 2.4.0.0 listings. After that, it has succesfully flashed the last GOP (sorry the screenshot is not complete). After flash, I rebooted my laptop, that required a bit longer than usual (I was sh* in my pants) but after that I have the newer VBIOS along with the newest GOP.
Really thank you for this powerful tool.
Screenshots/VBIOSes:
https://drive.google.com/open?id=1mDcrec…YL3okqulE89p3AP

Hi, im new here. welcome everybody. very interesting. im working about one projekt - modification. and i thinking if could be anyone help me to find latest available UEFI ( GOP ) version for NVIDIA GTX 980M MXM from CLEVO? it is exactly GPU with G-SYNC and SLi Model. Thank you for all help.

Download latest BIOS for whatever model has that GPU @dzeusking then extract vBIOS - if you are unsure, link me to that BIOS and I can get it for you.

Seems odd that the Radeon VII BIOS doesn’t have a compressed EFI ROM w/ GOP image. I wonder what’s up with that? Or is it that I’m just too stupid to be able to find it?