1. Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

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

Discussion in 'NVIDIA' started by incognitus, May 28, 2014.

  1. incognitus

    Joined:
    Dec 13, 2010
    Messages:
    4 (0.00/day)
    Thanks Received:
    0
    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):

    [​IMG]

    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: May 28, 2014
  2. incognitus

    Joined:
    Dec 13, 2010
    Messages:
    4 (0.00/day)
    Thanks Received:
    0
    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.
  3. Solaris17

    Solaris17 Creator Solaris Utility DVD

    Joined:
    Aug 16, 2005
    Messages:
    17,083 (5.23/day)
    Thanks Received:
    3,511
    Location:
    Florida
    do these mismatches happen when doing dumps from nvflash and then GPUz at the next reboot?
  4. incognitus

    Joined:
    Dec 13, 2010
    Messages:
    4 (0.00/day)
    Thanks Received:
    0
    ).
    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!

Currently Active Users Viewing This Thread: 1 (0 members and 1 guest)

Share This Page