diff --git a/flash.h b/flash.h
index 0812331f60b6b80740c1ef0049cda5f0425a30b7..769b8d0ee917f0b10ca852ef7f89b9a64773a9cd 100644
--- a/flash.h
+++ b/flash.h
@@ -317,6 +317,7 @@ extern struct flashchip flashchips[];
 #define ST_M50FLW040B		0x28
 #define ST_M50FLW080A		0x80
 #define ST_M50FLW080B		0x81
+#define ST_M50FW002		0x29
 #define ST_M50FW040		0x2C
 #define ST_M50FW080		0x2D
 #define ST_M50FW016		0x2E
diff --git a/flashchips.c b/flashchips.c
index 52d38c100384c4c2b63e3b6619793872e925964d..07990c73d2a14e1f72ca8f04c40b74cac7f28a4c 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -121,6 +121,7 @@ struct flashchip flashchips[] = {
 	{"ST",		"M50FLW040B",		ST_ID,		ST_M50FLW040B,		512,	64 * 1024,	TEST_UNTESTED,	probe_stm50flw0x0x,	erase_stm50flw0x0x,		write_stm50flw0x0x},
 	{"ST",		"M50FLW080A",		ST_ID,		ST_M50FLW080A,		1024,	64 * 1024,	TEST_OK_PREW,	probe_stm50flw0x0x,	erase_stm50flw0x0x,		write_stm50flw0x0x},
 	{"ST",		"M50FLW080B",		ST_ID,		ST_M50FLW080B,		1024,	64 * 1024,	TEST_UNTESTED,	probe_stm50flw0x0x,	erase_stm50flw0x0x,		write_stm50flw0x0x},
+	{"ST",		"M50FW002",		ST_ID,		ST_M50FW002,		256,	64 * 1024,	TEST_UNTESTED,	probe_49lfxxxc,		NULL,			NULL},
 	{"ST",		"M50FW016",		ST_ID,		ST_M50FW016,		2048,	64 * 1024,	TEST_UNTESTED,	probe_82802ab,		erase_82802ab,			write_82802ab},
 	{"ST",		"M50FW040",		ST_ID,		ST_M50FW040,		512,	64 * 1024,	TEST_OK_PREW,	probe_82802ab,		erase_82802ab,			write_82802ab},
 	{"ST",		"M50FW080",		ST_ID,		ST_M50FW080,		1024,	64 * 1024,	TEST_UNTESTED,	probe_82802ab,		erase_82802ab,			write_82802ab},