Add support for 8 new chips to flashrom and fix up 2 existing chips as well.
Replace age-old TODO comments with real explanations.
Fixed chips:
Fujitsu MBM29F400TC (ID definition)
Macronix MX29F002T (chip name)
New chips:
Fujitsu MBM29F004BC
Fujitsu MBM29F004TC
Fujitsu MBM29F400BC
Macronix MX25L512
Macronix MX25L1005
Macronix MX25L2005
Macronix MX25L6405
Macronix MX29F002B
Straight from the data sheets, compile tested only.
Signed-off-by: Carl-Daniel Hailfinger <[EMAIL PROTECTED]>
Index: flashrom-newchips/flash.h
===================================================================
--- flashrom-newchips/flash.h (Revision 3723)
+++ flashrom-newchips/flash.h (Arbeitskopie)
@@ -181,13 +181,10 @@
#define EN_29F002B 0x7F97
#define FUJITSU_ID 0x04 /* Fujitsu */
-/*
- * 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 MBM29F400BC 0xAB
+#define MBM29F400TC 0x23
+#define MBM29F004BC 0x7B
+#define MBM29F004TC 0x77
#define HYUNDAI_ID 0xAD /* Hyundai */
@@ -216,7 +213,8 @@
#define MX_25L6405 0x2017 /* MX25L3205{,D} */
#define MX_25L1635D 0x2415
#define MX_25L3235D 0x2416
-#define MX_29F002 0xB0
+#define MX_29F002B 0x34
+#define MX_29F002T 0xB0
/*
* Programmable Micro Corp is listed in JEP106W in bank 2, so it should
Index: flashrom-newchips/flashchips.c
===================================================================
--- flashrom-newchips/flashchips.c (Revision 3723)
+++ flashrom-newchips/flashchips.c (Arbeitskopie)
@@ -30,7 +30,7 @@
*/
struct flashchip flashchips[] = {
/**********************************************************************************************************************************************************************************************************************/
- /* Vendor Chip Vendor ID Chip ID
TODO TODO Test status Probe function Erase
function Write function Read function */
+ /* Vendor Chip Vendor ID Chip ID
Total size (kB) Page size (B) Test status Probe function Erase
function Write function Read function */
/**********************************************************************************************************************************************************************************************************************/
{"AMD", "Am29F002(N)BB", AMD_ID, AM_29F002BB,
256, 256, TEST_UNTESTED, probe_jedec,
erase_chip_jedec, write_en29f002a},
{"AMD", "Am29F002(N)BT", AMD_ID, AM_29F002BT,
256, 256, TEST_OK_PREW, probe_jedec,
erase_chip_jedec, write_en29f002a},
@@ -51,14 +51,22 @@
{"EMST", "F49B002UA", EMST_ID, EMST_F49B002UA,
256, 4096, TEST_UNTESTED, probe_jedec,
erase_chip_jedec, write_49f002},
{"EON", "EN29F002(A)(N)B", EON_ID, EN_29F002B,
256, 256, TEST_UNTESTED, probe_jedec,
erase_chip_jedec, write_en29f002a},
{"EON", "EN29F002(A)(N)T", EON_ID, EN_29F002T,
256, 256, TEST_OK_PREW, probe_jedec,
erase_chip_jedec, write_en29f002a},
- {"Fujitsu", "MBM29F400TC", FUJITSU_ID,
MBM29F400TC_STRANGE, 512, 64 * 1024, TEST_UNTESTED,
probe_m29f400bt, erase_m29f400bt,
write_coreboot_m29f400bt},
+ {"Fujitsu", "MBM29F004BC", FUJITSU_ID, MBM29F004BC,
512, 64 * 1024, TEST_UNTESTED, probe_jedec, NULL,
NULL},
+ {"Fujitsu", "MBM29F004TC", FUJITSU_ID, MBM29F004TC,
512, 64 * 1024, TEST_UNTESTED, probe_jedec, NULL,
NULL},
+ {"Fujitsu", "MBM29F400BC", FUJITSU_ID, MBM29F400BC,
512, 64 * 1024, TEST_UNTESTED, probe_m29f400bt,
erase_m29f400bt, write_coreboot_m29f400bt},
+ {"Fujitsu", "MBM29F400TC", FUJITSU_ID, MBM29F400TC,
512, 64 * 1024, TEST_UNTESTED, probe_m29f400bt,
erase_m29f400bt, write_coreboot_m29f400bt},
{"Intel", "82802AB", INTEL_ID, 173,
512, 64 * 1024, TEST_OK_PREW, probe_82802ab,
erase_82802ab, write_82802ab},
{"Intel", "82802AC", INTEL_ID, 172,
1024, 64 * 1024, TEST_OK_PREW, probe_82802ab,
erase_82802ab, write_82802ab},
+ {"Macronix", "MX25L512", MX_ID, MX_25L512,
64, 256, TEST_UNTESTED, probe_spi_rdid,
spi_chip_erase_c7, spi_chip_write, spi_chip_read},
+ {"Macronix", "MX25L1005", MX_ID, MX_25L1005,
128, 256, TEST_UNTESTED, probe_spi_rdid,
spi_chip_erase_c7, spi_chip_write, spi_chip_read},
+ {"Macronix", "MX25L2005", MX_ID, MX_25L2005,
256, 256, TEST_UNTESTED, probe_spi_rdid,
spi_chip_erase_c7, spi_chip_write, spi_chip_read},
{"Macronix", "MX25L4005", MX_ID, MX_25L4005,
512, 256, TEST_OK_PREW, probe_spi_rdid,
spi_chip_erase_c7, spi_chip_write, spi_chip_read},
{"Macronix", "MX25L8005", MX_ID, MX_25L8005,
1024, 256, TEST_OK_PREW, probe_spi_rdid,
spi_chip_erase_c7, spi_chip_write, spi_chip_read},
{"Macronix", "MX25L1605", MX_ID, MX_25L1605,
2048, 256, TEST_UNTESTED, probe_spi_rdid,
spi_chip_erase_c7, spi_chip_write, spi_chip_read},
{"Macronix", "MX25L3205", MX_ID, MX_25L3205,
4096, 256, TEST_OK_PREW, probe_spi_rdid,
spi_chip_erase_c7, spi_chip_write, spi_chip_read},
- {"Macronix", "MX29F002", MX_ID, MX_29F002,
256, 64 * 1024, TEST_UNTESTED, probe_29f002,
erase_29f002, write_29f002},
+ {"Macronix", "MX25L6405", MX_ID, MX_25L6405,
8192, 256, TEST_UNTESTED, probe_spi_rdid,
spi_chip_erase_c7, spi_chip_write, spi_chip_read},
+ {"Macronix", "MX29F002B", MX_ID, MX_29F002B,
256, 64 * 1024, TEST_UNTESTED, probe_29f002,
erase_29f002, write_29f002},
+ {"Macronix", "MX29F002T", MX_ID, MX_29F002T,
256, 64 * 1024, TEST_UNTESTED, probe_29f002,
erase_29f002, write_29f002},
{"Numonyx", "M25PE10", ST_ID, 0x8011,
128, 256, TEST_UNTESTED, probe_spi_rdid,
spi_chip_erase_d8, spi_chip_write, spi_chip_read},
{"Numonyx", "M25PE20", ST_ID, 0x8012,
256, 256, TEST_UNTESTED, probe_spi_rdid,
spi_chip_erase_d8, spi_chip_write, spi_chip_read},
{"Numonyx", "M25PE40", ST_ID, 0x8013,
256, 256, TEST_UNTESTED, probe_spi_rdid,
spi_chip_erase_d8, spi_chip_write, spi_chip_read},
@@ -140,7 +148,7 @@
{"Winbond", "W29EE011", WINBOND_ID, W_29C011,
128, 128, TEST_OK_PREW, probe_w29ee011,
erase_chip_jedec, write_jedec},
{"Winbond", "W39V040A", WINBOND_ID, W_39V040A,
512, 64*1024, TEST_UNTESTED, probe_jedec,
erase_chip_jedec, write_39sf020},
{"Winbond", "W39V040B", WINBOND_ID, W_39V040B,
512, 64*1024, TEST_OK_PREW, probe_jedec,
erase_chip_jedec, write_39sf020},
- {"Winbond", "W39V040C", 0xda, 0x50,
512, 64*1024, TEST_OK_PREW, probe_w39v040c,
erase_w39v040c, write_w39v040c},
+ {"Winbond", "W39V040C", WINBOND_ID, 0x50,
512, 64*1024, TEST_OK_PREW, probe_w39v040c,
erase_w39v040c, write_w39v040c},
{"Winbond", "W39V040FA", WINBOND_ID, W_39V040FA,
512, 64*1024, TEST_OK_PREW, probe_jedec,
erase_chip_jedec, write_39sf020},
{"Winbond", "W39V080A", WINBOND_ID, W_39V080A,
1024, 64*1024, TEST_OK_PREW, probe_jedec,
erase_chip_jedec, write_39sf020},
{"Winbond", "W49F002U", WINBOND_ID, W_49F002U,
256, 128, TEST_OK_PREW, probe_jedec,
erase_chip_jedec, write_49f002},
--
http://www.hailfinger.org/
--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot