• We've upgraded our forums. Please post any issues/requests in this thread.

Weird issue - BIOS changes between dumps - full hex analysis (Kepler/Titan)

Joined
Dec 13, 2010
Messages
4 (0.00/day)
Likes
0
#1
Hi guys,

I am struggling with a weird issue, and can't get my head around it. Basically, my VBIOS is constantly changing. My understanding is that once flashed, any BIOS dump should be identical to the flashed BIOS file and should not change at all. However, I am seeing that not only is the dumped BIOS file substantially different than the flashed file, but also there are ongoing changes between dumps taken subsequently afterwards.
I have posted this issue at Guru3d and Overclock.net but have so far not gotten much further. Maybe there are some experts here who have a deeper insight into the workings of nvflash/GPU-Z/nvidia BIOS and can help me out?

PROBLEM DETAILS:

Using nvfflash, a bios.rom file saved as a backup is different than the bios.rom file flashed immediately before that. Subsequent dumps continue to change.
I have stumbled across this when using nvflash --compare to check my flash, which showed the following log:

Code:
nvflash --compare backup.rom -L 1.txt

*** NVFLASH LOG FILE ***
Version 5.163


Command: compare
FindDevices:
Device:00:00:00=8086:0150:1043:84CA
Device:00:01:00=8086:0151:1043:84CA
Device:00:14:00=8086:1E31:1043:84CA
Device:00:16:00=8086:1E3A:1043:84CA
Device:00:19:00=8086:1503:1043:849C
Device:00:1A:00=8086:1E2D:1043:84CA
Device:00:1C:00=8086:1E10:1043:84CA
Device:00:1C:04=8086:1E18:1043:84CA
Device:00:1C:06=8086:1E1C:1043:84CA
Device:00:1C:07=8086:1E1E:1043:84CA
Device:00:1D:00=8086:1E26:1043:84CA
Device:00:1F:00=8086:1E44:1043:84CA
Device:00:1F:02=8086:2822:1043:84CA
Device:01:00:00=10DE:1005:3842:2791 GPU
Device:01:00:01=10DE:0E1A:3842:2791
Device:03:00:00=1B21:1042:1043:8488
Device:04:00:00=10B5:8608:10B5:8608
Device:05:01:00=10B5:8608:10B5:8608
Device:05:04:00=10B5:8608:10B5:8608
Device:05:05:00=10B5:8608:10B5:8608
Device:05:06:00=10B5:8608:10B5:8608
Device:05:07:00=10B5:8608:10B5:8608
Device:05:09:00=10B5:8608:10B5:8608
Device:08:00:00=1B21:0612:1043:84B7
Device:0C:00:00=1B21:0612:1043:84B7
Action: Compare ROM image.
Action: Identify EEPROM.
Atmel Serial EEPROM Identify.
Reported Manufacturer Code (JEDEC): C8
Reported Device Code (JEDEC): 4012
EEPROM ID (C8,4012) : GD GD25Q20 2.7-3.6V 2048Kx1S, page
Action: Read EEPROM image.
Reading EEPROM bytes.
Start: 0x00000000
Count: 262144
Read complete.
Current - Version:80.10.2C.00.90 ID:10DE:1005:3842:2791
GK110 Board - 20830010 (Normal Board)
Compare with - Version:80.10.2C.00.90 ID:10DE:1005:3842:2791
GK110 Board - 20830010 (Normal Board)
File size: 233984
Adapter size: 233984

ERROR: Mismatch at offset 0x00032004
Exit Code: 2
I have used the standard process of flashing / dumping:

Code:
nvflash --protectoff
nvflash -4 -5 -6 GK110.rom
nvflash --protecton (have tried with or without this step, no hex difference)
nvflash --save GK110(backup).rom
I have then found out that the bios.rom file continues to morph between subsequent dumps. The main changes are after or around HEX address 0x0003200, but there are sometimes smaller changes at other addresses.


Here is what a hex comparison (using BeyondCompare) shows (the red bars on the left hand side show the extend of changed code towards the end of the file):



The HEX compare analysis shows following stats:
Code:
216129 same byte(s)
17683 left orphan byte(s)
17683 right orphan byte(s)
172 difference byte(s)
Here's a full hex differences report (original ROM on the left side, dumped ROM on the right side):
https://www.dropbox.com/s/wgae4lmog3d98mn/GK110_HexCompare_Differences.txt

And here are two ROM files showing the difference files (one I have flashed and the dump I saved immediately afterwards) if you want to check for yourself:
https://www.dropbox.com/s/2z2mwaklt6zrr5c/ROMs.zip

- I have tested different nvflash versions (5.118, 5.127, 5.142), both under Windows and DOS, all with the same results.
- I have also tested skipping "--protectoff" ->"--protecton" during flashing, no difference.
- I have tested different BIOS files, modded and original, all with the same results.

Does anyone have an idea whats going on? Is it normal that the dumped BIOS is hex different when compared to the flashed one?

Is this a problem with my system/procedure or can anyone else confirm this behaviour?
Any help or insight appreciated!


incognitus
 
Last edited:
Joined
Dec 13, 2010
Messages
4 (0.00/day)
Likes
0
#2
Hmmm, 145 views and no answers. I was hoping this is a known issue and not unique to my setup...

It would be really *great* if someone with a Titan (or other Kepler based card) could help me out here. It just takes a few minutes:

1) Make a dump of your vBIOS using GPU-Z or nvflash
2) Binary- or hex compare the dump with the original bios (or the bios you flashed earlier)
2a) If you don't have the original vBIOS file, just make two dumps and compare them (with some time between the dumps)

You can use any file comparison tool for this - there's even one built into Windows (command prompt -> "fc /b file1 file2")

Thanks a lot!!

I.
 

Solaris17

Creator Solaris Utility DVD
Joined
Aug 16, 2005
Messages
19,270 (4.28/day)
Likes
6,077
Location
Florida
System Name Not named yet
Processor I5 7640x 5Ghz 24/7
Motherboard MSI x299 Tomahawk Arctic
Cooling Corsair H55
Memory 32GB Corsair DDR4 3000mhz
Video Card(s) Gigabyte 1080TI
Storage 2x Seagate 3TB Drives (RAID 0) 1x Seagate 256GB SSD 1x Adata 120GB SSD
Display(s) 3x AOC Q2577PWQ
Case Inwin 303 White (Thermaltake Ring 120mm Purple accent)
Audio Device(s) Onboard on Audio-Technica ATH-AG1
Power Supply Seasonic 1050W Snow
Mouse Roccat Tyon White
Keyboard Ducky Shine 6
Software Windows 10 x64 Pro
#3
do these mismatches happen when doing dumps from nvflash and then GPUz at the next reboot?
 
Joined
Dec 13, 2010
Messages
4 (0.00/day)
Likes
0
#4
).
do these mismatches happen when doing dumps from nvflash and then GPUz at the next reboot?
Hi Solaris17, sorry for the late reply, I was on vacation for a couple of weeks.

To answer your question: I have tested all combinations:

nvflash - (reboot)- nvflash
nvflash - (reboot)- gpuz
gpuz - (reboot)- gpuz
gpuz - (reboot) - nvflash

I have also used different versions of nvflash (from 5.163.0.1 all the way down to 5.118, the first version to support Kepler), and dumped at different stages (e.g. boot to dos, flash, dump immediately afterwards, compare).

Sometimes it takes a reboot and or some random activity (browsing etc.) before the dumps change, but sometimes it also happens if I make a dump immediately after flashing.

Could someone maybe try and make a dump (either with GPUZ or nvflash), reboot, and make another dump a few hours later and see if it has changed?

That would be awesome!