This patch adds support for the M50FLW040A, M50FLW040B, M50FLW080A,

M50FLW080B, M50FW080, M50FW016, M50LPW116, M29W010B flash chips made
by ST to flashrom.

The patch is based on the data sheets of the chips and has not been
tested at all.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2741 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Carl-Daniel Hailfinger 2007-07-25 17:55:45 +00:00 committed by Uwe Hermann
parent 3a262082ba
commit ae293d74f9
2 changed files with 26 additions and 2 deletions

View File

@ -111,11 +111,19 @@ extern struct flashchip flashchips[];
#define W_49V002FA 0x32 #define W_49V002FA 0x32
#define ST_ID 0x20 /* ST */ #define ST_ID 0x20 /* ST */
#define ST_M50FLW040A 0x08
#define ST_M50FLW040B 0x28
#define ST_M50FLW080A 0x80
#define ST_M50FLW080B 0x81
#define ST_M50FW040 0x2C #define ST_M50FW040 0x2C
#define ST_M50FW080 0x2D
#define ST_M50FW016 0x2E
#define ST_M50LPW116 0x30
#define ST_M29F002B 0x34 #define ST_M29F002B 0x34
#define ST_M29F002T 0xB0 /* M29F002T / M29F002NT */ #define ST_M29F002T 0xB0 /* M29F002T / M29F002NT */
#define ST_M29F400BT 0xD5 #define ST_M29F400BT 0xD5
#define ST_M29F040B 0xE2 #define ST_M29F040B 0xE2
#define ST_M29W010B 0x23
#define ST_M29W040B 0xE3 #define ST_M29W040B 0xE3
#define EMST_ID 0x8c /* EMST / EFST */ #define EMST_ID 0x8c /* EMST / EFST */

View File

@ -82,8 +82,6 @@ struct flashchip flashchips[] = {
probe_sst_fwhub, erase_sst_fwhub, write_sst_fwhub}, probe_sst_fwhub, erase_sst_fwhub, write_sst_fwhub},
{"SST49LF008A", SST_ID, SST_49LF008A, 1024, 64 * 1024 , {"SST49LF008A", SST_ID, SST_49LF008A, 1024, 64 * 1024 ,
probe_sst_fwhub, erase_sst_fwhub, write_sst_fwhub}, probe_sst_fwhub, erase_sst_fwhub, write_sst_fwhub},
{"Pm49FL002", PMC_ID, PMC_49FL002, 256, 16 * 1024,
probe_jedec, erase_chip_jedec, write_49fl004},
{"SST49LF004C", SST_ID, SST_49LF004C, 512, 4 * 1024, {"SST49LF004C", SST_ID, SST_49LF004C, 512, 4 * 1024,
probe_49lfxxxc, erase_49lfxxxc, write_49lfxxxc}, probe_49lfxxxc, erase_49lfxxxc, write_49lfxxxc},
{"SST49LF008C", SST_ID, SST_49LF008C, 1024, 4 * 1024 , {"SST49LF008C", SST_ID, SST_49LF008C, 1024, 4 * 1024 ,
@ -92,6 +90,8 @@ struct flashchip flashchips[] = {
probe_49lfxxxc, erase_49lfxxxc, write_49lfxxxc}, probe_49lfxxxc, erase_49lfxxxc, write_49lfxxxc},
{"SST49LF160C", SST_ID, SST_49LF160C, 2048, 4 * 1024 , {"SST49LF160C", SST_ID, SST_49LF160C, 2048, 4 * 1024 ,
probe_49lfxxxc, erase_49lfxxxc, write_49lfxxxc}, probe_49lfxxxc, erase_49lfxxxc, write_49lfxxxc},
{"Pm49FL002", PMC_ID, PMC_49FL002, 256, 16 * 1024,
probe_jedec, erase_chip_jedec, write_49fl004},
{"Pm49FL004", PMC_ID, PMC_49FL004, 512, 64 * 1024, {"Pm49FL004", PMC_ID, PMC_49FL004, 512, 64 * 1024,
probe_jedec, erase_chip_jedec, write_49fl004}, probe_jedec, erase_chip_jedec, write_49fl004},
{"W29C011", WINBOND_ID, W_29C011, 128, 128, {"W29C011", WINBOND_ID, W_29C011, 128, 128,
@ -122,6 +122,22 @@ struct flashchip flashchips[] = {
probe_jedec, erase_chip_jedec, write_jedec}, probe_jedec, erase_chip_jedec, write_jedec},
{"M29F400BT", ST_ID, ST_M29F400BT, 512, 64 * 1024, {"M29F400BT", ST_ID, ST_M29F400BT, 512, 64 * 1024,
probe_m29f400bt, erase_m29f400bt, write_linuxbios_m29f400bt}, probe_m29f400bt, erase_m29f400bt, write_linuxbios_m29f400bt},
{"M50FLW040A", ST_ID, ST_M50FLW040A, 512, 64 * 1024,
probe_jedec, erase_chip_jedec, write_jedec},
{"M50FLW040B", ST_ID, ST_M50FLW040B, 512, 64 * 1024,
probe_jedec, erase_chip_jedec, write_jedec},
{"M50FLW080A", ST_ID, ST_M50FLW080A, 1024, 64 * 1024,
probe_jedec, erase_chip_jedec, write_jedec},
{"M50FLW080B", ST_ID, ST_M50FLW080B, 1024, 64 * 1024,
probe_jedec, erase_chip_jedec, write_jedec},
{"M50FW080", ST_ID, ST_M50FW080, 1024, 64 * 1024,
probe_jedec, erase_chip_jedec, write_jedec},
{"M50FW016", ST_ID, ST_M50FW016, 2048, 64 * 1024,
probe_jedec, erase_chip_jedec, write_jedec},
{"M50LPW116", ST_ID, ST_M50LPW116, 2048, 64 * 1024,
probe_jedec, erase_chip_jedec, write_jedec},
{"M29W010B", ST_ID, ST_M29W010B, 128, 16 * 1024,
probe_jedec, erase_chip_jedec, write_jedec},
{"M29F040B", ST_ID, ST_M29F040B, 512, 64 * 1024, {"M29F040B", ST_ID, ST_M29F040B, 512, 64 * 1024,
probe_29f040b, erase_29f040b, write_29f040b}, probe_29f040b, erase_29f040b, write_29f040b},
{"82802ab", 137, 173, 512, 64 * 1024, {"82802ab", 137, 173, 512, 64 * 1024,