summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--flash.h5
-rw-r--r--flash_rom.c2
3 files changed, 9 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 603a97f..bfa28df 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
-OBJS = jedec.o sst28sf040.o am29f040b.o mx29f002.c
-CC = gcc -O2
+OBJS = jedec.o sst28sf040.o am29f040b.o mx29f002.c sst39sf020.o
+CC = gcc -O2 -g
all: ${OBJS}
${CC} -o flash_rom flash_rom.c ${OBJS}
diff --git a/flash.h b/flash.h
index 1828176..2e1f600 100644
--- a/flash.h
+++ b/flash.h
@@ -27,6 +27,7 @@ struct flashchip {
#define SST_ID 0xBF /* SST Manufacturer ID[B code */
#define SST_29EE020A 0x10 /* SST 29EE020 device code */
#define SST_28SF040 0x04 /* SST 29EE040 device code */
+#define SST_39SF020 0xB6 /* SST 39SF020 device */
#define WINBOND_ID 0xDA /* Winbond Manufacture ID code */
#define W_29C020C 0x45 /* Winbond w29c020c device code*/
@@ -35,6 +36,10 @@ extern int probe_28sf040 (struct flashchip * flash);
extern int erase_28sf040 (struct flashchip * flash);
extern int write_28sf040 (struct flashchip * flash, char * buf);
+extern int probe_39sf020 (struct flashchip * flash);
+extern int erase_39sf020 (struct flashchip * flash);
+extern int write_39sf020 (struct flashchip * flash, char * buf);
+
extern int probe_29f040b (struct flashchip * flash);
extern int erase_29f040b (struct flashchip * flash);
extern int write_29f040b (struct flashchip * flash, char * buf);
diff --git a/flash_rom.c b/flash_rom.c
index 0b7b768..171fe3e 100644
--- a/flash_rom.c
+++ b/flash_rom.c
@@ -47,6 +47,8 @@ struct flashchip flashchips[] = {
probe_jedec, erase_jedec, write_jedec},
{"SST28SF040A", SST_ID, SST_28SF040, NULL, 512, 256,
probe_28sf040, erase_28sf040, write_28sf040},
+ {"SST39SF020A", SST_ID, SST_39SF020, NULL, 256, 4096,
+ probe_jedec, erase_jedec, write_39sf020},
{"W29C020C", WINBOND_ID, W_29C020C, NULL, 256, 128,
probe_jedec, erase_jedec, write_jedec},
{NULL,}
OpenPOWER on IntegriCloud