Add initial support for the following flash chips
- Atmel AT29C020
- STMicroelectronics M29F002B
- STMicroelectronics M29F002T
- STMicroelectronics M29F002NT
Corresponding to flashrom svn r105 and coreboot v2 svn r2621.
Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Signed-off-by: Roger Zauner <roger@eskimo.com>
Acked-by: Peter Stuge <peter@stuge.se>
diff --git a/README b/README
index 2c83b43..9c96857 100644
--- a/README
+++ b/README
@@ -92,6 +92,7 @@
AMD AM-29F016D
ASD AE49F2008
Atmel AT-29C040A
+Atmel AT-29C020
EMST F49B002UA
Intel 82802AB (Firmware Hub)
Intel 82802AC (Firmware Hub)
@@ -118,6 +119,9 @@
SST SST-49LF004C
SST SST-49LF008C
SST SST-49LF016C
+ST ST-M29F002B
+ST ST-M29F002T
+ST ST-M29F002NT
ST ST-M29F400BT
ST ST-M29F040B
SyncMOS S29C51001T/B
diff --git a/flash.h b/flash.h
index b22227d..0d54c42 100644
--- a/flash.h
+++ b/flash.h
@@ -64,6 +64,7 @@
#define ATMEL_ID 0x1F /* Atmel */
#define AT_29C040A 0xA4
+#define AT_29C020 0xDA
#define MX_ID 0xC2 /* Macronix (MX) */
#define MX_29F002 0xB0
@@ -106,8 +107,10 @@
#define W_49V002FA 0x32
#define ST_ID 0x20 /* ST */
-#define ST_M29F040B 0xE2
+#define ST_M29F002B 0x34
+#define ST_M29F002T 0xB0 /* M29F002T / M29F002NT */
#define ST_M29F400BT 0xD5
+#define ST_M29F040B 0xE2
#define EMST_ID 0x8c /* EMST / EFST */
#define EMST_F49B002UA 0x00
diff --git a/flashchips.c b/flashchips.c
index c4ae6f4..bf0a976 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -49,6 +49,8 @@
probe_jedec, erase_chip_jedec, write_jedec, NULL},
{"At29C040A", ATMEL_ID, AT_29C040A, NULL, 512, 256,
probe_jedec, erase_chip_jedec, write_jedec, NULL},
+ {"At29C020", ATMEL_ID, AT_29C020, NULL, 256, 256,
+ probe_jedec, erase_chip_jedec, write_jedec, NULL},
{"Mx29f002", MX_ID, MX_29F002, NULL, 256, 64 * 1024,
probe_29f002, erase_29f002, write_29f002, NULL},
{"SST29EE020A", SST_ID, SST_29EE020A, NULL, 256, 128,
@@ -109,10 +111,14 @@
probe_jedec, erase_chip_jedec, write_39sf020, NULL},
{"W39V080A", WINBOND_ID, W_39V080A, NULL, 1024, 64*1024,
probe_jedec, erase_chip_jedec, write_39sf020, NULL},
- {"M29F040B", ST_ID, ST_M29F040B, NULL, 512, 64 * 1024,
- probe_29f040b, erase_29f040b, write_29f040b, NULL},
+ {"M29F002B", ST_ID, ST_M29F002B, NULL, 256, 64 * 1024,
+ probe_jedec, erase_chip_jedec, write_jedec, NULL},
+ {"M29F002T/NT", ST_ID, ST_M29F002T, NULL, 256, 64 * 1024,
+ probe_jedec, erase_chip_jedec, write_jedec, NULL},
{"M29F400BT", ST_ID, ST_M29F400BT, NULL, 512, 64 * 1024,
probe_m29f400bt, erase_m29f400bt, write_linuxbios_m29f400bt, NULL},
+ {"M29F040B", ST_ID, ST_M29F040B, NULL, 512, 64 * 1024,
+ probe_29f040b, erase_29f040b, write_29f040b, NULL},
{"82802ab", 137, 173, NULL, 512, 64 * 1024,
probe_82802ab, erase_82802ab, write_82802ab, NULL},
{"82802ac", 137, 172, NULL, 1024, 64 * 1024,