Unfortunately I’m having a bit of trouble looking for an explanation as to why the values I used before are working. I’ve tried a couple of combination of masks, but they all result in the device being detected as 06C0 (GTX 480).
The combinations I’ve tried for AND mask 0:
11111111 00111011 11111100 01101111 works
11111111 11111111 11111100 01101111 fails
11111111 00110011 11111100 01101111 fails
11111111 00100011 11111100 01101111 fails
11111111 00011011 11111100 01101111 fails
11111111 00000011 11111100 01101111 fails
11111111 00000000 11111100 01101111 fails
I’m suspecting that there are two 32-bit values located at 0x68 and 0x6C that serve as some kind of checksum for the softstraps. These seem to change proportionally with the softstraps in different firmwares.
EDIT: You might as well save yourself the trouble and just use nvflash’s straps option to change the straps properly, instead of editing the straps in the firmware. You can still read out the strap values from your firmware though and probably use that as a guideline to do the modifications. As pointed out before, they’re all little endian.
Note: --straps (AND mask 0) (OR mask 0) (AND mask 1) (OR mask 1), and all masks should be below 0x7FFFFFFF
>nvflash --index=1 --straps 0x6FFC3BFF 0x10004400 0x7FF1FFFF 0x00020000
NVIDIA Firmware Update Utility (Version 5.95)
Adapter: GeForce GTX 480 (10DE,06C0,10DE,075F) H:--:NRM B:03,PCI,D:00,F:00
The display may go *BLANK* on and off for up to 10 seconds during access to the
EEPROM depending on your display adapter and output device.
Identifying EEPROM...
EEPROM ID (C2,2011) : MX MX25L1005 2.7-3.6V 1024Kx1S, page
Reading adapter firmware image...
Erasing EEPROM...
.
Storing updated firmware image...
Verifying update...
Update successful.
To verify, you can then download the firmware with nvflash (-b) and the straps should’ve been changed properly.