Add support for various ST M25P* chips

Add support for ST M25P05-A, M25P10-A, M25P20, M25P40, M25P16, M25P32,
M25P64, M25P128.

ST M25P80 support is already there. Not tested, but conforming to data
sheets and double checked.

Corresponding to flashrom svn r166 and coreboot v2 svn r3012.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
diff --git a/flash.h b/flash.h
index e036387..ec28064 100644
--- a/flash.h
+++ b/flash.h
@@ -172,7 +172,15 @@
  * byte of device ID is related to log(bitsize) at least for some chips.
  */
 #define ST_ID			0x20	/* ST */
+#define ST_M25P05A		0x2010
+#define ST_M25P10A		0x2011
+#define ST_M25P20		0x2012
+#define ST_M25P40		0x2013
 #define ST_M25P80		0x2014
+#define ST_M25P16		0x2015
+#define ST_M25P32		0x2016
+#define ST_M25P64		0x2017
+#define ST_M25P128		0x2018
 #define ST_M50FLW040A		0x08
 #define ST_M50FLW040B		0x28
 #define ST_M50FLW080A		0x80
diff --git a/flashchips.c b/flashchips.c
index f80ebd0..44c9171 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -140,8 +140,24 @@
 	 probe_jedec,	erase_chip_jedec,	write_jedec},
 	{"M29F040B",	ST_ID, 		ST_M29F040B,	512, 64 * 1024,
 	 probe_29f040b, erase_29f040b,	write_29f040b},
+	{"M25P05-A",	ST_ID,		ST_M25P05A,	64, 32 * 1024,
+	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write},
+	{"M25P10-A",	ST_ID,		ST_M25P10A,	128, 32 * 1024,
+	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write},
+	{"M25P20",	ST_ID,		ST_M25P20,	256, 64 * 1024,
+	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write},
+	{"M25P40",	ST_ID,		ST_M25P40,	512, 64 * 1024,
+	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write},
 	{"M25P80",	ST_ID,		ST_M25P80,	1024, 64 * 1024,
 	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write},
+	{"M25P16",	ST_ID,		ST_M25P16,	2048, 64 * 1024,
+	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write},
+	{"M25P32",	ST_ID,		ST_M25P32,	4096, 64 * 1024,
+	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write},
+	{"M25P64",	ST_ID,		ST_M25P64,	8192, 64 * 1024,
+	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write},
+	{"M25P128",	ST_ID,		ST_M25P128,	16384, 256 * 1024,
+	 probe_spi,	generic_spi_chip_erase_c7,	generic_spi_chip_write},
 	{"82802ab",	137,		173,		512, 64 * 1024,
 	 probe_82802ab, erase_82802ab,	write_82802ab},
 	{"82802ac",	137,		172,		1024, 64 * 1024,