flashchips: Add a type enum to the chip identification
We used to imply what kind of ID (e.g. RES, REMS, RDID) a chip entry
provides, based on the given probing function. This works well as long
as we call the respective probing function for every single chip entry.
With our ever growing chip database, however, this slows probing signi-
ficantly down. Especially with external programmers with a long command
round-trip.
With the type of identification information stored in the chip entries
explicitly, we'll be able to implement bus-specific probing functions.
These would be called only once and their results would be used to look
a matching chip up in the chip database. Instead of looking for every
possible chip on the buses, we can turn it around and search for the
actually present chips in the database.
Change-Id: Ie658ebf58f21c8994b9b66f7683f9490e8d12267
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.sourcearcade.org/c/flashprog/+/74898
diff --git a/flashchips.c b/flashchips.c
index 5744ad7..505f0b9 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -38,8 +38,9 @@
* .vendor = Vendor name
* .name = Chip name
* .bustype = Supported flash bus types (Parallel, LPC...)
- * .manufacture_id = Manufacturer chip ID
- * .model_id = Model chip ID
+ * .id.type = Type of the ID information (used to match probing method etc.)
+ * .id.manufacture = Manufacturer chip ID
+ * .id.model = Model chip ID
* .total_size = Total size in (binary) kbytes
* .page_size = Page or eraseblock(?) size in bytes
* .tested = Test status
@@ -61,8 +62,9 @@
.vendor = "AMD",
.name = "Am29F002(N)BB",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29F002BB,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29F002BB,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_SHORT_RESET | FEATURE_ADDR_2AA,
@@ -95,8 +97,9 @@
.vendor = "AMD",
.name = "Am29F002(N)BT",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29F002BT,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29F002BT,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_EITHER_RESET | FEATURE_ADDR_2AA,
@@ -129,8 +132,9 @@
.vendor = "AMD",
.name = "Am29F010",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29F010,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29F010,
.total_size = 128,
.page_size = 16 * 1024,
.feature_bits = FEATURE_SHORT_RESET,
@@ -158,8 +162,9 @@
.vendor = "AMD",
.name = "Am29F010A/B",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29F010,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29F010,
.total_size = 128,
.page_size = 16 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -187,8 +192,9 @@
.vendor = "AMD",
.name = "Am29F016D",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29F016D,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29F016D,
.total_size = 2 * 1024,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -216,8 +222,9 @@
.vendor = "AMD",
.name = "Am29F040",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29F040,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29F040,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -245,8 +252,9 @@
.vendor = "AMD",
.name = "Am29F040B",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29F040,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29F040,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -274,8 +282,9 @@
.vendor = "AMD",
.name = "Am29F080",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29F080,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29F080,
.total_size = 1024,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -303,8 +312,9 @@
.vendor = "AMD",
.name = "Am29F080B",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29F080,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29F080,
.total_size = 1024,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -332,8 +342,9 @@
.vendor = "AMD",
.name = "Am29LV001BB",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29LV001BB,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29LV001BB,
.total_size = 128,
.page_size = 64 * 1024, /* unused */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -365,8 +376,9 @@
.vendor = "AMD",
.name = "Am29LV001BT",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29LV001BT,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29LV001BT,
.total_size = 128,
.page_size = 64 * 1024, /* unused */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -398,8 +410,9 @@
.vendor = "AMD",
.name = "Am29LV002BB",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29LV002BB,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29LV002BB,
.total_size = 256,
.page_size = 64 * 1024, /* unused */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -432,8 +445,9 @@
.vendor = "AMD",
.name = "Am29LV002BT",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29LV002BT,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29LV002BT,
.total_size = 256,
.page_size = 64 * 1024, /* unused */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -466,8 +480,9 @@
.vendor = "AMD",
.name = "Am29LV004BB",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29LV004BB,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29LV004BB,
.total_size = 512,
.page_size = 64 * 1024, /* unused */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -500,8 +515,9 @@
.vendor = "AMD",
.name = "Am29LV004BT",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29LV004BT,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29LV004BT,
.total_size = 512,
.page_size = 64 * 1024, /* unused */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -534,8 +550,9 @@
.vendor = "AMD",
.name = "Am29LV008BB",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29LV008BB,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29LV008BB,
.total_size = 1024,
.page_size = 64 * 1024, /* unused */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -568,8 +585,9 @@
.vendor = "AMD",
.name = "Am29LV008BT",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29LV008BT,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29LV008BT,
.total_size = 1024,
.page_size = 64 * 1024, /* unused */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -602,8 +620,9 @@
.vendor = "AMD",
.name = "Am29LV040B",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29LV040B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29LV040B,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -631,8 +650,9 @@
.vendor = "AMD",
.name = "Am29LV081B",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID,
- .model_id = AMD_AM29LV080B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMD_ID,
+ .id.model = AMD_AM29LV080B,
.total_size = 1024,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, /* datasheet specifies address as don't care */
@@ -660,8 +680,9 @@
.vendor = "AMIC",
.name = "A25L010",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID_NOPREFIX,
- .model_id = AMIC_A25L010,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = AMIC_ID_NOPREFIX,
+ .id.model = AMIC_A25L010,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -692,8 +713,9 @@
.vendor = "AMIC",
.name = "A25L016",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID_NOPREFIX,
- .model_id = AMIC_A25L016,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = AMIC_ID_NOPREFIX,
+ .id.model = AMIC_A25L016,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -724,8 +746,9 @@
.vendor = "AMIC",
.name = "A25L020",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID_NOPREFIX,
- .model_id = AMIC_A25L020,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = AMIC_ID_NOPREFIX,
+ .id.model = AMIC_A25L020,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -756,8 +779,9 @@
.vendor = "AMIC",
.name = "A25L032",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID_NOPREFIX,
- .model_id = AMIC_A25L032,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = AMIC_ID_NOPREFIX,
+ .id.model = AMIC_A25L032,
.total_size = 4096,
.page_size = 256,
/* OTP: 64B total; read 0x4B, 0x48; write 0x42 */
@@ -795,8 +819,9 @@
.vendor = "AMIC",
.name = "A25L040",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID_NOPREFIX,
- .model_id = AMIC_A25L040,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = AMIC_ID_NOPREFIX,
+ .id.model = AMIC_A25L040,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -827,8 +852,9 @@
.vendor = "AMIC",
.name = "A25L05PT",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID,
- .model_id = AMIC_A25L05PT,
+ .id.type = ID_SPI_RDID4,
+ .id.manufacture = AMIC_ID,
+ .id.model = AMIC_A25L05PT,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -861,8 +887,9 @@
.vendor = "AMIC",
.name = "A25L05PU",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID,
- .model_id = AMIC_A25L05PU,
+ .id.type = ID_SPI_RDID4,
+ .id.manufacture = AMIC_ID,
+ .id.model = AMIC_A25L05PU,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -895,8 +922,9 @@
.vendor = "AMIC",
.name = "A25L080",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID_NOPREFIX,
- .model_id = AMIC_A25L080,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = AMIC_ID_NOPREFIX,
+ .id.model = AMIC_A25L080,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -927,8 +955,9 @@
.vendor = "AMIC",
.name = "A25L10PT",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID,
- .model_id = AMIC_A25L10PT,
+ .id.type = ID_SPI_RDID4,
+ .id.manufacture = AMIC_ID,
+ .id.model = AMIC_A25L10PT,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -962,8 +991,9 @@
.vendor = "AMIC",
.name = "A25L10PU",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID,
- .model_id = AMIC_A25L10PU,
+ .id.type = ID_SPI_RDID4,
+ .id.manufacture = AMIC_ID,
+ .id.model = AMIC_A25L10PU,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -997,8 +1027,9 @@
.vendor = "AMIC",
.name = "A25L16PT",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID,
- .model_id = AMIC_A25L16PT,
+ .id.type = ID_SPI_RDID4,
+ .id.manufacture = AMIC_ID,
+ .id.model = AMIC_A25L16PT,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -1035,8 +1066,9 @@
.vendor = "AMIC",
.name = "A25L16PU",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID,
- .model_id = AMIC_A25L16PU,
+ .id.type = ID_SPI_RDID4,
+ .id.manufacture = AMIC_ID,
+ .id.model = AMIC_A25L16PU,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -1073,8 +1105,9 @@
.vendor = "AMIC",
.name = "A25L20PT",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID,
- .model_id = AMIC_A25L20PT,
+ .id.type = ID_SPI_RDID4,
+ .id.manufacture = AMIC_ID,
+ .id.model = AMIC_A25L20PT,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -1108,8 +1141,9 @@
.vendor = "AMIC",
.name = "A25L20PU",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID,
- .model_id = AMIC_A25L20PU,
+ .id.type = ID_SPI_RDID4,
+ .id.manufacture = AMIC_ID,
+ .id.model = AMIC_A25L20PU,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -1148,8 +1182,9 @@
.vendor = "AMIC",
.name = "A25L40PT",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID,
- .model_id = AMIC_A25L40PT,
+ .id.type = ID_SPI_RDID4,
+ .id.manufacture = AMIC_ID,
+ .id.model = AMIC_A25L40PT,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -1183,8 +1218,9 @@
.vendor = "AMIC",
.name = "A25L40PU",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID,
- .model_id = AMIC_A25L40PU,
+ .id.type = ID_SPI_RDID4,
+ .id.manufacture = AMIC_ID,
+ .id.model = AMIC_A25L40PU,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -1218,8 +1254,9 @@
.vendor = "AMIC",
.name = "A25L512",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID_NOPREFIX,
- .model_id = AMIC_A25L512,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = AMIC_ID_NOPREFIX,
+ .id.model = AMIC_A25L512,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -1250,8 +1287,9 @@
.vendor = "AMIC",
.name = "A25L80P",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID,
- .model_id = AMIC_A25L80P,
+ .id.type = ID_SPI_RDID4,
+ .id.manufacture = AMIC_ID,
+ .id.model = AMIC_A25L80P,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -1285,8 +1323,9 @@
.vendor = "AMIC",
.name = "A25LQ032/A25LQ32A",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID_NOPREFIX,
- .model_id = AMIC_A25LQ032,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = AMIC_ID_NOPREFIX,
+ .id.model = AMIC_A25LQ032,
.total_size = 4096,
.page_size = 256,
/* A25LQ32A supports SFDP */
@@ -1325,8 +1364,9 @@
.vendor = "AMIC",
.name = "A25LQ16",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID_NOPREFIX,
- .model_id = AMIC_A25LQ16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = AMIC_ID_NOPREFIX,
+ .id.model = AMIC_A25LQ16,
.total_size = 2048,
.page_size = 256,
/* supports SFDP */
@@ -1365,8 +1405,9 @@
.vendor = "AMIC",
.name = "A25LQ64",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID_NOPREFIX,
- .model_id = AMIC_A25LQ64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = AMIC_ID_NOPREFIX,
+ .id.model = AMIC_A25LQ64,
.total_size = 8192,
.page_size = 256,
/* supports SFDP */
@@ -1415,8 +1456,9 @@
.vendor = "AMIC",
.name = "A29002B",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMIC_ID_NOPREFIX,
- .model_id = AMIC_A29002B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMIC_ID_NOPREFIX,
+ .id.model = AMIC_A29002B,
.total_size = 256,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -1449,8 +1491,9 @@
.vendor = "AMIC",
.name = "A29002T",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMIC_ID_NOPREFIX,
- .model_id = AMIC_A29002T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMIC_ID_NOPREFIX,
+ .id.model = AMIC_A29002T,
.total_size = 256,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -1483,8 +1526,9 @@
.vendor = "AMIC",
.name = "A29040B",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMIC_ID_NOPREFIX,
- .model_id = AMIC_A29040B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMIC_ID_NOPREFIX,
+ .id.model = AMIC_A29040B,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -1512,8 +1556,9 @@
.vendor = "AMIC",
.name = "A49LF040A",
.bustype = BUS_LPC,
- .manufacture_id = AMIC_ID_NOPREFIX,
- .model_id = AMIC_A49LF040A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = AMIC_ID_NOPREFIX,
+ .id.model = AMIC_A49LF040A,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -1542,8 +1587,9 @@
.vendor = "Atmel",
.name = "AT25DF021",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25DF021,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25DF021,
.total_size = 256,
.page_size = 256,
/* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */
@@ -1581,8 +1627,9 @@
.vendor = "Atmel",
.name = "AT25DF021A",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25DF021A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25DF021A,
.total_size = 256,
.page_size = 256,
/* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */
@@ -1620,8 +1667,9 @@
.vendor = "Atmel",
.name = "AT25DF041A",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25DF041A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25DF041A,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -1658,8 +1706,9 @@
.vendor = "Atmel",
.name = "AT25DF081",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25DF081,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25DF081,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -1696,8 +1745,9 @@
.vendor = "Atmel",
.name = "AT25DF081A",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25DF081A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25DF081A,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -1734,8 +1784,9 @@
.vendor = "Atmel",
.name = "AT25DF161",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25DF161,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25DF161,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -1773,8 +1824,9 @@
.vendor = "Atmel",
.name = "AT25DF321",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25DF321,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25DF321,
.total_size = 4096,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -1811,8 +1863,9 @@
.vendor = "Atmel",
.name = "AT25DF321A",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25DF321A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25DF321A,
.total_size = 4096,
.page_size = 256,
/* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */
@@ -1850,8 +1903,9 @@
.vendor = "Atmel",
.name = "AT25DF641(A)",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25DF641,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25DF641,
.total_size = 8192,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -1888,8 +1942,9 @@
.vendor = "Atmel",
.name = "AT25DL081",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25DF081,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25DF081,
.total_size = 1024,
.page_size = 256,
/* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */
@@ -1927,8 +1982,9 @@
.vendor = "Atmel",
.name = "AT25DL161",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25DL161,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25DL161,
.total_size = 2048,
.page_size = 256,
/* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */
@@ -1966,8 +2022,9 @@
.vendor = "Atmel",
.name = "AT25DQ161",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25DQ161,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25DQ161,
.total_size = 2048,
.page_size = 256,
/* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */
@@ -2007,8 +2064,9 @@
* All other properties seem to be the same.*/
.name = "AT25F1024(A)",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25F1024,
+ .id.type = ID_SPI_AT25F,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25F1024,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -2036,8 +2094,9 @@
.vendor = "Atmel",
.name = "AT25F2048",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25F2048,
+ .id.type = ID_SPI_AT25F,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25F2048,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -2065,8 +2124,9 @@
.vendor = "Atmel",
.name = "AT25F4096",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25F4096,
+ .id.type = ID_SPI_AT25F,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25F4096,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -2095,8 +2155,9 @@
.vendor = "Atmel",
.name = "AT25F512",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25F512,
+ .id.type = ID_SPI_AT25F,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25F512,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -2124,8 +2185,9 @@
.vendor = "Atmel",
.name = "AT25F512A",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25F512A,
+ .id.type = ID_SPI_AT25F,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25F512A,
.total_size = 64,
.page_size = 128,
.feature_bits = FEATURE_WRSR_WREN,
@@ -2154,8 +2216,9 @@
.vendor = "Atmel",
.name = "AT25F512B",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25F512B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25F512B,
.total_size = 64,
.page_size = 256,
/* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */
@@ -2196,8 +2259,9 @@
.vendor = "Atmel",
.name = "AT25FS010",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25FS010,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25FS010,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -2237,8 +2301,9 @@
.vendor = "Atmel",
.name = "AT25FS040",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25FS040,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25FS040,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -2275,8 +2340,9 @@
.vendor = "Atmel",
.name = "AT25SF041",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25SF041,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25SF041,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -2313,8 +2379,9 @@
.vendor = "Atmel",
.name = "AT25SF081",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25SF081,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25SF081,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -2351,8 +2418,9 @@
.vendor = "Atmel",
.name = "AT25SF161",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25SF161,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25SF161,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
@@ -2389,8 +2457,9 @@
.vendor = "Atmel",
.name = "AT25SF321",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25SF321,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25SF321,
.total_size = 4096,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -2427,8 +2496,9 @@
.vendor = "Atmel",
.name = "AT25SL128A",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT25SL128A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT25SL128A,
.total_size = 16384,
.page_size = 256,
/* supports SFDP */
@@ -2483,8 +2553,9 @@
.vendor = "Atmel",
.name = "AT26DF041",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT26DF041,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT26DF041,
.total_size = 512,
.page_size = 256,
/* does not support EWSR nor WREN and has no writable status register bits whatsoever */
@@ -2515,8 +2586,9 @@
.vendor = "Atmel",
.name = "AT26DF081A",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT26DF081A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT26DF081A,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -2553,8 +2625,9 @@
.vendor = "Atmel",
.name = "AT26DF161",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT26DF161,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT26DF161,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -2591,8 +2664,9 @@
.vendor = "Atmel",
.name = "AT26DF161A",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT26DF161A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT26DF161A,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -2629,8 +2703,9 @@
.vendor = "Atmel",
.name = "AT26F004",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT26F004,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT26F004,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -2666,8 +2741,9 @@
.vendor = "Atmel",
.name = "AT29C010A",
.bustype = BUS_PARALLEL,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT29C010A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT29C010A,
.total_size = 128,
.page_size = 128,
.feature_bits = FEATURE_LONG_RESET,
@@ -2692,8 +2768,9 @@
.vendor = "Atmel",
.name = "AT29C020",
.bustype = BUS_PARALLEL,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT29C020,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT29C020,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_LONG_RESET,
@@ -2718,8 +2795,9 @@
.vendor = "Atmel",
.name = "AT29C040A",
.bustype = BUS_PARALLEL,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT29C040A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT29C040A,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_LONG_RESET,
@@ -2744,8 +2822,9 @@
.vendor = "Atmel",
.name = "AT29C512",
.bustype = BUS_PARALLEL,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT29C512,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT29C512,
.total_size = 64,
.page_size = 128,
.feature_bits = FEATURE_LONG_RESET,
@@ -2770,8 +2849,9 @@
.vendor = "Atmel",
.name = "AT45CS1282",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT45CS1282,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT45CS1282,
.total_size = 16896, /* No power of two sizes */
.page_size = 1056, /* No power of two sizes */
/* does not support EWSR nor WREN and has no writable status register bits whatsoever */
@@ -2802,8 +2882,9 @@
.vendor = "Atmel",
.name = "AT45DB011D",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT45DB011D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT45DB011D,
.total_size = 128, /* or 132, determined from status register */
.page_size = 256, /* or 264, determined from status register */
/* does not support EWSR nor WREN and has no writable status register bits whatsoever */
@@ -2845,8 +2926,9 @@
.vendor = "Atmel",
.name = "AT45DB021D",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT45DB021D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT45DB021D,
.total_size = 256, /* or 264, determined from status register */
.page_size = 256, /* or 264, determined from status register */
/* does not support EWSR nor WREN and has no writable status register bits whatsoever */
@@ -2888,8 +2970,9 @@
.vendor = "Atmel",
.name = "AT45DB041D",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT45DB041D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT45DB041D,
.total_size = 512, /* or 528, determined from status register */
.page_size = 256, /* or 264, determined from status register */
/* does not support EWSR nor WREN and has no writable status register bits whatsoever */
@@ -2931,8 +3014,9 @@
.vendor = "Atmel",
.name = "AT45DB081D",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT45DB081D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT45DB081D,
.total_size = 1024, /* or 1056, determined from status register */
.page_size = 256, /* or 264, determined from status register */
/* does not support EWSR nor WREN and has no writable status register bits whatsoever */
@@ -2974,8 +3058,9 @@
.vendor = "Atmel",
.name = "AT45DB161D",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT45DB161D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT45DB161D,
.total_size = 2048, /* or 2112, determined from status register */
.page_size = 512, /* or 528, determined from status register */
/* does not support EWSR nor WREN and has no writable status register bits whatsoever */
@@ -3017,8 +3102,9 @@
.vendor = "Atmel",
.name = "AT45DB321C",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT45DB321C,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT45DB321C,
.total_size = 4224, /* No power of two sizes */
.page_size = 528, /* No power of two sizes */
/* does not support EWSR nor WREN and has no writable status register bits whatsoever */
@@ -3060,8 +3146,9 @@
.vendor = "Atmel",
.name = "AT45DB321D",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT45DB321D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT45DB321D,
.total_size = 4096, /* or 4224, determined from status register */
.page_size = 512, /* or 528, determined from status register */
/* does not support EWSR nor WREN and has no writable status register bits whatsoever */
@@ -3103,8 +3190,9 @@
.vendor = "Atmel",
.name = "AT45DB321E",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT45DB321C,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT45DB321C,
.total_size = 4096, /* or 4224, determined from status register */
.page_size = 512, /* or 528, determined from status register */
/* does not support EWSR nor WREN and has no writable status register bits whatsoever */
@@ -3146,8 +3234,9 @@
.vendor = "Atmel",
.name = "AT45DB642D",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT45DB642D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT45DB642D,
.total_size = 8192, /* or 8448, determined from status register */
.page_size = 1024, /* or 1056, determined from status register */
/* does not support EWSR nor WREN and has no writable status register bits whatsoever */
@@ -3189,8 +3278,9 @@
.vendor = "Atmel",
.name = "AT49(H)F010",
.bustype = BUS_PARALLEL,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT49F010,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT49F010,
.total_size = 128,
.page_size = 0, /* unused */
.feature_bits = FEATURE_EITHER_RESET,
@@ -3216,8 +3306,9 @@
.vendor = "Atmel",
.name = "AT49BV512",
.bustype = BUS_PARALLEL,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT49BV512,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT49BV512,
.total_size = 64,
.page_size = 64,
.feature_bits = FEATURE_EITHER_RESET,
@@ -3242,8 +3333,9 @@
.vendor = "Atmel",
.name = "AT49F002(N)",
.bustype = BUS_PARALLEL,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT49F002N,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT49F002N,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_EITHER_RESET,
@@ -3276,8 +3368,9 @@
.vendor = "Atmel",
.name = "AT49F002(N)T",
.bustype = BUS_PARALLEL,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT49F002NT,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT49F002NT,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_EITHER_RESET,
@@ -3310,8 +3403,9 @@
.vendor = "Atmel",
.name = "AT49F020",
.bustype = BUS_PARALLEL,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT49F020,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT49F020,
.total_size = 256,
.page_size = 0, /* unused */
.feature_bits = FEATURE_EITHER_RESET,
@@ -3343,8 +3437,9 @@
.vendor = "Atmel",
.name = "AT49F040",
.bustype = BUS_PARALLEL,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT49F040,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT49F040,
.total_size = 512,
.page_size = 0, /* unused */
.feature_bits = FEATURE_EITHER_RESET,
@@ -3376,8 +3471,9 @@
.vendor = "Atmel",
.name = "AT49F080",
.bustype = BUS_PARALLEL,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT49F080,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT49F080,
.total_size = 1024,
.page_size = 0, /* unused */
.feature_bits = FEATURE_EITHER_RESET,
@@ -3410,8 +3506,9 @@
.vendor = "Atmel",
.name = "AT49F080T",
.bustype = BUS_PARALLEL,
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT49F080T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT49F080T,
.total_size = 1024,
.page_size = 0, /* unused */
.feature_bits = FEATURE_EITHER_RESET,
@@ -3443,8 +3540,9 @@
.vendor = "Atmel",
.name = "AT49LH002",
.bustype = BUS_LPC | BUS_FWH, /* A/A Mux */
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT49LH002,
+ .id.type = ID_82802AB,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT49LH002,
.total_size = 256,
.page_size = 0, /* unused */
.tested = TEST_UNTESTED,
@@ -3480,8 +3578,9 @@
.vendor = "Atmel",
.name = "AT49LH004",
.bustype = BUS_LPC | BUS_FWH, /* A/A Mux */
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT49LH004,
+ .id.type = ID_82802AB,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT49LH004,
.total_size = 512,
.page_size = 0, /* unused */
.tested = TEST_UNTESTED,
@@ -3517,8 +3616,9 @@
.vendor = "Atmel",
.name = "AT49LH00B4",
.bustype = BUS_LPC | BUS_FWH, /* A/A Mux */
- .manufacture_id = ATMEL_ID,
- .model_id = ATMEL_AT49LH00B4,
+ .id.type = ID_82802AB,
+ .id.manufacture = ATMEL_ID,
+ .id.model = ATMEL_AT49LH00B4,
.total_size = 512,
.page_size = 0, /* unused */
.tested = TEST_UNTESTED,
@@ -3554,8 +3654,9 @@
.vendor = "Boya/BoHong Microelectronics",
.name = "B.25D05AS",
.bustype = BUS_SPI,
- .manufacture_id = BOYA_BOHONG_ID,
- .model_id = BOYA_BOHONG_B_25D05AS,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = BOYA_BOHONG_ID,
+ .id.model = BOYA_BOHONG_B_25D05AS,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_FAST_READ | FEATURE_FAST_READ_DOUT,
@@ -3594,8 +3695,9 @@
.vendor = "Boya/BoHong Microelectronics",
.name = "B.25D10AS",
.bustype = BUS_SPI,
- .manufacture_id = BOYA_BOHONG_ID,
- .model_id = BOYA_BOHONG_B_25D10AS,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = BOYA_BOHONG_ID,
+ .id.model = BOYA_BOHONG_B_25D10AS,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_FAST_READ | FEATURE_FAST_READ_DOUT,
@@ -3634,8 +3736,9 @@
.vendor = "Boya/BoHong Microelectronics",
.name = "B.25D20AS",
.bustype = BUS_SPI,
- .manufacture_id = BOYA_BOHONG_ID,
- .model_id = BOYA_BOHONG_B_25D20AS,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = BOYA_BOHONG_ID,
+ .id.model = BOYA_BOHONG_B_25D20AS,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_FAST_READ | FEATURE_FAST_READ_DOUT,
@@ -3674,8 +3777,9 @@
.vendor = "Boya/BoHong Microelectronics",
.name = "B.25D40AS/BY25D40ES",
.bustype = BUS_SPI,
- .manufacture_id = BOYA_BOHONG_ID,
- .model_id = BOYA_BOHONG_B_25D40AS,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = BOYA_BOHONG_ID,
+ .id.model = BOYA_BOHONG_B_25D40AS,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_FAST_READ | FEATURE_FAST_READ_DOUT,
@@ -3714,8 +3818,9 @@
.vendor = "Boya/BoHong Microelectronics",
.name = "B.25D80AS/BY25Q80BS/BY25Q80ES",
.bustype = BUS_SPI,
- .manufacture_id = BOYA_BOHONG_ID,
- .model_id = BOYA_BOHONG_B_25D80AS,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = BOYA_BOHONG_ID,
+ .id.model = BOYA_BOHONG_B_25D80AS,
.total_size = 1024,
.page_size = 256,
/* BY25Q80BS: QPI, BY25Q80ES: QIO */
@@ -3755,8 +3860,9 @@
.vendor = "Boya/BoHong Microelectronics",
.name = "B.25D16AS/BY25Q16BS/BY25Q16ES",
.bustype = BUS_SPI,
- .manufacture_id = BOYA_BOHONG_ID,
- .model_id = BOYA_BOHONG_B_25D16AS,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = BOYA_BOHONG_ID,
+ .id.model = BOYA_BOHONG_B_25D16AS,
.total_size = 2048,
.page_size = 256,
/* B25Q16BS/ES: QPI */
@@ -3796,8 +3902,9 @@
.vendor = "Boya/BoHong Microelectronics",
.name = "B.25Q32BS/BY25Q32CS/BY25Q32ES",
.bustype = BUS_SPI,
- .manufacture_id = BOYA_BOHONG_ID,
- .model_id = BOYA_BOHONG_B_25Q32BS,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = BOYA_BOHONG_ID,
+ .id.model = BOYA_BOHONG_B_25Q32BS,
.total_size = 4096,
.page_size = 256,
/* BY25Q32CS: QPI w/ SRP (4, 4, 6, 8) */
@@ -3852,8 +3959,9 @@
.vendor = "Boya/BoHong Microelectronics",
.name = "B.25Q64AS/BY25Q64ES",
.bustype = BUS_SPI,
- .manufacture_id = BOYA_BOHONG_ID,
- .model_id = BOYA_BOHONG_B_25Q64AS,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = BOYA_BOHONG_ID,
+ .id.model = BOYA_BOHONG_B_25Q64AS,
.total_size = 8192,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR2 | FEATURE_WRSR3 |
@@ -3907,8 +4015,9 @@
.vendor = "Boya/BoHong Microelectronics",
.name = "B.25Q128AS/BY25Q128ES",
.bustype = BUS_SPI,
- .manufacture_id = BOYA_BOHONG_ID,
- .model_id = BOYA_BOHONG_B_25Q128AS,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = BOYA_BOHONG_ID,
+ .id.model = BOYA_BOHONG_B_25Q128AS,
.total_size = 16384,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR2 | FEATURE_WRSR3 |
@@ -3962,8 +4071,9 @@
.vendor = "Boya Microelectronics",
.name = "BY25Q128FS",
.bustype = BUS_SPI,
- .manufacture_id = BOYA_BOHONG_ID,
- .model_id = BOYA_BOHONG_B_25Q128FS,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = BOYA_BOHONG_ID,
+ .id.model = BOYA_BOHONG_B_25Q128FS,
.total_size = 16384,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR2 | FEATURE_WRSR3 |
@@ -4017,8 +4127,9 @@
.vendor = "Bright",
.name = "BM29F040",
.bustype = BUS_PARALLEL,
- .manufacture_id = BRIGHT_ID,
- .model_id = BRIGHT_BM29F040,
+ .id.type = ID_JEDEC,
+ .id.manufacture = BRIGHT_ID,
+ .id.model = BRIGHT_BM29F040,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -4046,8 +4157,9 @@
.vendor = "Catalyst",
.name = "CAT28F512",
.bustype = BUS_PARALLEL,
- .manufacture_id = CATALYST_ID,
- .model_id = CATALYST_CAT28F512,
+ .id.type = ID_JEDEC, /* FIXME! */
+ .id.manufacture = CATALYST_ID,
+ .id.model = CATALYST_CAT28F512,
.total_size = 64,
.page_size = 0, /* unused */
.feature_bits = 0,
@@ -4072,6 +4184,7 @@
.vendor = "ENE",
.name = "KB9012 (EDI)",
.bustype = BUS_SPI,
+ .id.type = ID_EDI,
.total_size = 128,
.page_size = 128,
.feature_bits = FEATURE_ERASED_ZERO,
@@ -4096,8 +4209,9 @@
.vendor = "ESI",
.name = "ES25P16",
.bustype = BUS_SPI,
- .manufacture_id = EXCEL_ID_NOPREFIX,
- .model_id = EXCEL_ES25P16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EXCEL_ID_NOPREFIX,
+ .id.model = EXCEL_ES25P16,
.total_size = 2 * 1024,
.page_size = 256,
/* 256-byte parameter page separate from memory array:
@@ -4127,8 +4241,9 @@
.vendor = "ESI",
.name = "ES25P40",
.bustype = BUS_SPI,
- .manufacture_id = EXCEL_ID_NOPREFIX,
- .model_id = EXCEL_ES25P40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EXCEL_ID_NOPREFIX,
+ .id.model = EXCEL_ES25P40,
.total_size = 512,
.page_size = 256,
/* 256-byte parameter page separate from memory array:
@@ -4158,8 +4273,9 @@
.vendor = "ESI",
.name = "ES25P80",
.bustype = BUS_SPI,
- .manufacture_id = EXCEL_ID_NOPREFIX,
- .model_id = EXCEL_ES25P80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EXCEL_ID_NOPREFIX,
+ .id.model = EXCEL_ES25P80,
.total_size = 1024,
.page_size = 256,
/* 256-byte parameter page separate from memory array:
@@ -4189,8 +4305,9 @@
.vendor = "ESMT",
.name = "F25L008A",
.bustype = BUS_SPI,
- .manufacture_id = ESMT_ID,
- .model_id = ESMT_F25L008A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ESMT_ID,
+ .id.model = ESMT_F25L008A,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER,
@@ -4224,8 +4341,9 @@
.vendor = "ESMT",
.name = "F25L32PA",
.bustype = BUS_SPI,
- .manufacture_id = ESMT_ID,
- .model_id = ESMT_F25L32PA,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ESMT_ID,
+ .id.model = ESMT_F25L32PA,
.total_size = 4096,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_OTP,
@@ -4259,8 +4377,9 @@
.vendor = "ESMT",
.name = "F49B002UA",
.bustype = BUS_PARALLEL,
- .manufacture_id = ESMT_ID,
- .model_id = ESMT_F49B002UA,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ESMT_ID,
+ .id.model = ESMT_F49B002UA,
.total_size = 256,
.page_size = 4096,
.feature_bits = FEATURE_EITHER_RESET,
@@ -4293,8 +4412,9 @@
.vendor = "Eon",
.name = "EN25B05",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B05,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B05,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4327,8 +4447,9 @@
.vendor = "Eon",
.name = "EN25B05T",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B05,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B05,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4361,8 +4482,9 @@
.vendor = "Eon",
.name = "EN25B10",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B10,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B10,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4395,8 +4517,9 @@
.vendor = "Eon",
.name = "EN25B10T",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B10,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B10,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4429,8 +4552,9 @@
.vendor = "Eon",
.name = "EN25B16",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B16,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4464,8 +4588,9 @@
.vendor = "Eon",
.name = "EN25B16T",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B16,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4499,8 +4624,9 @@
.vendor = "Eon",
.name = "EN25B20",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B20,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B20,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4534,8 +4660,9 @@
.vendor = "Eon",
.name = "EN25B20T",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B20,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B20,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4569,8 +4696,9 @@
.vendor = "Eon",
.name = "EN25B32",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B32,
.total_size = 4096,
.page_size = 256,
/* OTP: 512B total; enter 0x3A */
@@ -4605,8 +4733,9 @@
.vendor = "Eon",
.name = "EN25B32T",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B32,
.total_size = 4096,
.page_size = 256,
/* OTP: 512B total; enter 0x3A */
@@ -4641,8 +4770,9 @@
.vendor = "Eon",
.name = "EN25B40",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B40,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4676,8 +4806,9 @@
.vendor = "Eon",
.name = "EN25B40T",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B40,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4711,8 +4842,9 @@
.vendor = "Eon",
.name = "EN25B64",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B64,
.total_size = 8192,
.page_size = 256,
/* OTP: 512B total; enter 0x3A */
@@ -4747,8 +4879,9 @@
.vendor = "Eon",
.name = "EN25B64T",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B64,
.total_size = 8192,
.page_size = 256,
/* OTP: 512B total; enter 0x3A */
@@ -4783,8 +4916,9 @@
.vendor = "Eon",
.name = "EN25B80",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B80,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4818,8 +4952,9 @@
.vendor = "Eon",
.name = "EN25B80T",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B80,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4853,8 +4988,9 @@
.vendor = "Eon",
.name = "EN25F05",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25F05,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25F05,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4891,8 +5027,9 @@
.vendor = "Eon",
.name = "EN25F10",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25F10,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25F10,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4929,8 +5066,9 @@
.vendor = "Eon",
.name = "EN25F16",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25F16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25F16,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -4964,8 +5102,9 @@
.vendor = "Eon",
.name = "EN25F20",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25F20,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25F20,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -5002,8 +5141,9 @@
.vendor = "Eon",
.name = "EN25F32",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25F32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25F32,
.total_size = 4096,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -5037,8 +5177,9 @@
.vendor = "Eon",
.name = "EN25F40",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25F40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25F40,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -5072,8 +5213,9 @@
.vendor = "Eon",
.name = "EN25F64",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25F64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25F64,
.total_size = 8192,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -5107,8 +5249,9 @@
.vendor = "Eon",
.name = "EN25F80",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25F80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25F80,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -5142,8 +5285,9 @@
.vendor = "Eon",
.name = "EN25P05",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B05,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B05,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -5172,8 +5316,9 @@
.vendor = "Eon",
.name = "EN25P10",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B10,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B10,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -5201,8 +5346,9 @@
.vendor = "Eon",
.name = "EN25P16",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B16,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -5230,8 +5376,9 @@
.vendor = "Eon",
.name = "EN25P20",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B20,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B20,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -5259,8 +5406,9 @@
.vendor = "Eon",
.name = "EN25P32", /* Uniform version of EN25B32 */
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B32,
.total_size = 4096,
.page_size = 256,
/* OTP: 512B total; enter 0x3A */
@@ -5289,8 +5437,9 @@
.vendor = "Eon",
.name = "EN25P40",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B40,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -5318,8 +5467,9 @@
.vendor = "Eon",
.name = "EN25P64",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B64,
.total_size = 8192,
.page_size = 256,
/* OTP: 512B total; enter 0x3A */
@@ -5348,8 +5498,9 @@
.vendor = "Eon",
.name = "EN25P80",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25B80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25B80,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -5377,8 +5528,9 @@
.vendor = "Eon",
.name = "EN25Q128",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25Q128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25Q128,
.total_size = 16384,
.page_size = 256,
/* OTP: 512B total; enter 0x3A */
@@ -5414,8 +5566,9 @@
.vendor = "Eon",
.name = "EN25Q16",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25Q16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25Q16,
.total_size = 2048,
.page_size = 256,
/* OTP: D16 512B/Q16 128B total; enter 0x3A */
@@ -5454,8 +5607,9 @@
.vendor = "Eon",
.name = "EN25Q32(A/B)",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25Q32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25Q32,
.total_size = 4096,
.page_size = 256,
/* OTP: 512B total; enter 0x3A */
@@ -5490,8 +5644,9 @@
.vendor = "Eon",
.name = "EN25Q40",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25Q40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25Q40,
.total_size = 512,
.page_size = 256,
/* OTP: 256B total; enter 0x3A */
@@ -5526,8 +5681,9 @@
.vendor = "Eon",
.name = "EN25Q64",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25Q64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25Q64,
.total_size = 8192,
.page_size = 256,
/* OTP: 512B total; enter 0x3A */
@@ -5562,8 +5718,9 @@
.vendor = "Eon",
.name = "EN25Q80(A)",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25Q80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25Q80,
.total_size = 1024,
.page_size = 256,
/* OTP: 256B total; enter 0x3A */
@@ -5598,8 +5755,9 @@
.vendor = "Eon",
.name = "EN25QH128",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25QH128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25QH128,
.total_size = 16384,
.page_size = 256,
/* supports SFDP */
@@ -5652,8 +5810,9 @@
.vendor = "Eon",
.name = "EN25QH16",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25QH16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25QH16,
.total_size = 2048,
.page_size = 256,
/* supports SFDP */
@@ -5696,8 +5855,9 @@
.vendor = "Eon",
.name = "EN25QH32",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25QH32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25QH32,
.total_size = 4096,
.page_size = 256,
/* supports SFDP */
@@ -5750,8 +5910,9 @@
.vendor = "Eon",
.name = "EN25QH32B",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25QH32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25QH32,
.total_size = 4096,
.page_size = 256,
/* supports SFDP */
@@ -5797,8 +5958,9 @@
.vendor = "Eon",
.name = "EN25QH64",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25QH64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25QH64,
.total_size = 8192,
.page_size = 256,
/* supports SFDP */
@@ -5851,8 +6013,9 @@
.vendor = "Eon",
.name = "EN25QH64A",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25QH64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25QH64,
.total_size = 8192,
.page_size = 256,
/* supports SFDP */
@@ -5896,8 +6059,9 @@
.vendor = "Eon",
.name = "EN25S10",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25S10,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25S10,
.total_size = 128,
.page_size = 256,
/* OTP: 256B total; enter 0x3A */
@@ -5932,8 +6096,9 @@
.vendor = "Eon",
.name = "EN25S16",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25S16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25S16,
.total_size = 2048,
.page_size = 256,
/* OTP: 512B total; enter 0x3A */
@@ -5978,8 +6143,9 @@
.vendor = "Eon",
.name = "EN25S20",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25S20,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25S20,
.total_size = 256,
.page_size = 256,
/* OTP: 256B total; enter 0x3A */
@@ -6014,8 +6180,9 @@
.vendor = "Eon",
.name = "EN25S32",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25S32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25S32,
.total_size = 4096,
.page_size = 256,
/* OTP: 512B total; enter 0x3A */
@@ -6060,8 +6227,9 @@
.vendor = "Eon",
.name = "EN25S40",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25S40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25S40,
.total_size = 512,
.page_size = 256,
/* OTP: 256B total; enter 0x3A */
@@ -6096,8 +6264,9 @@
.vendor = "Eon",
.name = "EN25S64",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25S64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25S64,
.total_size = 8192,
.page_size = 256,
/* OTP: 512B total; enter 0x3A */
@@ -6139,8 +6308,9 @@
.vendor = "Eon",
.name = "EN25S80",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = EON_EN25S80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = EON_EN25S80,
.total_size = 1024,
.page_size = 256,
/* OTP: 256B total; enter 0x3A */
@@ -6175,8 +6345,9 @@
.vendor = "Eon",
.name = "EN29F002(A)(N)B",
.bustype = BUS_PARALLEL,
- .manufacture_id = EON_ID,
- .model_id = EON_EN29F002B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = EON_ID,
+ .id.model = EON_EN29F002B,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_ADDR_AAA | FEATURE_EITHER_RESET,
@@ -6209,8 +6380,9 @@
.vendor = "Eon",
.name = "EN29F002(A)(N)T",
.bustype = BUS_PARALLEL,
- .manufacture_id = EON_ID,
- .model_id = EON_EN29F002T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = EON_ID,
+ .id.model = EON_EN29F002T,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_ADDR_AAA | FEATURE_EITHER_RESET,
@@ -6243,8 +6415,9 @@
.vendor = "Eon",
.name = "EN29F010",
.bustype = BUS_PARALLEL,
- .manufacture_id = EON_ID,
- .model_id = EON_EN29F010,
+ .id.type = ID_JEDEC,
+ .id.manufacture = EON_ID,
+ .id.model = EON_EN29F010,
.total_size = 128,
.page_size = 128,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -6273,8 +6446,9 @@
.vendor = "Eon",
.name = "EN29GL064(A)B",
.bustype = BUS_PARALLEL,
- .manufacture_id = EON_ID,
- .model_id = EON_EN29GL064B,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = EON_ID,
+ .id.model = EON_EN29GL064B,
.total_size = 8192,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -6305,8 +6479,9 @@
.vendor = "Eon",
.name = "EN29GL064(A)T",
.bustype = BUS_PARALLEL,
- .manufacture_id = EON_ID,
- .model_id = EON_EN29GL064T,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = EON_ID,
+ .id.model = EON_EN29GL064T,
.total_size = 8192,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -6337,8 +6512,9 @@
.vendor = "Eon",
.name = "EN29GL064H/L",
.bustype = BUS_PARALLEL,
- .manufacture_id = EON_ID,
- .model_id = EON_EN29GL064HL,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = EON_ID,
+ .id.model = EON_EN29GL064HL,
.total_size = 8192,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -6366,8 +6542,9 @@
.vendor = "Eon",
.name = "EN29GL128",
.bustype = BUS_PARALLEL,
- .manufacture_id = EON_ID,
- .model_id = EON_EN29GL128HL,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = EON_ID,
+ .id.model = EON_EN29GL128HL,
.total_size = 16384,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -6395,8 +6572,9 @@
.vendor = "Eon",
.name = "EN29LV040(A)",
.bustype = BUS_PARALLEL,
- .manufacture_id = EON_ID,
- .model_id = EON_EN29LV040,
+ .id.type = ID_JEDEC,
+ .id.manufacture = EON_ID,
+ .id.model = EON_EN29LV040,
.total_size = 512,
.page_size = 4 * 1024,
.tested = TEST_OK_PREW,
@@ -6424,8 +6602,9 @@
.vendor = "Eon",
.name = "EN29LV640B",
.bustype = BUS_PARALLEL,
- .manufacture_id = EON_ID,
- .model_id = EON_EN29LV640B,
+ .id.type = ID_EN29LV640B,
+ .id.manufacture = EON_ID,
+ .id.model = EON_EN29LV640B,
.total_size = 8192,
.page_size = 8192,
.feature_bits = FEATURE_ADDR_SHIFTED,
@@ -6456,8 +6635,9 @@
.vendor = "Fudan",
.name = "FM25F005",
.bustype = BUS_SPI,
- .manufacture_id = FUDAN_ID_NOPREFIX,
- .model_id = FUDAN_FM25F005,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = FUDAN_ID_NOPREFIX,
+ .id.model = FUDAN_FM25F005,
.total_size = 64,
.page_size = 256,
/* OTP: 256B total; enter 0x3A */
@@ -6494,8 +6674,9 @@
.vendor = "Fudan",
.name = "FM25F01",
.bustype = BUS_SPI,
- .manufacture_id = FUDAN_ID_NOPREFIX,
- .model_id = FUDAN_FM25F01,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = FUDAN_ID_NOPREFIX,
+ .id.model = FUDAN_FM25F01,
.total_size = 128,
.page_size = 256,
/* OTP: 256B total; enter 0x3A */
@@ -6532,8 +6713,9 @@
.vendor = "Fudan",
.name = "FM25F02(A)",
.bustype = BUS_SPI,
- .manufacture_id = FUDAN_ID_NOPREFIX,
- .model_id = FUDAN_FM25F02,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = FUDAN_ID_NOPREFIX,
+ .id.model = FUDAN_FM25F02,
.total_size = 256,
.page_size = 256,
/* OTP: 256B total; enter 0x3A, (A version only:) read ID 0x4B */
@@ -6570,8 +6752,9 @@
.vendor = "Fudan",
.name = "FM25F04(A)",
.bustype = BUS_SPI,
- .manufacture_id = FUDAN_ID_NOPREFIX,
- .model_id = FUDAN_FM25F04,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = FUDAN_ID_NOPREFIX,
+ .id.model = FUDAN_FM25F04,
.total_size = 512,
.page_size = 256,
/* OTP: 256B total; enter 0x3A, (A version only:) read ID 0x4B */
@@ -6608,8 +6791,9 @@
.vendor = "Fudan",
.name = "FM25Q02",
.bustype = BUS_SPI,
- .manufacture_id = FUDAN_ID_NOPREFIX,
- .model_id = FUDAN_FM25Q02,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = FUDAN_ID_NOPREFIX,
+ .id.model = FUDAN_FM25Q02,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 | FEATURE_WRSR2 | FEATURE_WRSR3 |
@@ -6664,8 +6848,9 @@
.vendor = "Fudan",
.name = "FM25Q04",
.bustype = BUS_SPI,
- .manufacture_id = FUDAN_ID_NOPREFIX,
- .model_id = FUDAN_FM25Q04,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = FUDAN_ID_NOPREFIX,
+ .id.model = FUDAN_FM25Q04,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 | FEATURE_WRSR2 | FEATURE_WRSR3 |
@@ -6720,8 +6905,9 @@
.vendor = "Fudan",
.name = "FM25Q08",
.bustype = BUS_SPI,
- .manufacture_id = FUDAN_ID_NOPREFIX,
- .model_id = FUDAN_FM25Q08,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = FUDAN_ID_NOPREFIX,
+ .id.model = FUDAN_FM25Q08,
.total_size = 1024,
.page_size = 256,
/* supports SFDP */
@@ -6777,8 +6963,9 @@
.vendor = "Fudan",
.name = "FM25Q08A",
.bustype = BUS_SPI,
- .manufacture_id = FUDAN_ID_NOPREFIX,
- .model_id = FUDAN_FM25Q08,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = FUDAN_ID_NOPREFIX,
+ .id.model = FUDAN_FM25Q08,
.total_size = 1024,
.page_size = 256,
/* supports SFDP */
@@ -6834,8 +7021,9 @@
.vendor = "Fudan",
.name = "FM25Q16",
.bustype = BUS_SPI,
- .manufacture_id = FUDAN_ID_NOPREFIX,
- .model_id = FUDAN_FM25Q16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = FUDAN_ID_NOPREFIX,
+ .id.model = FUDAN_FM25Q16,
.total_size = 2048,
.page_size = 256,
/* supports SFDP */
@@ -6891,8 +7079,9 @@
.vendor = "Fudan",
.name = "FM25Q32",
.bustype = BUS_SPI,
- .manufacture_id = FUDAN_ID_NOPREFIX,
- .model_id = FUDAN_FM25Q32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = FUDAN_ID_NOPREFIX,
+ .id.model = FUDAN_FM25Q32,
.total_size = 4096,
.page_size = 256,
/* supports SFDP */
@@ -6948,8 +7137,9 @@
.vendor = "Fudan",
.name = "FM25Q64",
.bustype = BUS_SPI,
- .manufacture_id = FUDAN_ID_NOPREFIX,
- .model_id = FUDAN_FM25Q64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = FUDAN_ID_NOPREFIX,
+ .id.model = FUDAN_FM25Q64,
.total_size = 8192,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 | FEATURE_WRSR2 |
@@ -7004,8 +7194,9 @@
.vendor = "Fudan",
.name = "FM25Q128",
.bustype = BUS_SPI,
- .manufacture_id = FUDAN_ID_NOPREFIX,
- .model_id = FUDAN_FM25Q128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = FUDAN_ID_NOPREFIX,
+ .id.model = FUDAN_FM25Q128,
.total_size = 16384,
.page_size = 256,
/* Supports full QIO/QPI but has non-volatile DC bits controlling all modes. */
@@ -7061,8 +7252,9 @@
.vendor = "Fujitsu",
.name = "MBM29F004BC",
.bustype = BUS_PARALLEL,
- .manufacture_id = FUJITSU_ID,
- .model_id = FUJITSU_MBM29F004BC,
+ .id.type = ID_JEDEC,
+ .id.manufacture = FUJITSU_ID,
+ .id.model = FUJITSU_MBM29F004BC,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -7095,8 +7287,9 @@
.vendor = "Fujitsu",
.name = "MBM29F004TC",
.bustype = BUS_PARALLEL,
- .manufacture_id = FUJITSU_ID,
- .model_id = FUJITSU_MBM29F004TC,
+ .id.type = ID_JEDEC,
+ .id.manufacture = FUJITSU_ID,
+ .id.model = FUJITSU_MBM29F004TC,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -7130,8 +7323,9 @@
.vendor = "Fujitsu",
.name = "MBM29F400BC",
.bustype = BUS_PARALLEL,
- .manufacture_id = FUJITSU_ID,
- .model_id = FUJITSU_MBM29F400BC,
+ .id.type = ID_JEDEC,
+ .id.manufacture = FUJITSU_ID,
+ .id.model = FUJITSU_MBM29F400BC,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -7164,8 +7358,9 @@
.vendor = "Fujitsu",
.name = "MBM29F400TC",
.bustype = BUS_PARALLEL,
- .manufacture_id = FUJITSU_ID,
- .model_id = FUJITSU_MBM29F400TC,
+ .id.type = ID_JEDEC,
+ .id.manufacture = FUJITSU_ID,
+ .id.model = FUJITSU_MBM29F400TC,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_AAA | FEATURE_EITHER_RESET,
@@ -7198,8 +7393,9 @@
.vendor = "Fujitsu",
.name = "MBM29LV160BE",
.bustype = BUS_PARALLEL,
- .manufacture_id = FUJITSU_ID,
- .model_id = FUJITSU_MBM29LV160BE,
+ .id.type = ID_JEDEC,
+ .id.manufacture = FUJITSU_ID,
+ .id.model = FUJITSU_MBM29LV160BE,
.total_size = 2 * 1024,
.page_size = 0,
.feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_SHORT_RESET,
@@ -7232,8 +7428,9 @@
.vendor = "Fujitsu",
.name = "MBM29LV160TE",
.bustype = BUS_PARALLEL,
- .manufacture_id = FUJITSU_ID,
- .model_id = FUJITSU_MBM29LV160TE,
+ .id.type = ID_JEDEC,
+ .id.manufacture = FUJITSU_ID,
+ .id.model = FUJITSU_MBM29LV160TE,
.total_size = 2 * 1024,
.page_size = 0,
.feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_SHORT_RESET,
@@ -7266,8 +7463,9 @@
.vendor = "GigaDevice",
.name = "GD25LF80E",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LF80E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LF80E,
.total_size = 1024,
.page_size = 256,
/* OTP: 3x 1024B; read 0x48; write 0x42, erase 0x44 */
@@ -7324,8 +7522,9 @@
.vendor = "GigaDevice",
.name = "GD25LF16E",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LF16E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LF16E,
.total_size = 2048,
.page_size = 256,
/* OTP: 3x 1024B; read 0x48; write 0x42, erase 0x44 */
@@ -7382,8 +7581,9 @@
.vendor = "GigaDevice",
.name = "GD25LF32E",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LF32E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LF32E,
.total_size = 4096,
.page_size = 256,
/* OTP: 3x 1024B; read 0x48; write 0x42, erase 0x44 */
@@ -7440,8 +7640,9 @@
.vendor = "GigaDevice",
.name = "GD25LF64E",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LF64E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LF64E,
.total_size = 8192,
.page_size = 256,
/* OTP: 3x 1024B; read 0x48; write 0x42, erase 0x44 */
@@ -7498,8 +7699,9 @@
.vendor = "GigaDevice",
.name = "GD25LF128E",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LF128E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LF128E,
.total_size = 16384,
.page_size = 256,
/* OTP: 3x 1024B; read 0x48; write 0x42, erase 0x44 */
@@ -7557,8 +7759,9 @@
.vendor = "GigaDevice",
.name = "GD25LQ128C/GD25LQ128D/GD25LQ128E",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LQ128CD,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LQ128CD,
.total_size = 16384,
.page_size = 256,
/* OTP: 3x 512B, later 3x 1024B; read 0x48; write 0x42, erase 0x44 */
@@ -7613,8 +7816,9 @@
.vendor = "GigaDevice",
.name = "GD25LQ16",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LQ16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LQ16,
.total_size = 2048,
.page_size = 256,
/* OTP: 1024B total, 256B reserved, later 3x 512B; read 0x48; write 0x42, erase 0x44 */
@@ -7669,8 +7873,9 @@
.vendor = "GigaDevice",
.name = "GD25LQ20",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LQ20,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LQ20,
.total_size = 256,
.page_size = 256,
/* OTP: 3x 512B; read 0x48; write 0x42, erase 0x44 */
@@ -7724,8 +7929,9 @@
.vendor = "GigaDevice",
.name = "GD25LQ256D/GD25LE256D/GD25LB256D/GD25LQ255E",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LQ256D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LQ256D,
.total_size = 32768,
.page_size = 256,
/* GD25LQ255E also supports native 4BA commands, EAR. */
@@ -7781,8 +7987,9 @@
.vendor = "GigaDevice",
.name = "GD25LQ256H/GD25LE256H/GD25LB256F",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LQ256D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LQ256D,
.total_size = 32768,
.page_size = 256,
/* Has non-volatile DC bits which affect DIO and QIO in SPI mode. */
@@ -7849,8 +8056,9 @@
.vendor = "GigaDevice",
.name = "GD25LE255E",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LQ256D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LQ256D,
.total_size = 32768,
.page_size = 256,
/* Non-volatile DC bits control SPI mode, hence disable fast-read commands. */
@@ -7915,8 +8123,9 @@
.vendor = "GigaDevice",
.name = "GD25LB256E/GD25LR256E",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LB256E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LB256E,
.total_size = 32768,
.page_size = 256,
/* Has non-volatile DC bits in unsupported register, controlling QIO, QPI. */
@@ -7966,8 +8175,9 @@
.vendor = "GigaDevice",
.name = "GD25LQ32",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LQ32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LQ32,
.total_size = 4096,
.page_size = 256,
/* OTP: 1024B total, 256B reserved, later 3x 1024B; read 0x48; write 0x42, erase 0x44 */
@@ -8022,8 +8232,9 @@
.vendor = "GigaDevice",
.name = "GD25LQ40",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LQ40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LQ40,
.total_size = 512,
.page_size = 256,
/* OTP: 1024B total, 256B reserved, later 3x 512B; read 0x48; write 0x42, erase 0x44 */
@@ -8078,8 +8289,9 @@
.vendor = "GigaDevice",
.name = "GD25LQ64(B)",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LQ64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LQ64,
.total_size = 8192,
.page_size = 256,
/* OTP: 1024B total, 256B reserved, later 3x 1024B; read 0x48; write 0x42, erase 0x44 */
@@ -8134,8 +8346,9 @@
.vendor = "GigaDevice",
.name = "GD25LQ80",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LQ80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LQ80,
.total_size = 1024,
.page_size = 256,
/* OTP: 1024B total, 256B reserved, later 3x 512B; read 0x48; write 0x42, erase 0x44 */
@@ -8190,8 +8403,9 @@
.vendor = "GigaDevice",
.name = "GD25LB512ME/GD25LR512ME",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LB512ME,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LB512ME,
.total_size = 65536,
.page_size = 256,
/* Has non-volatile DC bits in unsupported register, controlling QIO, QPI. */
@@ -8241,8 +8455,9 @@
.vendor = "GigaDevice",
.name = "GD25LB512MF/GD25LR512MF",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25LB512MF,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25LB512MF,
.total_size = 65536,
.page_size = 256,
/* Has non-volatile DC bits which affect DIO and QIO in SPI mode. */
@@ -8308,8 +8523,9 @@
.vendor = "GigaDevice",
.name = "GD55LB01GE",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD55LB01GE,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD55LB01GE,
.total_size = 128 * 1024,
.page_size = 256,
/* Has non-volatile DC bits in unsupported register, controlling QIO, QPI. */
@@ -8359,8 +8575,9 @@
.vendor = "GigaDevice",
.name = "GD55LB01GF",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD55LB01GF,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD55LB01GF,
.total_size = 128 * 1024,
.page_size = 256,
/* Has non-volatile DC bits which affect DIO and QIO in SPI mode. */
@@ -8426,8 +8643,9 @@
.vendor = "GigaDevice",
.name = "GD55LB02GE",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD55LB02GE,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD55LB02GE,
.total_size = 256 * 1024,
.page_size = 256,
/* Has non-volatile DC bits in unsupported register, controlling QIO, QPI. */
@@ -8477,8 +8695,9 @@
.vendor = "GigaDevice",
.name = "GD55LB02GF",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD55LB02GF,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD55LB02GF,
.total_size = 256 * 1024,
.page_size = 256,
/* Has non-volatile DC bits which affect DIO and QIO in SPI mode. */
@@ -8544,8 +8763,9 @@
.vendor = "GigaDevice",
.name = "GD25Q10",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q10,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q10,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR_EXT2 | FEATURE_QIO,
@@ -8588,8 +8808,9 @@
.vendor = "GigaDevice",
.name = "GD25Q127C/GD25B127D",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q128,
.total_size = 16384,
.page_size = 256,
/* OTP: 1536B total; read 0x48; write 0x42, erase 0x44 */
@@ -8645,8 +8866,9 @@
.vendor = "GigaDevice",
.name = "GD25Q128B/GD25B128B",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q128,
.total_size = 16384,
.page_size = 256,
/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */
@@ -8700,8 +8922,9 @@
.vendor = "GigaDevice",
.name = "GD25Q128C",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q128,
.total_size = 16384,
.page_size = 256,
/* OTP: 1536B total; read 0x48; write 0x42, erase 0x44 */
@@ -8759,8 +8982,9 @@
.vendor = "GigaDevice",
.name = "GD25Q128E/GD25B128E/GD25R128E/GD25Q128H/GD25B128H",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q128,
.total_size = 16384,
.page_size = 256,
/* OTP: 1536B total; read 0x48; write 0x42, erase 0x44 */
@@ -8818,8 +9042,9 @@
.vendor = "GigaDevice",
.name = "GD25Q16(B)",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q16,
.total_size = 2048,
.page_size = 256,
/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 (B version only) */
@@ -8863,8 +9088,9 @@
.vendor = "GigaDevice",
.name = "GD25Q20(B)",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q20,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q20,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR_EXT2 | FEATURE_QIO,
@@ -8906,8 +9132,9 @@
.vendor = "GigaDevice",
.name = "GD25Q256D/GD25B256D",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q256D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q256D,
.total_size = 32768,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_OTP | FEATURE_4BA |
@@ -8969,8 +9196,9 @@
.vendor = "GigaDevice",
.name = "GD25Q257D/GD25B257D",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q256D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q256D,
.total_size = 32768,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 | FEATURE_WRSR2 | FEATURE_WRSR3 |
@@ -9030,8 +9258,9 @@
.vendor = "GigaDevice",
.name = "GD25Q256E/GD25B256E/GD25R256E",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q256D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q256D,
.total_size = 32768,
.page_size = 256,
/* Supports full QIO but has non-volatile DC bits. */
@@ -9095,8 +9324,9 @@
.vendor = "GigaDevice",
.name = "GD25Q32(B)",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q32,
.total_size = 4096,
.page_size = 256,
/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */
@@ -9150,8 +9380,9 @@
.vendor = "GigaDevice",
.name = "GD25Q40(B)",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q40,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR_EXT2 | FEATURE_QIO,
@@ -9194,8 +9425,9 @@
.vendor = "GigaDevice",
.name = "GD25Q512",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q512,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q512,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR_EXT2 | FEATURE_QIO,
@@ -9235,8 +9467,9 @@
.vendor = "GigaDevice",
.name = "GD25Q64(B)",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q64,
.total_size = 8192,
.page_size = 256,
/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */
@@ -9290,8 +9523,9 @@
.vendor = "GigaDevice",
.name = "GD25Q80(B)",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25Q80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25Q80,
.total_size = 1024,
.page_size = 256,
/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 (B version only) */
@@ -9335,8 +9569,9 @@
.vendor = "GigaDevice",
.name = "GD25B512ME/GD25R512ME",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25B512ME,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25B512ME,
.total_size = 65536,
.page_size = 256,
/* Supports QPI_38, but with non-volatile DC bits
@@ -9392,8 +9627,9 @@
.vendor = "GigaDevice",
.name = "GD25B512MF/GD25R512MF",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25B512MF,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25B512MF,
.total_size = 65536,
.page_size = 256,
/* Has non-volatile DC bits which affect DIO and QIO in SPI mode. */
@@ -9459,8 +9695,9 @@
.vendor = "GigaDevice",
.name = "GD55B01GE",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD55B01GE,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD55B01GE,
.total_size = 128 * 1024,
.page_size = 256,
/* Supports QPI_38, but with non-volatile DC bits
@@ -9516,8 +9753,9 @@
.vendor = "GigaDevice",
.name = "GD55B01GF",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD55B01GF,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD55B01GF,
.total_size = 128 * 1024,
.page_size = 256,
/* Has non-volatile DC bits which affect DIO and QIO in SPI mode. */
@@ -9583,8 +9821,9 @@
.vendor = "GigaDevice",
.name = "GD55B02GE",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD55B02GE,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD55B02GE,
.total_size = 256 * 1024,
.page_size = 256,
/* Supports QPI_38, but with non-volatile DC bits
@@ -9640,8 +9879,9 @@
.vendor = "GigaDevice",
.name = "GD55B02GF",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD55B02GF,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD55B02GF,
.total_size = 256 * 1024,
.page_size = 256,
/* Has non-volatile DC bits which affect DIO and QIO in SPI mode. */
@@ -9707,8 +9947,9 @@
.vendor = "GigaDevice",
.name = "GD25T80",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25T80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25T80,
.total_size = 1024,
.page_size = 256,
/* OTP: 256B total; enter 0x3A */
@@ -9746,8 +9987,9 @@
.vendor = "GigaDevice",
.name = "GD25VQ16C",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25VQ16C,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25VQ16C,
.total_size = 2 * 1024,
.page_size = 256,
/* Supports SFDP */
@@ -9792,8 +10034,9 @@
.vendor = "GigaDevice",
.name = "GD25VQ21B",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25VQ21B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25VQ21B,
.total_size = 256,
.page_size = 256,
/* OTP: 1536B total; read 0x48, write 0x42, erase 0x44 */
@@ -9838,8 +10081,9 @@
.vendor = "GigaDevice",
.name = "GD25VQ40C",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25VQ41B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25VQ41B,
.total_size = 512,
.page_size = 256,
/* Supports SFDP */
@@ -9884,8 +10128,9 @@
.vendor = "GigaDevice",
.name = "GD25VQ41B",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25VQ41B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25VQ41B,
.total_size = 512,
.page_size = 256,
/* OTP: 1536B total; read 0x48, write 0x42, erase 0x44 */
@@ -9930,8 +10175,9 @@
.vendor = "GigaDevice",
.name = "GD25VQ80C",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25VQ80C,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25VQ80C,
.total_size = 1024,
.page_size = 256,
/* Supports SFDP */
@@ -9976,8 +10222,9 @@
.vendor = "GigaDevice",
.name = "GD25WQ80E",
.bustype = BUS_SPI,
- .manufacture_id = GIGADEVICE_ID,
- .model_id = GIGADEVICE_GD25WQ80E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GIGADEVICE_ID,
+ .id.model = GIGADEVICE_GD25WQ80E,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR_EXT2 | FEATURE_QIO,
@@ -10020,8 +10267,9 @@
.vendor = "Hyundai",
.name = "HY29F002B",
.bustype = BUS_PARALLEL,
- .manufacture_id = HYUNDAI_ID,
- .model_id = HYUNDAI_HY29F002B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = HYUNDAI_ID,
+ .id.model = HYUNDAI_HY29F002B,
.total_size = 256,
.page_size = 256 * 1024,
.feature_bits = FEATURE_EITHER_RESET, /* Some revisions may need FEATURE_ADDR_2AA */
@@ -10054,8 +10302,9 @@
.vendor = "Hyundai",
.name = "HY29F002T",
.bustype = BUS_PARALLEL,
- .manufacture_id = HYUNDAI_ID,
- .model_id = HYUNDAI_HY29F002T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = HYUNDAI_ID,
+ .id.model = HYUNDAI_HY29F002T,
.total_size = 256,
.page_size = 256 * 1024,
.feature_bits = FEATURE_EITHER_RESET, /* Some revisions may need FEATURE_ADDR_2AA */
@@ -10088,8 +10337,9 @@
.vendor = "Hyundai",
.name = "HY29F040A",
.bustype = BUS_PARALLEL,
- .manufacture_id = HYUNDAI_ID,
- .model_id = HYUNDAI_HY29F040A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = HYUNDAI_ID,
+ .id.model = HYUNDAI_HY29F040A,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -10117,8 +10367,9 @@
.vendor = "ISSI",
.name = "IS25LP064",
.bustype = BUS_SPI,
- .manufacture_id = ISSI_ID_SPI,
- .model_id = ISSI_IS25LP064,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ISSI_ID_SPI,
+ .id.model = ISSI_IS25LP064,
.total_size = 8192,
.page_size = 256,
/* OTP: 1024B total; read 0x48; write 0x42 */
@@ -10158,8 +10409,9 @@
.vendor = "ISSI",
.name = "IS25LP128",
.bustype = BUS_SPI,
- .manufacture_id = ISSI_ID_SPI,
- .model_id = ISSI_IS25LP128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ISSI_ID_SPI,
+ .id.model = ISSI_IS25LP128,
.total_size = 16384,
.page_size = 256,
/* OTP: 1024B total; read 0x48; write 0x42 */
@@ -10199,8 +10451,9 @@
.vendor = "ISSI",
.name = "IS25LP256",
.bustype = BUS_SPI,
- .manufacture_id = ISSI_ID_SPI,
- .model_id = ISSI_IS25LP256,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ISSI_ID_SPI,
+ .id.model = ISSI_IS25LP256,
.total_size = 32768,
.page_size = 256,
/* supports SFDP */
@@ -10251,8 +10504,9 @@
.vendor = "ISSI",
.name = "IS25WP032",
.bustype = BUS_SPI,
- .manufacture_id = ISSI_ID_SPI,
- .model_id = ISSI_IS25WP032,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ISSI_ID_SPI,
+ .id.model = ISSI_IS25WP032,
.total_size = 4096,
.page_size = 256,
/* OTP: 1024B total; read 0x48; write 0x42 */
@@ -10294,8 +10548,9 @@
.vendor = "ISSI",
.name = "IS25WP064",
.bustype = BUS_SPI,
- .manufacture_id = ISSI_ID_SPI,
- .model_id = ISSI_IS25WP064,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ISSI_ID_SPI,
+ .id.model = ISSI_IS25WP064,
.total_size = 8192,
.page_size = 256,
/* OTP: 1024B total; read 0x48; write 0x42 */
@@ -10337,8 +10592,9 @@
.vendor = "ISSI",
.name = "IS25WP128",
.bustype = BUS_SPI,
- .manufacture_id = ISSI_ID_SPI,
- .model_id = ISSI_IS25WP128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ISSI_ID_SPI,
+ .id.model = ISSI_IS25WP128,
.total_size = 16384,
.page_size = 256,
/* OTP: 1024B total; read 0x48; write 0x42 */
@@ -10380,8 +10636,9 @@
.vendor = "ISSI",
.name = "IS25WP256",
.bustype = BUS_SPI,
- .manufacture_id = ISSI_ID_SPI,
- .model_id = ISSI_IS25WP256,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ISSI_ID_SPI,
+ .id.model = ISSI_IS25WP256,
.total_size = 32768,
.page_size = 256,
/* supports SFDP */
@@ -10432,8 +10689,9 @@
.vendor = "ISSI",
.name = "IS29GL064B",
.bustype = BUS_PARALLEL,
- .manufacture_id = ISSI_ID,
- .model_id = ISSI_PMC_IS29GL064B,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = ISSI_ID,
+ .id.model = ISSI_PMC_IS29GL064B,
.total_size = 8192,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -10464,8 +10722,9 @@
.vendor = "ISSI",
.name = "IS29GL064H/L",
.bustype = BUS_PARALLEL,
- .manufacture_id = ISSI_ID,
- .model_id = ISSI_PMC_IS29GL064HL,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = ISSI_ID,
+ .id.model = ISSI_PMC_IS29GL064HL,
.total_size = 8192,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -10493,8 +10752,9 @@
.vendor = "ISSI",
.name = "IS29GL064T",
.bustype = BUS_PARALLEL,
- .manufacture_id = ISSI_ID,
- .model_id = ISSI_PMC_IS29GL064T,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = ISSI_ID,
+ .id.model = ISSI_PMC_IS29GL064T,
.total_size = 8192,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -10525,8 +10785,9 @@
.vendor = "ISSI",
.name = "IS29GL128H/L",
.bustype = BUS_PARALLEL,
- .manufacture_id = ISSI_ID,
- .model_id = ISSI_PMC_IS29GL128HL,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = ISSI_ID,
+ .id.model = ISSI_PMC_IS29GL128HL,
.total_size = 16384,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -10554,8 +10815,9 @@
.vendor = "Intel",
.name = "25F160S33B8",
.bustype = BUS_SPI,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_25F160S33B8,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_25F160S33B8,
.total_size = 2048,
.page_size = 256,
/* OTP: 506B total (2x 8B, 30x 16B, 1x 10B); read 0x4B; write 0x42 */
@@ -10593,8 +10855,9 @@
.vendor = "Intel",
.name = "25F160S33T8",
.bustype = BUS_SPI,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_25F160S33T8,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_25F160S33T8,
.total_size = 2048,
.page_size = 256,
/* OTP: 506B total (2x 8B, 30x 16B, 1x 10B); read 0x4B; write 0x42 */
@@ -10632,8 +10895,9 @@
.vendor = "Intel",
.name = "25F320S33B8",
.bustype = BUS_SPI,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_25F320S33B8,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_25F320S33B8,
.total_size = 4096,
.page_size = 256,
/* OTP: 506B total (2x 8B, 30x 16B, 1x 10B); read 0x4B; write 0x42 */
@@ -10671,8 +10935,9 @@
.vendor = "Intel",
.name = "25F320S33T8",
.bustype = BUS_SPI,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_25F320S33T8,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_25F320S33T8,
.total_size = 4096,
.page_size = 256,
/* OTP: 506B total (2x 8B, 30x 16B, 1x 10B); read 0x4B; write 0x42 */
@@ -10710,8 +10975,9 @@
.vendor = "Intel",
.name = "25F640S33B8",
.bustype = BUS_SPI,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_25F640S33B8,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_25F640S33B8,
.total_size = 8192,
.page_size = 256,
/* OTP: 506B total (2x 8B, 30x 16B, 1x 10B); read 0x4B; write 0x42 */
@@ -10749,8 +11015,9 @@
.vendor = "Intel",
.name = "25F640S33T8",
.bustype = BUS_SPI,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_25F640S33T8,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_25F640S33T8,
.total_size = 8192,
.page_size = 256,
/* OTP: 506B total (2x 8B, 30x 16B, 1x 10B); read 0x4B; write 0x42 */
@@ -10788,8 +11055,9 @@
.vendor = "Intel",
.name = "28F001BN/BX-B",
.bustype = BUS_PARALLEL,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_28F001B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_28F001B,
.total_size = 128,
.page_size = 128 * 1024, /* 8k + 2x4k + 112k */
.tested = TEST_UNTESTED,
@@ -10817,8 +11085,9 @@
.vendor = "Intel",
.name = "28F001BN/BX-T",
.bustype = BUS_PARALLEL,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_28F001T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_28F001T,
.total_size = 128,
.page_size = 128 * 1024, /* 112k + 2x4k + 8k */
.tested = TEST_OK_PREW,
@@ -10846,8 +11115,9 @@
.vendor = "Intel",
.name = "28F002BC/BL/BV/BX-T",
.bustype = BUS_PARALLEL,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_28F002T,
+ .id.type = ID_82802AB,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_28F002T,
.total_size = 256,
.page_size = 256 * 1024,
.tested = TEST_OK_PRE,
@@ -10875,8 +11145,9 @@
.vendor = "Intel",
.name = "28F004B5/BE/BV/BX-B",
.bustype = BUS_PARALLEL,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_28F004B,
+ .id.type = ID_82802AB,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_28F004B,
.total_size = 512,
.page_size = 128 * 1024, /* maximal block size */
.tested = TEST_UNTESTED,
@@ -10904,8 +11175,9 @@
.vendor = "Intel",
.name = "28F004B5/BE/BV/BX-T",
.bustype = BUS_PARALLEL,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_28F004T,
+ .id.type = ID_82802AB,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_28F004T,
.total_size = 512,
.page_size = 128 * 1024, /* maximal block size */
.tested = TEST_UNTESTED,
@@ -10933,8 +11205,9 @@
.vendor = "Intel",
.name = "28F008S3/S5/SC",
.bustype = BUS_PARALLEL,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_28F004S3,
+ .id.type = ID_82802AB,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_28F004S3,
.total_size = 512,
.page_size = 256,
.tested = TEST_UNTESTED,
@@ -10958,8 +11231,9 @@
.vendor = "Intel",
.name = "28F400BV/BX/CE/CV-B",
.bustype = BUS_PARALLEL,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_28F400B,
+ .id.type = ID_82802AB,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_28F400B,
.total_size = 512,
.page_size = 128 * 1024, /* maximal block size */
.feature_bits = FEATURE_ADDR_SHIFTED,
@@ -10988,8 +11262,9 @@
.vendor = "Intel",
.name = "28F400BV/BX/CE/CV-T",
.bustype = BUS_PARALLEL,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_28F400T,
+ .id.type = ID_82802AB,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_28F400T,
.total_size = 512,
.page_size = 128 * 1024, /* maximal block size */
.feature_bits = FEATURE_ADDR_SHIFTED,
@@ -11018,8 +11293,9 @@
.vendor = "Intel",
.name = "82802AB",
.bustype = BUS_FWH,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_82802AB,
+ .id.type = ID_82802AB,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_82802AB,
.total_size = 512,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
@@ -11044,8 +11320,9 @@
.vendor = "Intel",
.name = "82802AC",
.bustype = BUS_FWH,
- .manufacture_id = INTEL_ID,
- .model_id = INTEL_82802AC,
+ .id.type = ID_82802AB,
+ .id.manufacture = INTEL_ID,
+ .id.model = INTEL_82802AC,
.total_size = 1024,
.page_size = 64 * 1024,
.tested = TEST_OK_PR,
@@ -11070,8 +11347,9 @@
.vendor = "Macronix",
.name = "MX23L12854",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX23L12854,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX23L12854,
.total_size = 16384,
.page_size = 256,
.tested = {.probe = NT, .read = NT, .erase = NA, .write = NA},
@@ -11086,8 +11364,9 @@
.vendor = "Macronix",
.name = "MX23L1654",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX23L1654,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX23L1654,
.total_size = 2048,
.page_size = 256,
.tested = {.probe = NT, .read = NT, .erase = NA, .write = NA},
@@ -11102,8 +11381,9 @@
.vendor = "Macronix",
.name = "MX23L3254",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX23L3254,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX23L3254,
.total_size = 4096,
.page_size = 256,
.tested = {.probe = OK, .read = OK, .erase = NA, .write = NA},
@@ -11118,8 +11398,9 @@
.vendor = "Macronix",
.name = "MX23L6454",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX23L6454,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX23L6454,
.total_size = 8192,
.page_size = 256,
.tested = {.probe = OK, .read = OK, .erase = NA, .write = NA},
@@ -11134,8 +11415,9 @@
.vendor = "Macronix",
.name = "MX25L1005(C)/MX25L1006E",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L1005,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L1005,
.total_size = 128,
.page_size = 256,
/* MX25L1006E supports SFDP */
@@ -11173,8 +11455,9 @@
.vendor = "Macronix",
.name = "MX25L12805D",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L12805D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L12805D,
.total_size = 16384,
.page_size = 256,
/* OTP: 64B total; enter 0xB1, exit 0xC1 */
@@ -11209,8 +11492,9 @@
.vendor = "Macronix",
.name = "MX25L12833F/MX25L12835F/MX25L12845E/MX25L12865E/MX25L12873F",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L12805D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L12805D,
.total_size = 16384,
.page_size = 256,
/* OTP: MX25L12833F has 1KB total, others have 512B total; enter 0xB1, exit 0xC1 */
@@ -11257,8 +11541,9 @@
.vendor = "Macronix",
.name = "MX25L1605",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L1605,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L1605,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_FAST_READ,
@@ -11292,8 +11577,9 @@
.vendor = "Macronix",
.name = "MX25L1605A/MX25L1606E/MX25L1608E",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L1605,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L1605,
.total_size = 2048,
.page_size = 256,
/* OTP: 64B total; enter 0xB1, exit 0xC1 (MX25L1606E and MX25L1608E only) */
@@ -11334,8 +11620,9 @@
.vendor = "Macronix",
.name = "MX25L1605D/MX25L1608D/MX25L1673E",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L1605,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L1605,
.total_size = 2048,
.page_size = 256,
/* FEATURE_QIO: MX25L1673E */
@@ -11372,8 +11659,9 @@
.vendor = "Macronix",
.name = "MX25L1635D",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L1635D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L1635D,
.total_size = 2048,
.page_size = 256,
/* OTP: 64B total; enter 0xB1, exit 0xC1 */
@@ -11415,8 +11703,9 @@
.vendor = "Macronix",
.name = "MX25L1635E",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L1635E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L1635E,
.total_size = 2048,
.page_size = 256,
/* OTP: 64B total; enter 0xB1, exit 0xC1 */
@@ -11458,8 +11747,9 @@
.vendor = "Macronix",
.name = "MX25L2005(C)/MX25L2006E",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L2005,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L2005,
.total_size = 256,
.page_size = 256,
/* FEATURE_FAST_READ_DOUT: MX25L2006E */
@@ -11499,8 +11789,9 @@
.vendor = "Macronix",
.name = "MX25L25635F/MX25L25645G",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L25635F,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L25635F,
.total_size = 32768,
.page_size = 256,
/* OTP: 512B total; enter 0xB1, exit 0xC1 */
@@ -11563,8 +11854,9 @@
.vendor = "Macronix",
.name = "MX25L3205(A)",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L3205,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L3205,
.total_size = 4096,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_FAST_READ,
@@ -11598,8 +11890,9 @@
.vendor = "Macronix",
.name = "MX25L3205D/MX25L3208D",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L3205,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L3205,
.total_size = 4096,
.page_size = 256,
/* OTP: 64B total; enter 0xB1, exit 0xC1 */
@@ -11636,8 +11929,9 @@
.vendor = "Macronix",
.name = "MX25L3206E/MX25L3208E",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L3205,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L3205,
.total_size = 4096,
.page_size = 256,
/* OTP: 64B total; enter 0xB1, exit 0xC1 */
@@ -11677,8 +11971,9 @@
.vendor = "Macronix",
.name = "MX25L3235D",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L3235D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L3235D,
.total_size = 4096,
.page_size = 256,
/* OTP: 256B total; enter 0xB1, exit 0xC1 */
@@ -11720,8 +12015,9 @@
.vendor = "Macronix",
.name = "MX25L3233F/MX25L3273E",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L3205,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L3205,
.total_size = 4096,
.page_size = 256,
/* OTP: 512B total; enter 0xB1, exit 0xC1 */
@@ -11765,8 +12061,9 @@
.vendor = "Macronix",
.name = "MX25L4005(A/C)/MX25L4006E",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L4005,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L4005,
.total_size = 512,
.page_size = 256,
/* FEATURE_FAST_READ_DOUT: MX25L4006E */
@@ -11806,8 +12103,9 @@
.vendor = "Macronix",
.name = "MX25L512(E)/MX25V512(C)",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L512,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L512,
.total_size = 64,
.page_size = 256,
/* MX25L512E supports SFDP */
@@ -11846,8 +12144,9 @@
.vendor = "Macronix",
.name = "MX25L5121E",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L5121E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L5121E,
.total_size = 64,
.page_size = 32,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_FAST_READ,
@@ -11884,8 +12183,9 @@
.vendor = "Macronix",
.name = "MX25L6405",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L6405,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L6405,
.total_size = 8192,
.page_size = 256,
/* Has an additional 512B EEPROM sector */
@@ -11920,8 +12220,9 @@
.vendor = "Macronix",
.name = "MX25L6405D",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L6405,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L6405,
.total_size = 8192,
.page_size = 256,
/* OTP: 64B total; enter 0xB1, exit 0xC1 */
@@ -11958,8 +12259,9 @@
.vendor = "Macronix",
.name = "MX25L6406E/MX25L6408E",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L6405,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L6405,
.total_size = 8192,
.page_size = 256,
/* MX25L6406E supports SFDP */
@@ -12000,8 +12302,9 @@
.vendor = "Macronix",
.name = "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L6405,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L6405,
.total_size = 8192,
.page_size = 256,
/* supports SFDP */
@@ -12049,8 +12352,9 @@
.vendor = "Macronix",
.name = "MX25L6495F",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L6495F,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L6495F,
.total_size = 8192,
.page_size = 256,
/* OTP: 1024B total; enter 0xB1, exit 0xC1 */
@@ -12087,8 +12391,9 @@
.vendor = "Macronix",
.name = "MX25L8005/MX25L8006E/MX25L8008E/MX25V8005",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L8005,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25L8005,
.total_size = 1024,
.page_size = 256,
/* MX25L8006E, MX25L8008E support SFDP */
@@ -12128,8 +12433,9 @@
.vendor = "Macronix",
.name = "MX25R3235F",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25R3235F,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25R3235F,
.total_size = 4096,
.page_size = 256,
/* OTP: 1024B total; enter 0xB1, exit 0xC1 */
@@ -12173,8 +12479,9 @@
.vendor = "Macronix",
.name = "MX25R6435F",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25R6435F,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25R6435F,
.total_size = 8192,
.page_size = 256,
/* OTP: 1024B total; enter 0xB1, exit 0xC1 */
@@ -12218,8 +12525,9 @@
.vendor = "Macronix",
.name = "MX25U12835F",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25U12835E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25U12835E,
.total_size = 16384,
.page_size = 256,
/* OTP: 512B total; enter 0xB1, exit 0xC1 */
@@ -12271,8 +12579,9 @@
.vendor = "Macronix",
.name = "MX25U1635E",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25U1635E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25U1635E,
.total_size = 2048,
.page_size = 256,
/* OTP: 512B total; enter 0xB1, exit 0xC1 */
@@ -12323,8 +12632,9 @@
.vendor = "Macronix",
.name = "MX25U25635F",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25U25635F,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25U25635F,
.total_size = 32768,
.page_size = 256,
/* OTP: 512B total; enter 0xB1, exit 0xC1 */
@@ -12381,8 +12691,9 @@
.vendor = "Macronix",
.name = "MX25U3235E/F",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25U3235E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25U3235E,
.total_size = 4096,
.page_size = 256,
/* F model supports SFDP, FAST_READ_DOUT/_QOUT */
@@ -12434,8 +12745,9 @@
.vendor = "Macronix",
.name = "MX25U51245G",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25U51245G,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25U51245G,
.total_size = 65536,
.page_size = 256,
/* OTP: 512B factory programmed and 512B customer programmed; enter 0xB1, exit 0xC1 */
@@ -12492,8 +12804,9 @@
.vendor = "Macronix",
.name = "MX25U6435E/F",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25U6435E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25U6435E,
.total_size = 8192,
.page_size = 256,
/* F model supports SFDP, FAST_READ_DOUT/_QOUT */
@@ -12545,8 +12858,9 @@
.vendor = "Macronix",
.name = "MX25U8032E",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25U8032E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX25U8032E,
.total_size = 1024,
.page_size = 256,
/* OTP: 512B total; enter 0xB1, exit 0xC1 */
@@ -12592,8 +12906,9 @@
.vendor = "Macronix",
.name = "MX29F001B",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29F001B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29F001B,
.total_size = 128,
.page_size = 32 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -12627,8 +12942,9 @@
.vendor = "Macronix",
.name = "MX29F001T",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29F001T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29F001T,
.total_size = 128,
.page_size = 32 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -12662,8 +12978,9 @@
.vendor = "Macronix",
.name = "MX29F002(N)B",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29F002B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29F002B,
.total_size = 256,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -12696,8 +13013,9 @@
.vendor = "Macronix",
.name = "MX29F002(N)T",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29F002T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29F002T,
.total_size = 256,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -12730,8 +13048,9 @@
.vendor = "Macronix",
.name = "MX29F022(N)B",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29F022B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29F022B,
.total_size = 256,
.page_size = 0, /* unused */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -12764,8 +13083,9 @@
.vendor = "Macronix",
.name = "MX29F022(N)T",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29F022T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29F022T,
.total_size = 256,
.page_size = 0, /* unused */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -12798,8 +13118,9 @@
.vendor = "Macronix",
.name = "MX29F040",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29F040,
+ .id.type = ID_JEDEC,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29F040,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -12827,8 +13148,9 @@
.vendor = "Macronix",
.name = "MX29GL128F",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29GL128F,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29GL128F,
.total_size = 16384,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -12856,8 +13178,9 @@
.vendor = "Macronix",
.name = "MX29GL320EB",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29GL320EB,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29GL320EB,
.total_size = 4096,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -12888,8 +13211,9 @@
.vendor = "Macronix",
.name = "MX29GL320EH/L",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29GL320EHL,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29GL320EHL,
.total_size = 4096,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -12917,8 +13241,9 @@
.vendor = "Macronix",
.name = "MX29GL320ET",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29GL320ET,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29GL320ET,
.total_size = 4096,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -12949,8 +13274,9 @@
.vendor = "Macronix",
.name = "MX29GL640EB",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29GL640EB,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29GL640EB,
.total_size = 8192,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -12981,8 +13307,9 @@
.vendor = "Macronix",
.name = "MX29GL640EH/L",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29GL640EHL,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29GL640EHL,
.total_size = 8192,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -13010,8 +13337,9 @@
.vendor = "Macronix",
.name = "MX29GL640ET",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29GL640ET,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29GL640ET,
.total_size = 8192,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -13042,8 +13370,9 @@
.vendor = "Macronix",
.name = "MX29LV040",
.bustype = BUS_PARALLEL,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX29LV040,
+ .id.type = ID_JEDEC,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX29LV040,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -13071,8 +13400,9 @@
.vendor = "Macronix",
.name = "MX66L51235F/MX25L51245G",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX66L51235F,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX66L51235F,
.total_size = 65536,
.page_size = 256,
/* OTP: 512B total; enter 0xB1, exit 0xC1 */
@@ -13122,8 +13452,9 @@
.vendor = "Macronix",
.name = "MX66L1G45G",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX66L1G45G,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = MACRONIX_MX66L1G45G,
.total_size = 131072,
.page_size = 256,
/* OTP: 512B total; enter 0xB1, exit 0xC1 */
@@ -13173,6 +13504,7 @@
.vendor = "Microchip",
.name = "25LC080",
.bustype = BUS_SPI,
+ .id.type = ID_NONE,
.total_size = 1,
.page_size = 16,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_NO_ERASE | FEATURE_ERASED_ZERO,
@@ -13200,6 +13532,7 @@
.vendor = "Microchip",
.name = "25LC016",
.bustype = BUS_SPI,
+ .id.type = ID_NONE,
.total_size = 2,
.page_size = 16,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_NO_ERASE | FEATURE_ERASED_ZERO,
@@ -13227,6 +13560,7 @@
.vendor = "Microchip",
.name = "25LC032",
.bustype = BUS_SPI,
+ .id.type = ID_NONE,
.total_size = 4,
.page_size = 32,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_NO_ERASE | FEATURE_ERASED_ZERO,
@@ -13254,6 +13588,7 @@
.vendor = "Microchip",
.name = "25LC064",
.bustype = BUS_SPI,
+ .id.type = ID_NONE,
.total_size = 8,
.page_size = 32,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_NO_ERASE | FEATURE_ERASED_ZERO,
@@ -13281,6 +13616,7 @@
.vendor = "Microchip",
.name = "25LC128",
.bustype = BUS_SPI,
+ .id.type = ID_NONE,
.total_size = 16,
.page_size = 64,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_NO_ERASE | FEATURE_ERASED_ZERO,
@@ -13308,6 +13644,7 @@
.vendor = "Microchip",
.name = "25LC256",
.bustype = BUS_SPI,
+ .id.type = ID_NONE,
.total_size = 32,
.page_size = 64,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_NO_ERASE | FEATURE_ERASED_ZERO,
@@ -13335,6 +13672,7 @@
.vendor = "Microchip",
.name = "25LC512",
.bustype = BUS_SPI,
+ .id.type = ID_NONE,
.total_size = 64,
.page_size = 128,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_NO_ERASE | FEATURE_ERASED_ZERO,
@@ -13362,6 +13700,7 @@
.vendor = "Microchip",
.name = "25LC1024",
.bustype = BUS_SPI,
+ .id.type = ID_NONE,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_NO_ERASE | FEATURE_ERASED_ZERO,
@@ -13394,8 +13733,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25P05",
.bustype = BUS_SPI,
- .manufacture_id = 0, /* Not used. */
- .model_id = ST_M25P05_RES,
+ .id.type = ID_SPI_RES1,
+ .id.manufacture = 0, /* Not used. */
+ .id.model = ST_M25P05_RES,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13423,8 +13763,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25P05-A",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25P05A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25P05A,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13453,8 +13794,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25P10",
.bustype = BUS_SPI,
- .manufacture_id = 0, /* Not used. */
- .model_id = ST_M25P10_RES,
+ .id.type = ID_SPI_RES1,
+ .id.manufacture = 0, /* Not used. */
+ .id.model = ST_M25P10_RES,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13482,8 +13824,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25P10-A",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25P10A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25P10A,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13511,8 +13854,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25P128",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25P128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25P128,
.total_size = 16384,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13540,8 +13884,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25P16",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25P16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25P16,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13569,8 +13914,9 @@
.vendor = "Micron/Numonyx/ST", /* Numonyx */
.name = "M25P20",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25P20,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25P20,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13598,8 +13944,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25P20-old",
.bustype = BUS_SPI,
- .manufacture_id = 0, /* Not used. */
- .model_id = ST_M25P20_RES,
+ .id.type = ID_SPI_RES1,
+ .id.manufacture = 0, /* Not used. */
+ .id.model = ST_M25P20_RES,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13627,8 +13974,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25P32",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25P32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25P32,
.total_size = 4096,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13656,8 +14004,9 @@
.vendor = "Micron/Numonyx/ST", /* Numonyx */
.name = "M25P40",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25P40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25P40,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13685,8 +14034,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25P40-old",
.bustype = BUS_SPI,
- .manufacture_id = 0, /* Not used. */
- .model_id = ST_M25P40_RES,
+ .id.type = ID_SPI_RES1,
+ .id.manufacture = 0, /* Not used. */
+ .id.model = ST_M25P40_RES,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13713,8 +14063,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25P64",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25P64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25P64,
.total_size = 8192,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13742,8 +14093,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25P80",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25P80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25P80,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13771,8 +14123,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25PE10",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25PE10,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25PE10,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13803,8 +14156,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25PE16",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25PE16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25PE16,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13835,8 +14189,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25PE20",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25PE20,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25PE20,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13867,8 +14222,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25PE40",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25PE40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25PE40,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13899,8 +14255,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25PE80",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25PE80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25PE80,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -13931,8 +14288,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25PX16",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25PX16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25PX16,
.total_size = 2048,
.page_size = 256,
/* OTP: 64B total; read 0x4B; write 0x42 */
@@ -13964,8 +14322,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25PX32",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25PX32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25PX32,
.total_size = 4096,
.page_size = 256,
/* OTP: 64B total; read 0x4B; write 0x42 */
@@ -13997,8 +14356,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25PX64",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25PX64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25PX64,
.total_size = 8192,
.page_size = 256,
/* OTP: 64B total; read 0x4B; write 0x42 */
@@ -14030,8 +14390,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M25PX80",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M25PX80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M25PX80,
.total_size = 1024,
.page_size = 256,
/* OTP: 64B total; read 0x4B, write 0x42 */
@@ -14063,8 +14424,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M45PE10",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M45PE10,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M45PE10,
.total_size = 128,
.page_size = 256,
.tested = TEST_UNTESTED,
@@ -14091,8 +14453,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M45PE16",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M45PE16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M45PE16,
.total_size = 2048,
.page_size = 256,
.tested = TEST_UNTESTED,
@@ -14119,8 +14482,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M45PE20",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M45PE20,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M45PE20,
.total_size = 256,
.page_size = 256,
.tested = TEST_UNTESTED,
@@ -14147,8 +14511,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M45PE40",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M45PE40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M45PE40,
.total_size = 512,
.page_size = 256,
.tested = TEST_UNTESTED,
@@ -14175,8 +14540,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "M45PE80",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M45PE80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M45PE80,
.total_size = 1024,
.page_size = 256,
.tested = TEST_UNTESTED,
@@ -14203,8 +14569,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "N25Q00A..1G", /* ..1G = 1.8V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q00A__1G,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q00A__1G,
.total_size = 131072,
.page_size = 256,
/* supports SFDP */
@@ -14245,8 +14612,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "N25Q00A..3G", /* ..3G = 3V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q00A__3G,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q00A__3G,
.total_size = 131072,
.page_size = 256,
/* supports SFDP */
@@ -14287,8 +14655,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "N25Q016",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q016__1E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q016__1E,
.total_size = 2048,
.page_size = 256,
/* supports SFDP */
@@ -14324,8 +14693,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "N25Q032..1E",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q032__1E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q032__1E,
.total_size = 4096,
.page_size = 256,
/* supports SFDP */
@@ -14372,8 +14742,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "N25Q032..3E",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q032__3E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q032__3E,
.total_size = 4096,
.page_size = 256,
/* supports SFDP */
@@ -14420,8 +14791,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "N25Q064..1E", /* ..1E = 1.8V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q064__1E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q064__1E,
.total_size = 8192,
.page_size = 256,
/* supports SFDP */
@@ -14468,8 +14840,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "N25Q064..3E", /* ..3E = 3V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q064__3E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q064__3E,
.total_size = 8192,
.page_size = 256,
/* supports SFDP */
@@ -14516,8 +14889,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "N25Q128..1E", /* ..1E = 1.8V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q128__1E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q128__1E,
.total_size = 16384,
.page_size = 256,
/* supports SFDP */
@@ -14550,8 +14924,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "N25Q128..3E", /* ..3E = 3V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q128__3E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q128__3E,
.total_size = 16384,
.page_size = 256,
/* supports SFDP */
@@ -14584,8 +14959,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "N25Q256..1E", /* ..1E = 1.8V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q256__1E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q256__1E,
.total_size = 32768,
.page_size = 256,
/* supports SFDP */
@@ -14626,8 +15002,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "N25Q256..3E", /* ..3E = 3V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q256__3E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q256__3E,
.total_size = 32768,
.page_size = 256,
/* supports SFDP */
@@ -14668,8 +15045,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "N25Q512..1G", /* ..1G = 1.8V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q512__1G,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q512__1G,
.total_size = 65536,
.page_size = 256,
/* supports SFDP */
@@ -14710,8 +15088,9 @@
.vendor = "Micron/Numonyx/ST",
.name = "N25Q512..3G", /* ..3G = 3V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q512__3G,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q512__3G,
.total_size = 65536,
.page_size = 256,
/* supports SFDP */
@@ -14752,8 +15131,9 @@
.vendor = "Micron",
.name = "MT25QL01G", /* L = 3V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q00A__3G,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q00A__3G,
.total_size = 131072,
.page_size = 256,
/* supports SFDP */
@@ -14800,8 +15180,9 @@
.vendor = "Micron",
.name = "MT25QU01G", /* U = 1.8V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q00A__1G,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q00A__1G,
.total_size = 131072,
.page_size = 256,
/* supports SFDP */
@@ -14848,8 +15229,9 @@
.vendor = "Micron",
.name = "MT25QL02G", /* L = 3V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_MT25QL02G,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_MT25QL02G,
.total_size = 262144,
.page_size = 256,
/* supports SFDP */
@@ -14896,8 +15278,9 @@
.vendor = "Micron",
.name = "MT25QU02G", /* U = 1.8V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_MT25QU02G,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_MT25QU02G,
.total_size = 262144,
.page_size = 256,
/* supports SFDP */
@@ -14944,8 +15327,9 @@
.vendor = "Micron",
.name = "MT25QU128", /* U = 1.8V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q128__1E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q128__1E,
.total_size = 16384,
.page_size = 256,
/* supports SFDP */
@@ -14984,8 +15368,9 @@
.vendor = "Micron",
.name = "MT25QL128", /* L = 3V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q128__3E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q128__3E,
.total_size = 16384,
.page_size = 256,
/* supports SFDP */
@@ -15024,8 +15409,9 @@
.vendor = "Micron",
.name = "MT25QL256", /* L = 3V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q256__3E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q256__3E,
.total_size = 32768,
.page_size = 256,
/* supports SFDP */
@@ -15075,8 +15461,9 @@
.vendor = "Micron",
.name = "MT25QU256", /* U = 1.8V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q256__1E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q256__1E,
.total_size = 32768,
.page_size = 256,
/* supports SFDP */
@@ -15126,8 +15513,9 @@
.vendor = "Micron",
.name = "MT25QL512", /* L = 3V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q512__3G,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q512__3G,
.total_size = 65536,
.page_size = 256,
/* supports SFDP */
@@ -15187,8 +15575,9 @@
.vendor = "Micron",
.name = "MT25QU512", /* U = 1.8V, uniform 64KB/4KB blocks/sectors */
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_N25Q512__1G,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = ST_N25Q512__1G,
.total_size = 65536,
.page_size = 256,
/* supports SFDP */
@@ -15238,8 +15627,9 @@
.vendor = "MoselVitelic",
.name = "V29C51000B",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = MVC_V29C51000B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = MVC_V29C51000B,
.total_size = 64,
.page_size = 512,
.feature_bits = FEATURE_EITHER_RESET,
@@ -15267,8 +15657,9 @@
.vendor = "MoselVitelic",
.name = "V29C51000T",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = MVC_V29C51000T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = MVC_V29C51000T,
.total_size = 64,
.page_size = 512,
.feature_bits = FEATURE_EITHER_RESET,
@@ -15296,8 +15687,9 @@
.vendor = "MoselVitelic",
.name = "V29C51400B",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = MVC_V29C51400B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = MVC_V29C51400B,
.total_size = 512,
.page_size = 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -15325,8 +15717,9 @@
.vendor = "MoselVitelic",
.name = "V29C51400T",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = MVC_V29C51400T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = MVC_V29C51400T,
.total_size = 512,
.page_size = 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -15354,8 +15747,9 @@
.vendor = "MoselVitelic",
.name = "V29LC51000",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = MVC_V29LC51000,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = MVC_V29LC51000,
.total_size = 64,
.page_size = 512,
.feature_bits = FEATURE_EITHER_RESET,
@@ -15383,8 +15777,9 @@
.vendor = "MoselVitelic",
.name = "V29LC51001",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = MVC_V29LC51001,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = MVC_V29LC51001,
.total_size = 128,
.page_size = 512,
.feature_bits = FEATURE_EITHER_RESET,
@@ -15412,8 +15807,9 @@
.vendor = "MoselVitelic",
.name = "V29LC51002",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = MVC_V29LC51002,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = MVC_V29LC51002,
.total_size = 256,
.page_size = 512,
.feature_bits = FEATURE_EITHER_RESET,
@@ -15441,8 +15837,9 @@
.vendor = "Nantronics",
.name = "N25S10",
.bustype = BUS_SPI,
- .manufacture_id = NANTRONICS_ID_NOPREFIX,
- .model_id = NANTRONICS_N25S10,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = NANTRONICS_ID_NOPREFIX,
+ .id.model = NANTRONICS_N25S10,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -15482,8 +15879,9 @@
.vendor = "Nantronics",
.name = "N25S16",
.bustype = BUS_SPI,
- .manufacture_id = NANTRONICS_ID_NOPREFIX,
- .model_id = NANTRONICS_N25S16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = NANTRONICS_ID_NOPREFIX,
+ .id.model = NANTRONICS_N25S16,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -15517,8 +15915,9 @@
.vendor = "Nantronics",
.name = "N25S20",
.bustype = BUS_SPI,
- .manufacture_id = NANTRONICS_ID_NOPREFIX,
- .model_id = NANTRONICS_N25S20,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = NANTRONICS_ID_NOPREFIX,
+ .id.model = NANTRONICS_N25S20,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -15558,8 +15957,9 @@
.vendor = "Nantronics",
.name = "N25S40",
.bustype = BUS_SPI,
- .manufacture_id = NANTRONICS_ID_NOPREFIX,
- .model_id = NANTRONICS_N25S40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = NANTRONICS_ID_NOPREFIX,
+ .id.model = NANTRONICS_N25S40,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -15599,8 +15999,9 @@
.vendor = "Nantronics",
.name = "N25S80",
.bustype = BUS_SPI,
- .manufacture_id = NANTRONICS_ID_NOPREFIX,
- .model_id = NANTRONICS_N25S80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = NANTRONICS_ID_NOPREFIX,
+ .id.model = NANTRONICS_N25S80,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -15637,8 +16038,9 @@
.vendor = "PMC",
.name = "Pm25LD010(C)",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LD010,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LD010,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -15675,8 +16077,9 @@
.vendor = "PMC",
.name = "Pm25LD020(C)",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LD020,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LD020,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -15713,8 +16116,9 @@
.vendor = "PMC",
.name = "Pm25LD040(C)",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LV040,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LV040,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -15751,8 +16155,9 @@
.vendor = "PMC",
.name = "Pm25LD256C",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LD256C,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LD256C,
.total_size = 32,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -15789,8 +16194,9 @@
.vendor = "PMC",
.name = "Pm25LD512(C)",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LD512,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LD512,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -15827,8 +16233,9 @@
.vendor = "PMC",
.name = "Pm25LQ016",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LQ016,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LQ016,
.total_size = 2048,
.page_size = 256,
/* OTP: 256B total; read 0x4B, write 0xB1 */
@@ -15866,8 +16273,9 @@
.vendor = "PMC",
.name = "Pm25LQ020",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LQ020,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LQ020,
.total_size = 256,
.page_size = 256,
/* OTP: 256B total; read 0x4B, write 0xB1 */
@@ -15905,8 +16313,9 @@
.vendor = "PMC",
.name = "Pm25LQ032C",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LQ032C,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LQ032C,
.total_size = 4096,
.page_size = 256,
/* OTP: 64B total; read 0x4B, write 0xB1 */
@@ -15944,8 +16353,9 @@
.vendor = "PMC",
.name = "Pm25LQ040",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LQ040,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LQ040,
.total_size = 512,
.page_size = 256,
/* OTP: 256B total; read 0x4B, write 0xB1 */
@@ -15983,8 +16393,9 @@
.vendor = "PMC",
.name = "Pm25LQ080",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LQ080,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LQ080,
.total_size = 1024,
.page_size = 256,
/* OTP: 64B total; read 0x4B, write 0xB1 */
@@ -16022,8 +16433,9 @@
.vendor = "PMC",
.name = "Pm25LV010",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID_NOPREFIX,
- .model_id = PMC_PM25LV010,
+ .id.type = ID_SPI_RES2, /* The continuation code is transferred as the 3rd byte m( */
+ .id.manufacture = PMC_ID_NOPREFIX,
+ .id.model = PMC_PM25LV010,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -16054,8 +16466,9 @@
.vendor = "PMC",
.name = "Pm25LV010A",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LV010,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LV010,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -16086,8 +16499,9 @@
.vendor = "PMC",
.name = "Pm25LV016B",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LV016B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LV016B,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -16124,8 +16538,9 @@
.vendor = "PMC",
.name = "Pm25LV020",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LV020,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LV020,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -16156,8 +16571,9 @@
.vendor = "PMC",
.name = "Pm25LV040",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LV040,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LV040,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -16188,8 +16604,9 @@
.vendor = "PMC",
.name = "Pm25LV080B",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = PMC_PM25LV080B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = PMC_PM25LV080B,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -16226,8 +16643,9 @@
.vendor = "PMC",
.name = "Pm25LV512(A)",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID_NOPREFIX,
- .model_id = PMC_PM25LV512,
+ .id.type = ID_SPI_RES2, /* The continuation code is transferred as the 3rd byte m( */
+ .id.manufacture = PMC_ID_NOPREFIX,
+ .id.model = PMC_PM25LV512,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -16258,8 +16676,9 @@
.vendor = "PMC",
.name = "Pm29F002B",
.bustype = BUS_PARALLEL,
- .manufacture_id = PMC_ID_NOPREFIX,
- .model_id = PMC_PM29F002B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = PMC_ID_NOPREFIX,
+ .id.model = PMC_PM29F002B,
.total_size = 256,
.page_size = 8 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -16292,8 +16711,9 @@
.vendor = "PMC",
.name = "Pm29F002T",
.bustype = BUS_PARALLEL,
- .manufacture_id = PMC_ID_NOPREFIX,
- .model_id = PMC_PM29F002T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = PMC_ID_NOPREFIX,
+ .id.model = PMC_PM29F002T,
.total_size = 256,
.page_size = 8 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -16326,8 +16746,9 @@
.vendor = "PMC",
.name = "Pm39LV010",
.bustype = BUS_PARALLEL,
- .manufacture_id = PMC_ID_NOPREFIX,
- .model_id = PMC_PM39F010, /* Pm39LV010 and Pm39F010 have identical IDs but different voltage */
+ .id.type = ID_JEDEC,
+ .id.manufacture = PMC_ID_NOPREFIX,
+ .id.model = PMC_PM39F010, /* Pm39LV010 and Pm39F010 have identical IDs but different voltage */
.total_size = 128,
.page_size = 4096,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -16358,8 +16779,9 @@
.vendor = "PMC",
.name = "Pm39LV020",
.bustype = BUS_PARALLEL,
- .manufacture_id = PMC_ID_NOPREFIX,
- .model_id = PMC_PM39LV020,
+ .id.type = ID_JEDEC,
+ .id.manufacture = PMC_ID_NOPREFIX,
+ .id.model = PMC_PM39LV020,
.total_size = 256,
.page_size = 4096,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -16390,8 +16812,9 @@
.vendor = "PMC",
.name = "Pm39LV040",
.bustype = BUS_PARALLEL,
- .manufacture_id = PMC_ID_NOPREFIX,
- .model_id = PMC_PM39LV040,
+ .id.type = ID_JEDEC,
+ .id.manufacture = PMC_ID_NOPREFIX,
+ .id.model = PMC_PM39LV040,
.total_size = 512,
.page_size = 4096,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -16422,8 +16845,9 @@
.vendor = "PMC",
.name = "Pm39LV512",
.bustype = BUS_PARALLEL,
- .manufacture_id = PMC_ID_NOPREFIX,
- .model_id = PMC_PM39LV512,
+ .id.type = ID_JEDEC,
+ .id.manufacture = PMC_ID_NOPREFIX,
+ .id.model = PMC_PM39LV512,
.total_size = 64,
.page_size = 4096,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -16454,8 +16878,9 @@
.vendor = "PMC",
.name = "Pm49FL002",
.bustype = BUS_LPC | BUS_FWH, /* A/A Mux */
- .manufacture_id = PMC_ID_NOPREFIX,
- .model_id = PMC_PM49FL002,
+ .id.type = ID_JEDEC,
+ .id.manufacture = PMC_ID_NOPREFIX,
+ .id.model = PMC_PM49FL002,
.total_size = 256,
.page_size = 16 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -16487,8 +16912,9 @@
.vendor = "PMC",
.name = "Pm49FL004",
.bustype = BUS_LPC | BUS_FWH, /* A/A Mux */
- .manufacture_id = PMC_ID_NOPREFIX,
- .model_id = PMC_PM49FL004,
+ .id.type = ID_JEDEC,
+ .id.manufacture = PMC_ID_NOPREFIX,
+ .id.model = PMC_PM49FL004,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -16520,8 +16946,9 @@
.vendor = "Puya",
.name = "P25Q05H",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q05H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q05H,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 |
@@ -16578,8 +17005,9 @@
.vendor = "Puya",
.name = "P25Q06H",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q06H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q06H,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 | FEATURE_WRSR3 |
@@ -16636,8 +17064,9 @@
.vendor = "Puya",
.name = "P25Q10H",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q10H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q10H,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 |
@@ -16694,8 +17123,9 @@
.vendor = "Puya",
.name = "P25Q11H",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q11H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q11H,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 | FEATURE_WRSR3 |
@@ -16752,8 +17182,9 @@
.vendor = "Puya",
.name = "P25Q20H",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q20H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q20H,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 |
@@ -16810,8 +17241,9 @@
.vendor = "Puya",
.name = "P25Q21H",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q21H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q21H,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 | FEATURE_WRSR3 |
@@ -16868,8 +17300,9 @@
.vendor = "Puya",
.name = "P25Q40H",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q40H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q40H,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 |
@@ -16926,8 +17359,9 @@
.vendor = "Puya",
.name = "P25Q40SH",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q40H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q40H,
.total_size = 512,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -16987,8 +17421,9 @@
.vendor = "Puya",
.name = "P25Q80H",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q80H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q80H,
.total_size = 1024,
.page_size = 256,
/* RDCR: 0x15, WRCR: 0x31(!) */
@@ -17046,8 +17481,9 @@
.vendor = "Puya",
.name = "P25Q80SH",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q80H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q80H,
.total_size = 1024,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -17107,8 +17543,9 @@
.vendor = "Puya",
.name = "P25Q16H",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q16H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q16H,
.total_size = 2048,
.page_size = 256,
/* RDCR: 0x15, WRCR: 0x31(!) */
@@ -17166,8 +17603,9 @@
.vendor = "Puya",
.name = "P25Q16SH",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q16H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q16H,
.total_size = 2048,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -17227,8 +17665,9 @@
.vendor = "Puya",
.name = "P25Q32H",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q32H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q32H,
.total_size = 4096,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -17288,8 +17727,9 @@
.vendor = "Puya",
.name = "P25Q32SH",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q32H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q32H,
.total_size = 4096,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -17349,8 +17789,9 @@
.vendor = "Puya",
.name = "P25Q64H",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q64H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q64H,
.total_size = 8192,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -17410,8 +17851,9 @@
.vendor = "Puya",
.name = "P25Q64SH",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q64H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q64H,
.total_size = 8192,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -17471,8 +17913,9 @@
.vendor = "Puya",
.name = "P25Q128H",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_P25Q128H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_P25Q128H,
.total_size = 16384,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -17532,8 +17975,9 @@
.vendor = "Puya",
.name = "PY25Q40HB",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_PY25Q40H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_PY25Q40H,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 | FEATURE_WRSR2 |
@@ -17588,8 +18032,9 @@
.vendor = "Puya",
.name = "PY25Q80HB",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_PY25Q80H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_PY25Q80H,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 | FEATURE_WRSR2 |
@@ -17644,8 +18089,9 @@
.vendor = "Puya",
.name = "PY25Q16HB",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_PY25Q16H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_PY25Q16H,
.total_size = 2048,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -17702,8 +18148,9 @@
.vendor = "Puya",
.name = "PY25Q32HB",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_PY25Q32H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_PY25Q32H,
.total_size = 4096,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -17760,8 +18207,9 @@
.vendor = "Puya",
.name = "PY25Q64HA",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_PY25Q64H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_PY25Q64H,
.total_size = 8192,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -17818,8 +18266,9 @@
.vendor = "Puya",
.name = "PY25F64HA",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_PY25F64H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_PY25F64H,
.total_size = 8192,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -17876,8 +18325,9 @@
.vendor = "Puya",
.name = "PY25Q128HA",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_PY25Q128H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_PY25Q128H,
.total_size = 16384,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -17934,8 +18384,9 @@
.vendor = "Puya",
.name = "PY25F128HA/PY25R128HA",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_PY25F128H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_PY25F128H,
.total_size = 16384,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -17992,8 +18443,9 @@
.vendor = "Puya",
.name = "PY25Q256HB",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_PY25Q256H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_PY25Q256H,
.total_size = 32768,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -18058,8 +18510,9 @@
.vendor = "Puya",
.name = "PY25F256HB",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_PY25F256H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_PY25F256H,
.total_size = 32768,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -18124,8 +18577,9 @@
.vendor = "Puya",
.name = "PY25Q512HB",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_PY25Q512H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_PY25Q512H,
.total_size = 65536,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -18190,8 +18644,9 @@
.vendor = "Puya",
.name = "PY25F512HB",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_PY25F512H,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_PY25F512H,
.total_size = 65536,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -18256,8 +18711,9 @@
.vendor = "Puya",
.name = "PY25Q01GHB",
.bustype = BUS_SPI,
- .manufacture_id = PUYA_ID,
- .model_id = PUYA_PY25Q01GH,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PUYA_ID,
+ .id.model = PUYA_PY25Q01GH,
.total_size = 128 * 1024,
.page_size = 256,
/* Has configuration register that acts like third status register. */
@@ -18322,8 +18778,9 @@
.vendor = "SST",
.name = "SST25LF020A",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25VF020_REMS,
+ .id.type = ID_SPI_REMS,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25VF020_REMS,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -18354,8 +18811,9 @@
.vendor = "SST",
.name = "SST25LF040A",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25VF040_REMS,
+ .id.type = ID_SPI_RES2,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25VF040_REMS,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -18386,8 +18844,9 @@
.vendor = "SST",
.name = "SST25LF080(A)",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25VF080_REMS,
+ .id.type = ID_SPI_RES2,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25VF080_REMS,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER,
@@ -18418,8 +18877,9 @@
.vendor = "SST",
.name = "SST25VF010(A)",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25VF010_REMS,
+ .id.type = ID_SPI_REMS,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25VF010_REMS,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -18456,8 +18916,9 @@
.vendor = "SST",
.name = "SST25VF016B",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25VF016B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25VF016B,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER,
@@ -18494,8 +18955,9 @@
.vendor = "SST",
.name = "SST25VF020",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25VF020_REMS,
+ .id.type = ID_SPI_REMS,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25VF020_REMS,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -18526,8 +18988,9 @@
.vendor = "SST",
.name = "SST25VF020B",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25VF020B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25VF020B,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -18564,8 +19027,9 @@
.vendor = "SST",
.name = "SST25VF032B",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25VF032B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25VF032B,
.total_size = 4096,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -18602,8 +19066,9 @@
.vendor = "SST",
.name = "SST25VF040",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25VF040_REMS,
+ .id.type = ID_SPI_REMS,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25VF040_REMS,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -18634,8 +19099,9 @@
.vendor = "SST",
.name = "SST25VF040B",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25VF040B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25VF040B,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -18672,8 +19138,9 @@
.vendor = "SST",
.name = "SST25VF040B.REMS",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25VF040B_REMS,
+ .id.type = ID_SPI_REMS,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25VF040B_REMS,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -18710,8 +19177,9 @@
.vendor = "SST",
.name = "SST25VF064C",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25VF064C,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25VF064C,
.total_size = 8192,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -18748,8 +19216,9 @@
.vendor = "SST",
.name = "SST25VF080B",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25VF080B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25VF080B,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -18786,8 +19255,9 @@
.vendor = "SST",
.name = "SST25VF512(A)",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25VF512_REMS,
+ .id.type = ID_SPI_REMS,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25VF512_REMS,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -18824,8 +19294,9 @@
.vendor = "SST",
.name = "SST25WF010",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25WF010,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25WF010,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER,
@@ -18859,8 +19330,9 @@
.vendor = "SST",
.name = "SST25WF020",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25WF020,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25WF020,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER,
@@ -18897,8 +19369,9 @@
.vendor = "SST",
.name = "SST25WF020A",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID, /* See flashchips.h */
- .model_id = SST_SST25WF020A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SANYO_ID, /* See flashchips.h */
+ .id.model = SST_SST25WF020A,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -18932,8 +19405,9 @@
.vendor = "SST",
.name = "SST25WF040",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25WF040,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25WF040,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER,
@@ -18970,8 +19444,9 @@
.vendor = "SST",
.name = "SST25WF040B",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID, /* See flashchips.h */
- .model_id = SST_SST25WF040B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SANYO_ID, /* See flashchips.h */
+ .id.model = SST_SST25WF040B,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -19005,8 +19480,9 @@
.vendor = "SST",
.name = "SST25WF080",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25WF080,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25WF080,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER,
@@ -19043,8 +19519,9 @@
.vendor = "SST",
.name = "SST25WF080B",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID, /* See flashchips.h */
- .model_id = SST_SST25WF080B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SANYO_ID, /* See flashchips.h */
+ .id.model = SST_SST25WF080B,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -19078,8 +19555,9 @@
.vendor = "SST",
.name = "SST25WF512",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST25WF512,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST25WF512,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER,
@@ -19113,8 +19591,9 @@
.vendor = "SST",
.name = "SST26VF016",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST26VF016,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST26VF016,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
@@ -19151,8 +19630,9 @@
.vendor = "SST",
.name = "SST26VF016B(A)",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST26VF016B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST26VF016B,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
@@ -19189,8 +19669,9 @@
.vendor = "SST",
.name = "SST26VF032",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST26VF032,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST26VF032,
.total_size = 4096,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
@@ -19227,8 +19708,9 @@
.vendor = "SST",
.name = "SST26VF032B(A)",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST26VF032B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST26VF032B,
.total_size = 4096,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
@@ -19265,8 +19747,9 @@
.vendor = "SST",
.name = "SST26VF064B(A)",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST26VF064B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST26VF064B,
.total_size = 8192,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
@@ -19303,8 +19786,9 @@
.vendor = "SST",
.name = "SST26VF080A",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = SST_SST26VF080A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST26VF080A,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
@@ -19341,8 +19825,9 @@
.vendor = "SST",
.name = "SST28SF040A",
.bustype = BUS_PARALLEL,
- .manufacture_id = SST_ID,
- .model_id = SST_SST28SF040,
+ .id.type = ID_82802AB,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST28SF040,
.total_size = 512,
.page_size = 256,
.feature_bits = 0,
@@ -19371,8 +19856,9 @@
.vendor = "SST",
.name = "SST29EE010",
.bustype = BUS_PARALLEL,
- .manufacture_id = SST_ID,
- .model_id = SST_SST29EE010,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST29EE010,
.total_size = 128,
.page_size = 128,
.feature_bits = FEATURE_LONG_RESET,
@@ -19397,8 +19883,9 @@
.vendor = "SST",
.name = "SST29EE020A",
.bustype = BUS_PARALLEL,
- .manufacture_id = SST_ID,
- .model_id = SST_SST29EE020A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST29EE020A,
.total_size = 256,
.page_size = 128,
.feature_bits = FEATURE_LONG_RESET,
@@ -19423,8 +19910,9 @@
.vendor = "SST",
.name = "SST29LE010",
.bustype = BUS_PARALLEL,
- .manufacture_id = SST_ID,
- .model_id = SST_SST29LE010,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST29LE010,
.total_size = 128,
.page_size = 128,
.feature_bits = FEATURE_LONG_RESET,
@@ -19449,8 +19937,9 @@
.vendor = "SST",
.name = "SST29LE020",
.bustype = BUS_PARALLEL,
- .manufacture_id = SST_ID,
- .model_id = SST_SST29LE020,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST29LE020,
.total_size = 256,
.page_size = 128,
.feature_bits = FEATURE_LONG_RESET,
@@ -19475,8 +19964,9 @@
.vendor = "SST",
.name = "SST39SF010A",
.bustype = BUS_PARALLEL,
- .manufacture_id = SST_ID,
- .model_id = SST_SST39SF010,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST39SF010,
.total_size = 128,
.page_size = 4096,
.feature_bits = FEATURE_EITHER_RESET,
@@ -19504,8 +19994,9 @@
.vendor = "SST",
.name = "SST39SF020A",
.bustype = BUS_PARALLEL,
- .manufacture_id = SST_ID,
- .model_id = SST_SST39SF020,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST39SF020,
.total_size = 256,
.page_size = 4096,
.feature_bits = FEATURE_EITHER_RESET,
@@ -19533,8 +20024,9 @@
.vendor = "SST",
.name = "SST39SF040",
.bustype = BUS_PARALLEL,
- .manufacture_id = SST_ID,
- .model_id = SST_SST39SF040,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST39SF040,
.total_size = 512,
.page_size = 4096,
.feature_bits = FEATURE_EITHER_RESET,
@@ -19562,8 +20054,9 @@
.vendor = "SST",
.name = "SST39SF512",
.bustype = BUS_PARALLEL,
- .manufacture_id = SST_ID,
- .model_id = SST_SST39SF512,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST39SF512,
.total_size = 64,
.page_size = 4096,
.feature_bits = FEATURE_EITHER_RESET,
@@ -19591,8 +20084,9 @@
.vendor = "SST",
.name = "SST39VF010",
.bustype = BUS_PARALLEL,
- .manufacture_id = SST_ID,
- .model_id = SST_SST39VF010,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST39VF010,
.total_size = 128,
.page_size = 4096,
.feature_bits = FEATURE_EITHER_RESET,
@@ -19620,8 +20114,9 @@
.vendor = "SST",
.name = "SST39VF020",
.bustype = BUS_PARALLEL,
- .manufacture_id = SST_ID,
- .model_id = SST_SST39VF020,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST39VF020,
.total_size = 256,
.page_size = 4096,
.feature_bits = FEATURE_EITHER_RESET,
@@ -19649,8 +20144,9 @@
.vendor = "SST",
.name = "SST39VF040",
.bustype = BUS_PARALLEL,
- .manufacture_id = SST_ID,
- .model_id = SST_SST39VF040,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST39VF040,
.total_size = 512,
.page_size = 4096,
.feature_bits = FEATURE_EITHER_RESET,
@@ -19678,8 +20174,9 @@
.vendor = "SST",
.name = "SST39VF080",
.bustype = BUS_PARALLEL,
- .manufacture_id = SST_ID,
- .model_id = SST_SST39VF080,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST39VF080,
.total_size = 1024,
.page_size = 4096,
.feature_bits = FEATURE_EITHER_RESET,
@@ -19710,8 +20207,9 @@
.vendor = "SST",
.name = "SST39VF512",
.bustype = BUS_PARALLEL,
- .manufacture_id = SST_ID,
- .model_id = SST_SST39VF512,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST39VF512,
.total_size = 64,
.page_size = 4096,
.feature_bits = FEATURE_EITHER_RESET,
@@ -19739,8 +20237,9 @@
.vendor = "SST",
.name = "SST49LF002A/B",
.bustype = BUS_FWH, /* A/A Mux */
- .manufacture_id = SST_ID,
- .model_id = SST_SST49LF002A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST49LF002A,
.total_size = 256,
.page_size = 16 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -19773,8 +20272,9 @@
.vendor = "SST",
.name = "SST49LF003A/B",
.bustype = BUS_FWH, /* A/A Mux */
- .manufacture_id = SST_ID,
- .model_id = SST_SST49LF003A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST49LF003A,
.total_size = 384,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -19810,8 +20310,9 @@
.vendor = "SST",
.name = "SST49LF004A/B",
.bustype = BUS_FWH, /* A/A Mux */
- .manufacture_id = SST_ID,
- .model_id = SST_SST49LF004A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST49LF004A,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -19844,8 +20345,9 @@
.vendor = "SST",
.name = "SST49LF004C",
.bustype = BUS_FWH,
- .manufacture_id = SST_ID,
- .model_id = SST_SST49LF004C,
+ .id.type = ID_82802AB,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST49LF004C,
.total_size = 512,
.page_size = 4 * 1024,
.tested = TEST_UNTESTED,
@@ -19879,8 +20381,9 @@
.vendor = "SST",
.name = "SST49LF008A",
.bustype = BUS_FWH, /* A/A Mux */
- .manufacture_id = SST_ID,
- .model_id = SST_SST49LF008A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST49LF008A,
.total_size = 1024,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -19913,8 +20416,9 @@
.vendor = "SST",
.name = "SST49LF008C",
.bustype = BUS_FWH,
- .manufacture_id = SST_ID,
- .model_id = SST_SST49LF008C,
+ .id.type = ID_82802AB,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST49LF008C,
.total_size = 1024,
.page_size = 4 * 1024,
.tested = TEST_UNTESTED,
@@ -19948,8 +20452,9 @@
.vendor = "SST",
.name = "SST49LF016C",
.bustype = BUS_FWH,
- .manufacture_id = SST_ID,
- .model_id = SST_SST49LF016C,
+ .id.type = ID_82802AB,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST49LF016C,
.total_size = 2048,
.page_size = 4 * 1024,
.tested = TEST_OK_PREW,
@@ -19983,8 +20488,9 @@
.vendor = "SST",
.name = "SST49LF020",
.bustype = BUS_LPC,
- .manufacture_id = SST_ID,
- .model_id = SST_SST49LF020,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST49LF020,
.total_size = 256,
.page_size = 16 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -20015,8 +20521,9 @@
.vendor = "SST",
.name = "SST49LF020A",
.bustype = BUS_LPC,
- .manufacture_id = SST_ID,
- .model_id = SST_SST49LF020A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST49LF020A,
.total_size = 256,
.page_size = 4 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -20047,8 +20554,9 @@
.vendor = "SST",
.name = "SST49LF040",
.bustype = BUS_LPC,
- .manufacture_id = SST_ID,
- .model_id = SST_SST49LF040,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST49LF040,
.total_size = 512,
.page_size = 4096,
.feature_bits = FEATURE_EITHER_RESET,
@@ -20079,8 +20587,9 @@
.vendor = "SST",
.name = "SST49LF040B",
.bustype = BUS_LPC, /* A/A Mux */
- .manufacture_id = SST_ID,
- .model_id = SST_SST49LF040B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST49LF040B,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -20112,8 +20621,9 @@
.vendor = "SST",
.name = "SST49LF080A",
.bustype = BUS_LPC, /* A/A Mux */
- .manufacture_id = SST_ID,
- .model_id = SST_SST49LF080A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST49LF080A,
.total_size = 1024,
.page_size = 4096,
.feature_bits = FEATURE_EITHER_RESET,
@@ -20144,8 +20654,9 @@
.vendor = "SST",
.name = "SST49LF160C",
.bustype = BUS_LPC,
- .manufacture_id = SST_ID,
- .model_id = SST_SST49LF160C,
+ .id.type = ID_82802AB,
+ .id.manufacture = SST_ID,
+ .id.model = SST_SST49LF160C,
.total_size = 2048,
.page_size = 4 * 1024,
.tested = TEST_OK_PR,
@@ -20179,8 +20690,9 @@
.vendor = "ST",
.name = "M29F002B",
.bustype = BUS_PARALLEL,
- .manufacture_id = ST_ID,
- .model_id = ST_M29F002B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M29F002B,
.total_size = 256,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_AAA | FEATURE_EITHER_RESET,
@@ -20213,8 +20725,9 @@
.vendor = "ST",
.name = "M29F002T/NT",
.bustype = BUS_PARALLEL,
- .manufacture_id = ST_ID,
- .model_id = ST_M29F002T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M29F002T,
.total_size = 256,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_AAA | FEATURE_EITHER_RESET,
@@ -20247,8 +20760,9 @@
.vendor = "ST",
.name = "M29F040B",
.bustype = BUS_PARALLEL,
- .manufacture_id = ST_ID,
- .model_id = ST_M29F040B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M29F040B,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -20277,8 +20791,9 @@
.vendor = "ST",
.name = "M29F400BB",
.bustype = BUS_PARALLEL,
- .manufacture_id = ST_ID,
- .model_id = ST_M29F400BB,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M29F400BB,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -20312,8 +20827,9 @@
.vendor = "ST",
.name = "M29F400BT",
.bustype = BUS_PARALLEL,
- .manufacture_id = ST_ID,
- .model_id = ST_M29F400BT,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M29F400BT,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -20346,8 +20862,9 @@
.vendor = "ST",
.name = "M29W010B",
.bustype = BUS_PARALLEL,
- .manufacture_id = ST_ID,
- .model_id = ST_M29W010B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M29W010B,
.total_size = 128,
.page_size = 16 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -20375,8 +20892,9 @@
.vendor = "ST",
.name = "M29W040B",
.bustype = BUS_PARALLEL,
- .manufacture_id = ST_ID,
- .model_id = ST_M29W040B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M29W040B,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -20404,8 +20922,9 @@
.vendor = "ST",
.name = "M29W512B",
.bustype = BUS_PARALLEL,
- .manufacture_id = ST_ID,
- .model_id = ST_M29W512B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M29W512B,
.total_size = 64,
.page_size = 64 * 1024,
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -20430,8 +20949,9 @@
.vendor = "ST",
.name = "M50FLW040A",
.bustype = BUS_FWH | BUS_LPC, /* A/A Mux */
- .manufacture_id = ST_ID,
- .model_id = ST_M50FLW040A,
+ .id.type = ID_82802AB,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M50FLW040A,
.total_size = 512,
.page_size = 0,
.tested = TEST_UNTESTED,
@@ -20464,8 +20984,9 @@
.vendor = "ST",
.name = "M50FLW040B",
.bustype = BUS_FWH | BUS_LPC, /* A/A Mux */
- .manufacture_id = ST_ID,
- .model_id = ST_M50FLW040B,
+ .id.type = ID_82802AB,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M50FLW040B,
.total_size = 512,
.page_size = 0,
.tested = TEST_UNTESTED,
@@ -20498,8 +21019,9 @@
.vendor = "ST",
.name = "M50FLW080A",
.bustype = BUS_FWH | BUS_LPC, /* A/A Mux */
- .manufacture_id = ST_ID,
- .model_id = ST_M50FLW080A,
+ .id.type = ID_82802AB,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M50FLW080A,
.total_size = 1024,
.page_size = 0,
.tested = TEST_OK_PR,
@@ -20533,8 +21055,9 @@
.vendor = "ST",
.name = "M50FLW080B",
.bustype = BUS_FWH | BUS_LPC, /* A/A Mux */
- .manufacture_id = ST_ID,
- .model_id = ST_M50FLW080B,
+ .id.type = ID_82802AB,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M50FLW080B,
.total_size = 1024,
.page_size = 0,
.tested = TEST_UNTESTED,
@@ -20568,8 +21091,9 @@
.vendor = "ST",
.name = "M50FW002",
.bustype = BUS_FWH, /* A/A Mux */
- .manufacture_id = ST_ID,
- .model_id = ST_M50FW002,
+ .id.type = ID_82802AB,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M50FW002,
.total_size = 256,
.page_size = 0,
.tested = TEST_OK_PR,
@@ -20603,8 +21127,9 @@
.vendor = "ST",
.name = "M50FW016",
.bustype = BUS_FWH, /* A/A Mux */
- .manufacture_id = ST_ID,
- .model_id = ST_M50FW016,
+ .id.type = ID_82802AB,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M50FW016,
.total_size = 2048,
.page_size = 0,
.tested = TEST_UNTESTED,
@@ -20629,8 +21154,9 @@
.vendor = "ST",
.name = "M50FW040",
.bustype = BUS_FWH, /* A/A Mux */
- .manufacture_id = ST_ID,
- .model_id = ST_M50FW040,
+ .id.type = ID_82802AB,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M50FW040,
.total_size = 512,
.page_size = 0,
.tested = TEST_OK_PR,
@@ -20655,8 +21181,9 @@
.vendor = "ST",
.name = "M50FW080",
.bustype = BUS_FWH, /* A/A Mux */
- .manufacture_id = ST_ID,
- .model_id = ST_M50FW080,
+ .id.type = ID_82802AB,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M50FW080,
.total_size = 1024,
.page_size = 0,
.tested = TEST_OK_PR,
@@ -20681,8 +21208,9 @@
.vendor = "ST",
.name = "M50LPW080",
.bustype = BUS_LPC, /* A/A Mux */
- .manufacture_id = ST_ID,
- .model_id = ST_M50LPW080,
+ .id.type = ID_82802AB,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M50LPW080,
.total_size = 1024,
.page_size = 0,
.tested = TEST_UNTESTED,
@@ -20707,8 +21235,9 @@
.vendor = "ST",
.name = "M50LPW116",
.bustype = BUS_LPC, /* A/A Mux */
- .manufacture_id = ST_ID,
- .model_id = ST_M50LPW116,
+ .id.type = ID_82802AB,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M50LPW116,
.total_size = 2048,
.page_size = 0,
.tested = TEST_UNTESTED,
@@ -20740,8 +21269,9 @@
.vendor = "ST",
.name = "M95M02",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = ST_M95M02,
+ .id.type = ID_SPI_ST95,
+ .id.manufacture = ST_ID,
+ .id.model = ST_M95M02,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_NO_ERASE | FEATURE_ERASED_ZERO,
@@ -20768,8 +21298,9 @@
.vendor = "Sanyo",
.name = "LE25FU106B",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID,
- .model_id = SANYO_LE25FU106B,
+ .id.type = ID_SPI_RES2,
+ .id.manufacture = SANYO_ID,
+ .id.model = SANYO_LE25FU106B,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -20802,8 +21333,9 @@
.vendor = "Sanyo",
.name = "LE25FU206",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID,
- .model_id = SANYO_LE25FU206,
+ .id.type = ID_SPI_RES2,
+ .id.manufacture = SANYO_ID,
+ .id.model = SANYO_LE25FU206,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -20834,8 +21366,9 @@
.vendor = "Sanyo",
.name = "LE25FU206A",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID,
- .model_id = SANYO_LE25FU206A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SANYO_ID,
+ .id.model = SANYO_LE25FU206A,
.total_size = 256,
.page_size = 256,
.tested = TEST_UNTESTED,
@@ -20871,8 +21404,9 @@
.vendor = "Sanyo",
.name = "LE25FU406B",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID,
- .model_id = SANYO_LE25FU406B,
+ .id.type = ID_SPI_RES2,
+ .id.manufacture = SANYO_ID,
+ .id.model = SANYO_LE25FU406B,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -20903,8 +21437,9 @@
.vendor = "Sanyo",
.name = "LE25FU406C/LE25U40CMC",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID,
- .model_id = SANYO_LE25FU406C,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SANYO_ID,
+ .id.model = SANYO_LE25FU406C,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -20941,8 +21476,9 @@
.vendor = "Sanyo",
.name = "LE25FW106",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID,
- .model_id = SANYO_LE25FW106,
+ .id.type = ID_SPI_RES2,
+ .id.manufacture = SANYO_ID,
+ .id.model = SANYO_LE25FW106,
.total_size = 128,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -20973,8 +21509,9 @@
.vendor = "Sanyo",
.name = "LE25FW203A",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID,
- .model_id = SANYO_LE25FW203A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SANYO_ID,
+ .id.model = SANYO_LE25FW203A,
.total_size = 256,
.page_size = 256,
.tested = TEST_UNTESTED,
@@ -21004,8 +21541,9 @@
.vendor = "Sanyo",
.name = "LE25FW403A",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID,
- .model_id = SANYO_LE25FW403A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SANYO_ID,
+ .id.model = SANYO_LE25FW403A,
.total_size = 512,
.page_size = 256,
.tested = TEST_UNTESTED,
@@ -21035,8 +21573,9 @@
.vendor = "Sanyo",
.name = "LE25FW406A",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID,
- .model_id = SANYO_LE25FW406A,
+ .id.type = ID_SPI_RES2,
+ .id.manufacture = SANYO_ID,
+ .id.model = SANYO_LE25FW406A,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -21067,8 +21606,9 @@
.vendor = "Sanyo",
.name = "LE25FW418A",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID,
- .model_id = SANYO_LE25FW418A,
+ .id.type = ID_SPI_RES2,
+ .id.manufacture = SANYO_ID,
+ .id.model = SANYO_LE25FW418A,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -21099,8 +21639,9 @@
.vendor = "Sanyo",
.name = "LE25FW806",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID,
- .model_id = SANYO_LE25FW806,
+ .id.type = ID_SPI_RES2,
+ .id.manufacture = SANYO_ID,
+ .id.model = SANYO_LE25FW806,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -21134,8 +21675,9 @@
.vendor = "Sanyo",
.name = "LE25FW808",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID,
- .model_id = SANYO_LE25FW808,
+ .id.type = ID_SPI_RES2,
+ .id.manufacture = SANYO_ID,
+ .id.model = SANYO_LE25FW808,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -21166,8 +21708,9 @@
.vendor = "Sharp",
.name = "LH28F008BJT-BTLZ1",
.bustype = BUS_PARALLEL,
- .manufacture_id = SHARP_ID,
- .model_id = SHARP_LH28F008BJ__PB,
+ .id.type = ID_82802AB,
+ .id.manufacture = SHARP_ID,
+ .id.model = SHARP_LH28F008BJ__PB,
.total_size = 1024,
.page_size = 64 * 1024,
.tested = TEST_OK_PREW,
@@ -21198,8 +21741,9 @@
.vendor = "Sharp",
.name = "LHF00L04",
.bustype = BUS_FWH, /* A/A Mux */
- .manufacture_id = SHARP_ID,
- .model_id = SHARP_LHF00L04,
+ .id.type = ID_82802AB,
+ .id.manufacture = SHARP_ID,
+ .id.model = SHARP_LHF00L04,
.total_size = 1024,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -21233,8 +21777,9 @@
.vendor = "Spansion",
.name = "S25FL004A",
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL004A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL004A,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -21262,8 +21807,9 @@
.vendor = "Spansion",
.name = "S25FL008A",
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL008A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL008A,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -21291,8 +21837,9 @@
.vendor = "Spansion",
.name = "S25FL016A",
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL016A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL016A,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -21320,8 +21867,9 @@
.vendor = "Spansion",
.name = "S25FL032A/P",
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL032A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL032A,
.total_size = 4096,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -21349,8 +21897,9 @@
.vendor = "Spansion",
.name = "S25FL064A/P",
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL064A,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL064A,
.total_size = 8192,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -21378,8 +21927,9 @@
.vendor = "Spansion",
.name = "S25FL116K/S25FL216K", /* FIXME: separate them */
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL216,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL216,
.total_size = 2048,
.page_size = 256,
/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 (S25FL116K only) */
@@ -21414,8 +21964,9 @@
.vendor = "Spansion",
.name = "S25FL127S-256kB", /* uniform 256kB sectors */
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL128,
.total_size = 16384,
.page_size = 512,
/* supports 4B addressing */
@@ -21448,8 +21999,9 @@
.vendor = "Spansion",
.name = "S25FL127S-64kB", /* hybrid: 32 (top or bottom) 4 kB sub-sectors + 64 kB sectors */
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL128,
.total_size = 16384,
.page_size = 256,
/* supports 4B addressing */
@@ -21493,8 +22045,9 @@
.vendor = "Spansion",
.name = "S25FL128L",
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL128L,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL128L,
.total_size = 16384,
.page_size = 256,
/* 4 x 256B Security Region (OTP) */
@@ -21553,8 +22106,9 @@
.vendor = "Spansion",
.name = "S25FL128P......0", /* uniform 64 kB sectors */
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL128,
.total_size = 16384,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -21588,8 +22142,9 @@
.vendor = "Spansion",
.name = "S25FL128P......1", /* uniform 256kB sectors */
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL128,
.total_size = 16384,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -21617,8 +22172,9 @@
.vendor = "Spansion",
.name = "S25FL128S......0", /* hybrid: 32 (top or bottom) 4 kB sub-sectors + 64 kB sectors */
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL128,
.total_size = 16384,
.page_size = 256,
/* supports 4B addressing */
@@ -21660,8 +22216,9 @@
.vendor = "Spansion",
.name = "S25FL128S......1", /* uniform 256 kB sectors */
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL128,
.total_size = 16384,
.page_size = 512,
/* supports 4B addressing */
@@ -21694,8 +22251,9 @@
.vendor = "Spansion",
.name = "S25FL129P......0", /* hybrid: 32 (top or bottom) 4 kB sub-sectors + 64 kB sectors */
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL128,
.total_size = 16384,
.page_size = 256,
/* OTP: 506B total, 16B reserved; read 0x4B; write 0x42 */
@@ -21743,8 +22301,9 @@
.vendor = "Spansion",
.name = "S25FL129P......1", /* uniform 256 kB sectors */
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL128,
.total_size = 16384,
.page_size = 256,
/* OTP: 506B total, 16B reserved; read 0x4B; write 0x42 */
@@ -21776,8 +22335,9 @@
.vendor = "Spansion",
.name = "S25FL132K",
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL132K,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL132K,
.total_size = 4096,
.page_size = 256,
/* OTP: 768B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */
@@ -21812,8 +22372,9 @@
.vendor = "Spansion",
.name = "S25FL164K",
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL164K,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL164K,
.total_size = 8192,
.page_size = 256,
/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */
@@ -21848,8 +22409,9 @@
.vendor = "Spansion",
.name = "S25FL204K",
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL204,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL204,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -21883,8 +22445,9 @@
.vendor = "Spansion",
.name = "S25FL208K",
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL208,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL208,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -21918,8 +22481,9 @@
.vendor = "Spansion",
.name = "S25FL256L",
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL256L,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL256L,
.total_size = 32768,
.page_size = 256,
/* 4 x 256B Security Region (OTP) */
@@ -21989,8 +22553,9 @@
.vendor = "Spansion",
.name = "S25FL256S......0", /* hybrid: 32 (top or bottom) 4 kB sub-sectors + 64 kB sectors */
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL256,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL256,
.total_size = 32768,
.page_size = 256,
/* OTP: 1024B total, 32B reserved; read 0x4B; write 0x42 */
@@ -22037,8 +22602,9 @@
.vendor = "Spansion",
.name = "S25FL512S",
.bustype = BUS_SPI,
- .manufacture_id = SPANSION_ID,
- .model_id = SPANSION_S25FL512,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SPANSION_ID,
+ .id.model = SPANSION_S25FL512,
.total_size = 65536, /* 512 Mb (=> 64 MB)) */
.page_size = 256,
/* OTP: 1024B total, 32B reserved; read 0x4B; write 0x42 */
@@ -22076,8 +22642,9 @@
.vendor = "SyncMOS/MoselVitelic",
.name = "{F,S,V}29C51001B",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = SM_MVC_29C51001B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = SM_MVC_29C51001B,
.total_size = 128,
.page_size = 512,
.feature_bits = FEATURE_EITHER_RESET,
@@ -22105,8 +22672,9 @@
.vendor = "SyncMOS/MoselVitelic",
.name = "{F,S,V}29C51001T",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = SM_MVC_29C51001T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = SM_MVC_29C51001T,
.total_size = 128,
.page_size = 512,
.feature_bits = FEATURE_EITHER_RESET,
@@ -22134,8 +22702,9 @@
.vendor = "SyncMOS/MoselVitelic",
.name = "{F,S,V}29C51002B",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = SM_MVC_29C51002B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = SM_MVC_29C51002B,
.total_size = 256,
.page_size = 512,
.feature_bits = FEATURE_EITHER_RESET,
@@ -22162,8 +22731,9 @@
.vendor = "SyncMOS/MoselVitelic",
.name = "{F,S,V}29C51002T",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = SM_MVC_29C51002T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = SM_MVC_29C51002T,
.total_size = 256,
.page_size = 512,
.feature_bits = FEATURE_EITHER_RESET,
@@ -22190,8 +22760,9 @@
.vendor = "SyncMOS/MoselVitelic",
.name = "{F,S,V}29C51004B",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = SM_MVC_29C51004B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = SM_MVC_29C51004B,
.total_size = 512,
.page_size = 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -22219,8 +22790,9 @@
.vendor = "SyncMOS/MoselVitelic",
.name = "{F,S,V}29C51004T",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = SM_MVC_29C51004T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = SM_MVC_29C51004T,
.total_size = 512,
.page_size = 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -22248,8 +22820,9 @@
.vendor = "SyncMOS/MoselVitelic",
.name = "{S,V}29C31004B",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = SM_MVC_29C31004B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = SM_MVC_29C31004B,
.total_size = 512,
.page_size = 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -22277,8 +22850,9 @@
.vendor = "SyncMOS/MoselVitelic",
.name = "{S,V}29C31004T",
.bustype = BUS_PARALLEL,
- .manufacture_id = SYNCMOS_MVC_ID,
- .model_id = SM_MVC_29C31004T,
+ .id.type = ID_JEDEC,
+ .id.manufacture = SYNCMOS_MVC_ID,
+ .id.model = SM_MVC_29C31004T,
.total_size = 512,
.page_size = 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -22306,8 +22880,9 @@
.vendor = "TI",
.name = "TMS29F002RB",
.bustype = BUS_PARALLEL,
- .manufacture_id = TI_OLD_ID,
- .model_id = TI_TMS29F002RB,
+ .id.type = ID_JEDEC,
+ .id.manufacture = TI_OLD_ID,
+ .id.model = TI_TMS29F002RB,
.total_size = 256,
.page_size = 16384, /* Non-uniform sectors */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -22340,8 +22915,9 @@
.vendor = "TI",
.name = "TMS29F002RT",
.bustype = BUS_PARALLEL,
- .manufacture_id = TI_OLD_ID,
- .model_id = TI_TMS29F002RT,
+ .id.type = ID_JEDEC,
+ .id.manufacture = TI_OLD_ID,
+ .id.model = TI_TMS29F002RT,
.total_size = 256,
.page_size = 16384, /* Non-uniform sectors */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
@@ -22374,8 +22950,9 @@
.vendor = "Winbond",
.name = "W25P16",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25P16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25P16,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -22403,8 +22980,9 @@
.vendor = "Winbond",
.name = "W25P32",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25P32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25P32,
.total_size = 4096,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -22432,8 +23010,9 @@
.vendor = "Winbond",
.name = "W25P80",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25P80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25P80,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -22461,8 +23040,9 @@
.vendor = "Winbond",
.name = "W25Q128.V",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q128_V,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q128_V,
.total_size = 16384,
.page_size = 256,
/* supports SFDP */
@@ -22521,8 +23101,9 @@
.vendor = "Winbond",
.name = "W25Q128.V..M",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q128_V_M,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q128_V_M,
.total_size = 16384,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR2 | FEATURE_OTP | FEATURE_QPI_SRP,
@@ -22576,8 +23157,9 @@
.vendor = "Winbond",
.name = "W25Q128.W",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q128_W,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q128_W,
.total_size = 16384,
.page_size = 256,
/* supports SFDP */
@@ -22633,8 +23215,9 @@
.vendor = "Winbond",
.name = "W25Q128.JW.DTR",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q128_DTR,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q128_DTR,
.total_size = 16384,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR2 | FEATURE_OTP | FEATURE_QPI_SRP,
@@ -22688,8 +23271,9 @@
.vendor = "Winbond",
.name = "W25Q16.V",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q16_V,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q16_V,
.total_size = 2048,
.page_size = 256,
/* supports SFDP */
@@ -22734,8 +23318,9 @@
.vendor = "Winbond",
.name = "W25Q16JV_M",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q16JV_M,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q16JV_M,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 |
@@ -22792,8 +23377,9 @@
.vendor = "Winbond",
.name = "W25Q16.W",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q16_W,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q16_W,
.total_size = 2048,
.page_size = 256,
/* OTP: 256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */
@@ -22838,8 +23424,9 @@
.vendor = "Winbond",
.name = "W25Q20.W",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q20_W,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q20_W,
.total_size = 256,
.page_size = 256,
/* OTP: 256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */
@@ -22884,8 +23471,9 @@
.vendor = "Winbond",
.name = "W25Q256FV",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q256_V,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q256_V,
.total_size = 32768,
.page_size = 256,
/* supports SFDP */
@@ -22943,8 +23531,9 @@
.vendor = "Winbond",
.name = "W25Q256JV_Q",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q256_V,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q256_V,
.total_size = 32768,
.page_size = 256,
/* supports SFDP */
@@ -23004,8 +23593,9 @@
.vendor = "Winbond",
.name = "W25Q256JV_M",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q256JV_M,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q256JV_M,
.total_size = 32768,
.page_size = 256,
/* supports SFDP */
@@ -23067,8 +23657,9 @@
.vendor = "Winbond",
.name = "W25Q256JW",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q256_W,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q256_W,
.total_size = 32768,
.page_size = 256,
/* supports SFDP */
@@ -23120,8 +23711,9 @@
.vendor = "Winbond",
.name = "W25Q256JW_DTR",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q256_DTR,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q256_DTR,
.total_size = 32768,
.page_size = 256,
/* supports SFDP */
@@ -23192,8 +23784,9 @@
.vendor = "Winbond",
.name = "W25Q32BV/W25Q32CV/W25Q32DV",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q32_V,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q32_V,
.total_size = 4096,
.page_size = 256,
/* supports SFDP */
@@ -23248,8 +23841,9 @@
.vendor = "Winbond",
.name = "W25Q32FV",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q32_V,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q32_V,
.total_size = 4096,
.page_size = 256,
/* supports SFDP */
@@ -23307,8 +23901,9 @@
.vendor = "Winbond",
.name = "W25Q32JV",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q32_V,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q32_V,
.total_size = 4096,
.page_size = 256,
/* supports SFDP */
@@ -23365,8 +23960,9 @@
.vendor = "Winbond",
.name = "W25Q32JV-.M",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q32JV,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q32JV,
.total_size = 4096,
.page_size = 256,
/* supports SFDP */
@@ -23423,8 +24019,9 @@
.vendor = "Winbond",
.name = "W25Q32BW/W25Q32CW/W25Q32DW",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q32_W,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q32_W,
.total_size = 4096,
.page_size = 256,
/* OTP: 1024B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */
@@ -23479,8 +24076,9 @@
.vendor = "Winbond",
.name = "W25Q32FW",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q32_W,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q32_W,
.total_size = 4096,
.page_size = 256,
/* OTP: 768B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */
@@ -23537,8 +24135,9 @@
.vendor = "Winbond",
.name = "W25Q32JW...Q",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q32_W,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q32_W,
.total_size = 4096,
.page_size = 256,
/* OTP: 768B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */
@@ -23595,8 +24194,9 @@
.vendor = "Winbond",
.name = "W25Q32JW...M",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q32JW_M,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q32JW_M,
.total_size = 4096,
.page_size = 256,
/* OTP: 768B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */
@@ -23654,8 +24254,9 @@
.vendor = "Winbond",
.name = "W25Q40.V",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q40_V,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q40_V,
.total_size = 512,
.page_size = 256,
/* supports SFDP */
@@ -23700,8 +24301,9 @@
.vendor = "Winbond",
.name = "W25Q40BW",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q40BW,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q40BW,
.total_size = 512,
.page_size = 256,
/* OTP: 256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */
@@ -23745,8 +24347,9 @@
.vendor = "Winbond",
.name = "W25Q40EW",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q40EW,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q40EW,
.total_size = 512,
.page_size = 256,
/* OTP: 3*256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */
@@ -23792,8 +24395,9 @@
.vendor = "Winbond",
.name = "W25Q512JV",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q512JV,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q512JV,
.total_size = 64 * 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR_EXT2 | FEATURE_WRSR2 | FEATURE_WRSR3 |
@@ -23843,8 +24447,9 @@
.vendor = "Winbond",
.name = "W25R512NW/W74M51NW",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25R512NW,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25R512NW,
.total_size = 65536,
.page_size = 256,
/* supports SFDP */
@@ -23891,8 +24496,9 @@
.vendor = "Winbond",
.name = "W25Q512NW-IM",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q512NW_IM,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q512NW_IM,
.total_size = 64 * 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR2 | FEATURE_WRSR3 |
@@ -23956,8 +24562,9 @@
.vendor = "Winbond",
.name = "W25Q64BV/W25Q64CV/W25Q64FV",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q64_V,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q64_V,
.total_size = 8192,
.page_size = 256,
/* supports SFDP */
@@ -24013,8 +24620,9 @@
.vendor = "Winbond",
.name = "W25Q64JV-.Q",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q64_V,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q64_V,
.total_size = 8192,
.page_size = 256,
/* supports SFDP */
@@ -24071,8 +24679,9 @@
.vendor = "Winbond",
.name = "W25Q64JV-.M",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q64JV,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q64JV,
.total_size = 8192,
.page_size = 256,
/* supports SFDP */
@@ -24118,8 +24727,9 @@
.vendor = "Winbond",
.name = "W25Q64DW",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q64_W,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q64_W,
.total_size = 8192,
.page_size = 256,
/* OTP: 256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */
@@ -24174,8 +24784,9 @@
.vendor = "Winbond",
.name = "W25Q64FW/W25Q64JW...Q",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q64_W,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q64_W,
.total_size = 8192,
.page_size = 256,
/* OTP: 256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */
@@ -24231,8 +24842,9 @@
.vendor = "Winbond",
.name = "W25Q64JW...M",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q64JW_M,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q64JW_M,
.total_size = 8192,
.page_size = 256,
/* OTP: 256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */
@@ -24290,8 +24902,9 @@
.vendor = "Winbond",
.name = "W25Q80.V",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q80_V,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q80_V,
.total_size = 1024,
.page_size = 256,
/* supports SFDP */
@@ -24336,8 +24949,9 @@
.vendor = "Winbond",
.name = "W25Q80BW",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q80BW,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q80BW,
.total_size = 1024,
.page_size = 256,
/* OTP: 256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */
@@ -24381,8 +24995,9 @@
.vendor = "Winbond",
.name = "W25Q80EW",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25Q80EW,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25Q80EW,
.total_size = 1024,
.page_size = 256,
/* OTP: 3*256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */
@@ -24428,8 +25043,9 @@
.vendor = "Winbond",
.name = "W25X05",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25X05,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25X05,
.total_size = 64,
.page_size = 256,
/* FEATURE_FAST_READ_DIO since W25X05B */
@@ -24463,8 +25079,9 @@
.vendor = "Winbond",
.name = "W25X10",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25X10,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25X10,
.total_size = 128,
.page_size = 256,
/* FEATURE_FAST_READ_DIO since W25X10B */
@@ -24498,8 +25115,9 @@
.vendor = "Winbond",
.name = "W25X16",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25X16,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25X16,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_FAST_READ_DOUT,
@@ -24532,8 +25150,9 @@
.vendor = "Winbond",
.name = "W25X20",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25X20,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25X20,
.total_size = 256,
.page_size = 256,
/* FEATURE_FAST_READ_DIO since W25X20B */
@@ -24567,8 +25186,9 @@
.vendor = "Winbond",
.name = "W25X32",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25X32,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25X32,
.total_size = 4096,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_FAST_READ_DOUT,
@@ -24601,8 +25221,9 @@
.vendor = "Winbond",
.name = "W25X40",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25X40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25X40,
.total_size = 512,
.page_size = 256,
/* FEATURE_FAST_READ_DIO since W25X40B */
@@ -24636,8 +25257,9 @@
.vendor = "Winbond",
.name = "W25X64",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25X64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25X64,
.total_size = 8192,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_FAST_READ_DOUT,
@@ -24670,8 +25292,9 @@
.vendor = "Winbond",
.name = "W25X80",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = WINBOND_NEX_W25X80,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = WINBOND_NEX_W25X80,
.total_size = 1024,
.page_size = 256,
/* FEATURE_FAST_READ_DIO since W25X80B */
@@ -24706,8 +25329,9 @@
.vendor = "Winbond",
.name = "W29C010(M)/W29C011A/W29EE011/W29EE012",
.bustype = BUS_PARALLEL,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W29C010,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W29C010,
.total_size = 128,
.page_size = 128,
.feature_bits = FEATURE_LONG_RESET,
@@ -24731,8 +25355,9 @@
.vendor = "Winbond",
.name = "W29C010(M)/W29C011A/W29EE011/W29EE012-old",
.bustype = BUS_PARALLEL,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W29C010,
+ .id.type = ID_W29EE011,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W29C010,
.total_size = 128,
.page_size = 128,
.feature_bits = FEATURE_LONG_RESET,
@@ -24756,8 +25381,9 @@
.vendor = "Winbond",
.name = "W29C020(C)/W29C022",
.bustype = BUS_PARALLEL,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W29C020,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W29C020,
.total_size = 256,
.page_size = 128,
.feature_bits = FEATURE_LONG_RESET,
@@ -24782,8 +25408,9 @@
.vendor = "Winbond",
.name = "W29C040/P",
.bustype = BUS_PARALLEL,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W29C040,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W29C040,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_LONG_RESET,
@@ -24808,8 +25435,9 @@
.vendor = "Winbond",
.name = "W29C512A/W29EE512",
.bustype = BUS_PARALLEL,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W29C512A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W29C512A,
.total_size = 64,
.page_size = 128,
.feature_bits = FEATURE_LONG_RESET,
@@ -24834,8 +25462,9 @@
.vendor = "Winbond",
.name = "W29GL032CB",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
- .model_id = WINBOND_W29GL032CB,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .id.model = WINBOND_W29GL032CB,
.total_size = 4096,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -24866,8 +25495,9 @@
.vendor = "Winbond",
.name = "W29GL032CH/L",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
- .model_id = WINBOND_W29GL032CHL,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .id.model = WINBOND_W29GL032CHL,
.total_size = 4096,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -24895,8 +25525,9 @@
.vendor = "Winbond",
.name = "W29GL032CT",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
- .model_id = WINBOND_W29GL032CT,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .id.model = WINBOND_W29GL032CT,
.total_size = 4096,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -24927,8 +25558,9 @@
.vendor = "Winbond",
.name = "W29GL064CB",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
- .model_id = WINBOND_W29GL064CB,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .id.model = WINBOND_W29GL064CB,
.total_size = 8192,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -24959,8 +25591,9 @@
.vendor = "Winbond",
.name = "W29GL064CH/L",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
- .model_id = WINBOND_W29GL064CHL,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .id.model = WINBOND_W29GL064CHL,
.total_size = 8192,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -24988,8 +25621,9 @@
.vendor = "Winbond",
.name = "W29GL064CT",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
- .model_id = WINBOND_W29GL064CT,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .id.model = WINBOND_W29GL064CT,
.total_size = 8192,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -25020,8 +25654,9 @@
.vendor = "Winbond",
.name = "W29GL128C",
.bustype = BUS_PARALLEL,
- .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
- .model_id = WINBOND_W29GL128CHL,
+ .id.type = ID_JEDEC_29GL,
+ .id.manufacture = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .id.model = WINBOND_W29GL128CHL,
.total_size = 16384,
.page_size = 128 * 1024, /* actual page size is 16 */
.feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
@@ -25049,8 +25684,9 @@
.vendor = "Winbond",
.name = "W39F010",
.bustype = BUS_PARALLEL,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W39F010,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W39F010,
.total_size = 128,
.page_size = 4 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25079,8 +25715,9 @@
.vendor = "Winbond",
.name = "W39L010",
.bustype = BUS_PARALLEL,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W39L010,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W39L010,
.total_size = 128,
.page_size = 4 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25109,8 +25746,9 @@
.vendor = "Winbond",
.name = "W39L020",
.bustype = BUS_PARALLEL,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W39L020,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W39L020,
.total_size = 256,
.page_size = 4 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25142,8 +25780,9 @@
.vendor = "Winbond",
.name = "W39L040",
.bustype = BUS_PARALLEL,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W39L040,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W39L040,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25175,8 +25814,9 @@
.vendor = "Winbond",
.name = "W39V040A",
.bustype = BUS_LPC,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W39V040A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W39V040A,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25205,8 +25845,9 @@
.vendor = "Winbond",
.name = "W39V040B",
.bustype = BUS_LPC,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W39V040B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W39V040B,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25235,8 +25876,9 @@
.vendor = "Winbond",
.name = "W39V040C",
.bustype = BUS_LPC,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W39V040C,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W39V040C,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25265,8 +25907,9 @@
.vendor = "Winbond",
.name = "W39V040FA",
.bustype = BUS_FWH,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W39V040FA,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W39V040FA,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25299,8 +25942,9 @@
.vendor = "Winbond",
.name = "W39V040FB",
.bustype = BUS_FWH,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W39V040B,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W39V040B,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25330,8 +25974,9 @@
.vendor = "Winbond",
.name = "W39V040FC",
.bustype = BUS_FWH,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W39V040C,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W39V040C,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25360,8 +26005,9 @@
.vendor = "Winbond",
.name = "W39V080A",
.bustype = BUS_LPC,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W39V080A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W39V080A,
.total_size = 1024,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25390,8 +26036,9 @@
.vendor = "Winbond",
.name = "W39V080FA",
.bustype = BUS_FWH,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W39V080FA,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W39V080FA,
.total_size = 1024,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25421,8 +26068,9 @@
.vendor = "Winbond",
.name = "W39V080FA (dual mode)",
.bustype = BUS_FWH,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W39V080FA_DM,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W39V080FA_DM,
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25451,8 +26099,9 @@
.vendor = "Winbond",
.name = "W49F002U/N",
.bustype = BUS_PARALLEL,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W49F002U,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W49F002U,
.total_size = 256,
.page_size = 128,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25485,8 +26134,9 @@
.vendor = "Winbond",
.name = "W49F020",
.bustype = BUS_PARALLEL,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W49F020,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W49F020,
.total_size = 256,
.page_size = 128,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25511,8 +26161,9 @@
.vendor = "Winbond",
.name = "W49V002A",
.bustype = BUS_LPC,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W49V002A,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W49V002A,
.total_size = 256,
.page_size = 128,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25545,8 +26196,9 @@
.vendor = "Winbond",
.name = "W49V002FA",
.bustype = BUS_FWH,
- .manufacture_id = WINBOND_ID,
- .model_id = WINBOND_W49V002FA,
+ .id.type = ID_JEDEC,
+ .id.manufacture = WINBOND_ID,
+ .id.model = WINBOND_W49V002FA,
.total_size = 256,
.page_size = 128,
.feature_bits = FEATURE_EITHER_RESET,
@@ -25579,8 +26231,9 @@
.vendor = "XMC",
.name = "XM25QH128C",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = XMC_XM25QH128C,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = XMC_XM25QH128C,
.total_size = 16384,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR2 | FEATURE_OTP | FEATURE_QPI_SRP,
@@ -25634,8 +26287,9 @@
.vendor = "XMC",
.name = "XM25QH256C",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = XMC_XM25QH256C,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = XMC_XM25QH256C,
.total_size = 32768,
.page_size = 256,
/* supports SFDP */
@@ -25695,8 +26349,9 @@
.vendor = "XMC",
.name = "XM25QH64C",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = XMC_XM25QH64C,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = XMC_XM25QH64C,
.total_size = 8192,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR2 | FEATURE_OTP | FEATURE_QPI_SRP,
@@ -25740,8 +26395,9 @@
.vendor = "XMC",
.name = "XM25QU128C",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = XMC_XM25QU128C,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = XMC_XM25QU128C,
.total_size = 16384,
.page_size = 256,
/* supports SFDP */
@@ -25786,8 +26442,9 @@
.vendor = "XMC",
.name = "XM25QU256C",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = XMC_XM25QU256C,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = XMC_XM25QU256C,
.total_size = 32768,
.page_size = 256,
/* supports SFDP */
@@ -25839,8 +26496,9 @@
.vendor = "XMC",
.name = "XM25QU64C",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = XMC_XM25QU64C,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = XMC_XM25QU64C,
.total_size = 8192,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR2 | FEATURE_OTP | FEATURE_QPI_SRP,
@@ -25884,8 +26542,9 @@
.vendor = "XTX Technology",
.name = "XT25F02E",
.bustype = BUS_SPI,
- .manufacture_id = XTX_ID,
- .model_id = XTX_XT25F02E,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = XTX_ID,
+ .id.model = XTX_XT25F02E,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_DIO,
@@ -25921,8 +26580,9 @@
.vendor = "XTX Technology",
.name = "XT25F04D",
.bustype = BUS_SPI,
- .manufacture_id = XTX_ID,
- .model_id = XTX_XT25F04D,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = XTX_ID,
+ .id.model = XTX_XT25F04D,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_DIO,
@@ -25961,8 +26621,9 @@
.vendor = "XTX Technology",
.name = "XT25F08B",
.bustype = BUS_SPI,
- .manufacture_id = XTX_ID,
- .model_id = XTX_XT25F08B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = XTX_ID,
+ .id.model = XTX_XT25F08B,
.total_size = 1024,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 | FEATURE_QIO,
@@ -26005,8 +26666,9 @@
.vendor = "XTX Technology",
.name = "XT25F16B",
.bustype = BUS_SPI,
- .manufacture_id = XTX_ID,
- .model_id = XTX_XT25F16B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = XTX_ID,
+ .id.model = XTX_XT25F16B,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 |
@@ -26059,8 +26721,9 @@
.vendor = "XTX Technology",
.name = "XT25F32B",
.bustype = BUS_SPI,
- .manufacture_id = XTX_ID,
- .model_id = XTX_XT25F32B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = XTX_ID,
+ .id.model = XTX_XT25F32B,
.total_size = 4096,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER | FEATURE_WRSR_EXT2 |
@@ -26115,8 +26778,9 @@
.vendor = "XTX Technology",
.name = "XT25F64B",
.bustype = BUS_SPI,
- .manufacture_id = XTX_ID,
- .model_id = XTX_XT25F64B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = XTX_ID,
+ .id.model = XTX_XT25F64B,
.total_size = 8192,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR_EXT2 |
@@ -26171,8 +26835,9 @@
.vendor = "XTX Technology",
.name = "XT25F128B",
.bustype = BUS_SPI,
- .manufacture_id = XTX_ID,
- .model_id = XTX_XT25F128B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = XTX_ID,
+ .id.model = XTX_XT25F128B,
.total_size = 16384,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR_EXT2 |
@@ -26228,8 +26893,9 @@
.vendor = "XTX Technology",
.name = "XT25F16F",
.bustype = BUS_SPI,
- .manufacture_id = XTX_ID,
- .model_id = XTX_XT25F16B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = XTX_ID,
+ .id.model = XTX_XT25F16B,
.total_size = 2048,
.page_size = 256,
/* Supports full QIO but has a non-volatile DC bit. */
@@ -26286,8 +26952,9 @@
.vendor = "XTX Technology",
.name = "XT25F32F",
.bustype = BUS_SPI,
- .manufacture_id = XTX_ID,
- .model_id = XTX_XT25F32B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = XTX_ID,
+ .id.model = XTX_XT25F32B,
.total_size = 4096,
.page_size = 256,
/* Supports full QIO but has a non-volatile DC bit. */
@@ -26344,8 +27011,9 @@
.vendor = "XTX Technology",
.name = "XT25F64F",
.bustype = BUS_SPI,
- .manufacture_id = XTX_ID,
- .model_id = XTX_XT25F64B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = XTX_ID,
+ .id.model = XTX_XT25F64B,
.total_size = 8192,
.page_size = 256,
/* Supports full QIO but has a non-volatile DC bit. */
@@ -26402,8 +27070,9 @@
.vendor = "XTX Technology",
.name = "XT25F128F/XT25BF128F",
.bustype = BUS_SPI,
- .manufacture_id = XTX_ID,
- .model_id = XTX_XT25F128B,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = XTX_ID,
+ .id.model = XTX_XT25F128B,
.total_size = 16384,
.page_size = 256,
/* Supports full QIO but has a non-volatile DC bit. */
@@ -26462,8 +27131,9 @@
.vendor = "Zetta Device",
.name = "ZD25D20",
.bustype = BUS_SPI,
- .manufacture_id = ZETTADEVICE_ID,
- .model_id = ZETTADEVICE_ZD25D20,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ZETTADEVICE_ID,
+ .id.model = ZETTADEVICE_ZD25D20,
.total_size = 256,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -26500,8 +27170,9 @@
.vendor = "Zetta Device",
.name = "ZD25D40",
.bustype = BUS_SPI,
- .manufacture_id = ZETTADEVICE_ID,
- .model_id = ZETTADEVICE_ZD25D40,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ZETTADEVICE_ID,
+ .id.model = ZETTADEVICE_ZD25D40,
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
@@ -26538,8 +27209,9 @@
.vendor = "Zetta Device",
.name = "ZD25LQ64",
.bustype = BUS_SPI,
- .manufacture_id = ZETTADEVICE_ID,
- .model_id = ZETTADEVICE_ZD25LQ64,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ZETTADEVICE_ID,
+ .id.model = ZETTADEVICE_ZD25LQ64,
.total_size = 8192,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR2 | FEATURE_WRSR_EXT2 |
@@ -26594,8 +27266,9 @@
.vendor = "Zetta Device",
.name = "ZD25LQ128",
.bustype = BUS_SPI,
- .manufacture_id = ZETTADEVICE_ID,
- .model_id = ZETTADEVICE_ZD25LQ128,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ZETTADEVICE_ID,
+ .id.model = ZETTADEVICE_ZD25LQ128,
.total_size = 16384,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR2 | FEATURE_WRSR_EXT2 |
@@ -26650,8 +27323,9 @@
.vendor = "Unknown",
.name = "SFDP-capable chip",
.bustype = BUS_SPI,
- .manufacture_id = GENERIC_MANUF_ID,
- .model_id = SFDP_DEVICE_ID,
+ .id.type = ID_SPI_SFDP,
+ .id.manufacture = GENERIC_MANUF_ID,
+ .id.model = SFDP_DEVICE_ID,
.total_size = 0, /* set by probing function */
.page_size = 0, /* set by probing function */
.feature_bits = 0, /* set by probing function */
@@ -26672,8 +27346,9 @@
.vendor = "Programmer",
.name = "Opaque flash chip",
.bustype = BUS_PROG,
- .manufacture_id = PROGMANUF_ID,
- .model_id = PROGDEV_ID,
+ .id.type = ID_OPAQUE,
+ .id.manufacture = PROGMANUF_ID,
+ .id.model = PROGDEV_ID,
.total_size = 0,
.page_size = 256,
/* probe is assumed to work, rest will be filled in by probe */
@@ -26694,8 +27369,9 @@
.vendor = "AMIC",
.name = "unknown AMIC SPI chip",
.bustype = BUS_SPI,
- .manufacture_id = AMIC_ID,
- .model_id = GENERIC_DEVICE_ID,
+ .id.type = ID_SPI_RDID4,
+ .id.manufacture = AMIC_ID,
+ .id.model = GENERIC_DEVICE_ID,
.total_size = 0,
.page_size = 256,
.tested = TEST_BAD_PREW,
@@ -26709,8 +27385,9 @@
.vendor = "Atmel",
.name = "unknown Atmel SPI chip",
.bustype = BUS_SPI,
- .manufacture_id = ATMEL_ID,
- .model_id = GENERIC_DEVICE_ID,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ATMEL_ID,
+ .id.model = GENERIC_DEVICE_ID,
.total_size = 0,
.page_size = 256,
.tested = TEST_BAD_PREW,
@@ -26724,8 +27401,9 @@
.vendor = "Eon",
.name = "unknown Eon SPI chip",
.bustype = BUS_SPI,
- .manufacture_id = EON_ID_NOPREFIX,
- .model_id = GENERIC_DEVICE_ID,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = EON_ID_NOPREFIX,
+ .id.model = GENERIC_DEVICE_ID,
.total_size = 0,
.page_size = 256,
.tested = TEST_BAD_PREW,
@@ -26739,8 +27417,9 @@
.vendor = "Macronix",
.name = "unknown Macronix SPI chip",
.bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = GENERIC_DEVICE_ID,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = MACRONIX_ID,
+ .id.model = GENERIC_DEVICE_ID,
.total_size = 0,
.page_size = 256,
.tested = TEST_BAD_PREW,
@@ -26754,8 +27433,9 @@
.vendor = "PMC",
.name = "unknown PMC SPI chip",
.bustype = BUS_SPI,
- .manufacture_id = PMC_ID,
- .model_id = GENERIC_DEVICE_ID,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = PMC_ID,
+ .id.model = GENERIC_DEVICE_ID,
.total_size = 0,
.page_size = 256,
.tested = TEST_BAD_PREW,
@@ -26769,8 +27449,9 @@
.vendor = "SST",
.name = "unknown SST SPI chip",
.bustype = BUS_SPI,
- .manufacture_id = SST_ID,
- .model_id = GENERIC_DEVICE_ID,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SST_ID,
+ .id.model = GENERIC_DEVICE_ID,
.total_size = 0,
.page_size = 256,
.tested = TEST_BAD_PREW,
@@ -26784,8 +27465,9 @@
.vendor = "ST",
.name = "unknown ST SPI chip",
.bustype = BUS_SPI,
- .manufacture_id = ST_ID,
- .model_id = GENERIC_DEVICE_ID,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = ST_ID,
+ .id.model = GENERIC_DEVICE_ID,
.total_size = 0,
.page_size = 256,
.tested = TEST_BAD_PREW,
@@ -26799,8 +27481,9 @@
.vendor = "Sanyo",
.name = "unknown Sanyo SPI chip",
.bustype = BUS_SPI,
- .manufacture_id = SANYO_ID,
- .model_id = GENERIC_DEVICE_ID,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = SANYO_ID,
+ .id.model = GENERIC_DEVICE_ID,
.total_size = 0,
.page_size = 256,
.tested = TEST_BAD_PREW,
@@ -26814,8 +27497,9 @@
.vendor = "Winbond",
.name = "unknown Winbond (ex Nexcom) SPI chip",
.bustype = BUS_SPI,
- .manufacture_id = WINBOND_NEX_ID,
- .model_id = GENERIC_DEVICE_ID,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = WINBOND_NEX_ID,
+ .id.model = GENERIC_DEVICE_ID,
.total_size = 0,
.page_size = 256,
.tested = TEST_BAD_PREW,
@@ -26829,8 +27513,9 @@
.vendor = "Generic",
.name = "unknown SPI chip (RDID)",
.bustype = BUS_SPI,
- .manufacture_id = GENERIC_MANUF_ID,
- .model_id = GENERIC_DEVICE_ID,
+ .id.type = ID_SPI_RDID,
+ .id.manufacture = GENERIC_MANUF_ID,
+ .id.model = GENERIC_DEVICE_ID,
.total_size = 0,
.page_size = 256,
.tested = TEST_BAD_PREW,
@@ -26842,8 +27527,9 @@
.vendor = "Generic",
.name = "unknown SPI chip (REMS)",
.bustype = BUS_SPI,
- .manufacture_id = GENERIC_MANUF_ID,
- .model_id = GENERIC_DEVICE_ID,
+ .id.type = ID_SPI_REMS,
+ .id.manufacture = GENERIC_MANUF_ID,
+ .id.model = GENERIC_DEVICE_ID,
.total_size = 0,
.page_size = 256,
.tested = TEST_BAD_PREW,