diff --git a/Makefile b/Makefile index 603a97f53..bfa28df60 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 1828176b3..2e1f6007b 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 0b7b768fb..171fe3e9d 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,}