diff --git a/Makefile b/Makefile
index 603a97f539f48d86416fc9fe81f1deb7a95f65d0..bfa28df60acef5ffbd27f7b3d04a8df50f555d9d 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 1828176b361fbd490a5c3be20fc5f4637931da0a..2e1f6007bf624813438b77f734be21c8c6b119cc 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 0b7b768fbc3c213f3e2dd10ff9ca8f25d44cfaf5..171fe3e9d5c597e343df4f77b044135b9b6c25ec 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,}