ftdi_eeprom: Add device release number support
authorRoman Lapin <lampus.lapin@gmail.com>
Sat, 9 May 2020 20:13:58 +0000 (23:13 +0300)
committerThomas Jarosch <thomas.jarosch@intra2net.com>
Thu, 14 May 2020 19:17:14 +0000 (21:17 +0200)
In process of firmware repairing of some FTDI-chip based device I have
found that I can't get binary identical EEPROM dumps from properly
working device and ftdi_eeprom --build_eeprom command because of
ftdi_eeprom does not support changing of device release number (byte
with addr 0x06).

[TJ: Keep old behavior if release_number is not set in the config file]

ftdi_eeprom/main.c

index d72f61c..7ba8d89 100644 (file)
@@ -223,6 +223,7 @@ int main(int argc, char *argv[])
     {
         CFG_INT("vendor_id", 0, 0),
         CFG_INT("product_id", 0, 0),
+        CFG_INT("release_number", -1, 0),
         CFG_BOOL("self_powered", cfg_true, 0),
         CFG_BOOL("remote_wakeup", cfg_true, 0),
         CFG_BOOL("in_is_isochronous", cfg_false, 0),
@@ -459,6 +460,10 @@ int main(int argc, char *argv[])
     eeprom_set_value(ftdi, VENDOR_ID, cfg_getint(cfg, "vendor_id"));
     eeprom_set_value(ftdi, PRODUCT_ID, cfg_getint(cfg, "product_id"));
 
+    if (cfg_getint(cfg, "release_number") != -1) {
+        eeprom_set_value(ftdi, RELEASE_NUMBER, cfg_getint(cfg, "release_number"));
+    }
+
     eeprom_set_value(ftdi, SELF_POWERED, cfg_getbool(cfg, "self_powered"));
     eeprom_set_value(ftdi, REMOTE_WAKEUP, cfg_getbool(cfg, "remote_wakeup"));
     eeprom_set_value(ftdi, MAX_POWER, cfg_getint(cfg, "max_power"));