diff --git a/flash.h b/flash.h
index 9009ee6d1af7fdd9b7c94acad45f7ed9c93f5d78..086764f20308a7861848a12cc1629681a971b918 100644
--- a/flash.h
+++ b/flash.h
@@ -79,6 +79,9 @@ extern struct flashchip flashchips[];
 #define MSYSTEMS_MD2800   0x30	/* hmm -- both 0x30 */
 #define MSYSTEMS_MD2802   0x30	/* hmm -- both 0x30 */
 
+#define SM_ID		  0x40  /* SyncMOS ID */
+#define S29C51002T	  0x02
+
 extern void myusec_delay(int time);
 extern void myusec_calibrate_delay();
 extern int enable_flash_write(void);
diff --git a/flashchips.c b/flashchips.c
index 25fd95a19f6d8fdf0a515a090274dde9f6645810..140091854568b6f0cd184e2525292adb64bc912e 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -114,6 +114,8 @@ struct flashchip flashchips[] = {
 #endif
 	{"LHF00L04",	SHARP_ID,		SHARP_LHF00L04,		NULL, 1024, 64 * 1024,
 	 probe_lhf00l04, erase_lhf00l04,	write_lhf00l04,	NULL},
+	{"S29C51002T", 	SM_ID, 	S29C51002T,	NULL, 256, 128,
+	 probe_jedec,	erase_chip_jedec, write_49f002, NULL},
 	{NULL,}
 };