diff --git a/Makefile b/Makefile index bfa28df60..15a2ae634 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 2e1f6007b..286e2199c 100644 --- a/flash.h +++ b/flash.h @@ -32,6 +32,9 @@ struct flashchip { #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 24b07a798..8f05c2550 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 @@ struct flashchip flashchips[] = { 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,} };