Refine various vendor ID annotations

This fixes a few vendor IDs to conform with JEDEC publication 106W
(JEP106W), adds some device IDs and provides information about
non-conforming IDs. The EON change is left to the patch adding EON
chips.

This patch should have no effect on code generation.

Corresponding to flashrom svn r170 and coreboot v2 svn r3029.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Corey Osgood <corey.osgood@gmail.com>
diff --git a/flash.h b/flash.h
index ec28064..d8a86dd 100644
--- a/flash.h
+++ b/flash.h
@@ -59,16 +59,16 @@
  * All SPI parts have 16-bit device IDs.
  */
 
-#define ALLIANCE_ID		0x52	/* Alliance */
+#define ALLIANCE_ID		0x52	/* Alliance Semiconductor */
 
 #define AMD_ID			0x01	/* AMD */
 #define AM_29F040B		0xA4
 #define AM_29LV040B		0x4F
 #define AM_29F016D		0xAD
 
-#define AMIC_ID			0x37	/* AMIC */
+#define AMIC_ID			0x7F37	/* AMIC */
 
-#define ASD_ID			0x25	/* ASD */
+#define ASD_ID			0x25	/* ASD, not listed in JEP106W */
 #define ASD_AE49F2008		0x52
 
 #define ATMEL_ID		0x1F	/* Atmel */
@@ -79,14 +79,14 @@
 
 #define CATALYST_ID		0x31	/* Catalyst */
 
-#define EMST_ID			0x8C	/* EMST / EFST */
+#define EMST_ID			0x8C	/* EMST / EFST Elite Flash Storage*/
 #define EMST_F49B002UA		0x00
 
 /*
  * EN25 chips are SPI, first byte of device ID is memory type,
  * second byte of device ID is log(bitsize)-9.
  */
-#define EON_ID			0x1C	/* EON */
+#define EON_ID			0x1C	/* EON Silicon Devices */
 #define EN_25B05		0x2010	/* 2^19 kbit or 2^16 kByte */
 #define EN_25B10		0x2011
 #define EN_25B20		0x2012
@@ -96,17 +96,24 @@
 #define EN_25B32		0x2016
 
 #define FUJITSU_ID		0x04	/* Fujitsu */
-#define MBM29F400TC		0x23
+/* MBM29F400TC_STRANGE has a value not mentioned in the data sheet and we
+ * try to read it from a location not mentioned in the data sheet.
+ */
+#define MBM29F400TC_STRANGE	0x23
+#define MBM29F400BC		0x7B
+#define MBM29F400TC		0x77
 
 #define HYUNDAI_ID		0xAD	/* Hyundai */
 
-#define IMT_ID			0x7F	/* IMT */
+#define IMT_ID			0x7F1F	/* Integrated Memory Technologies */
+#define IM_29F004B		0xAE
+#define IM_29F004T		0xAF
 
 #define INTEL_ID		0x89	/* Intel */
 
-#define ISSI_ID			0xD5	/* ISSI */
+#define ISSI_ID			0xD5	/* ISSI Integrated Silicon Solutions */
 
-#define MSYSTEMS_ID		0x156F	/* M-Systems */
+#define MSYSTEMS_ID		0x156F	/* M-Systems, not listed in JEP106W */
 #define MSYSTEMS_MD2200		0xDB
 #define MSYSTEMS_MD2800		0x30	/* hmm -- both 0x30 */
 #define MSYSTEMS_MD2802		0x30	/* hmm -- both 0x30 */
@@ -128,6 +135,9 @@
 #define MX_25L3235D		0x2416
 #define MX_29F002		0xB0
 
+/* Programmable Micro Corp is listed in JEP106W in bank 2, so it should have
+ * a 0x7F continuation code prefix.
+ */
 #define PMC_ID			0x9D	/* PMC */
 #define PMC_49FL002		0x6D
 #define PMC_49FL004		0x6E
@@ -171,7 +181,7 @@
  * ST25P chips are SPI, first byte of device ID is memory type, second
  * byte of device ID is related to log(bitsize) at least for some chips.
  */
-#define ST_ID			0x20	/* ST */
+#define ST_ID			0x20	/* ST / SGS/Thomson */
 #define ST_M25P05A		0x2010
 #define ST_M25P10A		0x2011
 #define ST_M25P20		0x2012
diff --git a/flashchips.c b/flashchips.c
index 0f81b45..2bd039d 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -42,7 +42,7 @@
 	 probe_jedec,	erase_chip_jedec, write_jedec},
 	{"At49F002(N)T",ATMEL_ID,	AT_49F002NT,	256, 256,
 	 probe_jedec,	erase_chip_jedec, write_jedec},
-	{"MBM29F400TC",	FUJITSU_ID,	MBM29F400TC,	512, 64 * 1024,
+	{"MBM29F400TC",	FUJITSU_ID,	MBM29F400TC_STRANGE,	512, 64 * 1024,
 	 probe_m29f400bt, erase_m29f400bt, write_linuxbios_m29f400bt},
 	{"MX29F002",	MX_ID,		MX_29F002,	256, 64 * 1024,
 	 probe_29f002,	erase_29f002, 	write_29f002},
diff --git a/m29f400bt.c b/m29f400bt.c
index 40b219c..7d8539f 100644
--- a/m29f400bt.c
+++ b/m29f400bt.c
@@ -64,6 +64,9 @@
 	myusec_delay(10);
 
 	id1 = *(volatile uint8_t *)bios;
+	/* The data sheet says id2 is at (bios + 0x01) and id2 listed in
+	 * flash.h does not match. It should be possible to use JEDEC probe.
+	 */
 	id2 = *(volatile uint8_t *)(bios + 0x02);
 
 	*(volatile uint8_t *)(bios + 0xAAA) = 0xAA;