EEPROM: fix checksum for FT230X series
authorYegor Yefremov <yegorslists@googlemail.com>
Wed, 9 Aug 2023 12:28:15 +0000 (14:28 +0200)
committerThomas Jarosch <thomas.jarosch@intra2net.com>
Tue, 29 Aug 2023 13:11:08 +0000 (15:11 +0200)
ftdi_eeprom_build() computes the checksum via reading the "Factory
Configuration Data" region. ftdi_eeprom_decode() computes the checksum
only on the EEPROM buffer. Hence, both checksums differ.

Add the info from "Factory Configuration Data" to the EEPROM buffer.

src/ftdi.c

index 3a51b26..cf53e04 100644 (file)
@@ -3503,6 +3503,8 @@ int ftdi_eeprom_build(struct ftdi_context *ftdi)
                 i = 0x50;
             }
             value = data;
+            output[i * 2] = data;
+            output[(i * 2) + 1] = data >> 8;
         }
         else {
             value = output[i*2];