Add support for ST M29F400BT - part 1

Corresponding to coreboot v1 svn r582.
diff --git a/Makefile b/Makefile
index bfa28df..15a2ae6 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-OBJS = jedec.o sst28sf040.o am29f040b.o mx29f002.c sst39sf020.o
+OBJS = jedec.o sst28sf040.o am29f040b.o mx29f002.c sst39sf020.o m29f400bt.o
 CC = gcc -O2 -g
 
 all: ${OBJS}
diff --git a/flash.h b/flash.h
index 2e1f600..286e219 100644
--- a/flash.h
+++ b/flash.h
@@ -32,6 +32,9 @@
 #define WINBOND_ID        0xDA	/* Winbond Manufacture ID code	*/
 #define W_29C020C         0x45	/* Winbond w29c020c device code*/
 
+#define ST_ID       	  0x20	
+#define ST_M29F400BT      0xD5
+
 extern int probe_28sf040 (struct flashchip * flash);
 extern int erase_28sf040 (struct flashchip * flash);
 extern int write_28sf040 (struct flashchip * flash, char * buf);
diff --git a/flash_rom.c b/flash_rom.c
index 24b07a7..8f05c25 100644
--- a/flash_rom.c
+++ b/flash_rom.c
@@ -35,6 +35,7 @@
 
 #include "flash.h"
 #include "jedec.h"
+#include "m29f400bt.h"
 
 struct flashchip flashchips[] = {
     {"Am29F040B",   AMD_ID,     AM_29F040B,   NULL, 512, 64*1024,
@@ -51,6 +52,8 @@
      probe_39sf020, erase_39sf020, write_39sf020},
     {"W29C020C",    WINBOND_ID, W_29C020C,    NULL, 256, 128,
      probe_jedec,   erase_jedec,   write_jedec},
+    {"M29F400BT",   ST_ID, ST_M29F400BT ,    NULL, 512, 64*1024,
+     probe_m29f400bt,   erase_m29f400bt,   write_linuxbios_m29f400bt},
     {NULL,}
 };