[coreboot] [PATCH] flashrom: Group probe function together with ID
Carl-Daniel Hailfinger
c-d.hailfinger.devel.2006 at gmx.net
Sat Apr 11 14:09:35 CEST 2009
Flashrom does not support any notion of multiple probe functions for the
same chip nor does it support multiple IDs for the same chip. For
external flasher support with a clean design, this has to be changed.
Group each probe function together with the associated IDs in the flash
chip description.
The trick in this patch is to use an anonymous struct which allows the
chip-specific code to stay unchanged for now, while still keeping full
functionality.
Besides easing review, it also keeps the tree working and bisectable.
This is part 1 of a longer series to add external flasher support. Each
part depends on the previous part, so I'll post the next part after this
has been committed.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
Index: flashrom-probe_grouping/flash.h
===================================================================
--- flashrom-probe_grouping/flash.h (Revision 4091)
+++ flashrom-probe_grouping/flash.h (Arbeitskopie)
@@ -98,8 +98,11 @@
* (including) the 4th bank of JEDEC JEP106W Standard Manufacturer's
* Identification code.
*/
+ struct {
uint32_t manufacture_id;
uint32_t model_id;
+ int (*probe) (struct flashchip *flash);
+ };
int total_size;
int page_size;
@@ -110,7 +113,6 @@
*/
uint32_t tested;
- int (*probe) (struct flashchip *flash);
int (*erase) (struct flashchip *flash);
int (*write) (struct flashchip *flash, uint8_t *buf);
int (*read) (struct flashchip *flash, uint8_t *buf);
Index: flashrom-probe_grouping/flashchips.c
===================================================================
--- flashrom-probe_grouping/flashchips.c (Revision 4091)
+++ flashrom-probe_grouping/flashchips.c (Arbeitskopie)
@@ -31,21 +31,33 @@
*/
struct flashchip flashchips[] = {
- /* Vendor, Chip, Vendor ID, Chip ID,
- * Total size (kB), Page size (B),
- * Test status,
- * Probe function, Erase function, Write function, Read function
+ /*
+ * .vendor = Vendor name
+ * .name = Chip name
+ * { Probe/ID tuple
+ * .manufacture_id = Manufacturer chip ID
+ * .model_id = Model chip ID
+ * .probe = Probe function
+ * },
+ * .total_size = Total size in (binary) kbytes
+ * .page_size = Page or eraseblock(?) size in bytes
+ * .tested = Test status
+ * .erase = Chip erase function
+ * .write = Chip write function
+ * .read = Chip read function
*/
{
.vendor = "AMD",
.name = "Am29F002(N)BB",
+ {
.manufacture_id = AMD_ID,
.model_id = AM_29F002BB,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_en29f002a,
},
@@ -53,12 +65,14 @@
{
.vendor = "AMD",
.name = "Am29F002(N)BT",
+ {
.manufacture_id = AMD_ID,
.model_id = AM_29F002BT,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_en29f002a,
},
@@ -66,12 +80,14 @@
{
.vendor = "AMD",
.name = "Am29F016D",
+ {
.manufacture_id = AMD_ID,
.model_id = AM_29F016D,
+ .probe = probe_29f040b,
+ },
.total_size = 2048,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_29f040b,
.erase = erase_29f040b,
.write = write_29f040b,
},
@@ -79,12 +95,14 @@
{
.vendor = "AMD",
.name = "Am29F040B",
+ {
.manufacture_id = AMD_ID,
.model_id = AM_29F040B,
+ .probe = probe_29f040b,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_29f040b,
.erase = erase_29f040b,
.write = write_29f040b,
},
@@ -92,12 +110,14 @@
{
.vendor = "AMD",
.name = "Am29F080B",
+ {
.manufacture_id = 0x01,
.model_id = 0xd5,
+ .probe = probe_jedec,
+ },
.total_size = 1024,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_29f040b,
.write = write_29f040b,
},
@@ -105,12 +125,14 @@
{
.vendor = "AMD",
.name = "Am29LV040B",
+ {
.manufacture_id = AMD_ID,
.model_id = AM_29LV040B,
+ .probe = probe_29f040b,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_29f040b,
.erase = erase_29f040b,
.write = write_29f040b,
},
@@ -118,12 +140,14 @@
{
.vendor = "AMD",
.name = "Am29LV081B",
+ {
.manufacture_id = 0x01,
.model_id = 0x38,
+ .probe = probe_29f040b,
+ },
.total_size = 1024,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_29f040b,
.erase = erase_29f040b,
.write = write_29f040b,
},
@@ -131,12 +155,14 @@
{
.vendor = "ASD",
.name = "AE49F2008",
+ {
.manufacture_id = ASD_ID,
.model_id = ASD_AE49F2008,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 128,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_jedec,
},
@@ -144,12 +170,14 @@
{
.vendor = "Atmel",
.name = "AT25DF021",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_25DF021,
+ .probe = probe_spi_rdid,
+ },
.total_size = 256,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -158,12 +186,14 @@
{
.vendor = "Atmel",
.name = "AT25DF041A",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_25DF041A,
+ .probe = probe_spi_rdid,
+ },
.total_size = 512,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -172,12 +202,14 @@
{
.vendor = "Atmel",
.name = "AT25DF081",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_25DF081,
+ .probe = probe_spi_rdid,
+ },
.total_size = 1024,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -186,12 +218,14 @@
{
.vendor = "Atmel",
.name = "AT25DF161",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_25DF161,
+ .probe = probe_spi_rdid,
+ },
.total_size = 2048,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -200,12 +234,14 @@
{
.vendor = "Atmel",
.name = "AT25DF321",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_25DF321,
+ .probe = probe_spi_rdid,
+ },
.total_size = 4096,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -214,12 +250,14 @@
{
.vendor = "Atmel",
.name = "AT25DF321A",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_25DF321A,
+ .probe = probe_spi_rdid,
+ },
.total_size = 4096,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -228,12 +266,14 @@
{
.vendor = "Atmel",
.name = "AT25DF641",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_25DF641,
+ .probe = probe_spi_rdid,
+ },
.total_size = 8192,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -242,12 +282,14 @@
{
.vendor = "Atmel",
.name = "AT25F512B",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_25F512B,
+ .probe = probe_spi_rdid,
+ },
.total_size = 64,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -256,12 +298,14 @@
{
.vendor = "Atmel",
.name = "AT25FS010",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_25FS010,
+ .probe = probe_spi_rdid,
+ },
.total_size = 128,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -270,12 +314,14 @@
{
.vendor = "Atmel",
.name = "AT25FS040",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_25FS040,
+ .probe = probe_spi_rdid,
+ },
.total_size = 512,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -284,12 +330,14 @@
{
.vendor = "Atmel",
.name = "AT26DF041",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_26DF041,
+ .probe = probe_spi_rdid,
+ },
.total_size = 512,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL /* Incompatible Page write */,
.read = spi_chip_read,
@@ -298,12 +346,14 @@
{
.vendor = "Atmel",
.name = "AT26DF081A",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_26DF081A,
+ .probe = probe_spi_rdid,
+ },
.total_size = 1024,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -312,12 +362,14 @@
{
.vendor = "Atmel",
.name = "AT26DF161",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_26DF161,
+ .probe = probe_spi_rdid,
+ },
.total_size = 2048,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -326,12 +378,14 @@
{
.vendor = "Atmel",
.name = "AT26DF161A",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_26DF161A,
+ .probe = probe_spi_rdid,
+ },
.total_size = 2048,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -341,12 +395,14 @@
/*{
.vendor = "Atmel",
.name = "AT26DF321",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_26DF321,
+ .probe = probe_spi_rdid,
+ },
.total_size = 4096,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -355,12 +411,14 @@
{
.vendor = "Atmel",
.name = "AT26F004",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_26F004,
+ .probe = probe_spi_rdid,
+ },
.total_size = 512,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = NULL /* Incompatible Page write */,
.read = spi_chip_read,
@@ -369,12 +427,14 @@
{
.vendor = "Atmel",
.name = "AT29C020",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_29C020,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_jedec,
},
@@ -382,12 +442,14 @@
{
.vendor = "Atmel",
.name = "AT29C040A",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_29C040A,
+ .probe = probe_jedec,
+ },
.total_size = 512,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_jedec,
},
@@ -395,12 +457,14 @@
{
.vendor = "Atmel",
.name = "AT45CS1282",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_45CS1282,
+ .probe = probe_spi_rdid,
+ },
.total_size = 16896 /* No power of two sizes */,
.page_size = 1056 /* No power of two sizes */,
.tested = TEST_BAD_READ,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL /* Incompatible Page write */,
.read = NULL /* Incompatible read */,
@@ -409,12 +473,14 @@
{
.vendor = "Atmel",
.name = "AT45DB011D",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_45DB011D,
+ .probe = probe_spi_rdid,
+ },
.total_size = 128 /* Size can only be determined from status register */,
.page_size = 256 /* Size can only be determined from status register */,
.tested = TEST_BAD_READ,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL,
.read = NULL,
@@ -423,12 +489,14 @@
{
.vendor = "Atmel",
.name = "AT45DB021D",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_45DB021D,
+ .probe = probe_spi_rdid,
+ },
.total_size = 256 /* Size can only be determined from status register */,
.page_size = 256 /* Size can only be determined from status register */,
.tested = TEST_BAD_READ,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL,
.read = NULL,
@@ -437,12 +505,14 @@
{
.vendor = "Atmel",
.name = "AT45DB041D",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_45DB041D,
+ .probe = probe_spi_rdid,
+ },
.total_size = 512 /* Size can only be determined from status register */,
.page_size = 256 /* Size can only be determined from status register */,
.tested = TEST_BAD_READ,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL,
.read = NULL,
@@ -451,12 +521,14 @@
{
.vendor = "Atmel",
.name = "AT45DB081D",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_45DB081D,
+ .probe = probe_spi_rdid,
+ },
.total_size = 1024 /* Size can only be determined from status register */,
.page_size = 256 /* Size can only be determined from status register */,
.tested = TEST_BAD_READ,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL,
.read = NULL,
@@ -465,12 +537,14 @@
{
.vendor = "Atmel",
.name = "AT45DB161D",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_45DB161D,
+ .probe = probe_spi_rdid,
+ },
.total_size = 2048 /* Size can only be determined from status register */,
.page_size = 512 /* Size can only be determined from status register */,
.tested = TEST_BAD_READ,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL,
.read = NULL,
@@ -479,12 +553,14 @@
{
.vendor = "Atmel",
.name = "AT45DB321C",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_45DB321C,
+ .probe = probe_spi_rdid,
+ },
.total_size = 4224 /* No power of two sizes */,
.page_size = 528 /* No power of two sizes */,
.tested = TEST_BAD_READ,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL,
.read = NULL /* Incompatible read */,
@@ -493,12 +569,14 @@
{
.vendor = "Atmel",
.name = "AT45DB321D",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_45DB321D,
+ .probe = probe_spi_rdid,
+ },
.total_size = 4096 /* Size can only be determined from status register */,
.page_size = 512 /* Size can only be determined from status register */,
.tested = TEST_BAD_READ,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL,
.read = NULL,
@@ -507,12 +585,14 @@
{
.vendor = "Atmel",
.name = "AT45DB642D",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_45DB642D,
+ .probe = probe_spi_rdid,
+ },
.total_size = 8192 /* Size can only be determined from status register */,
.page_size = 1024 /* Size can only be determined from status register */,
.tested = TEST_BAD_READ,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL,
.read = NULL,
@@ -521,12 +601,14 @@
{
.vendor = "Atmel",
.name = "AT49F002(N)",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_49F002N,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_49f002,
},
@@ -534,12 +616,14 @@
{
.vendor = "Atmel",
.name = "AT49F002(N)T",
+ {
.manufacture_id = ATMEL_ID,
.model_id = AT_49F002NT,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_49f002,
},
@@ -547,12 +631,14 @@
{
.vendor = "AMIC",
.name = "A25L40P",
+ {
.manufacture_id = AMIC_ID,
.model_id = AMIC_A25L40P,
+ .probe = probe_spi_rdid4,
+ },
.total_size = 512,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_spi_rdid4,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -561,12 +647,14 @@
{
.vendor = "AMIC",
.name = "A29002B",
+ {
.manufacture_id = AMIC_ID_NOPREFIX,
.model_id = AMIC_A29002B,
+ .probe = probe_29f002,
+ },
.total_size = 256,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_29f002,
.erase = erase_29f002,
.write = write_29f002,
},
@@ -574,12 +662,14 @@
{
.vendor = "AMIC",
.name = "A29002T",
+ {
.manufacture_id = AMIC_ID_NOPREFIX,
.model_id = AMIC_A29002T,
+ .probe = probe_29f002,
+ },
.total_size = 256,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_29f002,
.erase = erase_29f002,
.write = write_29f002,
},
@@ -587,12 +677,14 @@
{
.vendor = "AMIC",
.name = "A29040B",
+ {
.manufacture_id = AMIC_ID_NOPREFIX,
.model_id = AMIC_A29040B,
+ .probe = probe_29f040b,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_OK_PR,
- .probe = probe_29f040b,
.erase = erase_29f040b,
.write = write_29f040b,
},
@@ -600,12 +692,14 @@
{
.vendor = "AMIC",
.name = "A49LF040A",
+ {
.manufacture_id = AMIC_ID_NOPREFIX,
.model_id = AMIC_A49LF040A,
+ .probe = probe_49fl00x,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_49fl00x,
.erase = erase_49fl00x,
.write = write_49fl00x,
},
@@ -613,12 +707,14 @@
{
.vendor = "EMST",
.name = "F49B002UA",
+ {
.manufacture_id = EMST_ID,
.model_id = EMST_F49B002UA,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 4096,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_49f002,
},
@@ -626,12 +722,14 @@
{
.vendor = "EON",
.name = "EN29F002(A)(N)B",
+ {
.manufacture_id = EON_ID,
.model_id = EN_29F002B,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_en29f002a,
},
@@ -639,12 +737,14 @@
{
.vendor = "EON",
.name = "EN29F002(A)(N)T",
+ {
.manufacture_id = EON_ID,
.model_id = EN_29F002T,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_en29f002a,
},
@@ -652,12 +752,14 @@
{
.vendor = "Fujitsu",
.name = "MBM29F004BC",
+ {
.manufacture_id = FUJITSU_ID,
.model_id = MBM29F004BC,
+ .probe = probe_jedec,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = NULL,
.write = NULL,
},
@@ -665,12 +767,14 @@
{
.vendor = "Fujitsu",
.name = "MBM29F004TC",
+ {
.manufacture_id = FUJITSU_ID,
.model_id = MBM29F004TC,
+ .probe = probe_jedec,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = NULL,
.write = NULL,
},
@@ -678,12 +782,14 @@
{
.vendor = "Fujitsu",
.name = "MBM29F400BC",
+ {
.manufacture_id = FUJITSU_ID,
.model_id = MBM29F400BC,
+ .probe = probe_m29f400bt,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
.erase = erase_m29f400bt,
.write = write_coreboot_m29f400bt,
},
@@ -691,12 +797,14 @@
{
.vendor = "Fujitsu",
.name = "MBM29F400TC",
+ {
.manufacture_id = FUJITSU_ID,
.model_id = MBM29F400TC,
+ .probe = probe_m29f400bt,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
.erase = erase_m29f400bt,
.write = write_coreboot_m29f400bt,
},
@@ -704,12 +812,14 @@
{
.vendor = "Intel",
.name = "82802AB",
+ {
.manufacture_id = INTEL_ID,
.model_id = 173,
+ .probe = probe_82802ab,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_82802ab,
.erase = erase_82802ab,
.write = write_82802ab,
},
@@ -717,12 +827,14 @@
{
.vendor = "Intel",
.name = "82802AC",
+ {
.manufacture_id = INTEL_ID,
.model_id = 172,
+ .probe = probe_82802ab,
+ },
.total_size = 1024,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_82802ab,
.erase = erase_82802ab,
.write = write_82802ab,
},
@@ -730,12 +842,14 @@
{
.vendor = "Macronix",
.name = "MX25L512",
+ {
.manufacture_id = MX_ID,
.model_id = MX_25L512,
+ .probe = probe_spi_rdid,
+ },
.total_size = 64,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -744,12 +858,14 @@
{
.vendor = "Macronix",
.name = "MX25L1005",
+ {
.manufacture_id = MX_ID,
.model_id = MX_25L1005,
+ .probe = probe_spi_rdid,
+ },
.total_size = 128,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -758,12 +874,14 @@
{
.vendor = "Macronix",
.name = "MX25L2005",
+ {
.manufacture_id = MX_ID,
.model_id = MX_25L2005,
+ .probe = probe_spi_rdid,
+ },
.total_size = 256,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -772,12 +890,14 @@
{
.vendor = "Macronix",
.name = "MX25L4005",
+ {
.manufacture_id = MX_ID,
.model_id = MX_25L4005,
+ .probe = probe_spi_rdid,
+ },
.total_size = 512,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -786,12 +906,14 @@
{
.vendor = "Macronix",
.name = "MX25L8005",
+ {
.manufacture_id = MX_ID,
.model_id = MX_25L8005,
+ .probe = probe_spi_rdid,
+ },
.total_size = 1024,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -800,12 +922,14 @@
{
.vendor = "Macronix",
.name = "MX25L1605",
+ {
.manufacture_id = MX_ID,
.model_id = MX_25L1605,
+ .probe = probe_spi_rdid,
+ },
.total_size = 2048,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -814,12 +938,14 @@
{
.vendor = "Macronix",
.name = "MX25L3205",
+ {
.manufacture_id = MX_ID,
.model_id = MX_25L3205,
+ .probe = probe_spi_rdid,
+ },
.total_size = 4096,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -828,12 +954,14 @@
{
.vendor = "Macronix",
.name = "MX25L6405",
+ {
.manufacture_id = MX_ID,
.model_id = MX_25L6405,
+ .probe = probe_spi_rdid,
+ },
.total_size = 8192,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -842,12 +970,14 @@
{
.vendor = "Macronix",
.name = "MX29F002B",
+ {
.manufacture_id = MX_ID,
.model_id = MX_29F002B,
+ .probe = probe_29f002,
+ },
.total_size = 256,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_29f002,
.erase = erase_29f002,
.write = write_29f002,
},
@@ -855,12 +985,14 @@
{
.vendor = "Macronix",
.name = "MX29F002T",
+ {
.manufacture_id = MX_ID,
.model_id = MX_29F002T,
+ .probe = probe_29f002,
+ },
.total_size = 256,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_29f002,
.erase = erase_29f002,
.write = write_29f002,
},
@@ -868,12 +1000,14 @@
{
.vendor = "Macronix",
.name = "MX29LV040C",
+ {
.manufacture_id = MX_ID,
.model_id = MX_29LV040C,
+ .probe = probe_29f002,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_OK_PR,
- .probe = probe_29f002,
.erase = erase_29f002,
.write = write_29f002,
},
@@ -881,12 +1015,14 @@
{
.vendor = "Numonyx",
.name = "M25PE10",
+ {
.manufacture_id = ST_ID,
.model_id = 0x8011,
+ .probe = probe_spi_rdid,
+ },
.total_size = 128,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_d8,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -895,12 +1031,14 @@
{
.vendor = "Numonyx",
.name = "M25PE20",
+ {
.manufacture_id = ST_ID,
.model_id = 0x8012,
+ .probe = probe_spi_rdid,
+ },
.total_size = 256,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_d8,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -909,12 +1047,14 @@
{
.vendor = "Numonyx",
.name = "M25PE40",
+ {
.manufacture_id = ST_ID,
.model_id = 0x8013,
+ .probe = probe_spi_rdid,
+ },
.total_size = 256,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_d8,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -923,12 +1063,14 @@
{
.vendor = "Numonyx",
.name = "M25PE80",
+ {
.manufacture_id = ST_ID,
.model_id = 0x8014,
+ .probe = probe_spi_rdid,
+ },
.total_size = 1024,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_d8,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -937,12 +1079,14 @@
{
.vendor = "Numonyx",
.name = "M25PE16",
+ {
.manufacture_id = ST_ID,
.model_id = 0x8015,
+ .probe = probe_spi_rdid,
+ },
.total_size = 2048,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_d8,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -951,12 +1095,14 @@
{
.vendor = "PMC",
.name = "Pm25LV010",
+ {
.manufacture_id = PMC_ID,
.model_id = PMC_25LV010,
+ .probe = probe_spi_rdid,
+ },
.total_size = 128,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -965,12 +1111,14 @@
{
.vendor = "PMC",
.name = "Pm25LV016B",
+ {
.manufacture_id = PMC_ID,
.model_id = PMC_25LV016B,
+ .probe = probe_spi_rdid,
+ },
.total_size = 2048,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -979,12 +1127,14 @@
{
.vendor = "PMC",
.name = "Pm25LV020",
+ {
.manufacture_id = PMC_ID,
.model_id = PMC_25LV020,
+ .probe = probe_spi_rdid,
+ },
.total_size = 256,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -993,12 +1143,14 @@
{
.vendor = "PMC",
.name = "Pm25LV040",
+ {
.manufacture_id = PMC_ID,
.model_id = PMC_25LV040,
+ .probe = probe_spi_rdid,
+ },
.total_size = 512,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1007,12 +1159,14 @@
{
.vendor = "PMC",
.name = "Pm25LV080B",
+ {
.manufacture_id = PMC_ID,
.model_id = PMC_25LV080B,
+ .probe = probe_spi_rdid,
+ },
.total_size = 1024,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1021,12 +1175,14 @@
{
.vendor = "PMC",
.name = "Pm25LV512",
+ {
.manufacture_id = PMC_ID,
.model_id = PMC_25LV512,
+ .probe = probe_spi_rdid,
+ },
.total_size = 64,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1035,12 +1191,14 @@
{
.vendor = "PMC",
.name = "Pm49FL002",
+ {
.manufacture_id = PMC_ID_NOPREFIX,
.model_id = PMC_49FL002,
+ .probe = probe_49fl00x,
+ },
.total_size = 256,
.page_size = 16 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_49fl00x,
.erase = erase_49fl00x,
.write = write_49fl00x,
},
@@ -1048,12 +1206,14 @@
{
.vendor = "PMC",
.name = "Pm49FL004",
+ {
.manufacture_id = PMC_ID_NOPREFIX,
.model_id = PMC_49FL004,
+ .probe = probe_49fl00x,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_49fl00x,
.erase = erase_49fl00x,
.write = write_49fl00x,
},
@@ -1061,12 +1221,14 @@
{
.vendor = "Sharp",
.name = "LHF00L04",
+ {
.manufacture_id = SHARP_ID,
.model_id = SHARP_LHF00L04,
+ .probe = probe_lhf00l04,
+ },
.total_size = 1024,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_lhf00l04,
.erase = erase_lhf00l04,
.write = write_lhf00l04,
},
@@ -1074,12 +1236,14 @@
{
.vendor = "Spansion",
.name = "S25FL016A",
+ {
.manufacture_id = SPANSION_ID,
.model_id = SPANSION_S25FL016A,
+ .probe = probe_spi_rdid,
+ },
.total_size = 2048,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1088,12 +1252,14 @@
{
.vendor = "SST",
.name = "SST25VF016B",
+ {
.manufacture_id = SST_ID,
.model_id = SST_25VF016B,
+ .probe = probe_spi_rdid,
+ },
.total_size = 2048,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1102,12 +1268,14 @@
{
.vendor = "SST",
.name = "SST25VF032B",
+ {
.manufacture_id = SST_ID,
.model_id = SST_25VF032B,
+ .probe = probe_spi_rdid,
+ },
.total_size = 4096,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1116,12 +1284,14 @@
{
.vendor = "SST",
.name = "SST25VF040B",
+ {
.manufacture_id = SST_ID,
.model_id = SST_25VF040B,
+ .probe = probe_spi_rdid,
+ },
.total_size = 512,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1130,12 +1300,14 @@
{
.vendor = "SST",
.name = "SST25VF040.REMS",
+ {
.manufacture_id = 0xbf,
.model_id = 0x44,
+ .probe = probe_spi_rems,
+ },
.total_size = 512,
.page_size = 64*1024,
.tested = TEST_OK_PR,
- .probe = probe_spi_rems,
.erase = spi_chip_erase_60,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1144,12 +1316,14 @@
{
.vendor = "SST",
.name = "SST25VF040B.REMS",
+ {
.manufacture_id = 0xbf,
.model_id = 0x8d,
+ .probe = probe_spi_rems,
+ },
.total_size = 512,
.page_size = 64*1024,
.tested = TEST_OK_PR,
- .probe = probe_spi_rems,
.erase = spi_chip_erase_c7,
.write = spi_aai_write,
.read = spi_chip_read,
@@ -1158,12 +1332,14 @@
{
.vendor = "SST",
.name = "SST25VF080B",
+ {
.manufacture_id = SST_ID,
.model_id = SST_25VF080B,
+ .probe = probe_spi_rdid,
+ },
.total_size = 1024,
.page_size = 256,
.tested = TEST_OK_PROBE,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_60_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1172,12 +1348,14 @@
{
.vendor = "SST",
.name = "SST28SF040A",
+ {
.manufacture_id = SST_ID,
.model_id = SST_28SF040,
+ .probe = probe_28sf040,
+ },
.total_size = 512,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_28sf040,
.erase = erase_28sf040,
.write = write_28sf040,
},
@@ -1185,12 +1363,14 @@
{
.vendor = "SST",
.name = "SST29EE010",
+ {
.manufacture_id = SST_ID,
.model_id = SST_29EE010,
+ .probe = probe_jedec,
+ },
.total_size = 128,
.page_size = 128,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_jedec,
},
@@ -1198,12 +1378,14 @@
{
.vendor = "SST",
.name = "SST29LE010",
+ {
.manufacture_id = SST_ID,
.model_id = SST_29LE010,
+ .probe = probe_jedec,
+ },
.total_size = 128,
.page_size = 128,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_jedec,
},
@@ -1211,12 +1393,14 @@
{
.vendor = "SST",
.name = "SST29EE020A",
+ {
.manufacture_id = SST_ID,
.model_id = SST_29EE020A,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 128,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_jedec,
},
@@ -1224,12 +1408,14 @@
{
.vendor = "SST",
.name = "SST29LE020",
+ {
.manufacture_id = SST_ID,
.model_id = SST_29LE020,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 128,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_jedec,
},
@@ -1237,12 +1423,14 @@
{
.vendor = "SST",
.name = "SST39SF010A",
+ {
.manufacture_id = SST_ID,
.model_id = SST_39SF010,
+ .probe = probe_jedec,
+ },
.total_size = 128,
.page_size = 4096,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_39sf020,
},
@@ -1250,12 +1438,14 @@
{
.vendor = "SST",
.name = "SST39SF020A",
+ {
.manufacture_id = SST_ID,
.model_id = SST_39SF020,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 4096,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_39sf020,
},
@@ -1263,12 +1453,14 @@
{
.vendor = "SST",
.name = "SST39SF040",
+ {
.manufacture_id = SST_ID,
.model_id = SST_39SF040,
+ .probe = probe_jedec,
+ },
.total_size = 512,
.page_size = 4096,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_39sf020,
},
@@ -1276,12 +1468,14 @@
{
.vendor = "SST",
.name = "SST39VF512",
+ {
.manufacture_id = SST_ID,
.model_id = SST_39VF512,
+ .probe = probe_jedec,
+ },
.total_size = 64,
.page_size = 4096,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_39sf020,
},
@@ -1289,12 +1483,14 @@
{
.vendor = "SST",
.name = "SST39VF010",
+ {
.manufacture_id = SST_ID,
.model_id = SST_39VF010,
+ .probe = probe_jedec,
+ },
.total_size = 128,
.page_size = 4096,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_39sf020,
},
@@ -1302,12 +1498,14 @@
{
.vendor = "SST",
.name = "SST39VF020",
+ {
.manufacture_id = SST_ID,
.model_id = SST_39VF020,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 4096,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_39sf020,
},
@@ -1315,12 +1513,14 @@
{
.vendor = "SST",
.name = "SST39VF040",
+ {
.manufacture_id = SST_ID,
.model_id = SST_39VF040,
+ .probe = probe_jedec,
+ },
.total_size = 512,
.page_size = 4096,
.tested = TEST_OK_PROBE,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_39sf020,
},
@@ -1328,12 +1528,14 @@
{
.vendor = "SST",
.name = "SST39VF080",
+ {
.manufacture_id = 0xbf,
.model_id = 0xd8,
+ .probe = probe_jedec,
+ },
.total_size = 1024,
.page_size = 4096,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_39sf020,
},
@@ -1341,12 +1543,14 @@
{
.vendor = "SST",
.name = "SST49LF002A/B",
+ {
.manufacture_id = SST_ID,
.model_id = SST_49LF002A,
+ .probe = probe_sst_fwhub,
+ },
.total_size = 256,
.page_size = 16 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_sst_fwhub,
.erase = erase_sst_fwhub,
.write = write_sst_fwhub,
},
@@ -1354,12 +1558,14 @@
{
.vendor = "SST",
.name = "SST49LF003A/B",
+ {
.manufacture_id = SST_ID,
.model_id = SST_49LF003A,
+ .probe = probe_sst_fwhub,
+ },
.total_size = 384,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_sst_fwhub,
.erase = erase_sst_fwhub,
.write = write_sst_fwhub,
},
@@ -1367,12 +1573,14 @@
{
.vendor = "SST",
.name = "SST49LF004A/B",
+ {
.manufacture_id = SST_ID,
.model_id = SST_49LF004A,
+ .probe = probe_sst_fwhub,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_sst_fwhub,
.erase = erase_sst_fwhub,
.write = write_sst_fwhub,
},
@@ -1380,12 +1588,14 @@
{
.vendor = "SST",
.name = "SST49LF004C",
+ {
.manufacture_id = SST_ID,
.model_id = SST_49LF004C,
+ .probe = probe_49lfxxxc,
+ },
.total_size = 512,
.page_size = 4 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_49lfxxxc,
.erase = erase_49lfxxxc,
.write = write_49lfxxxc,
},
@@ -1393,12 +1603,14 @@
{
.vendor = "SST",
.name = "SST49LF008A",
+ {
.manufacture_id = SST_ID,
.model_id = SST_49LF008A,
+ .probe = probe_sst_fwhub,
+ },
.total_size = 1024,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_sst_fwhub,
.erase = erase_sst_fwhub,
.write = write_sst_fwhub,
},
@@ -1406,12 +1618,14 @@
{
.vendor = "SST",
.name = "SST49LF008C",
+ {
.manufacture_id = SST_ID,
.model_id = SST_49LF008C,
+ .probe = probe_49lfxxxc,
+ },
.total_size = 1024,
.page_size = 4 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_49lfxxxc,
.erase = erase_49lfxxxc,
.write = write_49lfxxxc,
},
@@ -1419,12 +1633,14 @@
{
.vendor = "SST",
.name = "SST49LF016C",
+ {
.manufacture_id = SST_ID,
.model_id = SST_49LF016C,
+ .probe = probe_49lfxxxc,
+ },
.total_size = 2048,
.page_size = 4 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_49lfxxxc,
.erase = erase_49lfxxxc,
.write = write_49lfxxxc,
},
@@ -1432,12 +1648,14 @@
{
.vendor = "SST",
.name = "SST49LF020",
+ {
.manufacture_id = SST_ID,
.model_id = SST_49LF020,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 16 * 1024,
.tested = TEST_OK_PR,
- .probe = probe_jedec,
.erase = erase_49lf040,
.write = write_49lf040,
},
@@ -1445,12 +1663,14 @@
{
.vendor = "SST",
.name = "SST49LF020A",
+ {
.manufacture_id = SST_ID,
.model_id = SST_49LF020A,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 16 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_49lf040,
.write = write_49lf040,
},
@@ -1458,12 +1678,14 @@
{
.vendor = "SST",
.name = "SST49LF040",
+ {
.manufacture_id = SST_ID,
.model_id = SST_49LF040,
+ .probe = probe_jedec,
+ },
.total_size = 512,
.page_size = 4096,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_49lf040,
.write = write_49lf040,
},
@@ -1471,12 +1693,14 @@
{
.vendor = "SST",
.name = "SST49LF040B",
+ {
.manufacture_id = SST_ID,
.model_id = SST_49LF040B,
+ .probe = probe_sst_fwhub,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_sst_fwhub,
.erase = erase_sst_fwhub,
.write = write_sst_fwhub,
},
@@ -1484,12 +1708,14 @@
{
.vendor = "SST",
.name = "SST49LF080A",
+ {
.manufacture_id = SST_ID,
.model_id = SST_49LF080A,
+ .probe = probe_jedec,
+ },
.total_size = 1024,
.page_size = 4096,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_49lf040,
.write = write_49lf040,
},
@@ -1497,12 +1723,14 @@
{
.vendor = "SST",
.name = "SST49LF160C",
+ {
.manufacture_id = SST_ID,
.model_id = SST_49LF160C,
+ .probe = probe_49lfxxxc,
+ },
.total_size = 2048,
.page_size = 4 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_49lfxxxc,
.erase = erase_49lfxxxc,
.write = write_49lfxxxc,
},
@@ -1510,12 +1738,14 @@
{
.vendor = "ST",
.name = "M25P05-A",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M25P05A,
+ .probe = probe_spi_rdid,
+ },
.total_size = 64,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1524,12 +1754,14 @@
{
.vendor = "ST",
.name = "M25P10-A",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M25P10A,
+ .probe = probe_spi_rdid,
+ },
.total_size = 128,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1538,12 +1770,14 @@
{
.vendor = "ST",
.name = "M25P20",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M25P20,
+ .probe = probe_spi_rdid,
+ },
.total_size = 256,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1552,12 +1786,14 @@
{
.vendor = "ST",
.name = "M25P40",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M25P40,
+ .probe = probe_spi_rdid,
+ },
.total_size = 512,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1566,12 +1802,14 @@
{
.vendor = "ST",
.name = "M25P40-old",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M25P40_RES,
+ .probe = probe_spi_res,
+ },
.total_size = 512,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_res,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1580,12 +1818,14 @@
{
.vendor = "ST",
.name = "M25P80",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M25P80,
+ .probe = probe_spi_rdid,
+ },
.total_size = 1024,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1594,12 +1834,14 @@
{
.vendor = "ST",
.name = "M25P16",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M25P16,
+ .probe = probe_spi_rdid,
+ },
.total_size = 2048,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1608,12 +1850,14 @@
{
.vendor = "ST",
.name = "M25P32",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M25P32,
+ .probe = probe_spi_rdid,
+ },
.total_size = 4096,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1622,12 +1866,14 @@
{
.vendor = "ST",
.name = "M25P64",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M25P64,
+ .probe = probe_spi_rdid,
+ },
.total_size = 8192,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1636,12 +1882,14 @@
{
.vendor = "ST",
.name = "M25P128",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M25P128,
+ .probe = probe_spi_rdid,
+ },
.total_size = 16384,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1650,12 +1898,14 @@
{
.vendor = "ST",
.name = "M29F002B",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M29F002B,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_m29f002,
.write = write_m29f002b,
},
@@ -1663,12 +1913,14 @@
{
.vendor = "ST",
.name = "M29F002T/NT",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M29F002T,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_m29f002,
.write = write_m29f002t,
},
@@ -1676,12 +1928,14 @@
{
.vendor = "ST",
.name = "M29F040B",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M29F040B,
+ .probe = probe_29f040b,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_29f040b,
.erase = erase_29f040b,
.write = write_29f040b,
},
@@ -1689,12 +1943,14 @@
{
.vendor = "ST",
.name = "M29F400BT",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M29F400BT,
+ .probe = probe_m29f400bt,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
.erase = erase_m29f400bt,
.write = write_coreboot_m29f400bt,
},
@@ -1702,12 +1958,14 @@
{
.vendor = "ST",
.name = "M29W010B",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M29W010B,
+ .probe = probe_jedec,
+ },
.total_size = 128,
.page_size = 16 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_jedec,
},
@@ -1715,12 +1973,14 @@
{
.vendor = "ST",
.name = "M29W040B",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M29W040B,
+ .probe = probe_jedec,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_jedec,
},
@@ -1728,12 +1988,14 @@
{
.vendor = "ST",
.name = "M50FLW040A",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M50FLW040A,
+ .probe = probe_stm50flw0x0x,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_stm50flw0x0x,
.erase = erase_stm50flw0x0x,
.write = write_stm50flw0x0x,
},
@@ -1741,12 +2003,14 @@
{
.vendor = "ST",
.name = "M50FLW040B",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M50FLW040B,
+ .probe = probe_stm50flw0x0x,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_stm50flw0x0x,
.erase = erase_stm50flw0x0x,
.write = write_stm50flw0x0x,
},
@@ -1754,12 +2018,14 @@
{
.vendor = "ST",
.name = "M50FLW080A",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M50FLW080A,
+ .probe = probe_stm50flw0x0x,
+ },
.total_size = 1024,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_stm50flw0x0x,
.erase = erase_stm50flw0x0x,
.write = write_stm50flw0x0x,
},
@@ -1767,12 +2033,14 @@
{
.vendor = "ST",
.name = "M50FLW080B",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M50FLW080B,
+ .probe = probe_stm50flw0x0x,
+ },
.total_size = 1024,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_stm50flw0x0x,
.erase = erase_stm50flw0x0x,
.write = write_stm50flw0x0x,
},
@@ -1780,12 +2048,14 @@
{
.vendor = "ST",
.name = "M50FW002",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M50FW002,
+ .probe = probe_49lfxxxc,
+ },
.total_size = 256,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_49lfxxxc,
.erase = NULL,
.write = NULL,
},
@@ -1793,12 +2063,14 @@
{
.vendor = "ST",
.name = "M50FW016",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M50FW016,
+ .probe = probe_82802ab,
+ },
.total_size = 2048,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_82802ab,
.erase = erase_82802ab,
.write = write_82802ab,
},
@@ -1806,12 +2078,14 @@
{
.vendor = "ST",
.name = "M50FW040",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M50FW040,
+ .probe = probe_82802ab,
+ },
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_82802ab,
.erase = erase_82802ab,
.write = write_82802ab,
},
@@ -1819,12 +2093,14 @@
{
.vendor = "ST",
.name = "M50FW080",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M50FW080,
+ .probe = probe_82802ab,
+ },
.total_size = 1024,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
- .probe = probe_82802ab,
.erase = erase_82802ab,
.write = write_82802ab,
},
@@ -1832,12 +2108,14 @@
{
.vendor = "ST",
.name = "M50LPW116",
+ {
.manufacture_id = ST_ID,
.model_id = ST_M50LPW116,
+ .probe = probe_jedec,
+ },
.total_size = 2048,
.page_size = 64 * 1024,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_jedec,
},
@@ -1845,12 +2123,14 @@
{
.vendor = "SyncMOS",
.name = "S29C31004T",
+ {
.manufacture_id = SYNCMOS_ID,
.model_id = S29C31004T,
+ .probe = probe_jedec,
+ },
.total_size = 512,
.page_size = 128,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_49f002,
},
@@ -1858,12 +2138,14 @@
{
.vendor = "SyncMOS",
.name = "S29C51001T",
+ {
.manufacture_id = SYNCMOS_ID,
.model_id = S29C51001T,
+ .probe = probe_jedec,
+ },
.total_size = 128,
.page_size = 128,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_49f002,
},
@@ -1871,12 +2153,14 @@
{
.vendor = "SyncMOS",
.name = "S29C51002T",
+ {
.manufacture_id = SYNCMOS_ID,
.model_id = S29C51002T,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 128,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_49f002,
},
@@ -1884,12 +2168,14 @@
{
.vendor = "SyncMOS",
.name = "S29C51004T",
+ {
.manufacture_id = SYNCMOS_ID,
.model_id = S29C51004T,
+ .probe = probe_jedec,
+ },
.total_size = 512,
.page_size = 128,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_49f002,
},
@@ -1897,12 +2183,14 @@
{
.vendor = "Winbond",
.name = "W25x10",
+ {
.manufacture_id = WINBOND_NEX_ID,
.model_id = W_25X10,
+ .probe = probe_spi_rdid,
+ },
.total_size = 128,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1911,12 +2199,14 @@
{
.vendor = "Winbond",
.name = "W25x20",
+ {
.manufacture_id = WINBOND_NEX_ID,
.model_id = W_25X20,
+ .probe = probe_spi_rdid,
+ },
.total_size = 256,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1925,12 +2215,14 @@
{
.vendor = "Winbond",
.name = "W25x40",
+ {
.manufacture_id = WINBOND_NEX_ID,
.model_id = W_25X40,
+ .probe = probe_spi_rdid,
+ },
.total_size = 512,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1939,12 +2231,14 @@
{
.vendor = "Winbond",
.name = "W25x80",
+ {
.manufacture_id = WINBOND_NEX_ID,
.model_id = W_25X80,
+ .probe = probe_spi_rdid,
+ },
.total_size = 1024,
.page_size = 256,
.tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
.erase = spi_chip_erase_c7,
.write = spi_chip_write,
.read = spi_chip_read,
@@ -1953,12 +2247,14 @@
{
.vendor = "Winbond",
.name = "W29C011",
+ {
.manufacture_id = WINBOND_ID,
.model_id = W_29C011,
+ .probe = probe_jedec,
+ },
.total_size = 128,
.page_size = 128,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_jedec,
},
@@ -1966,12 +2262,14 @@
{
.vendor = "Winbond",
.name = "W29C020C",
+ {
.manufacture_id = WINBOND_ID,
.model_id = W_29C020C,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 128,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_jedec,
},
@@ -1979,12 +2277,14 @@
{
.vendor = "Winbond",
.name = "W29C040P",
+ {
.manufacture_id = WINBOND_ID,
.model_id = W_29C040P,
+ .probe = probe_jedec,
+ },
.total_size = 512,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_jedec,
},
@@ -1992,12 +2292,14 @@
{
.vendor = "Winbond",
.name = "W29EE011",
+ {
.manufacture_id = WINBOND_ID,
.model_id = W_29C011,
+ .probe = probe_w29ee011,
+ },
.total_size = 128,
.page_size = 128,
.tested = TEST_OK_PREW,
- .probe = probe_w29ee011,
.erase = erase_chip_jedec,
.write = write_jedec,
},
@@ -2005,12 +2307,14 @@
{
.vendor = "Winbond",
.name = "W39V040A",
+ {
.manufacture_id = WINBOND_ID,
.model_id = W_39V040A,
+ .probe = probe_jedec,
+ },
.total_size = 512,
.page_size = 64*1024,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_39sf020,
},
@@ -2018,12 +2322,14 @@
{
.vendor = "Winbond",
.name = "W39V040B",
+ {
.manufacture_id = WINBOND_ID,
.model_id = W_39V040B,
+ .probe = probe_jedec,
+ },
.total_size = 512,
.page_size = 64*1024,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_39sf020,
},
@@ -2031,12 +2337,14 @@
{
.vendor = "Winbond",
.name = "W39V040C",
+ {
.manufacture_id = WINBOND_ID,
.model_id = 0x50,
+ .probe = probe_w39v040c,
+ },
.total_size = 512,
.page_size = 64*1024,
.tested = TEST_OK_PREW,
- .probe = probe_w39v040c,
.erase = erase_w39v040c,
.write = write_w39v040c,
},
@@ -2044,12 +2352,14 @@
{
.vendor = "Winbond",
.name = "W39V040FA",
+ {
.manufacture_id = WINBOND_ID,
.model_id = W_39V040FA,
+ .probe = probe_jedec,
+ },
.total_size = 512,
.page_size = 64*1024,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_39sf020,
},
@@ -2057,12 +2367,14 @@
{
.vendor = "Winbond",
.name = "W39V080A",
+ {
.manufacture_id = WINBOND_ID,
.model_id = W_39V080A,
+ .probe = probe_jedec,
+ },
.total_size = 1024,
.page_size = 64*1024,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_39sf020,
},
@@ -2070,12 +2382,14 @@
{
.vendor = "Winbond",
.name = "W49F002U",
+ {
.manufacture_id = WINBOND_ID,
.model_id = W_49F002U,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 128,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_49f002,
},
@@ -2083,12 +2397,14 @@
{
.vendor = "Winbond",
.name = "W49V002A",
+ {
.manufacture_id = WINBOND_ID,
.model_id = W_49V002A,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 128,
.tested = TEST_OK_PREW,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_49f002,
},
@@ -2096,12 +2412,14 @@
{
.vendor = "Winbond",
.name = "W49V002FA",
+ {
.manufacture_id = WINBOND_ID,
.model_id = W_49V002FA,
+ .probe = probe_jedec,
+ },
.total_size = 256,
.page_size = 128,
.tested = TEST_UNTESTED,
- .probe = probe_jedec,
.erase = erase_chip_jedec,
.write = write_49f002,
},
@@ -2109,12 +2427,14 @@
{
.vendor = "Winbond",
.name = "W39V080FA",
+ {
.manufacture_id = WINBOND_ID,
.model_id = W_39V080FA,
+ .probe = probe_winbond_fwhub,
+ },
.total_size = 1024,
.page_size = 64*1024,
.tested = TEST_OK_PREW,
- .probe = probe_winbond_fwhub,
.erase = erase_winbond_fwhub,
.write = write_winbond_fwhub,
},
@@ -2122,12 +2442,14 @@
{
.vendor = "Winbond",
.name = "W39V080FA (dual mode)",
+ {
.manufacture_id = WINBOND_ID,
.model_id = W_39V080FA_DM,
+ .probe = probe_winbond_fwhub,
+ },
.total_size = 512,
.page_size = 64*1024,
.tested = TEST_UNTESTED,
- .probe = probe_winbond_fwhub,
.erase = erase_winbond_fwhub,
.write = write_winbond_fwhub,
},
@@ -2135,12 +2457,14 @@
{
.vendor = "Atmel",
.name = "unknown Atmel SPI chip",
+ {
.manufacture_id = ATMEL_ID,
.model_id = GENERIC_DEVICE_ID,
+ .probe = probe_spi_rdid,
+ },
.total_size = 0,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL,
},
@@ -2148,12 +2472,14 @@
{
.vendor = "EON",
.name = "unknown EON SPI chip",
+ {
.manufacture_id = EON_ID_NOPREFIX,
.model_id = GENERIC_DEVICE_ID,
+ .probe = probe_spi_rdid,
+ },
.total_size = 0,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL,
},
@@ -2161,12 +2487,14 @@
{
.vendor = "Macronix",
.name = "unknown Macronix SPI chip",
+ {
.manufacture_id = MX_ID,
.model_id = GENERIC_DEVICE_ID,
+ .probe = probe_spi_rdid,
+ },
.total_size = 0,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL,
},
@@ -2174,12 +2502,14 @@
{
.vendor = "PMC",
.name = "unknown PMC SPI chip",
+ {
.manufacture_id = PMC_ID,
.model_id = GENERIC_DEVICE_ID,
+ .probe = probe_spi_rdid,
+ },
.total_size = 0,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL,
},
@@ -2187,12 +2517,14 @@
{
.vendor = "SST",
.name = "unknown SST SPI chip",
+ {
.manufacture_id = SST_ID,
.model_id = GENERIC_DEVICE_ID,
+ .probe = probe_spi_rdid,
+ },
.total_size = 0,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL,
},
@@ -2200,12 +2532,14 @@
{
.vendor = "ST",
.name = "unknown ST SPI chip",
+ {
.manufacture_id = ST_ID,
.model_id = GENERIC_DEVICE_ID,
+ .probe = probe_spi_rdid,
+ },
.total_size = 0,
.page_size = 256,
.tested = TEST_UNTESTED,
- .probe = probe_spi_rdid,
.erase = NULL,
.write = NULL,
},
--
http://www.hailfinger.org/
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: flashrom_probe_grouping.diff
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20090411/86907dd1/attachment.ksh>
More information about the coreboot
mailing list