[flashrom] [PATCH] Chip definition for W29C512A/W29EE512

Urja Rannikko urjaman at gmail.com
Mon Mar 2 04:54:59 CET 2015


Mine was a Winbond W29EE512P-70 (PLCC32, 5V)
found in an RTL8169 network card.
I was about to backup the chip when i found out flashrom didnt know of it.

The ID for the chip was already in flashchips.h with the name W29C512A
and a note for "also W29EE512". I'm assuming they're compatible.

Attached are patch for the flashchips.c entry and a write log for 64k
random data (proving it is PREW by me as in the patch).
I also successfully wrote the original data back into the chip.




-- 
Urja Rannikko
-------------- next part --------------
flashrom v0.9.8-r1887 on Linux 3.14.26-lts (i586)
flashrom was built with libpci 3.1.7, GCC 4.4.4, little endian
Command line (6 args): ./flashrom -p serprog:dev=/dev/ttyUSB0:1500000 -w rand64K.bin -o write-W29EE512.txt
Calibrating delay loop... OS timer resolution is 4 usecs, 116M loops per second, 10 myus = 12 us, 100 myus = 103 us, 1000 myus = 999 us, 10000 myus = 10080 us, 16 myus = 19 us, OK.
Initializing serprog programmer
Baud rate is 1500000 now.
serprog: connected - attempting to synchronize
.
serprog: Synchronized
serprog: Interface version ok.
serprog: Bus support: parallel=on, LPC=off, FWH=off, SPI=off
serprog: Maximum write-n length is 256
serprog: Maximum read-n length is 300032
serprog: Programmer name is "ATMega644 USB"
serprog: Serial buffer size is 1020
serprog: operation buffer size is 2752
serprog: Output drivers enabled
The following protocols are supported: Parallel.
Probing for AMD Am29F010A/B, 128 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29F002(N)BB, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29F002(N)BT, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29F016D, 2048 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29F040B, 512 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29F080B, 1024 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29LV001BB, 128 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29LV001BT, 128 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29LV002BB, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29LV002BT, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29LV004BB, 512 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29LV004BT, 512 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29LV008BB, 1024 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29LV008BT, 1024 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29LV040B, 512 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMD Am29LV081B, 1024 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMIC A29002B, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMIC A29002T, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for AMIC A29040B, 512 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Atmel AT29C512, 64 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Atmel AT29C010A, 128 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Atmel AT29C020, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Atmel AT29C040A, 512 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Atmel AT49BV512, 64 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Atmel AT49F002(N), 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Atmel AT49F002(N)T, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Atmel AT49(H)F010, 128 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Atmel AT49F020, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Atmel AT49F040, 512 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Atmel AT49F080, 1024 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Atmel AT49F080T, 1024 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Catalyst CAT28F512, 64 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Bright BM29F040, 512 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for ESMT F49B002UA, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Eon EN29F010, 128 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Eon EN29F002(A)(N)B, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Eon EN29F002(A)(N)T, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Eon EN29LV040(A), 512 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Eon EN29LV640B, 8192 kB: probe_en29lv640b: id1 0x5550, id2 0x002c
Probing for Eon EN29GL064(A)B, 8192 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Eon EN29GL064(A)T, 8192 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Eon EN29GL064H/L, 8192 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Eon EN29GL128, 16384 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Fujitsu MBM29F004BC, 512 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Fujitsu MBM29F004TC, 512 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Fujitsu MBM29F400BC, 512 kB: probe_jedec_common: id1 0x50, id2 0x2c, id1 parity violation, id2 is normal flash content
Probing for Fujitsu MBM29F400TC, 512 kB: probe_jedec_common: id1 0x50, id2 0x2c, id1 parity violation, id2 is normal flash content
Probing for Fujitsu MBM29LV160BE, 2048 kB: probe_jedec_common: id1 0x50, id2 0x2c, id1 parity violation, id2 is normal flash content
Probing for Fujitsu MBM29LV160TE, 2048 kB: probe_jedec_common: id1 0x50, id2 0x2c, id1 parity violation, id2 is normal flash content
Probing for Hyundai HY29F002T, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Hyundai HY29F002B, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Hyundai HY29F040A, 512 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Intel 28F001BN/BX-B, 128 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Intel 28F001BN/BX-T, 128 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Intel 28F002BC/BL/BV/BX-T, 256 kB: probe_82802ab: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Intel 28F008S3/S5/SC, 512 kB: probe_82802ab: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Intel 28F004B5/BE/BV/BX-B, 512 kB: probe_82802ab: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Intel 28F004B5/BE/BV/BX-T, 512 kB: probe_82802ab: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Intel 28F400BV/BX/CE/CV-B, 512 kB: probe_82802ab: id1 0x50, id2 0x2c, id1 parity violation, id2 is normal flash content
Probing for Intel 28F400BV/BX/CE/CV-T, 512 kB: probe_82802ab: id1 0x50, id2 0x2c, id1 parity violation, id2 is normal flash content
Probing for ISSI IS29GL064B, 8192 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for ISSI IS29GL064T, 8192 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for ISSI IS29GL064H/L, 8192 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for ISSI IS29GL128H/L, 16384 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Macronix MX29F001B, 128 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Macronix MX29F001T, 128 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Macronix MX29F002(N)B, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Macronix MX29F002(N)T, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Macronix MX29F022(N)B, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Macronix MX29F022(N)T, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Macronix MX29F040, 512 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Macronix MX29GL320EB, 4096 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Macronix MX29GL320ET, 4096 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Macronix MX29GL320EH/L, 4096 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Macronix MX29GL640EB, 8192 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Macronix MX29GL640ET, 8192 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Macronix MX29GL640EH/L, 8192 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Macronix MX29GL128F, 16384 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Macronix MX29LV040, 512 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for MoselVitelic V29C51000B, 64 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for MoselVitelic V29C51000T, 64 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for MoselVitelic V29C51400B, 512 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for MoselVitelic V29C51400T, 512 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for MoselVitelic V29LC51000, 64 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for MoselVitelic V29LC51001, 128 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for MoselVitelic V29LC51002, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for PMC Pm29F002T, 256 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for PMC Pm29F002B, 256 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0x55, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for PMC Pm39LV010, 128 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for PMC Pm39LV020, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for PMC Pm39LV040, 512 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for PMC Pm39LV512, 64 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Sharp LH28F008BJT-BTLZ1, 1024 kB: probe_82802ab: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for SST SST28SF040A, 512 kB: probe_82802ab: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for SST SST29EE010, 128 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SST SST29LE010, 128 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SST SST29EE020A, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SST SST29LE020, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SST SST39SF512, 64 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SST SST39SF010A, 128 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SST SST39SF020A, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SST SST39SF040, 512 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SST SST39VF512, 64 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SST SST39VF010, 128 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SST SST39VF020, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SST SST39VF040, 512 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SST SST39VF080, 1024 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for ST M29F002B, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for ST M29F002T/NT, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for ST M29F040B, 512 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for ST M29F400BB, 512 kB: probe_jedec_common: id1 0x50, id2 0x2c, id1 parity violation, id2 is normal flash content
Probing for ST M29F400BT, 512 kB: probe_jedec_common: id1 0x50, id2 0x2c, id1 parity violation, id2 is normal flash content
Probing for ST M29W010B, 128 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for ST M29W040B, 512 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for ST M29W512B, 64 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for SyncMOS/MoselVitelic {F,S,V}29C51001B, 128 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SyncMOS/MoselVitelic {F,S,V}29C51001T, 128 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SyncMOS/MoselVitelic {F,S,V}29C51002B, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SyncMOS/MoselVitelic {F,S,V}29C51002T, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SyncMOS/MoselVitelic {F,S,V}29C51004B, 512 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SyncMOS/MoselVitelic {F,S,V}29C51004T, 512 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SyncMOS/MoselVitelic {S,V}29C31004B, 512 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for SyncMOS/MoselVitelic {S,V}29C31004T, 512 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for TI TMS29F002RB, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for TI TMS29F002RT, 256 kB: probe_jedec_common: id1 0x50, id2 0xaa, id1 parity violation, id2 is normal flash content
Probing for Winbond W29C512A/W29EE512, 64 kB: probe_jedec_common: id1 0xda, id2 0xc8
Found Winbond flash chip "W29C512A/W29EE512" (64 kB, Parallel) on serprog.
Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012-old, 128 kB: Old Winbond W29* probe method disabled because the probing sequence puts the AMIC A49LF040A in a funky state. Use 'flashrom -c W29C010(M)/W29C011A/W29EE011/W29EE012-old' if you have a board with such a chip.
Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012, 128 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Winbond W29C020(C)/W29C022, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Winbond W29C040/P, 512 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Winbond W29GL032CB, 4096 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Winbond W29GL032CT, 4096 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Winbond W29GL032CH/L, 4096 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Winbond W29GL064CB, 8192 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Winbond W29GL064CT, 8192 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Winbond W29GL064CH/L, 8192 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Winbond W29GL128C, 16384 kB: probe_jedec_29gl: man_id 0x50, dev_id 0xaa0000, man_id parity violation, dev_id seems to be normal flash content
Probing for Winbond W39F010, 128 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Winbond W39L010, 128 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Winbond W39L020, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Winbond W39L040, 512 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Winbond W49F002U/N, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Probing for Winbond W49F020, 256 kB: probe_jedec_common: id1 0xda, id2 0xc8
Found Winbond flash chip "W29C512A/W29EE512" (64 kB, Parallel).
Reading old flash chip contents... done.
Erasing and writing flash chip... Trying erase function 0... 0x000000-0x00ffff:EW
Erase/write done.
Verifying flash... VERIFIED.
serprog: Output drivers disabled
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-flashchips-new-flash-chip-Winbond-W29C512A-W29EE512.patch
Type: text/x-patch
Size: 1254 bytes
Desc: not available
URL: <http://www.flashrom.org/pipermail/flashrom/attachments/20150302/89941d0d/attachment.patch>


More information about the flashrom mailing list