Unbricking a Gigabyte GV-N970G1 GAMING-4GD
2020-07-10
This card has dual-BIOSes, meaning if one is borked (in my case, via an accidental incorrect flash), it can be fixed.
VBIOS’ are switched by changing the physical output. With only ONE monitor plugged in, try to boot off both the HDMI and DVI ports. Whichever one works is the good BIOS. Once booted, plug the monitor into the other and reflash.
Basically, to fix is to boot the computer using the good VBIOS, then flash the bad.
This was done on Ubuntu MATE 20.04.
Steps
-
Boot using the good BIOS.
Plug ONE monitor into the various ports and attempt boot. When one boots, the card is using the good BIOS.
-
Download nvflash and Gigabyte.GTX970.4096.150104.rom (mirror) (or the current “good” version on your card).
File SHA1 nvflash_5.414.0_linux.zip 68b5989f36615b5df5293046b2ad2f01702003c4 Gigabyte.GTX970.4096.150104.rom 9a79ed1ca8ac7290edb209083e3f7374282fbdc4 -
Stop the display manager and unload the nvidia modules.
This should be done via SSH from another machine, as the card will be switched to the bad bios soon.
1 2 3
# systemctl stop lightdm # rmmod nvidia_uvm nvidia_drm nvidia_modeset nvidia
If this fails for some reason, blacklist the modules in
/etc/modprobe.d/
and reboot. -
Make sure nvflash can see the card.
1 2 3 4 5 6
# ./nvflash_linux --list NVIDIA Firmware Update Utility (Version 5.414.0) Simplified Version For OEM Only NVIDIA display adapters present in system: <0> GeForce GTX 970 (10DE,13C2,1458,367A) H:--:NRM S:00,B:03,D:00,F:00
-
Compare the good bios against the downloaded one. If it mismatches, download the correct one and repeat. Even if you want to upgrade to a new version, DON’T. Restore the bad one first, then upgrade both of them.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# ./nvflash_linux --verify Gigabyte.GTX970.4096.150104.rom NVIDIA Firmware Update Utility (Version 5.414.0) Simplified Version For OEM Only Adapter: GeForce GTX 970 (10DE,13C2,1458,367A) H:--:NRM S:00,B:03,D:00,F:00 Identifying EEPROM... EEPROM ID (C8,4012) : GD GD25Q20 2.7-3.6V 2048Kx1S, page Reading adapter firmware image... Current - Version:84.04.36.00.2F ID:10DE:13C2:1458:367A GM204 Board (Normal Board) Compare with - Version:84.04.36.00.2F ID:10DE:13C2:1458:367A GM204 Board (Normal Board) File firmware image matches adapter firmware image.
-
Switch to the bad bios by plugging the ONE monitor into a non-working port and verify the bios mismatches.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# ./nvflash_linux --verify Gigabyte.GTX970.4096.150104.rom NVIDIA Firmware Update Utility (Version 5.414.0) Simplified Version For OEM Only Adapter: GeForce GTX 970 (10DE,13C2,1458,367A) H:--:NRM S:00,B:03,D:00,F:00 Identifying EEPROM... EEPROM ID (C8,4012) : GD GD25Q20 2.7-3.6V 2048Kx1S, page Reading adapter firmware image... Current - Version:84.04.28.00.4C ID:10DE:13C2:1458:367B GM204 Board (Normal Board) Compare with - Version:84.04.36.00.2F ID:10DE:13C2:1458:367A GM204 Board (Normal Board) ERROR: Mismatch at offset 0x00000004. Size diffs between file(179712) and adapter firmware (180224)
-
Flash the card.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
# ./nvflash_linux Gigabyte.GTX970.4096.150104.rom NVIDIA Firmware Update Utility (Version 5.414.0) Simplified Version For OEM Only Checking for matches between display adapter(s) and image(s)... Adapter: GeForce GTX 970 (10DE,13C2,1458,367A) H:--:NRM S:00,B:03,D:00,F:00 Current - Version:84.04.28.00.4C ID:10DE:13C2:1458:367B GM204 Board (Normal Board) Replace with - Version:84.04.36.00.2F ID:10DE:13C2:1458:367A GM204 Board (Normal Board) Update display adapter firmware? Press 'y' to confirm (any other key to abort): y Identifying EEPROM... EEPROM ID (C8,4012) : GD GD25Q20 2.7-3.6V 2048Kx1S, page Storing updated firmware image... ..................... Verifying update... Update successful. Firmware image has been updated from version 84.04.28.00.4C to 84.04.36.00.2F. A reboot is required for the update to take effect.
Reboot, and the card should be fixed.
Notes
To dump the nvflash version and EEPROM info:
|
|