AT49F010 patch is basically a copy of the existing AT49F020 code, but
with half the size and the correct ID.
The log was from a write of random data, after the chip already
contained different random data. I did separate read, erase, write tests
before but this log seems to show that PREW all work.
CAT28F512 I have successfully probed and read data from, but erase
fails. Could be because it needs 12v VPP. The CAT28F512 I have is
soldered on to a NIC. I haven't investigated if VPP is connected at all
yet. Thought I'd include the patch as-is anyway.
Both patches:
Signed-off-by: Andrew Morgan <[email protected]>
--
Andrew.
flashrom v0.9.4-r1422 on Linux 2.6.38-11-generic (x86_64), built with libpci 3.1.7, GCC 4.5.2, little endian
flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OS timer resolution is 1 usecs, 1506M loops per second, 10 myus = 12 us, 100 myus = 101 us, 1000 myus = 1001 us, 10000 myus = 10003 us, 4 myus = 6 us, OK.
Initializing nicrealtek programmer
Found "Realtek RTL8139/8139C/8139C+" (10ec:8139, BDF 01:07.0).
Requested BAR is I/O
Probing for AMD Am29F010A/B, 128 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29F002(N)BB, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29F002(N)BT, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29F016D, 2048 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29F040B, 512 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29F080B, 1024 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29LV001BB, 128 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29LV001BT, 128 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29LV002BB, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29LV002BT, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29LV004BB, 512 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29LV004BT, 512 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29LV008BB, 1024 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29LV008BT, 1024 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29LV040B, 512 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMD Am29LV081B, 1024 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMIC A29002B, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMIC A29002T, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for AMIC A29040B, 512 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Atmel AT29C512, 64 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Atmel AT29C010A, 128 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Atmel AT29C020, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Atmel AT29C040A, 512 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Atmel AT49BV512, 64 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Atmel AT49F010, 128 kB: probe_jedec_common: id1 0x1f, id2 0x17
Found Atmel flash chip "AT49F010" (128 kB, Parallel) on nicrealtek.
Probing for Atmel AT49F020, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Atmel AT49F002(N), 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Atmel AT49F002(N)T, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Bright BM29F040, 512 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for EMST F49B002UA, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Eon EN29F010, 128 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Eon EN29F002(A)(N)B, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Eon EN29F002(A)(N)T, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Fujitsu MBM29F004BC, 512 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Fujitsu MBM29F004TC, 512 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Fujitsu MBM29F400BC, 512 kB: probe_m29f400bt: id1 0x33, id2 0xac
Probing for Fujitsu MBM29F400TC, 512 kB: probe_m29f400bt: id1 0x33, id2 0xac
Probing for Hyundai HY29F002T, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Hyundai HY29F002B, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Hyundai HY29F040A, 512 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F001BN/BX-B, 128 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Intel 28F001BN/BX-T, 128 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Intel 28F002BC/BL/BV/BX-T, 256 kB: probe_82802ab: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F008S3/S5/SC, 512 kB: probe_82802ab: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F004B5/BE/BV/BX-B, 512 kB: probe_82802ab: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F004B5/BE/BV/BX-T, 512 kB: probe_82802ab: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F400BV/BX/CE/CV-B, 512 kB: probe_82802ab: id1 0x33, id2 0xac, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Intel 28F400BV/BX/CE/CV-T, 512 kB: probe_82802ab: id1 0x33, id2 0xac, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Macronix MX29F001B, 128 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Macronix MX29F001T, 128 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Macronix MX29F002B, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Macronix MX29F002T, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Macronix MX29F040, 512 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Macronix MX29LV040, 512 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for MoselVitelic V29C51000B, 64 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for MoselVitelic V29C51000T, 64 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for MoselVitelic V29C51400B, 512 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for MoselVitelic V29C51400T, 512 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for MoselVitelic V29LC51000, 64 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for MoselVitelic V29LC51001, 128 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for MoselVitelic V29LC51002, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for PMC Pm29F002T, 256 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, 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 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for PMC Pm39LV010, 128 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for PMC Pm39LV020, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for PMC Pm39LV040, 512 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for Sharp LH28F008BJT-BTLZ1, 1024 kB: probe_82802ab: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST28SF040A, 512 kB: probe_82802ab: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SST SST29EE010, 128 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SST SST29LE010, 128 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SST SST29EE020A, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SST SST29LE020, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SST SST39SF512, 64 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SST SST39SF010A, 128 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SST SST39SF020A, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SST SST39SF040, 512 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SST SST39VF512, 64 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SST SST39VF010, 128 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SST SST39VF020, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SST SST39VF040, 512 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SST SST39VF080, 1024 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for ST M29F002B, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M29F002T/NT, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M29F040B, 512 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M29F400BB, 512 kB: probe_m29f400bt: id1 0x33, id2 0xac
Probing for ST M29F400BT, 512 kB: probe_m29f400bt: id1 0x33, id2 0xac
Probing for ST M29W010B, 128 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M29W040B, 512 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for ST M29W512B, 64 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for SyncMOS/MoselVitelic {F,S,V}29C51001B, 128 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SyncMOS/MoselVitelic {F,S,V}29C51001T, 128 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SyncMOS/MoselVitelic {F,S,V}29C51002B, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SyncMOS/MoselVitelic {F,S,V}29C51002T, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SyncMOS/MoselVitelic {F,S,V}29C51004B, 512 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SyncMOS/MoselVitelic {F,S,V}29C51004T, 512 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SyncMOS/MoselVitelic {S,V}29C31004B, 512 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for SyncMOS/MoselVitelic {S,V}29C31004T, 512 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for TI TMS29F002RB, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
Probing for TI TMS29F002RT, 256 kB: probe_jedec_common: id1 0x33, id2 0xb8, id1 parity violation, id1 is normal flash content, id2 is normal flash content
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 0x1f, id2 0x17
Probing for Winbond W29C020(C)/W29C022, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Winbond W29C040/P, 512 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Winbond W39L040, 512 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Winbond W49F002U/N, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
Probing for Winbond W49F020, 256 kB: probe_jedec_common: id1 0x1f, id2 0x17
===
This flash part has status UNTESTED for operations: PROBE READ ERASE WRITE
The test status of this chip may have been updated in the latest development
version of flashrom. If you are running the latest development version,
please email a report to [email protected] if any of the above operations
work correctly for you with this flash part. Please include the flashrom
output with the additional -V option for all operations you tested (-V, -Vr,
-Vw, -VE), and mention which mainboard or programmer you tested.
Please mention your board in the subject line. Thanks for your help!
Reading old flash chip contents... done.
Erasing and writing flash chip... Trying erase function 0... 0x000000-0x01ffff:EW
Erase/write done.
Verifying flash... VERIFIED.
Index: flashchips.c
===================================================================
--- flashchips.c (revision 1421)
+++ flashchips.c (working copy)
@@ -2305,6 +2305,30 @@
},
{
+ .vendor = "CATALYST",
+ .name = "CAT28F512",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = CATALYST_ID,
+ .model_id = CATALYST_CAT28F512,
+ .total_size = 64,
+ .page_size = 256,
+ .feature_bits = FEATURE_EITHER_RESET,
+ .tested = TEST_OK_PR,
+ .probe = probe_jedec,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {4500, 5500},
+ },
+
+ {
.vendor = "Bright",
.name = "BM29F040",
.bustype = BUS_PARALLEL,
Index: flashchips.h
===================================================================
--- flashchips.h (revision 1421)
+++ flashchips.h (working copy)
@@ -192,6 +192,7 @@
#define BRIGHT_BM29F400T 0xAD
#define CATALYST_ID 0x31 /* Catalyst */
+#define CATALYST_CAT28F512 0xB8
#define EMST_ID 0x8C /* EMST / EFST Elite Flash Storage */
#define EMST_F25L008A 0x2014
Index: flashchips.c
===================================================================
--- flashchips.c (revision 1422)
+++ flashchips.c (working copy)
@@ -2218,6 +2218,30 @@
{
.vendor = "Atmel",
+ .name = "AT49F010",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ATMEL_ID,
+ .model_id = ATMEL_AT49F010,
+ .total_size = 128,
+ .page_size = 128,
+ .feature_bits = FEATURE_EITHER_RESET,
+ .tested = TEST_OK_PREW,
+ .probe = probe_jedec,
+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {128 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ }
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {4500, 5500},
+ },
+
+ {
+ .vendor = "Atmel",
.name = "AT49F020",
.bustype = BUS_PARALLEL,
.manufacture_id = ATMEL_ID,
Index: flashchips.h
===================================================================
--- flashchips.h (revision 1422)
+++ flashchips.h (working copy)
@@ -181,6 +181,7 @@
#define ATMEL_AT45DB642 /* No ID available */
#define ATMEL_AT45DB642D 0x2800
#define ATMEL_AT49BV512 0x03
+#define ATMEL_AT49F010 0x17 /* Also AT49HF010 */
#define ATMEL_AT49F020 0x0B
#define ATMEL_AT49F002N 0x07 /* for AT49F002(N) */
#define ATMEL_AT49F002NT 0x08 /* for AT49F002(N)T */
_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom