diff options
Diffstat (limited to 'flashchips.c')
-rw-r--r-- | flashchips.c | 10797 |
1 files changed, 6579 insertions, 4218 deletions
diff --git a/flashchips.c b/flashchips.c index 58dd4f30..6a5cf495 100644 --- a/flashchips.c +++ b/flashchips.c @@ -66,7 +66,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_SHORT_RESET | FEATURE_ADDR_2AA, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -77,14 +77,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 3}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4750, 5250}, /* 4.75-5.25V for type -55, others 4.5-5.5V */ }, @@ -98,7 +98,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_EITHER_RESET | FEATURE_ADDR_2AA, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -109,14 +109,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4750, 5250}, /* 4.75-5.25V for type -55, others 4.5-5.5V */ }, @@ -130,20 +130,20 @@ const struct flashchip flashchips[] = { .page_size = 16 * 1024, .feature_bits = FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {16 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -157,20 +157,20 @@ const struct flashchip flashchips[] = { .page_size = 16 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {16 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -184,20 +184,20 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -211,20 +211,20 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -238,20 +238,20 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -265,20 +265,20 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -292,20 +292,20 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -319,7 +319,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -329,14 +329,14 @@ const struct flashchip flashchips[] = { {4 * 1024, 2}, {16 * 1024, 7}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* 3.0-3.6V for type -45R, others 2.7-3.6V */ }, @@ -350,7 +350,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -360,14 +360,14 @@ const struct flashchip flashchips[] = { {4 * 1024, 2}, {8 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* 3.0-3.6V for type -45R, others 2.7-3.6V */ }, @@ -381,7 +381,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -392,14 +392,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 3}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* 3.0-3.6V for type -55, others 2.7-3.6V */ }, @@ -413,7 +413,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -424,14 +424,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* 3.0-3.6V for type -55, others 2.7-3.6V */ }, @@ -445,7 +445,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -456,14 +456,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 7}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -477,7 +477,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -488,14 +488,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -509,7 +509,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -520,14 +520,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 15}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* 3.0-3.6V for type -70R, others 2.7-3.6V */ }, @@ -541,7 +541,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -552,14 +552,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* 3.0-3.6V for type -70R, others 2.7-3.6V */ }, @@ -572,21 +572,21 @@ const struct flashchip flashchips[] = { .total_size = 512, .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, - .tested = TEST_OK_PRE, - .probe = probe_jedec, + .tested = TEST_OK_PREW, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* 3.0-3.6V for type -60R, others 2.7-3.6V*/ }, @@ -600,20 +600,20 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, /* datasheet specifies address as don't care */ .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* 3.0-3.6V for type -70R, others 2.7-3.6V */ }, @@ -627,25 +627,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 32 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 64 * 1024, 2 } }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 128 * 1024, 1 } }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -659,25 +659,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 512 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 64 * 1024, 32 } }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 2048 * 1024, 1 } }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -691,25 +691,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 64 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 64 * 1024, 4 } }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 256 * 1024, 1 } }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -724,31 +724,31 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, 0x48; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 1024 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 64 * 1024, 64 } }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { { 64 * 1024, 64 } }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 4096 * 1024, 1 } }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 4096 * 1024, 1 } }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_amic_a25l032, /* bit5: T/B, bit6: prot size */ - .unlock = spi_disable_blockprotect_bp2_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AMIC_A25L032, /* bit5: T/B, bit6: prot size */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -762,25 +762,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 128 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 64 * 1024, 8 } }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 512 * 1024, 1 } }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -794,7 +794,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid4, + .probe = PROBE_SPI_RDID4, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -805,16 +805,16 @@ const struct flashchip flashchips[] = { {8 * 1024, 1}, {4 * 1024, 2}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -828,7 +828,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid4, + .probe = PROBE_SPI_RDID4, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -839,16 +839,16 @@ const struct flashchip flashchips[] = { {16 * 1024, 1}, {32 * 1024, 1}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -862,25 +862,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 256 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 64 * 1024, 16 } }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 1024 * 1024, 1 } }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -894,7 +894,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid4, + .probe = PROBE_SPI_RDID4, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -906,16 +906,16 @@ const struct flashchip flashchips[] = { {8 * 1024, 1}, {4 * 1024, 2}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -929,7 +929,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid4, + .probe = PROBE_SPI_RDID4, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -941,16 +941,16 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 1}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -964,7 +964,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid4, + .probe = PROBE_SPI_RDID4, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -976,19 +976,19 @@ const struct flashchip flashchips[] = { {8 * 1024, 1}, {4 * 1024, 2}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1002,7 +1002,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PR, - .probe = probe_spi_rdid4, + .probe = PROBE_SPI_RDID4, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -1014,19 +1014,19 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 31}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1040,7 +1040,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid4, + .probe = PROBE_SPI_RDID4, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -1052,16 +1052,16 @@ const struct flashchip flashchips[] = { {8 * 1024, 1}, {4 * 1024, 2}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1075,7 +1075,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid4, + .probe = PROBE_SPI_RDID4, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -1087,16 +1087,16 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 3}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1115,7 +1115,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PR, - .probe = probe_spi_rdid4, + .probe = PROBE_SPI_RDID4, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -1127,16 +1127,16 @@ const struct flashchip flashchips[] = { {8 * 1024, 1}, {4 * 1024, 2}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1150,7 +1150,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid4, + .probe = PROBE_SPI_RDID4, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -1162,16 +1162,16 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 7}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1185,25 +1185,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 16 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 64 * 1024, 1 } }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 64 * 1024, 1 } }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1217,7 +1217,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PRE, - .probe = probe_spi_rdid4, + .probe = PROBE_SPI_RDID4, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -1229,16 +1229,16 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 15}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1254,31 +1254,31 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, 0x48; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 1024 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 64 * 1024, 64 } }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { { 64 * 1024, 64 } }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 4096 * 1024, 1 } }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 4096 * 1024, 1 } }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_amic_a25l032, /* bit5: T/B, bit6: prot size */ - .unlock = spi_disable_blockprotect_bp2_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AMIC_A25L032, /* bit5: T/B, bit6: prot size */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1294,31 +1294,31 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, 0x48; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 512 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 64 * 1024, 32 } }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { { 64 * 1024, 32 } }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 2048 * 1024, 1 } }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 2048 * 1024, 1 } }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_amic_a25l032, /* bit5: T/B, bit6: prot size */ - .unlock = spi_disable_blockprotect_bp2_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AMIC_A25L032, /* bit5: T/B, bit6: prot size */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1335,31 +1335,31 @@ const struct flashchip flashchips[] = { /* QPI enable 0x35, disable 0xF5 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 2048 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 32 * 1024, 256 } }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { { 64 * 1024, 128 } }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 8192 * 1024, 1 } }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 8192 * 1024, 1 } }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enhance (sic!) */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enhance (sic!) */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1373,7 +1373,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -1384,14 +1384,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 3}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -1405,7 +1405,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -1416,14 +1416,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -1437,20 +1437,20 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -1464,21 +1464,21 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PR, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */ .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .unlock = unlock_regspace2_uniform_64k, - .write = write_jedec_1, - .read = read_memmapped, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -1493,31 +1493,31 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 8} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25df, - .unlock = spi_disable_blockprotect_at2x_global_unprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25DF, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, /* 2.3-3.6V & 2.7-3.6V models available */ }, @@ -1532,31 +1532,31 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 8} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25df, - .unlock = spi_disable_blockprotect_at2x_global_unprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25DF, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 3600}, }, @@ -1570,31 +1570,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25df, - .unlock = spi_disable_blockprotect_at2x_global_unprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25DF, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, /* 2.3-3.6V & 2.7-3.6V models available */ }, @@ -1608,31 +1608,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25df, - .unlock = spi_disable_blockprotect_at2x_global_unprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25DF, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1600, 2000}, /* Datasheet says range is 1.65-1.95 V */ }, @@ -1646,31 +1646,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25df_sec, - .unlock = spi_disable_blockprotect_at2x_global_unprotect_sec, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25DF_SEC, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT_SEC, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1684,31 +1684,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25df_sec, - .unlock = spi_disable_blockprotect_at2x_global_unprotect_sec, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25DF_SEC, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT_SEC, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1723,31 +1723,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 128} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25df, - .unlock = spi_disable_blockprotect_at2x_global_unprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25DF, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1762,31 +1762,31 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 128} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25df_sec, - .unlock = spi_disable_blockprotect_at2x_global_unprotect_sec, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25DF_SEC, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT_SEC, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1800,31 +1800,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 256} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25df_sec, - .unlock = spi_disable_blockprotect_at2x_global_unprotect_sec, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25DF_SEC, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT_SEC, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1839,31 +1839,31 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25df_sec, - .unlock = spi_disable_blockprotect_at2x_global_unprotect_sec, - .write = spi_chip_write_256, /* Dual I/O (0xA2) supported */ - .read = spi_chip_read, /* Fast read (0x0B), dual I/O (0x3B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25DF_SEC, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT_SEC, + .write = SPI_CHIP_WRITE256, /* Dual I/O (0xA2) supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O (0x3B) supported */ .voltage = {1650, 1950}, }, @@ -1878,31 +1878,31 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25df_sec, - .unlock = spi_disable_blockprotect_at2x_global_unprotect_sec, - .write = spi_chip_write_256, /* Dual I/O (0xA2) supported */ - .read = spi_chip_read, /* Fast read (0x0B), dual I/O (0x3B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25DF_SEC, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT_SEC, + .write = SPI_CHIP_WRITE256, /* Dual I/O (0xA2) supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O (0x3B) supported */ .voltage = {1650, 1950}, }, @@ -1917,31 +1917,31 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25df_sec, - .unlock = spi_disable_blockprotect_at2x_global_unprotect_sec, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25DF_SEC, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT_SEC, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1957,22 +1957,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_at25f, + .probe = PROBE_SPI_AT25F, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_62, + .block_erase = SPI_BLOCK_ERASE_62, } }, - .printlock = spi_prettyprint_status_register_at25f, - .unlock = spi_disable_blockprotect_at25f, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25F, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT25F, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -1986,22 +1986,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_at25f, + .probe = PROBE_SPI_AT25F, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_62, + .block_erase = SPI_BLOCK_ERASE_62, } }, - .printlock = spi_prettyprint_status_register_at25f, - .unlock = spi_disable_blockprotect_at25f, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25F, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT25F, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -2015,23 +2015,23 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_at25f, + .probe = PROBE_SPI_AT25F, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_62, + .block_erase = SPI_BLOCK_ERASE_62, } }, - .printlock = spi_prettyprint_status_register_at25f4096, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25F4096, /* "Bits 5-6 are 0s when device is not in an internal write cycle." Better leave them alone: */ - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -2045,22 +2045,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_at25f, + .probe = PROBE_SPI_AT25F, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_62, + .block_erase = SPI_BLOCK_ERASE_62, } }, - .printlock = spi_prettyprint_status_register_at25f, - .unlock = spi_disable_blockprotect_at25f, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25F, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT25F, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -2074,23 +2074,23 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_at25f, + .probe = PROBE_SPI_AT25F, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_62, + .block_erase = SPI_BLOCK_ERASE_62, } }, - .printlock = spi_prettyprint_status_register_at25f512a, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25F512A, /* FIXME: It is not correct to use this one, because the BP1 bit is N/A. */ - .unlock = spi_disable_blockprotect_at25f512a, - .write = spi_chip_write_256, - .read = spi_chip_read, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT25F512A, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -2105,34 +2105,34 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_62, + .block_erase = SPI_BLOCK_ERASE_62, } }, - .printlock = spi_prettyprint_status_register_at25f512b, - .unlock = spi_disable_blockprotect_at25f512b, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25F512B, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT25F512B, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -2146,34 +2146,34 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25fs010, - .unlock = spi_disable_blockprotect_at25fs010, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25FS010, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT25FS010, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -2187,31 +2187,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25fs040, - .unlock = spi_disable_blockprotect_at25fs040, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25FS040, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT25FS040, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -2225,31 +2225,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2500, 3600}, }, @@ -2263,36 +2263,74 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2300, 3600}, }, { .vendor = "Atmel", + .name = "AT25SF128A", + .bustype = BUS_SPI, + .manufacture_id = ATMEL_ID, + .model_id = ATMEL_AT25SF128A, + .total_size = 16384, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, + .tested = TEST_OK_PR, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 4096} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1700, 2000}, + }, + + { + .vendor = "Atmel", .name = "AT25SF161", .bustype = BUS_SPI, .manufacture_id = ATMEL_ID, @@ -2301,31 +2339,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2500, 3600}, }, @@ -2339,31 +2377,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PR, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 128} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4096 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4096 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2500, 3600}, }, @@ -2376,34 +2414,44 @@ const struct flashchip flashchips[] = { .total_size = 16384, .page_size = 256, /* supports SFDP */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | FEATURE_WRSR2, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 512} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1700, 2000}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -2416,25 +2464,25 @@ const struct flashchip flashchips[] = { .page_size = 256, /* does not support EWSR nor WREN and has no writable status register bits whatsoever */ .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 2048} }, - .block_erase = spi_block_erase_81, + .block_erase = SPI_BLOCK_ERASE_81, }, { .eraseblocks = { {2 * 1024, 256} }, - .block_erase = spi_block_erase_50, + .block_erase = SPI_BLOCK_ERASE_50, }, { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, } }, - .printlock = spi_prettyprint_status_register_plain, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* Supports also an incompatible page write (of exactly 256 B) and an auto-erasing write. */ - .write = spi_chip_write_1, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .write = SPI_CHIP_WRITE1, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, /* 3.0-3.6V for higher speed, 2.7-3.6V normal */ }, @@ -2448,31 +2496,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at26df081a, - .unlock = spi_disable_blockprotect_at2x_global_unprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT26DF081A, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -2486,31 +2534,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at25df, - .unlock = spi_disable_blockprotect_at2x_global_unprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT25DF, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -2524,31 +2572,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_at26df081a, - .unlock = spi_disable_blockprotect_at2x_global_unprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT26DF081A, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT2X_GLOBAL_UNPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -2562,30 +2610,30 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = {.probe = NT, .read = NT, .erase = NT, .write = BAD}, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .write = NULL, /* Incompatible Page write */ - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .write = 0, /* Incompatible Page write */ + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -2599,17 +2647,17 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10000, /* 10mS, Enter=Exec */ .block_erasers = { { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec, /* FIXME */ - .read = read_memmapped, + .write = WRITE_JEDEC, /* FIXME */ + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -2623,17 +2671,17 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10000, /* 10ms */ .block_erasers = { { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec, - .read = read_memmapped, + .write = WRITE_JEDEC, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -2647,17 +2695,17 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10000, /* 10 ms */ .block_erasers = { { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec, - .read = read_memmapped, + .write = WRITE_JEDEC, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -2671,17 +2719,17 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10000, /* 10mS, Enter=Exec */ .block_erasers = { { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec, - .read = read_memmapped, + .write = WRITE_JEDEC, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -2697,7 +2745,7 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77 (4 dummy bytes); write 0x9A (via buffer) */ .feature_bits = FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -2707,14 +2755,14 @@ const struct flashchip flashchips[] = { {248 * 1056, 1}, /* sector 0b: opcode 7Ch */ {256 * 1056, 63}, /* sectors 1 - 63: opcode 7Ch */ }, - .block_erase = spi_erase_at45cs_sector, + .block_erase = SPI_ERASE_AT45CS_SECTOR, } }, - .printlock = spi_prettyprint_status_register_plain, - .write = spi_write_at45db, - .read = spi_read_at45db, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, + .write = SPI_WRITE_AT45DB, + .read = SPI_READ_AT45DB, .voltage = {2700, 3600}, - .gran = write_gran_1056bytes, + .gran = WRITE_GRAN_1056BYTES, }, { @@ -2729,33 +2777,33 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_at45db, + .probe = PROBE_SPI_AT45DB, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 512} }, - .block_erase = spi_erase_at45db_page, + .block_erase = SPI_ERASE_AT45DB_PAGE, }, { .eraseblocks = { {8 * 256, 512/8} }, - .block_erase = spi_erase_at45db_block, + .block_erase = SPI_ERASE_AT45DB_BLOCK, }, { .eraseblocks = { {8 * 256, 1}, {120 * 256, 1}, {128 * 256, 3}, }, - .block_erase = spi_erase_at45db_sector + .block_erase = SPI_ERASE_AT45DB_SECTOR }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_erase_at45db_chip, + .block_erase = SPI_ERASE_AT45DB_CHIP, } }, - .printlock = spi_prettyprint_status_register_at45db, - .unlock = spi_disable_blockprotect_at45db, /* Impossible if locked down or #WP is low */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT45DB, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT45DB, /* Impossible if locked down or #WP is low */ /* granularity will be set by the probing function. */ - .write = spi_write_at45db, - .read = spi_read_at45db, /* Fast read (0x0B) supported */ + .write = SPI_WRITE_AT45DB, + .read = SPI_READ_AT45DB, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -2771,33 +2819,33 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_at45db, + .probe = PROBE_SPI_AT45DB, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 1024} }, - .block_erase = spi_erase_at45db_page, + .block_erase = SPI_ERASE_AT45DB_PAGE, }, { .eraseblocks = { {8 * 256, 1024/8} }, - .block_erase = spi_erase_at45db_block, + .block_erase = SPI_ERASE_AT45DB_BLOCK, }, { .eraseblocks = { {8 * 256, 1}, {120 * 256, 1}, {128 * 256, 7}, }, - .block_erase = spi_erase_at45db_sector + .block_erase = SPI_ERASE_AT45DB_SECTOR }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_erase_at45db_chip, + .block_erase = SPI_ERASE_AT45DB_CHIP, } }, - .printlock = spi_prettyprint_status_register_at45db, - .unlock = spi_disable_blockprotect_at45db, /* Impossible if locked down or #WP is low */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT45DB, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT45DB, /* Impossible if locked down or #WP is low */ /* granularity will be set by the probing function. */ - .write = spi_write_at45db, - .read = spi_read_at45db, /* Fast read (0x0B) supported */ + .write = SPI_WRITE_AT45DB, + .read = SPI_READ_AT45DB, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -2813,33 +2861,33 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_at45db, + .probe = PROBE_SPI_AT45DB, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 2048} }, - .block_erase = spi_erase_at45db_page, + .block_erase = SPI_ERASE_AT45DB_PAGE, }, { .eraseblocks = { {8 * 256, 2048/8} }, - .block_erase = spi_erase_at45db_block, + .block_erase = SPI_ERASE_AT45DB_BLOCK, }, { .eraseblocks = { {8 * 256, 1}, {248 * 256, 1}, {256 * 256, 7}, }, - .block_erase = spi_erase_at45db_sector + .block_erase = SPI_ERASE_AT45DB_SECTOR }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_erase_at45db_chip, + .block_erase = SPI_ERASE_AT45DB_CHIP, } }, - .printlock = spi_prettyprint_status_register_at45db, - .unlock = spi_disable_blockprotect_at45db, /* Impossible if locked down or #WP is low */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT45DB, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT45DB, /* Impossible if locked down or #WP is low */ /* granularity will be set by the probing function. */ - .write = spi_write_at45db, - .read = spi_read_at45db, /* Fast read (0x0B) supported */ + .write = SPI_WRITE_AT45DB, + .read = SPI_READ_AT45DB, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, /* 2.5-3.6V & 2.7-3.6V models available */ }, @@ -2855,33 +2903,33 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_at45db, + .probe = PROBE_SPI_AT45DB, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 4096} }, - .block_erase = spi_erase_at45db_page, + .block_erase = SPI_ERASE_AT45DB_PAGE, }, { .eraseblocks = { {8 * 256, 4096/8} }, - .block_erase = spi_erase_at45db_block, + .block_erase = SPI_ERASE_AT45DB_BLOCK, }, { .eraseblocks = { {8 * 256, 1}, {248 * 256, 1}, {256 * 256, 15}, }, - .block_erase = spi_erase_at45db_sector + .block_erase = SPI_ERASE_AT45DB_SECTOR }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_erase_at45db_chip, + .block_erase = SPI_ERASE_AT45DB_CHIP, } }, - .printlock = spi_prettyprint_status_register_at45db, - .unlock = spi_disable_blockprotect_at45db, /* Impossible if locked down or #WP is low */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT45DB, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT45DB, /* Impossible if locked down or #WP is low */ /* granularity will be set by the probing function. */ - .write = spi_write_at45db, - .read = spi_read_at45db, /* Fast read (0x0B) supported */ + .write = SPI_WRITE_AT45DB, + .read = SPI_READ_AT45DB, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, /* 2.5-3.6V & 2.7-3.6V models available */ }, @@ -2897,33 +2945,33 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_at45db, + .probe = PROBE_SPI_AT45DB, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {512, 4096} }, - .block_erase = spi_erase_at45db_page, + .block_erase = SPI_ERASE_AT45DB_PAGE, }, { .eraseblocks = { {8 * 512, 4096/8} }, - .block_erase = spi_erase_at45db_block, + .block_erase = SPI_ERASE_AT45DB_BLOCK, }, { .eraseblocks = { {8 * 512, 1}, {248 * 512, 1}, {256 * 512, 15}, }, - .block_erase = spi_erase_at45db_sector + .block_erase = SPI_ERASE_AT45DB_SECTOR }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = spi_erase_at45db_chip, + .block_erase = SPI_ERASE_AT45DB_CHIP, } }, - .printlock = spi_prettyprint_status_register_at45db, - .unlock = spi_disable_blockprotect_at45db, /* Impossible if locked down or #WP is low */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT45DB, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT45DB, /* Impossible if locked down or #WP is low */ /* granularity will be set by the probing function. */ - .write = spi_write_at45db, - .read = spi_read_at45db, /* Fast read (0x0B) supported */ + .write = SPI_WRITE_AT45DB, + .read = SPI_READ_AT45DB, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, /* 2.5-3.6V & 2.7-3.6V models available */ }, @@ -2939,16 +2987,16 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77 (4 dummy bytes); write 0x9A (via buffer) */ .feature_bits = FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {528, 8192} }, - .block_erase = spi_erase_at45db_page, + .block_erase = SPI_ERASE_AT45DB_PAGE, }, { .eraseblocks = { {8 * 528, 8192/8} }, - .block_erase = spi_erase_at45db_block, + .block_erase = SPI_ERASE_AT45DB_BLOCK, }, /* Although the datasheets describes sectors (which can be write protected) * there seems to be no erase functions for them. { @@ -2957,17 +3005,17 @@ const struct flashchip flashchips[] = { {120 * 528, 1}, {128 * 528, 63}, }, - .block_erase = spi_erase_at45db_sector + .block_erase = SPI_ERASE_AT45DB_SECTOR }, */ { .eraseblocks = { {4224 * 1024, 1} }, - .block_erase = spi_erase_at45db_chip, + .block_erase = SPI_ERASE_AT45DB_CHIP, } }, - .printlock = spi_prettyprint_status_register_at45db, /* Bit 0 is undefined, no lockdown */ - .write = spi_write_at45db, - .read = spi_read_at45db_e8, /* 3 address and 4 dummy bytes */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT45DB, /* Bit 0 is undefined, no lockdown */ + .write = SPI_WRITE_AT45DB, + .read = SPI_READ_AT45DB_E8, /* 3 address and 4 dummy bytes */ .voltage = {2700, 3600}, - .gran = write_gran_528bytes, + .gran = WRITE_GRAN_528BYTES, }, { @@ -2982,33 +3030,33 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_at45db, + .probe = PROBE_SPI_AT45DB, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {512, 8192} }, - .block_erase = spi_erase_at45db_page, + .block_erase = SPI_ERASE_AT45DB_PAGE, }, { .eraseblocks = { {8 * 512, 8192/8} }, - .block_erase = spi_erase_at45db_block, + .block_erase = SPI_ERASE_AT45DB_BLOCK, }, { .eraseblocks = { {8 * 512, 1}, {120 * 512, 1}, {128 * 512, 63}, }, - .block_erase = spi_erase_at45db_sector + .block_erase = SPI_ERASE_AT45DB_SECTOR }, { .eraseblocks = { {4096 * 1024, 1} }, - .block_erase = spi_erase_at45db_chip, + .block_erase = SPI_ERASE_AT45DB_CHIP, } }, - .printlock = spi_prettyprint_status_register_at45db, - .unlock = spi_disable_blockprotect_at45db, /* Impossible if locked down or #WP is low */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT45DB, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT45DB, /* Impossible if locked down or #WP is low */ /* granularity will be set by the probing function. */ - .write = spi_write_at45db, - .read = spi_read_at45db, /* Fast read (0x0B) supported */ + .write = SPI_WRITE_AT45DB, + .read = SPI_READ_AT45DB, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, /* 2.5-3.6V & 2.7-3.6V models available */ }, @@ -3024,33 +3072,33 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_at45db, + .probe = PROBE_SPI_AT45DB, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {512, 8192} }, - .block_erase = spi_erase_at45db_page, + .block_erase = SPI_ERASE_AT45DB_PAGE, }, { .eraseblocks = { {8 * 512, 8192/8} }, - .block_erase = spi_erase_at45db_block, + .block_erase = SPI_ERASE_AT45DB_BLOCK, }, { .eraseblocks = { {8 * 512, 1}, {120 * 512, 1}, {128 * 512, 63}, }, - .block_erase = spi_erase_at45db_sector + .block_erase = SPI_ERASE_AT45DB_SECTOR }, { .eraseblocks = { {4096 * 1024, 1} }, - .block_erase = spi_erase_at45db_chip, + .block_erase = SPI_ERASE_AT45DB_CHIP, } }, - .printlock = spi_prettyprint_status_register_at45db, /* has a 2nd status register */ - .unlock = spi_disable_blockprotect_at45db, /* Impossible if locked down or #WP is low */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT45DB, /* has a 2nd status register */ + .unlock = SPI_DISABLE_BLOCKPROTECT_AT45DB, /* Impossible if locked down or #WP is low */ /* granularity will be set by the probing function. */ - .write = spi_write_at45db, - .read = spi_read_at45db, /* Fast read (0x0B) supported */ + .write = SPI_WRITE_AT45DB, + .read = SPI_READ_AT45DB, /* Fast read (0x0B) supported */ .voltage = {2500, 3600}, /* 2.3-3.6V & 2.5-3.6V models available */ }, @@ -3066,33 +3114,33 @@ const struct flashchip flashchips[] = { /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ .feature_bits = FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_at45db, + .probe = PROBE_SPI_AT45DB, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {1024, 8192} }, - .block_erase = spi_erase_at45db_page, + .block_erase = SPI_ERASE_AT45DB_PAGE, }, { .eraseblocks = { {8 * 1024, 8192/8} }, - .block_erase = spi_erase_at45db_block, + .block_erase = SPI_ERASE_AT45DB_BLOCK, }, { .eraseblocks = { {8 * 1024, 1}, {248 * 1024, 1}, {256 * 1024, 31}, }, - .block_erase = spi_erase_at45db_sector + .block_erase = SPI_ERASE_AT45DB_SECTOR }, { .eraseblocks = { {8192 * 1024, 1} }, - .block_erase = spi_erase_at45db_chip, + .block_erase = SPI_ERASE_AT45DB_CHIP, } }, - .printlock = spi_prettyprint_status_register_at45db, - .unlock = spi_disable_blockprotect_at45db, /* Impossible if locked down or #WP is low */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_AT45DB, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT45DB, /* Impossible if locked down or #WP is low */ /* granularity will be set by the probing function. */ - .write = spi_write_at45db, - .read = spi_read_at45db, /* Fast read (0x0B) supported */ + .write = SPI_WRITE_AT45DB, + .read = SPI_READ_AT45DB, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -3106,18 +3154,18 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .printlock = printlock_at49f, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_AT49F, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -3131,17 +3179,17 @@ const struct flashchip flashchips[] = { .page_size = 64, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -3155,7 +3203,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -3166,14 +3214,14 @@ const struct flashchip flashchips[] = { {96 * 1024, 1}, {128 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -3187,7 +3235,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PR, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -3198,14 +3246,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -3219,13 +3267,13 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } /* Chip features an optional permanent write protection * of the first 8 kB. The erase function is the same as @@ -3234,9 +3282,9 @@ const struct flashchip flashchips[] = { * supported. */ }, - .printlock = printlock_at49f, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_AT49F, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -3250,13 +3298,13 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } /* Chip features an optional permanent write protection * of the first 16 kB. The erase function is the same as @@ -3265,9 +3313,9 @@ const struct flashchip flashchips[] = { * supported. */ }, - .printlock = printlock_at49f, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_AT49F, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -3281,13 +3329,13 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } /* Chip features an optional permanent write protection * of the first 16 kB. The erase function is the same as @@ -3296,9 +3344,9 @@ const struct flashchip flashchips[] = { * supported. */ }, - .printlock = printlock_at49f, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_AT49F, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -3313,13 +3361,13 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } /* Chip features an optional permanent write protection * of the first 16 kB. The erase function is the same as @@ -3328,9 +3376,9 @@ const struct flashchip flashchips[] = { * supported. */ }, - .printlock = printlock_at49f, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_AT49F, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -3344,7 +3392,7 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -3355,18 +3403,18 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = NULL, /* TODO: Implement. */ + .block_erase = NO_BLOCK_ERASE_FUNC, /* TODO: Implement. */ }, { .eraseblocks = { {64 * 1024, 4}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, }, - .printlock = printlock_regspace2_block_eraser_0, - .unlock = unlock_regspace2_block_eraser_0, - .write = write_82802ab, - .read = read_memmapped, + .printlock = PRINTLOCK_REGSPACE2_BLOCK_ERASER_0, + .unlock = UNLOCK_REGSPACE2_BLOCK_ERASER_0, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -3380,7 +3428,7 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -3391,18 +3439,18 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, { .eraseblocks = { {64 * 1024, 8}, }, - .block_erase = NULL, /* TODO: Implement. */ + .block_erase = NO_BLOCK_ERASE_FUNC, /* TODO: Implement. */ }, }, - .printlock = printlock_regspace2_block_eraser_0, - .unlock = unlock_regspace2_block_eraser_0, - .write = write_82802ab, - .read = read_memmapped, + .printlock = PRINTLOCK_REGSPACE2_BLOCK_ERASER_0, + .unlock = UNLOCK_REGSPACE2_BLOCK_ERASER_0, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -3416,7 +3464,7 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -3427,22 +3475,98 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 7}, }, - .block_erase = NULL, /* TODO: Implement. */ + .block_erase = NO_BLOCK_ERASE_FUNC, /* TODO: Implement. */ }, { .eraseblocks = { {64 * 1024, 8}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, }, - .printlock = printlock_regspace2_block_eraser_0, - .unlock = unlock_regspace2_block_eraser_0, - .write = write_82802ab, - .read = read_memmapped, + .printlock = PRINTLOCK_REGSPACE2_BLOCK_ERASER_0, + .unlock = UNLOCK_REGSPACE2_BLOCK_ERASER_0, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, { + .vendor = "Boya/BoHong Microelectronics", + .name = "B.25D16A", + .bustype = BUS_SPI, + .manufacture_id = BOYA_BOHONG_ID, + .model_id = BOYA_BOHONG_B_25D16A, + .total_size = 2048, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, + .tested = TEST_OK_PR, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 64} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 32} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {2 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {2 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {2700, 3600}, + }, + + { + .vendor = "Boya/BoHong Microelectronics", + .name = "B.25Q128AS", + .bustype = BUS_SPI, + .manufacture_id = BOYA_BOHONG_ID, + .model_id = BOYA_BOHONG_B_25Q128AS, + .total_size = 16384, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 4096} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, + .unlock = SPI_DISABLE_BLOCKPROTECT_AT25FS040, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {2700, 3600}, + }, + + { .vendor = "Bright", .name = "BM29F040", .bustype = BUS_PARALLEL, @@ -3452,20 +3576,20 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PR, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -3479,17 +3603,17 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = 0, .tested = {.probe = OK, .read = OK, .erase = BAD, .write = BAD}, - .probe = probe_jedec, /* FIXME! */ + .probe = PROBE_JEDEC, /* FIXME! */ .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = NULL, /* TODO */ + .block_erase = NO_BLOCK_ERASE_FUNC, /* TODO */ }, }, - .write = NULL, /* TODO */ - .read = read_memmapped, + .write = 0, /* TODO */ + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -3502,19 +3626,19 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_ERASED_ZERO, .tested = TEST_OK_PREW, .spi_cmd_set = SPI_EDI, - .probe = edi_probe_kb9012, + .probe = PROBE_EDI_KB9012, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {128, 1024} }, - .block_erase = edi_chip_block_erase, + .block_erase = EDI_CHIP_BLOCK_ERASE, }, }, - .write = edi_chip_write, - .read = edi_chip_read, + .write = EDI_CHIP_WRITE, + .read = EDI_CHIP_READ, .voltage = {2700, 3600}, - .gran = write_gran_128bytes, + .gran = WRITE_GRAN_128BYTES, }, { @@ -3529,22 +3653,22 @@ const struct flashchip flashchips[] = { * supports read (0x53), fast read (0x5B), erase (0xD5) and program (0x52) instructions. */ .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast Read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast Read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -3560,22 +3684,22 @@ const struct flashchip flashchips[] = { * supports read (0x53), fast read (0x5B), erase (0xD5) and program (0x52) instructions. */ .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast Read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast Read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -3591,22 +3715,22 @@ const struct flashchip flashchips[] = { * supports read (0x53), fast read (0x5B), erase (0xD5) and program (0x52) instructions. */ .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast Read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast Read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -3620,28 +3744,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_1, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE1, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -3655,28 +3779,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EITHER | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_bpl, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_BPL, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -3690,7 +3814,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -3701,14 +3825,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -3722,7 +3846,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -3733,16 +3857,16 @@ const struct flashchip flashchips[] = { {16 * 1024, 1}, {32 * 1024, 1}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -3756,7 +3880,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -3767,16 +3891,16 @@ const struct flashchip flashchips[] = { {8 * 1024, 1}, {4 * 1024, 2}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -3790,7 +3914,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -3801,16 +3925,16 @@ const struct flashchip flashchips[] = { {16 * 1024, 1}, {32 * 1024, 3}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -3824,7 +3948,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -3835,16 +3959,16 @@ const struct flashchip flashchips[] = { {8 * 1024, 1}, {4 * 1024, 2}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -3858,7 +3982,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -3870,16 +3994,16 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 31}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -3893,7 +4017,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -3905,16 +4029,16 @@ const struct flashchip flashchips[] = { {8 * 1024, 1}, {4 * 1024, 2}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -3928,7 +4052,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -3940,16 +4064,16 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 3} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -3963,7 +4087,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -3975,16 +4099,16 @@ const struct flashchip flashchips[] = { {8 * 1024, 1}, {4 * 1024, 2}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -3999,7 +4123,7 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -4011,16 +4135,16 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 63}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4035,7 +4159,7 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -4047,16 +4171,16 @@ const struct flashchip flashchips[] = { {8 * 1024, 1}, {4 * 1024, 2}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4070,7 +4194,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -4082,16 +4206,16 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 7} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4105,7 +4229,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -4117,16 +4241,16 @@ const struct flashchip flashchips[] = { {8 * 1024, 1}, {4 * 1024, 2}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4141,7 +4265,7 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -4153,16 +4277,16 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 127}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4177,7 +4301,7 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -4189,16 +4313,16 @@ const struct flashchip flashchips[] = { {8 * 1024, 1}, {4 * 1024, 2}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4212,7 +4336,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -4224,16 +4348,16 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 15} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4247,7 +4371,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -4259,16 +4383,16 @@ const struct flashchip flashchips[] = { {8 * 1024, 1}, {4 * 1024, 2}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4282,31 +4406,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -4319,32 +4443,32 @@ const struct flashchip flashchips[] = { .total_size = 128, .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, - .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -4358,28 +4482,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -4393,31 +4517,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -4431,28 +4555,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -4466,28 +4590,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -4501,28 +4625,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -4536,28 +4660,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -4571,23 +4695,23 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4601,22 +4725,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4630,22 +4754,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4659,22 +4783,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4689,22 +4813,22 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4718,22 +4842,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4748,22 +4872,22 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4777,22 +4901,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -4807,28 +4931,28 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, }, { @@ -4844,32 +4968,32 @@ const struct flashchip flashchips[] = { /* OTP: D16 512B/Q16 128B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { /* not supported by Q16 version */ .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -4884,28 +5008,28 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -4920,28 +5044,28 @@ const struct flashchip flashchips[] = { /* OTP: 256B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -4956,28 +5080,28 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -4992,28 +5116,28 @@ const struct flashchip flashchips[] = { /* OTP: 256B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -5029,30 +5153,37 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0x3A */ /* QPI enable 0x38, disable 0xFF */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, - .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, /* Called BP3 in datasheet, acts like TB */ + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -5068,28 +5199,28 @@ const struct flashchip flashchips[] = { /* QPI enable 0x38, disable 0xFF */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 2048, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 2048, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -5106,28 +5237,76 @@ const struct flashchip flashchips[] = { /* QPI enable 0x38, disable 0xFF */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {64 * 1024, 64} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {1024 * 4096, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {1024 * 4096, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, /* Called BP3 in datasheet, acts like TB */ + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "Eon", + .name = "EN25QH32B", + .bustype = BUS_SPI, + .manufacture_id = EON_ID_NOPREFIX, + .model_id = EON_EN25QH32, + .total_size = 4096, + .page_size = 256, + /* supports SFDP */ + /* OTP: 1536B total; enter 0x3A */ + /* QPI enable 0x38, disable 0xFF */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 4096, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 4096, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -5144,28 +5323,76 @@ const struct flashchip flashchips[] = { /* QPI enable 0x38, disable 0xFF */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 2048} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {64 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { { 8192 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { { 8192 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, /* Called BP3 in datasheet, acts like TB */ + }, + .decode_range = DECODE_RANGE_SPI25_64K_BLOCK, + }, + + { + .vendor = "Eon", + .name = "EN25QH64A", + .bustype = BUS_SPI, + .manufacture_id = EON_ID_NOPREFIX, + .model_id = EON_EN25QH64, + .total_size = 8192, + .page_size = 256, + /* supports SFDP */ + /* OTP: 512B total; enter 0x3A */ + /* QPI enable 0x38, disable 0xFF */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 8192 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 8192 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -5180,28 +5407,28 @@ const struct flashchip flashchips[] = { /* OTP: 256B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, }, @@ -5216,31 +5443,31 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, - }, { - .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {64 * 1024, 32} }, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_en25s_wp, - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_EN25S_WP, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, }, @@ -5255,28 +5482,28 @@ const struct flashchip flashchips[] = { /* OTP: 256B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, }, @@ -5291,31 +5518,31 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 128} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4096 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4096 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_en25s_wp, - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_EN25S_WP, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, }, @@ -5330,28 +5557,28 @@ const struct flashchip flashchips[] = { /* OTP: 256B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, }, @@ -5365,29 +5592,29 @@ const struct flashchip flashchips[] = { .page_size = 256, /* OTP: 512B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, - .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8192 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8192 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_en25s_wp, - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_EN25S_WP, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, }, @@ -5402,28 +5629,28 @@ const struct flashchip flashchips[] = { /* OTP: 256B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, }, @@ -5437,7 +5664,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_ADDR_AAA | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -5448,14 +5675,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 3}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -5469,7 +5696,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_ADDR_AAA | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -5480,14 +5707,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -5501,21 +5728,21 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {16 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -5529,7 +5756,7 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -5538,14 +5765,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 8}, {64 * 1024, 127}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -5559,7 +5786,7 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -5568,14 +5795,14 @@ const struct flashchip flashchips[] = { {64 * 1024, 127}, {8 * 1024, 8}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -5589,20 +5816,20 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -5616,20 +5843,20 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {128 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -5642,21 +5869,21 @@ const struct flashchip flashchips[] = { .total_size = 512, .page_size = 4 * 1024, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* 3.0-3.6V for type -45R and 55R, others 2.7-3.6V */ }, @@ -5670,7 +5897,7 @@ const struct flashchip flashchips[] = { .page_size = 8192, .feature_bits = FEATURE_ADDR_SHIFTED, .tested = TEST_OK_PREW, - .probe = probe_en29lv640b, + .probe = PROBE_EN29LV640B, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -5679,14 +5906,286 @@ const struct flashchip flashchips[] = { {8 * 1024, 8}, {64 * 1024, 127}, }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_en29lv640b, - .read = read_memmapped, + .write = WRITE_EN29LV640B, + .read = READ_MEMMAPPED, + .voltage = {2700, 3600}, + }, + + { + .vendor = "Fudan", + .name = "FM25F005", + .bustype = BUS_SPI, + .manufacture_id = FUDAN_ID_NOPREFIX, + .model_id = FUDAN_FM25F005, + .total_size = 64, + .page_size = 256, + /* OTP: 256B total; enter 0x3A */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = { + { + .eraseblocks = { {4 * 1024, 16} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 2} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {64 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {64 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_TB_BPL, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O (0x3B) supported */ + .voltage = {2700, 3600}, /* 2.3-2.7V acceptable results in lower performance */ + }, + + { + .vendor = "Fudan", + .name = "FM25F01", + .bustype = BUS_SPI, + .manufacture_id = FUDAN_ID_NOPREFIX, + .model_id = FUDAN_FM25F01, + .total_size = 128, + .page_size = 256, + /* OTP: 256B total; enter 0x3A */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = { + { + .eraseblocks = { {4 * 1024, 32} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 4} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 2} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {128 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {128 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_TB_BPL, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O (0x3B) supported */ + .voltage = {2700, 3600}, /* 2.3-2.7V acceptable results in lower performance */ + }, + + { + .vendor = "Fudan", + .name = "FM25F02(A)", + .bustype = BUS_SPI, + .manufacture_id = FUDAN_ID_NOPREFIX, + .model_id = FUDAN_FM25F02, + .total_size = 256, + .page_size = 256, + /* OTP: 256B total; enter 0x3A, (A version only:) read ID 0x4B */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = { + { + .eraseblocks = { {4 * 1024, 64} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 8} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 4} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {1024 * 256, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {1024 * 256, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + }, + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_TB_BPL, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O (0x3B) supported */ + .voltage = {2700, 3600}, /* 2.3-2.7V acceptable results in lower performance */ + }, + + { + .vendor = "Fudan", + .name = "FM25F04(A)", + .bustype = BUS_SPI, + .manufacture_id = FUDAN_ID_NOPREFIX, + .model_id = FUDAN_FM25F04, + .total_size = 512, + .page_size = 256, + /* OTP: 256B total; enter 0x3A, (A version only:) read ID 0x4B */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = { + { + .eraseblocks = { {4 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 16} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 8} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {1024 * 512, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {1024 * 512, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + }, + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_TB_BPL, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O (0x3B) supported */ + .voltage = {2700, 3600}, + }, + + { + .vendor = "Fudan", + .name = "FM25Q08", + .bustype = BUS_SPI, + .manufacture_id = FUDAN_ID_NOPREFIX, + .model_id = FUDAN_FM25Q08, + .total_size = 1024, + .page_size = 256, + /* supports SFDP */ + /* OTP: 1024B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + /* QPI enable 0x38, disable 0xFF */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = { + { + .eraseblocks = { {4 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 32} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 16} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + }, + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_TB_BPL, /* bit6 selects size of protected blocks; TODO: SR2 */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ + .voltage = {2700, 3600}, + }, + + { + .vendor = "Fudan", + .name = "FM25Q16", + .bustype = BUS_SPI, + .manufacture_id = FUDAN_ID_NOPREFIX, + .model_id = FUDAN_FM25Q16, + .total_size = 2048, + .page_size = 256, + /* supports SFDP */ + /* OTP: 1024B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + /* QPI enable 0x38, disable 0xFF */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = { + { + .eraseblocks = { {4 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 64} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 32} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {2 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {2 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_TB_BPL, /* bit6 selects size of protected blocks; TODO: SR2 */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ + .voltage = {2700, 3600}, + }, + + { + .vendor = "Fudan", + .name = "FM25Q32", + .bustype = BUS_SPI, + .manufacture_id = FUDAN_ID_NOPREFIX, + .model_id = FUDAN_FM25Q32, + .total_size = 4096, + .page_size = 256, + /* supports SFDP */ + /* OTP: 1024B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + /* QPI enable 0x38, disable 0xFF */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = { + { + .eraseblocks = { {4 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 64} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {4 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {4 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + }, + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_TB_BPL, /* bit6 selects size of protected blocks; TODO: SR2 */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -5700,7 +6199,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -5711,14 +6210,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 7}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = NULL, - .read = read_memmapped, + .write = 0, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -5732,7 +6231,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -5743,14 +6242,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = NULL, - .read = read_memmapped, + .write = 0, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -5765,7 +6264,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt .block_erasers = { @@ -5776,14 +6275,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 7}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4750, 5250}, /* 4.75-5.25V for type -55, others 4.5-5.5V */ }, @@ -5797,7 +6296,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_AAA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt .block_erasers = { @@ -5808,14 +6307,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4750, 5250}, /* 4.75-5.25V for type -55, others 4.5-5.5V */ }, @@ -5829,7 +6328,7 @@ const struct flashchip flashchips[] = { .page_size = 0, .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt .block_erasers = { @@ -5840,14 +6339,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 31}, }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, /* Supports a fast mode too */ - .read = read_memmapped, + .write = WRITE_JEDEC1, /* Supports a fast mode too */ + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* 3.0-3.6V for type -70, others 2.7-3.6V */ }, @@ -5861,7 +6360,7 @@ const struct flashchip flashchips[] = { .page_size = 0, .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt .block_erasers = { @@ -5872,14 +6371,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, /* Supports a fast mode too */ - .read = read_memmapped, + .write = WRITE_JEDEC1, /* Supports a fast mode too */ + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* 3.0-3.6V for type -70, others 2.7-3.6V */ }, @@ -5894,71 +6393,81 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 512} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, { .vendor = "GigaDevice", - .name = "GD25LQ128C/GD25LQ128D", + .name = "GD25LQ128C/GD25LQ128D/GD25LQ128E", .bustype = BUS_SPI, .manufacture_id = GIGADEVICE_ID, .model_id = GIGADEVICE_GD25LQ128CD, .total_size = 16384, .page_size = 256, /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, - .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_WRSR_EXT2, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 512} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1695, 1950}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, /* Called BP3 in datasheet, acts like TB */ + .sec = {STATUS1, 6, RW}, /* Called BP4 in datasheet, acts like SEC */ + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -5972,31 +6481,31 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1695, 1950}, }, @@ -6011,31 +6520,31 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 128} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1695, 1950}, }, @@ -6050,31 +6559,31 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1695, 1950}, }, @@ -6087,34 +6596,44 @@ const struct flashchip flashchips[] = { .total_size = 8192, .page_size = 256, /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, - .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_WRSR_EXT2, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 256} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1695, 1950}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, /* Called BP3 in datasheet, acts like TB */ + .sec = {STATUS1, 6, RW}, /* Called BP4 in datasheet, acts like SEC */ + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -6128,31 +6647,31 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1695, 1950}, }, @@ -6166,31 +6685,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 2} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -6204,35 +6723,45 @@ const struct flashchip flashchips[] = { .page_size = 256, /* OTP: 1536B total; read 0x48; write 0x42, erase 0x44 */ /* QPI: enable 0x38, disable 0xFF */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, - .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | FEATURE_WRSR2, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 512} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, /* TODO: 2nd status reg (read 0x35, write 0x31) and 3rd status reg (read 0x15, write 0x11) */ - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, /* Called BP3 in datasheet, acts like TB */ + .sec = {STATUS1, 6, RW}, /* Called BP4 in datasheet, acts like SEC */ + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -6246,31 +6775,31 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 (B version only) */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -6284,79 +6813,88 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 8} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, { .vendor = "GigaDevice", - .name = "GD25Q256D", + .name = "GD25Q256D/GD25Q256E", .bustype = BUS_SPI, .manufacture_id = GIGADEVICE_ID, .model_id = GIGADEVICE_GD25Q256D, .total_size = 32768, .page_size = 256, - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, - .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA | + FEATURE_WRSR_EXT2 | FEATURE_WRSR2 | FEATURE_WRSR3, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {32 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 6, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 5, RW}}, + .tb = {STATUS1, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -6368,34 +6906,44 @@ const struct flashchip flashchips[] = { .total_size = 4096, .page_size = 256, /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, - .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_WRSR2, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 128} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, /* Called BP3 in datasheet, acts like TB */ + .sec = {STATUS1, 6, RW}, /* Called BP4 in datasheet, acts like SEC */ + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -6407,32 +6955,32 @@ const struct flashchip flashchips[] = { .total_size = 512, .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, - .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -6446,28 +6994,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -6480,34 +7028,44 @@ const struct flashchip flashchips[] = { .total_size = 8192, .page_size = 256, /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, - .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_WRSR2, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 256} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, /* Called BP3 in datasheet, acts like TB */ + .sec = {STATUS1, 6, RW}, /* Called BP4 in datasheet, acts like SEC */ + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -6521,31 +7079,31 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 (B version only) */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -6560,31 +7118,31 @@ const struct flashchip flashchips[] = { /* OTP: 256B total; enter 0x3A */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -6600,31 +7158,31 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total; read 0x48, write 0x42, erase 0x44 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { { 64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2300, 3600}, }, @@ -6639,31 +7197,31 @@ const struct flashchip flashchips[] = { /* OTP: 1536B total; read 0x48, write 0x42, erase 0x44 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 32 * 1024, 8} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { { 64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2300, 3600}, }, @@ -6679,31 +7237,31 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total; read 0x48, write 0x42, erase 0x44 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { { 64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2300, 3600}, }, @@ -6718,31 +7276,31 @@ const struct flashchip flashchips[] = { /* OTP: 1536B total; read 0x48, write 0x42, erase 0x44 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { { 64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2300, 3600}, }, @@ -6758,35 +7316,73 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total; read 0x48, write 0x42, erase 0x44 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { { 32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { { 64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp4_srwd, - .unlock = spi_disable_blockprotect_bp4_srwd, /* TODO: 2nd status reg (read with 0x35) */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, /* TODO: 2nd status reg (read with 0x35) */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2300, 3600}, }, { + .vendor = "GigaDevice", + .name = "GD25WQ80E", + .bustype = BUS_SPI, + .manufacture_id = GIGADEVICE_ID, + .model_id = GIGADEVICE_GD25WQ80E, + .total_size = 1024, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 32} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 16} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {1 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {1 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP4_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP4_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1650, 3600}, + }, + + { .vendor = "Hyundai", .name = "HY29F002B", .bustype = BUS_PARALLEL, @@ -6796,7 +7392,7 @@ const struct flashchip flashchips[] = { .page_size = 256 * 1024, .feature_bits = FEATURE_EITHER_RESET, /* Some revisions may need FEATURE_ADDR_2AA */ .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -6807,14 +7403,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 3}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4750, 5250}, /* 4.75-5.25V for type -45, others 4.5-5.5V */ }, @@ -6828,7 +7424,7 @@ const struct flashchip flashchips[] = { .page_size = 256 * 1024, .feature_bits = FEATURE_EITHER_RESET, /* Some revisions may need FEATURE_ADDR_2AA */ .tested = TEST_OK_PRE, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -6839,14 +7435,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4750, 5250}, /* 4.75-5.25V for type -45, others 4.5-5.5V */ }, @@ -6860,20 +7456,20 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -6887,34 +7483,34 @@ const struct flashchip flashchips[] = { .page_size = 256, /* OTP: 1024B total; read 0x48; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, - .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 256} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2300, 3600}, }, @@ -6929,33 +7525,33 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total; read 0x48; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 512} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2300, 3600}, }, @@ -6969,43 +7565,43 @@ const struct flashchip flashchips[] = { .page_size = 256, /* supports SFDP */ /* OTP: 1024B total; read 0x68; write 0x62, erase 0x64, read ID 0x4B */ - /* FOUR_BYTE_ADDR: supports 4-bytes addressing mode */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA | FEATURE_4BA_ENTER_EAR7, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | + FEATURE_4BA | FEATURE_4BA_ENTER_EAR7 | FEATURE_4BA_EAR_1716, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_20, - /* could also use spi_block_erase_d7 */ + .block_erase = SPI_BLOCK_ERASE_20, + /* could also use SPI_BLOCK_ERASE_D7 */ }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {32 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2300, 3600}, }, @@ -7021,33 +7617,33 @@ const struct flashchip flashchips[] = { /* QPI enable 0x35, disable 0xF5 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 128} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, }, @@ -7063,33 +7659,33 @@ const struct flashchip flashchips[] = { /* QPI enable 0x35, disable 0xF5 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 256} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, }, @@ -7105,33 +7701,33 @@ const struct flashchip flashchips[] = { /* QPI enable 0x35, disable 0xF5 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 512} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, }, @@ -7145,43 +7741,43 @@ const struct flashchip flashchips[] = { .page_size = 256, /* supports SFDP */ /* OTP: 1024B total; read 0x68; write 0x62, erase 0x64, read ID 0x4B */ - /* FOUR_BYTE_ADDR: supports 4-bytes addressing mode */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA | FEATURE_4BA_ENTER_EAR7, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | + FEATURE_4BA | FEATURE_4BA_ENTER_EAR7 | FEATURE_4BA_EAR_1716, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_20, - /* could also use spi_block_erase_d7 */ + .block_erase = SPI_BLOCK_ERASE_20, + /* could also use SPI_BLOCK_ERASE_D7 */ }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {32 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, }, @@ -7195,7 +7791,7 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -7204,14 +7800,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 8}, {64 * 1024, 127}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -7225,20 +7821,20 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -7252,7 +7848,7 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -7261,14 +7857,14 @@ const struct flashchip flashchips[] = { {64 * 1024, 127}, {8 * 1024, 8}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -7282,20 +7878,20 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {128 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -7310,7 +7906,7 @@ const struct flashchip flashchips[] = { /* OTP: 506B total (2x 8B, 30x 16B, 1x 10B); read 0x4B; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -7322,19 +7918,19 @@ const struct flashchip flashchips[] = { {8 * 1024, 8}, {64 * 1024, 31} // inaccessible }, - .block_erase = spi_block_erase_40, + .block_erase = SPI_BLOCK_ERASE_40, }, { */ .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_ep_srwd, - .unlock = spi_disable_blockprotect_bp2_ep_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* also fast read 0x0B */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_EP_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_EP_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* also fast read 0x0B */ .voltage = {2700, 3600}, }, @@ -7349,7 +7945,7 @@ const struct flashchip flashchips[] = { /* OTP: 506B total (2x 8B, 30x 16B, 1x 10B); read 0x4B; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -7361,19 +7957,19 @@ const struct flashchip flashchips[] = { {64 * 1024, 31}, // inaccessible {8 * 1024, 8} }, - .block_erase = spi_block_erase_40, + .block_erase = SPI_BLOCK_ERASE_40, }, { */ .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_ep_srwd, - .unlock = spi_disable_blockprotect_bp2_ep_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* also fast read 0x0B */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_EP_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_EP_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* also fast read 0x0B */ .voltage = {2700, 3600}, }, @@ -7388,7 +7984,7 @@ const struct flashchip flashchips[] = { /* OTP: 506B total (2x 8B, 30x 16B, 1x 10B); read 0x4B; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -7400,19 +7996,19 @@ const struct flashchip flashchips[] = { {8 * 1024, 8}, {64 * 1024, 63} // inaccessible }, - .block_erase = spi_block_erase_40, + .block_erase = SPI_BLOCK_ERASE_40, }, { */ .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_ep_srwd, - .unlock = spi_disable_blockprotect_bp2_ep_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* also fast read 0x0B */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_EP_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_EP_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* also fast read 0x0B */ .voltage = {2700, 3600}, }, @@ -7427,7 +8023,7 @@ const struct flashchip flashchips[] = { /* OTP: 506B total (2x 8B, 30x 16B, 1x 10B); read 0x4B; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -7439,19 +8035,19 @@ const struct flashchip flashchips[] = { {64 * 1024, 63}, // inaccessible {8 * 1024, 8} }, - .block_erase = spi_block_erase_40, + .block_erase = SPI_BLOCK_ERASE_40, }, { */ .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_ep_srwd, - .unlock = spi_disable_blockprotect_bp2_ep_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* also fast read 0x0B */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_EP_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_EP_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* also fast read 0x0B */ .voltage = {2700, 3600}, }, @@ -7465,8 +8061,8 @@ const struct flashchip flashchips[] = { .page_size = 256, /* OTP: 506B total (2x 8B, 30x 16B, 1x 10B); read 0x4B; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, - .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -7478,19 +8074,19 @@ const struct flashchip flashchips[] = { {8 * 1024, 8}, {64 * 1024, 127} // inaccessible }, - .block_erase = spi_block_erase_40, + .block_erase = SPI_BLOCK_ERASE_40, }, { */ .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_ep_srwd, - .unlock = spi_disable_blockprotect_bp2_ep_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* also fast read 0x0B */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_EP_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_EP_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* also fast read 0x0B */ .voltage = {2700, 3600}, }, @@ -7505,7 +8101,7 @@ const struct flashchip flashchips[] = { /* OTP: 506B total (2x 8B, 30x 16B, 1x 10B); read 0x4B; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -7517,19 +8113,19 @@ const struct flashchip flashchips[] = { {64 * 1024, 127}, // inaccessible {8 * 1024, 8} }, - .block_erase = spi_block_erase_40, + .block_erase = SPI_BLOCK_ERASE_40, }, { */ .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_ep_srwd, - .unlock = spi_disable_blockprotect_bp2_ep_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* also fast read 0x0B */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_EP_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_EP_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* also fast read 0x0B */ .voltage = {2700, 3600}, }, @@ -7542,7 +8138,7 @@ const struct flashchip flashchips[] = { .total_size = 128, .page_size = 128 * 1024, /* 8k + 2x4k + 112k */ .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -7552,11 +8148,11 @@ const struct flashchip flashchips[] = { {4 * 1024, 2}, {112 * 1024, 1}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, }, - .write = write_82802ab, - .read = read_memmapped, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -7569,7 +8165,7 @@ const struct flashchip flashchips[] = { .total_size = 128, .page_size = 128 * 1024, /* 112k + 2x4k + 8k */ .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -7579,11 +8175,11 @@ const struct flashchip flashchips[] = { {4 * 1024, 2}, {8 * 1024, 1}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, }, - .write = write_82802ab, - .read = read_memmapped, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -7596,7 +8192,7 @@ const struct flashchip flashchips[] = { .total_size = 256, .page_size = 256 * 1024, .tested = TEST_OK_PRE, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -7607,11 +8203,11 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, }, - .write = write_82802ab, - .read = read_memmapped, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, }, { @@ -7623,7 +8219,7 @@ const struct flashchip flashchips[] = { .total_size = 512, .page_size = 128 * 1024, /* maximal block size */ .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -7634,11 +8230,11 @@ const struct flashchip flashchips[] = { {96 * 1024, 1}, {128 * 1024, 3}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, }, - .write = write_82802ab, - .read = read_memmapped, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, }, { @@ -7650,7 +8246,7 @@ const struct flashchip flashchips[] = { .total_size = 512, .page_size = 128 * 1024, /* maximal block size */ .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -7661,11 +8257,11 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, }, - .write = write_82802ab, - .read = read_memmapped, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, }, { @@ -7677,18 +8273,18 @@ const struct flashchip flashchips[] = { .total_size = 512, .page_size = 256, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, }, - .unlock = unlock_28f004s5, - .write = write_82802ab, - .read = read_memmapped, + .unlock = UNLOCK_28F004S5, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, }, { @@ -7701,7 +8297,7 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* maximal block size */ .feature_bits = FEATURE_ADDR_SHIFTED, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -7712,11 +8308,11 @@ const struct flashchip flashchips[] = { {96 * 1024, 1}, {128 * 1024, 3}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, }, - .write = write_82802ab, - .read = read_memmapped, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, }, { @@ -7729,7 +8325,7 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* maximal block size */ .feature_bits = FEATURE_ADDR_SHIFTED, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -7740,16 +8336,16 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, }, - .write = write_82802ab, - .read = read_memmapped, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, }, { .vendor = "Intel", - .name = "82802AB", + .name = "AT82802AB", .bustype = BUS_FWH, .manufacture_id = INTEL_ID, .model_id = INTEL_82802AB, @@ -7757,18 +8353,18 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PREW, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_IGNORED, /* routine does not use probe_timing (82802ab.c) */ .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, }, - .unlock = unlock_regspace2_uniform_64k, - .write = write_82802ab, - .read = read_memmapped, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -7782,18 +8378,18 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PR, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_IGNORED, /* routine does not use probe_timing (82802ab.c) */ .block_erasers = { { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, }, - .unlock = unlock_regspace2_uniform_64k, - .write = write_82802ab, - .read = read_memmapped, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -7806,10 +8402,10 @@ const struct flashchip flashchips[] = { .total_size = 16384, .page_size = 256, .tested = {.probe = NT, .read = NT, .erase = NA, .write = NA}, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, - .write = NULL, /* MX23L12854 is a mask ROM, so it is read-only */ - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .write = 0, /* MX23L12854 is a mask ROM, so it is read-only */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {3000, 3600}, }, @@ -7822,10 +8418,10 @@ const struct flashchip flashchips[] = { .total_size = 2048, .page_size = 256, .tested = {.probe = NT, .read = NT, .erase = NA, .write = NA}, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, - .write = NULL, /* MX23L1654 is a mask ROM, so it is read-only */ - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .write = 0, /* MX23L1654 is a mask ROM, so it is read-only */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {3000, 3600}, }, @@ -7838,10 +8434,10 @@ const struct flashchip flashchips[] = { .total_size = 4096, .page_size = 256, .tested = {.probe = OK, .read = OK, .erase = NA, .write = NA}, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, - .write = NULL, /* MX23L3254 is a mask ROM, so it is read-only */ - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .write = 0, /* MX23L3254 is a mask ROM, so it is read-only */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {3000, 3600}, }, @@ -7854,10 +8450,10 @@ const struct flashchip flashchips[] = { .total_size = 8192, .page_size = 256, .tested = {.probe = OK, .read = OK, .erase = NA, .write = NA}, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, - .write = NULL, /* MX23L6454 is a mask ROM, so it is read-only */ - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .write = 0, /* MX23L6454 is a mask ROM, so it is read-only */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {3000, 3600}, }, @@ -7872,28 +8468,28 @@ const struct flashchip flashchips[] = { /* MX25L1006E supports SFDP */ .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 2} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported, MX25L1006E supports dual I/O */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported, MX25L1006E supports dual I/O */ .voltage = {2700, 3600}, }, @@ -7908,68 +8504,68 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, { .vendor = "Macronix", - .name = "MX25L12835F/MX25L12845E/MX25L12865E", + .name = "MX25L12833F/MX25L12835F/MX25L12845E/MX25L12865E/MX25L12873F", .bustype = BUS_SPI, .manufacture_id = MACRONIX_ID, .model_id = MACRONIX_MX25L12805D, .total_size = 16384, .page_size = 256, - /* OTP: 512B total; enter 0xB1, exit 0xC1 */ + /* OTP: MX25L12833F has 1KB total, others have 512B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 512} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, /* TODO: security register and SBLK/SBULK; MX25L12835F: configuration register */ - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -7983,28 +8579,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp2_srwd, /* bit6: error flag */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, /* bit6: error flag */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -8019,31 +8615,31 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; enter 0xB1, exit 0xC1 (MX25L1606E and MX25L1608E only) */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* MX25L1605A bp2 only */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported (MX25L1608E supports dual-I/O read) */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* MX25L1605A bp2 only */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported (MX25L1608E supports dual-I/O read) */ .voltage = {2700, 3600}, }, @@ -8057,28 +8653,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6: Continuously Program (CP) mode, for 73E is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6: Continuously Program (CP) mode, for 73E is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O supported */ .voltage = {2700, 3600}, }, @@ -8092,29 +8688,29 @@ const struct flashchip flashchips[] = { .page_size = 256, /* OTP: 64B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, - .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -8129,28 +8725,28 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -8164,31 +8760,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -8203,41 +8799,41 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {32 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, /* TODO: security register and SBLK/SBULK; MX25L12835F: configuration register */ - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -8251,28 +8847,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp2_srwd, /* bit6: error flag */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, /* bit6: error flag */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -8287,28 +8883,28 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6: continuously program mode */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and dual I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6: continuously program mode */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and dual I/O supported */ .voltage = {2700, 3600}, }, @@ -8322,33 +8918,40 @@ const struct flashchip flashchips[] = { .page_size = 256, /* OTP: 64B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, - .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp3_srwd, - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and dual I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and dual I/O supported */ .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .cmp = {STATUS1, 5, RW}, /* Called BP3 in datasheet, acts like CMP */ + }, + .decode_range = DECODE_RANGE_SPI25_BIT_CMP, }, { @@ -8362,68 +8965,68 @@ const struct flashchip flashchips[] = { /* OTP: 256B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, { .vendor = "Macronix", - .name = "MX25L3273E", + .name = "MX25L3233F/MX25L3273E", .bustype = BUS_SPI, .manufacture_id = MACRONIX_ID, .model_id = MACRONIX_MX25L3205, .total_size = 4096, .page_size = 256, - /* OTP: 64B total; enter 0xB1, exit 0xC1 */ + /* OTP: 512B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 128} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp3_srwd, - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and dual I/O supported */ - .voltage = {2700, 3600}, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and dual I/O supported */ + .voltage = {2700, 3600}, /* 33F 2.65V..3.6V */ }, { @@ -8436,31 +9039,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -8475,36 +9078,74 @@ const struct flashchip flashchips[] = { /* MX25L512E supports SFDP */ .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported, MX25L512E supports dual I/O */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported, MX25L512E supports dual I/O */ .voltage = {2700, 3600}, /* 2.35-3.6V for MX25V512(C) */ }, { .vendor = "Macronix", + .name = "MX25L5121E", + .bustype = BUS_SPI, + .manufacture_id = MACRONIX_ID, + .model_id = MACRONIX_MX25L5121E, + .total_size = 64, + .page_size = 32, + .feature_bits = FEATURE_WRSR_WREN, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 16} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {64 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {64 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {64 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + }, + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ + .voltage = {2700, 3600}, + }, + + { + .vendor = "Macronix", .name = "MX25L6405", .bustype = BUS_SPI, .manufacture_id = MACRONIX_ID, @@ -8514,29 +9155,35 @@ const struct flashchip flashchips[] = { /* Has an additional 512B EEPROM sector */ .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6: error flag */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6: error flag */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 5, RW}}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -8550,29 +9197,36 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6: continuously program mode */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual I/O read (0xBB) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6: continuously program mode */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O read (0xBB) supported */ .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .cmp = {STATUS1, 5, RW}, /* Called BP3 in datasheet, acts like CMP */ + }, + .decode_range = DECODE_RANGE_SPI25_BIT_CMP, }, { @@ -8586,38 +9240,45 @@ const struct flashchip flashchips[] = { /* MX25L6406E supports SFDP */ /* OTP: 06E 64B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, - .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual I/O read supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O read supported */ .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .cmp = {STATUS1, 5, RW}, /* Called BP3 in datasheet, acts like CMP */ + }, + .decode_range = DECODE_RANGE_SPI25_BIT_CMP, }, { .vendor = "Macronix", - .name = "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F", + .name = "MX25L6436E/MX25L6445E/MX25L6465E", .bustype = BUS_SPI, .manufacture_id = MACRONIX_ID, .model_id = MACRONIX_MX25L6405, @@ -8625,34 +9286,136 @@ const struct flashchip flashchips[] = { .page_size = 256, /* supports SFDP */ /* OTP: 512B total; enter 0xB1, exit 0xC1 */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_SCUR, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 2048} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ + .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 5, RW}}, + .wps = {SECURITY, 7, OTP}, /* This bit is set by WPSEL command */ + }, + .decode_range = DECODE_RANGE_SPI25_2X_BLOCK, + }, + + { + .vendor = "Macronix", + .name = "MX25L6473E", + .bustype = BUS_SPI, + .manufacture_id = MACRONIX_ID, + .model_id = MACRONIX_MX25L6405, + .total_size = 8192, + .page_size = 256, + /* supports SFDP */ + /* OTP: 512B total; enter 0xB1, exit 0xC1 */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_WRSR_EXT2 | FEATURE_SCUR, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 2048} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ + .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 5, RW}}, + .tb = {CONFIG, 3, OTP}, + .wps = {SECURITY, 7, OTP}, /* This bit is set by WPSEL command */ + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "Macronix", + .name = "MX25L6473F", + .bustype = BUS_SPI, + .manufacture_id = MACRONIX_ID, + .model_id = MACRONIX_MX25L6405, + .total_size = 8192, + .page_size = 256, + /* supports SFDP */ + /* OTP: 512B total; enter 0xB1, exit 0xC1 */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_WRSR_EXT2, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 256} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 5, RW}}, + .tb = {CONFIG, 3, OTP}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -8666,30 +9429,30 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, - }, { - .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 256} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -8705,36 +9468,75 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; enter 0xB1, exit 0xC1 (MX25L8006E, MX25L8008E only) */ .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, /* 2.35-3.6V for MX25V8005 */ }, { .vendor = "Macronix", + .name = "MX25R3235F", + .bustype = BUS_SPI, + .manufacture_id = MACRONIX_ID, + .model_id = MACRONIX_MX25R3235F, + .total_size = 4096, + .page_size = 256, + /* OTP: 1024B total; enter 0xB1, exit 0xC1 */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 64} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {4 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {4 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit 6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ + .voltage = {1650, 3600}, + }, + + { + .vendor = "Macronix", .name = "MX25R6435F", .bustype = BUS_SPI, .manufacture_id = MACRONIX_ID, @@ -8744,36 +9546,142 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, - }, { - .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 256} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1650, 3600}, }, { .vendor = "Macronix", + .name = "MX25V4035F", + .bustype = BUS_SPI, + .manufacture_id = MACRONIX_ID, + .model_id = MACRONIX_MX25V4035F, + .total_size = 512, + .page_size = 256, + /* OTP: 8KiB total; enter 0xB1, exit 0xC1 */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | FEATURE_SCUR, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { { 4 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 16} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 8} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {512 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ + .voltage = {2300, 3600}, + }, + { + .vendor = "Macronix", + .name = "MX25V8035F", + .bustype = BUS_SPI, + .manufacture_id = MACRONIX_ID, + .model_id = MACRONIX_MX25V8035F, + .total_size = 1024, + .page_size = 256, + /* OTP: 8KiB total; enter 0xB1, exit 0xC1 */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | FEATURE_SCUR, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { { 4 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 32} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 16} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {1 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ + .voltage = {2300, 3600}, + }, + { + .vendor = "Macronix", + .name = "MX25V1635F", + .bustype = BUS_SPI, + .manufacture_id = MACRONIX_ID, + .model_id = MACRONIX_MX25V1635F, + .total_size = 2048, + .page_size = 256, + /* OTP: 8KiB total; enter 0xB1, exit 0xC1 */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | FEATURE_SCUR, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { { 4 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 64} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 32} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {2 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ + .voltage = {2300, 3600}, + }, + + { + .vendor = "Macronix", .name = "MX25U12835F", .bustype = BUS_SPI, .manufacture_id = MACRONIX_ID, @@ -8783,32 +9691,32 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 512} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, /* TODO: security register */ - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1650, 2000}, }, @@ -8824,32 +9732,32 @@ const struct flashchip flashchips[] = { /* QPI enable 0x35, disable 0xF5 (0xFF et al. work too) */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PR, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, /* TODO: security register */ - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1650, 2000}, }, @@ -8863,42 +9771,42 @@ const struct flashchip flashchips[] = { .page_size = 256, /* OTP: 512B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | FEATURE_4BA, - .tested = TEST_OK_PR, - .probe = probe_spi_rdid, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {32 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, /* TODO: security register */ - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1650, 2000}, }, @@ -8915,32 +9823,32 @@ const struct flashchip flashchips[] = { /* QPI enable 0x35, disable 0xF5 (0xFF et al. work too) */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 128} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, /* TODO: security register */ - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1650, 2000}, }, @@ -8955,41 +9863,41 @@ const struct flashchip flashchips[] = { /* OTP: 512B factory programmed and 512B customer programmed; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | FEATURE_4BA, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16384} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 16384} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 2048} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 2048} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 1024} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 1024} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {64 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, /* TODO: security register */ - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1650, 2000}, }, @@ -9006,32 +9914,32 @@ const struct flashchip flashchips[] = { /* QPI enable 0x35, disable 0xF5 (0xFF et al. work too) */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 256} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, /* TODO: security register */ - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1650, 2000}, }, @@ -9046,32 +9954,32 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, /* TODO: security register */ - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1650, 2000}, }, @@ -9085,7 +9993,7 @@ const struct flashchip flashchips[] = { .page_size = 32 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -9097,14 +10005,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -9118,7 +10026,7 @@ const struct flashchip flashchips[] = { .page_size = 32 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -9130,14 +10038,14 @@ const struct flashchip flashchips[] = { {4 * 1024, 2}, {8 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -9151,7 +10059,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -9162,14 +10070,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 3}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -9183,7 +10091,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -9194,14 +10102,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -9215,7 +10123,7 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -9226,14 +10134,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 3}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -9247,7 +10155,7 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -9258,14 +10166,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -9279,20 +10187,20 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -9306,20 +10214,20 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {128 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -9333,7 +10241,7 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -9342,14 +10250,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 8}, {64 * 1024, 63}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -9363,20 +10271,20 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -9390,7 +10298,7 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -9399,14 +10307,14 @@ const struct flashchip flashchips[] = { {64 * 1024, 63}, {8 * 1024, 8}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -9420,7 +10328,7 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -9429,14 +10337,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 8}, {64 * 1024, 127}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -9450,20 +10358,20 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -9477,7 +10385,7 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -9486,14 +10394,14 @@ const struct flashchip flashchips[] = { {64 * 1024, 127}, {8 * 1024, 8}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -9507,20 +10415,20 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -9535,47 +10443,96 @@ const struct flashchip flashchips[] = { /* OTP: 512B total; enter 0xB1, exit 0xC1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16384} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 16384} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 2048} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 2048} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 1024} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 1024} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {64 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, /* TODO: security register and SBLK/SBULK; MX25L12835F: configuration register */ - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ + .voltage = {2700, 3600}, + }, + + { + .vendor = "Macronix", + .name = "MX66L1G45G", + .bustype = BUS_SPI, + .manufacture_id = MACRONIX_ID, + .model_id = MACRONIX_MX66L1G45G, + .total_size = 131072, + .page_size = 256, + /* OTP: 512B total; enter 0xB1, exit 0xC1 */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 32768} }, + .block_erase = SPI_BLOCK_ERASE_21, + }, { + .eraseblocks = { {4 * 1024, 32768} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 4096} }, + .block_erase = SPI_BLOCK_ERASE_5C, + }, { + .eraseblocks = { {32 * 1024, 4096} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 2048} }, + .block_erase = SPI_BLOCK_ERASE_DC, + }, { + .eraseblocks = { {64 * 1024, 2048} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {128 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {128 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + /* TODO: security register and SBLK/SBULK, configuration register */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, /* The ST M25P05 is a bit of a problem. It has the same ID as the * ST M25P05-A in RES mode, but supports only 128 byte writes instead - * of 256 byte writes. We rely heavily on the fact that probe_spi_res1 + * of 256 byte writes. We rely heavily on the fact that PROBE_SPI_RES1 * only is successful if RDID does not work. */ { @@ -9588,22 +10545,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_res1, + .probe = PROBE_SPI_RES1, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* TODO: check */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_1, /* 128 */ - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE1, /* 128 */ + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -9617,22 +10574,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* TODO: check */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -9647,22 +10604,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_res1, + .probe = PROBE_SPI_RES1, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* TODO: check */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_1, /* 128 */ - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE1, /* 128 */ + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -9676,22 +10633,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* TODO: check */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -9705,22 +10662,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* TODO: check */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -9734,22 +10691,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* TODO: check */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -9763,22 +10720,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -9792,22 +10749,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_res1, + .probe = PROBE_SPI_RES1, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -9821,22 +10778,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* TODO: check */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -9850,22 +10807,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* TODO: check */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -9879,22 +10836,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_res1, + .probe = PROBE_SPI_RES1, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* TODO: check */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, }, { @@ -9907,22 +10864,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* TODO: check */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -9936,22 +10893,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* TODO: check */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -9965,25 +10922,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 2} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -9997,25 +10954,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -10029,25 +10986,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -10061,25 +11018,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -10093,25 +11050,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -10126,25 +11083,25 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 512 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, /* bit5: T/B */ - .unlock = spi_disable_blockprotect_bp2_srwd, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, /* bit5: T/B */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2300, 3600}, }, @@ -10159,25 +11116,25 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PRE, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 1024 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, /* bit5: T/B */ - .unlock = spi_disable_blockprotect_bp2_srwd, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, /* bit5: T/B */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -10192,25 +11149,25 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 2048 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, /* bit5: T/B */ - .unlock = spi_disable_blockprotect_bp2_srwd, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, /* bit5: T/B */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -10225,25 +11182,25 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 256 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, /* bit5: T/B */ - .unlock = spi_disable_blockprotect_bp2_srwd, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, /* bit5: T/B */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -10256,22 +11213,22 @@ const struct flashchip flashchips[] = { .total_size = 128, .page_size = 256, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 512} }, - .block_erase = spi_block_erase_db, + .block_erase = SPI_BLOCK_ERASE_DB, }, { .eraseblocks = { {64 * 1024, 2} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, } }, - .printlock = spi_prettyprint_status_register_default_welwip, - .unlock = NULL, /* #WP pin write-protects lower 64kB. */ - .write = spi_chip_write_256, /* Page write (similar to PP but allows 0->1 changes) */ - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_DEFAULT_WELWIP, + .unlock = NO_BLOCKPROTECT_FUNC, /* #WP pin write-protects lower 64kB. */ + .write = SPI_CHIP_WRITE256, /* Page write (similar to PP but allows 0->1 changes) */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -10284,22 +11241,22 @@ const struct flashchip flashchips[] = { .total_size = 2048, .page_size = 256, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 8192} }, - .block_erase = spi_block_erase_db, + .block_erase = SPI_BLOCK_ERASE_DB, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, } }, - .printlock = spi_prettyprint_status_register_default_welwip, - .unlock = NULL, /* #WP pin write-protects lower 64kB. */ - .write = spi_chip_write_256, /* Page write (similar to PP but allows 0->1 changes) */ - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_DEFAULT_WELWIP, + .unlock = NO_BLOCKPROTECT_FUNC, /* #WP pin write-protects lower 64kB. */ + .write = SPI_CHIP_WRITE256, /* Page write (similar to PP but allows 0->1 changes) */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -10312,22 +11269,22 @@ const struct flashchip flashchips[] = { .total_size = 256, .page_size = 256, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 1024} }, - .block_erase = spi_block_erase_db, + .block_erase = SPI_BLOCK_ERASE_DB, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, } }, - .printlock = spi_prettyprint_status_register_default_welwip, - .unlock = NULL, /* #WP pin write-protects lower 64kB. */ - .write = spi_chip_write_256, /* Page write (similar to PP but allows 0->1 changes) */ - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_DEFAULT_WELWIP, + .unlock = NO_BLOCKPROTECT_FUNC, /* #WP pin write-protects lower 64kB. */ + .write = SPI_CHIP_WRITE256, /* Page write (similar to PP but allows 0->1 changes) */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -10340,22 +11297,22 @@ const struct flashchip flashchips[] = { .total_size = 512, .page_size = 256, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 2048} }, - .block_erase = spi_block_erase_db, + .block_erase = SPI_BLOCK_ERASE_DB, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, } }, - .printlock = spi_prettyprint_status_register_default_welwip, - .unlock = NULL, /* #WP pin write-protects lower 64kB. */ - .write = spi_chip_write_256, /* Page write supported (similar to PP but allows 0->1 changes) */ - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_DEFAULT_WELWIP, + .unlock = NO_BLOCKPROTECT_FUNC, /* #WP pin write-protects lower 64kB. */ + .write = SPI_CHIP_WRITE256, /* Page write supported (similar to PP but allows 0->1 changes) */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -10368,22 +11325,22 @@ const struct flashchip flashchips[] = { .total_size = 1024, .page_size = 256, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 4096} }, - .block_erase = spi_block_erase_db, + .block_erase = SPI_BLOCK_ERASE_DB, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, } }, - .printlock = spi_prettyprint_status_register_default_welwip, - .unlock = NULL, /* #WP pin write-protects lower 64kB. */ - .write = spi_chip_write_256, /* Page write (similar to PP but allows 0->1 changes) */ - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_DEFAULT_WELWIP, + .unlock = NO_BLOCKPROTECT_FUNC, /* #WP pin write-protects lower 64kB. */ + .write = SPI_CHIP_WRITE256, /* Page write (similar to PP but allows 0->1 changes) */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -10399,31 +11356,31 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32768} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 32768} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 2048} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 2048} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32768 * 1024, 4} }, - .block_erase = spi_block_erase_c4, + .block_erase = SPI_BLOCK_ERASE_C4, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1700, 2000}, }, @@ -10439,31 +11396,31 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32768} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 32768} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 2048} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 2048} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32768 * 1024, 4} }, - .block_erase = spi_block_erase_c4, + .block_erase = SPI_BLOCK_ERASE_C4, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -10479,28 +11436,28 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1700, 2000}, }, @@ -10516,26 +11473,37 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1700, 2000}, + .reg_bits = + { + /* + * There is also a volatile lock register per 64KiB sector, which is not + * mutually exclusive with BP-based protection. + */ + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -10550,26 +11518,37 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, + .reg_bits = + { + /* + * There is also a volatile lock register per 64KiB sector, which is not + * mutually exclusive with BP-based protection. + */ + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -10584,26 +11563,37 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1700, 2000}, + .reg_bits = + { + /* + * There is also a volatile lock register per 64KiB sector, which is not + * mutually exclusive with BP-based protection. + */ + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 6, RW}}, + .tb = {STATUS1, 5, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -10618,26 +11608,37 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, + .reg_bits = + { + /* + * There is also a volatile lock register per 64KiB sector, which is not + * mutually exclusive with BP-based protection. + */ + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 6, RW}}, + .tb = {STATUS1, 5, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -10652,25 +11653,25 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16384 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1700, 2000}, }, @@ -10686,25 +11687,25 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096 } }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16384 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -10720,31 +11721,31 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32768 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1700, 2000}, }, @@ -10760,31 +11761,31 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32768 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -10800,31 +11801,31 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16384} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 16384} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 1024} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 1024} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32768 * 1024, 2} }, - .block_erase = spi_block_erase_c4, + .block_erase = SPI_BLOCK_ERASE_C4, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1700, 2000}, }, @@ -10840,31 +11841,31 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16384} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 16384} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 1024} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 1024} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32768 * 1024, 2} }, - .block_erase = spi_block_erase_c4, + .block_erase = SPI_BLOCK_ERASE_C4, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -10880,37 +11881,37 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32768} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 32768} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 4096} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 4096} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 2048} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 2048} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {65536 * 1024, 2} }, - .block_erase = spi_block_erase_c4, + .block_erase = SPI_BLOCK_ERASE_C4, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -10926,37 +11927,37 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32768} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 32768} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 4096} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 4096} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 2048} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 2048} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {65536 * 1024, 2} }, - .block_erase = spi_block_erase_c4, + .block_erase = SPI_BLOCK_ERASE_C4, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1700, 2000}, }, @@ -10972,37 +11973,37 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 65536} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 65536} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 8192} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 8192} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 4096} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 4096} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {65536 * 1024, 4} }, - .block_erase = spi_block_erase_c4, + .block_erase = SPI_BLOCK_ERASE_C4, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -11018,37 +12019,37 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 65536} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 65536} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 8192} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 8192} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 4096} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 4096} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {65536 * 1024, 4} }, - .block_erase = spi_block_erase_c4, + .block_erase = SPI_BLOCK_ERASE_C4, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1700, 2000}, }, @@ -11064,31 +12065,31 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 512} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16384 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, { .eraseblocks = { {16384 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1700, 2000}, }, @@ -11102,33 +12103,33 @@ const struct flashchip flashchips[] = { .page_size = 256, /* supports SFDP */ /* OTP: 64B total; read 0x4B, write 0x42 */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, - .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 512} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16384 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, { .eraseblocks = { {16384 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -11143,41 +12144,41 @@ const struct flashchip flashchips[] = { /* supports SFDP */ /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, - .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32768 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, { .eraseblocks = { {32768 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -11192,41 +12193,41 @@ const struct flashchip flashchips[] = { /* supports SFDP */ /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, - .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32768 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, { .eraseblocks = { {32768 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1700, 2000}, }, @@ -11242,41 +12243,48 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16384} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 16384} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 2048} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 2048} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 1024} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 1024} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {65536 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, { .eraseblocks = { {65536 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 6, RW}}, + .tb = {STATUS1, 5, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -11291,40 +12299,40 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16384} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 16384} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 2048} }, - .block_erase = spi_block_erase_5c, + .block_erase = SPI_BLOCK_ERASE_5C, }, { .eraseblocks = { {32 * 1024, 2048} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 1024} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 1024} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {65536 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, { .eraseblocks = { {65536 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, } }, - .printlock = spi_prettyprint_status_register_n25q, /* TODO: config, lock, flag regs */ - .unlock = spi_disable_blockprotect_n25q, /* TODO: per 64kB sector lock registers */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_N25Q, /* TODO: config, lock, flag regs */ + .unlock = SPI_DISABLE_BLOCKPROTECT_N25Q, /* TODO: per 64kB sector lock registers */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {1700, 2000}, }, @@ -11338,20 +12346,20 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {512, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -11365,20 +12373,20 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {512, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -11392,20 +12400,20 @@ const struct flashchip flashchips[] = { .page_size = 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {1024, 512} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -11419,20 +12427,20 @@ const struct flashchip flashchips[] = { .page_size = 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {1024, 512} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -11446,20 +12454,20 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {512, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -11473,20 +12481,20 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {512, 256} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -11500,20 +12508,20 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {512, 512} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -11527,34 +12535,34 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 2} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual I/O read (0x3B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O read (0x3B) supported */ .voltage = {2700, 3600}, }, @@ -11568,28 +12576,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual I/O read (0x3B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O read (0x3B) supported */ .voltage = {2700, 3600}, }, @@ -11603,34 +12611,34 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 8} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual I/O read (0x3B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O read (0x3B) supported */ .voltage = {2700, 3600}, }, @@ -11644,34 +12652,34 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual I/O read (0x3B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O read (0x3B) supported */ .voltage = {2700, 3600}, }, @@ -11685,31 +12693,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual I/O read (0x3B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O read (0x3B) supported */ .voltage = {2700, 3600}, }, @@ -11723,31 +12731,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, /* FIXME: C version supports "Safe Guard" */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, /* FIXME: C version supports "Safe Guard" */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O supported */ .voltage = {2700, 3600}, /* 2.3-3.6V for Pm25LD010 */ }, @@ -11761,31 +12769,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, /* FIXME: C version supports "Safe Guard" */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, /* FIXME: C version supports "Safe Guard" */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O supported */ .voltage = {2700, 3600}, /* 2.3-3.6V for Pm25LD020 */ }, @@ -11799,31 +12807,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O supported */ .voltage = {2700, 3600}, /* 2.3-3.6V for Pm25LD040 */ }, @@ -11837,31 +12845,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 8} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 8} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 1} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {32 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O supported */ .voltage = {2700, 3600}, }, @@ -11875,31 +12883,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 16} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, /* FIXME: C version supports "Safe Guard" */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, /* FIXME: C version supports "Safe Guard" */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual I/O supported */ .voltage = {2300, 3600}, }, @@ -11914,31 +12922,31 @@ const struct flashchip flashchips[] = { /* OTP: 256B total; read 0x4B, write 0xB1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2300, 3600}, }, @@ -11953,31 +12961,31 @@ const struct flashchip flashchips[] = { /* OTP: 256B total; read 0x4B, write 0xB1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2300, 3600}, }, @@ -11992,31 +13000,31 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0xB1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4096 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4096 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -12031,31 +13039,31 @@ const struct flashchip flashchips[] = { /* OTP: 256B total; read 0x4B, write 0xB1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2300, 3600}, }, @@ -12070,31 +13078,31 @@ const struct flashchip flashchips[] = { /* OTP: 64B total; read 0x4B, write 0xB1 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, /* bit6 is quad enable */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2300, 3600}, }, @@ -12108,25 +13116,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_res2, /* The continuation code is transferred as the 3rd byte m( */ + .probe = PROBE_SPI_RES2, /* The continuation code is transferred as the 3rd byte m( */ .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -12140,25 +13148,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -12172,31 +13180,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -12210,25 +13218,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -12242,25 +13250,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -12274,31 +13282,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -12312,25 +13320,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_res2, /* The continuation code is transferred as the 3rd byte m( */ + .probe = PROBE_SPI_RES2, /* The continuation code is transferred as the 3rd byte m( */ .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -12344,7 +13352,7 @@ const struct flashchip flashchips[] = { .page_size = 8 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_FIXME, .block_erasers = { @@ -12355,14 +13363,14 @@ const struct flashchip flashchips[] = { {96 * 1024, 1}, {128 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -12376,7 +13384,7 @@ const struct flashchip flashchips[] = { .page_size = 8 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_FIXME, .block_erasers = { @@ -12387,14 +13395,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -12408,23 +13416,23 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 2} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -12438,23 +13446,23 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -12468,23 +13476,23 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_OK_PR, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -12498,23 +13506,23 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {4 * 1024, 16} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -12528,24 +13536,24 @@ const struct flashchip flashchips[] = { .page_size = 16 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PR, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */ + .probe = PROBE_JEDEC, + .probe_timing = TIMING_ZERO, /* routine is wrapper to JEDEC (pm49fl00x.c) */ .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {16 * 1024, 16} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .unlock = unlock_regspace2_uniform_32k, - .write = write_jedec_1, - .read = read_memmapped, + .unlock = UNLOCK_REGSPACE2_UNIFORM_32K, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -12559,24 +13567,24 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .unlock = unlock_regspace2_uniform_64k, - .write = write_jedec_1, - .read = read_memmapped, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -12590,25 +13598,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, - .probe = probe_spi_rems, + .probe = PROBE_SPI_REMS, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 8} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, }, - .printlock = spi_prettyprint_status_register_sst25, /* FIXME: No BP2 & 3 */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_1, /* AAI supported, but opcode is 0xAF */ - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* FIXME: No BP2 & 3 */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE1, /* AAI supported, but opcode is 0xAF */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -12622,25 +13630,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, - .probe = probe_spi_res2, + .probe = PROBE_SPI_RES2, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, }, - .printlock = spi_prettyprint_status_register_sst25, /* TODO: check */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_1, /* AAI supported, but opcode is 0xAF */ - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE1, /* AAI supported, but opcode is 0xAF */ + .read = SPI_CHIP_READ, .voltage = {3000, 3600}, }, @@ -12654,25 +13662,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_UNTESTED, - .probe = probe_spi_res2, + .probe = PROBE_SPI_RES2, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, }, - .printlock = spi_prettyprint_status_register_sst25, /* TODO: check */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_1, /* AAI supported, but opcode is 0xAF */ - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE1, /* AAI supported, but opcode is 0xAF */ + .read = SPI_CHIP_READ, .voltage = {3000, 3600}, }, @@ -12686,31 +13694,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, - .probe = probe_spi_rems, + .probe = PROBE_SPI_REMS, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_d8, /* Supported by SST25VF010A only */ + .block_erase = SPI_BLOCK_ERASE_D8, /* Supported by SST25VF010A only */ }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, /* Supported by SST25VF010A only */ + .block_erase = SPI_BLOCK_ERASE_C7, /* Supported by SST25VF010A only */ }, }, - .printlock = spi_prettyprint_status_register_sst25, /* FIXME: No BP2 & 3 */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_1, /* AAI supported, but opcode is 0xAF */ - .read = spi_chip_read, /* Fast read (0x0B) supported by SST25VF010A only */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* FIXME: No BP2 & 3 */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE1, /* AAI supported, but opcode is 0xAF */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported by SST25VF010A only */ .voltage = {2700, 3600}, }, @@ -12724,31 +13732,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_sst25vf016, - .unlock = spi_disable_blockprotect, - .write = spi_aai_write, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25VF016, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_WRITE_AAI, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -12762,25 +13770,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_UNTESTED, - .probe = probe_spi_rems, + .probe = PROBE_SPI_REMS, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 8} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, }, - .printlock = spi_prettyprint_status_register_sst25, /* FIXME: No BP2 & 3 */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_1, /* AAI supported, but opcode is 0xAF */ - .read = spi_chip_read, /* only */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* FIXME: No BP2 & 3 */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE1, /* AAI supported, but opcode is 0xAF */ + .read = SPI_CHIP_READ, /* only */ .voltage = {2700, 3600}, }, @@ -12794,31 +13802,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 8} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_sst25, /* FIXME: No BP2 & 3 and 2nd SR */ - .unlock = spi_disable_blockprotect, /* FIXME: 2nd SR */ - .write = spi_aai_write, /* AAI supported (0xAD) */ - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* FIXME: No BP2 & 3 and 2nd SR */ + .unlock = SPI_DISABLE_BLOCKPROTECT, /* FIXME: 2nd SR */ + .write = SPI_WRITE_AAI, /* AAI supported (0xAD) */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -12832,31 +13840,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 128} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_sst25, /* TODO: check */ - .unlock = spi_disable_blockprotect, - .write = spi_aai_write, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_WRITE_AAI, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -12870,25 +13878,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PR, - .probe = probe_spi_rems, + .probe = PROBE_SPI_REMS, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, }, - .printlock = spi_prettyprint_status_register_sst25, /* TODO: check */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_1, /* AAI supported, but opcode is 0xAF */ - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE1, /* AAI supported, but opcode is 0xAF */ + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -12902,31 +13910,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_sst25vf040b, - .unlock = spi_disable_blockprotect, - .write = spi_aai_write, /* AAI supported (0xAD) */ - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25VF040B, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_WRITE_AAI, /* AAI supported (0xAD) */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -12940,31 +13948,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, - .probe = probe_spi_rems, + .probe = PROBE_SPI_REMS, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_sst25vf040b, - .unlock = spi_disable_blockprotect, - .write = spi_aai_write, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25VF040B, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_WRITE_AAI, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -12978,31 +13986,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 256} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_sst25, /* TODO: check */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -13016,31 +14024,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_sst25, /* TODO: check */ - .unlock = spi_disable_blockprotect, - .write = spi_aai_write, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* TODO: check */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_WRITE_AAI, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -13054,31 +14062,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, - .probe = probe_spi_rems, + .probe = PROBE_SPI_REMS, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_d8, /* Supported by SST25VF512A only */ + .block_erase = SPI_BLOCK_ERASE_D8, /* Supported by SST25VF512A only */ }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = spi_block_erase_c7, /* Supported by SST25VF512A only */ + .block_erase = SPI_BLOCK_ERASE_C7, /* Supported by SST25VF512A only */ }, }, - .printlock = spi_prettyprint_status_register_sst25, /* FIXME: No BP2 & 3 */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_1, /* AAI supported, but opcode is 0xAF */ - .read = spi_chip_read, /* Fast read (0x0B) supported by SST25VF512A only */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* FIXME: No BP2 & 3 */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE1, /* AAI supported, but opcode is 0xAF */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported by SST25VF512A only */ .voltage = {2700, 3600}, }, @@ -13092,28 +14100,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {1024 * 128, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 128, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_sst25, /* FIXME: does not have a BP3 */ - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_aai_write, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* FIXME: does not have a BP3 */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_WRITE_AAI, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {1650, 1950}, }, @@ -13127,31 +14135,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 8} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 256, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 256, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_sst25, /* FIXME: does not have a BP3 */ - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_aai_write, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* FIXME: does not have a BP3 */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_WRITE_AAI, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {1650, 1950}, }, @@ -13165,28 +14173,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp2_tb_bpl, - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_TB_BPL, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {1650, 1950}, }, @@ -13200,31 +14208,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 512, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 512, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_sst25, /* FIXME: does not have a BP3 */ - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_aai_write, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* FIXME: does not have a BP3 */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_WRITE_AAI, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {1650, 1950}, }, @@ -13238,28 +14246,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp2_tb_bpl, - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual O (0x3B), dual I/O read (0xBB) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_TB_BPL, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual O (0x3B), dual I/O read (0xBB) supported */ .voltage = {1650, 1950}, }, @@ -13273,31 +14281,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_sst25, /* *does* have a BP3 but it is useless */ - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_aai_write, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* *does* have a BP3 but it is useless */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_WRITE_AAI, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {1650, 1950}, }, @@ -13311,28 +14319,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_bp2_tb_bpl, - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual O (0x3B), dual I/O read (0xBB) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_TB_BPL, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual O (0x3B), dual I/O read (0xBB) supported */ .voltage = {1650, 1950}, }, @@ -13346,28 +14354,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 2} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {1024 * 64, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 64, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_sst25, /* FIXME: does not have a BP3 */ - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_aai_write, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_SST25, /* FIXME: does not have a BP3 */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_WRITE_AAI, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {1650, 1950}, }, @@ -13381,13 +14389,13 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {8 * 1024, 4}, @@ -13396,16 +14404,16 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {8 * 1024, 4}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect_sst26_global_unprotect, - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT_SST26_GLOBAL_UNPROTECT, + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -13419,13 +14427,13 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {8 * 1024, 4}, @@ -13434,16 +14442,16 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {8 * 1024, 4}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect_sst26_global_unprotect, - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT_SST26_GLOBAL_UNPROTECT, + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -13457,13 +14465,13 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {8 * 1024, 4}, @@ -13472,16 +14480,16 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {8 * 1024, 4}, }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, }, }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect_sst26_global_unprotect, - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT_SST26_GLOBAL_UNPROTECT, + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -13495,21 +14503,21 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = 0, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst28sf040.c) */ .block_erasers = { { .eraseblocks = { {128, 4096} }, - .block_erase = erase_sector_28sf040, + .block_erase = ERASE_SECTOR_28SF040, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_28sf040, + .block_erase = ERASE_CHIP_28SF040, } }, - .unlock = unprotect_28sf040, - .write = write_28sf040, - .read = read_memmapped, + .unlock = UNPROTECT_28SF040, + .write = WRITE_28SF040, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -13523,17 +14531,17 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PR, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec, - .read = read_memmapped, + .write = WRITE_JEDEC, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -13547,17 +14555,17 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec, - .read = read_memmapped, + .write = WRITE_JEDEC, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -13571,17 +14579,17 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec, - .read = read_memmapped, + .write = WRITE_JEDEC, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -13595,17 +14603,17 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec, - .read = read_memmapped, + .write = WRITE_JEDEC, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -13619,20 +14627,20 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -13646,20 +14654,20 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -13673,20 +14681,20 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -13700,20 +14708,20 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 16} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -13727,20 +14735,20 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -13754,20 +14762,20 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -13781,20 +14789,20 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -13808,23 +14816,23 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -13838,20 +14846,20 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 16} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -13865,25 +14873,25 @@ const struct flashchip flashchips[] = { .page_size = 16 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {16 * 1024, 16} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = NULL, /* AA 55 80 AA 55 10, only in A/A mux mode */ + .block_erase = NO_BLOCK_ERASE_FUNC, /* AA 55 80 AA 55 10, only in A/A mux mode */ } }, - .printlock = printlock_sst_fwhub, - .unlock = unlock_sst_fwhub, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_SST_FWHUB, + .unlock = UNLOCK_SST_FWHUB, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -13897,25 +14905,25 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 96} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 6} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {384 * 1024, 1} }, - .block_erase = NULL, /* AA 55 80 AA 55 10, only in A/A mux mode */ + .block_erase = NO_BLOCK_ERASE_FUNC, /* AA 55 80 AA 55 10, only in A/A mux mode */ } }, - .printlock = printlock_sst_fwhub, - .unlock = unlock_sst_fwhub, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_SST_FWHUB, + .unlock = UNLOCK_SST_FWHUB, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -13932,25 +14940,25 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = NULL, /* AA 55 80 AA 55 10, only in A/A mux mode */ + .block_erase = NO_BLOCK_ERASE_FUNC, /* AA 55 80 AA 55 10, only in A/A mux mode */ }, }, - .printlock = printlock_sst_fwhub, - .unlock = unlock_sst_fwhub, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_SST_FWHUB, + .unlock = UNLOCK_SST_FWHUB, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -13964,13 +14972,13 @@ const struct flashchip flashchips[] = { .page_size = 4 * 1024, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */ .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = erase_sector_49lfxxxc, + .block_erase = ERASE_SECTOR_49LFXXXC, }, { .eraseblocks = { {64 * 1024, 7}, @@ -13978,13 +14986,13 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, } }, - .printlock = printlock_regspace2_block_eraser_1, - .unlock = unlock_regspace2_block_eraser_1, - .write = write_82802ab, - .read = read_memmapped, + .printlock = PRINTLOCK_REGSPACE2_BLOCK_ERASER_1, + .unlock = UNLOCK_REGSPACE2_BLOCK_ERASER_1, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -13998,25 +15006,25 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = NULL, /* AA 55 80 AA 55 10, only in A/A mux mode */ + .block_erase = NO_BLOCK_ERASE_FUNC, /* AA 55 80 AA 55 10, only in A/A mux mode */ } }, - .printlock = printlock_sst_fwhub, - .unlock = unlock_sst_fwhub, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_SST_FWHUB, + .unlock = UNLOCK_SST_FWHUB, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -14030,13 +15038,13 @@ const struct flashchip flashchips[] = { .page_size = 4 * 1024, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */ .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = erase_sector_49lfxxxc, + .block_erase = ERASE_SECTOR_49LFXXXC, }, { .eraseblocks = { {64 * 1024, 15}, @@ -14044,13 +15052,13 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, } }, - .printlock = printlock_regspace2_block_eraser_1, - .unlock = unlock_regspace2_block_eraser_1, - .write = write_82802ab, - .read = read_memmapped, + .printlock = PRINTLOCK_REGSPACE2_BLOCK_ERASER_1, + .unlock = UNLOCK_REGSPACE2_BLOCK_ERASER_1, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -14064,13 +15072,13 @@ const struct flashchip flashchips[] = { .page_size = 4 * 1024, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PREW, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */ .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = erase_sector_49lfxxxc, + .block_erase = ERASE_SECTOR_49LFXXXC, }, { .eraseblocks = { {64 * 1024, 31}, @@ -14078,13 +15086,13 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, } }, - .printlock = printlock_regspace2_block_eraser_1, - .unlock = unlock_regspace2_block_eraser_1, - .write = write_82802ab, - .read = read_memmapped, + .printlock = PRINTLOCK_REGSPACE2_BLOCK_ERASER_1, + .unlock = UNLOCK_REGSPACE2_BLOCK_ERASER_1, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -14098,23 +15106,23 @@ const struct flashchip flashchips[] = { .page_size = 16 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {16 * 1024, 16} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = NULL, + .block_erase = NO_BLOCK_ERASE_FUNC, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -14128,23 +15136,23 @@ const struct flashchip flashchips[] = { .page_size = 4 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {16 * 1024, 16} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = NULL, + .block_erase = NO_BLOCK_ERASE_FUNC, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -14158,23 +15166,23 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150 ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = NULL, + .block_erase = NO_BLOCK_ERASE_FUNC, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -14188,24 +15196,24 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET | FEATURE_REGISTERMAP, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 1, /* 150ns */ .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = NULL, + .block_erase = NO_BLOCK_ERASE_FUNC, } }, - .unlock = unlock_regspace2_uniform_64k, - .write = write_jedec_1, - .read = read_memmapped, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -14219,23 +15227,23 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_FIXME, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = NULL, + .block_erase = NO_BLOCK_ERASE_FUNC, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -14249,13 +15257,13 @@ const struct flashchip flashchips[] = { .page_size = 4 * 1024, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PR, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */ .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = erase_sector_49lfxxxc, + .block_erase = ERASE_SECTOR_49LFXXXC, }, { .eraseblocks = { {64 * 1024, 31}, @@ -14263,13 +15271,13 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, } }, - .printlock = printlock_regspace2_block_eraser_1, - .unlock = unlock_regspace2_block_eraser_1, - .write = write_82802ab, - .read = read_memmapped, + .printlock = PRINTLOCK_REGSPACE2_BLOCK_ERASER_1, + .unlock = UNLOCK_REGSPACE2_BLOCK_ERASER_1, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -14283,7 +15291,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_AAA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -14294,14 +15302,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 3}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4750, 5250}, /* 4.75-5.25V for type -X, others 4.5-5.5V */ }, @@ -14315,7 +15323,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_AAA | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -14326,14 +15334,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4750, 5250}, /* 4.75-5.25V for type -X, others 4.5-5.5V */ }, @@ -14347,20 +15355,20 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* datasheet specifies no timing */ .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -14375,7 +15383,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt .block_erasers = { @@ -14386,14 +15394,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 7}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -14408,7 +15416,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt .block_erasers = { @@ -14419,14 +15427,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -14440,20 +15448,20 @@ const struct flashchip flashchips[] = { .page_size = 16 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {16 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -14467,20 +15475,20 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -14494,17 +15502,17 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -14518,7 +15526,7 @@ const struct flashchip flashchips[] = { .page_size = 0, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_FIXME, .block_erasers = { @@ -14529,15 +15537,15 @@ const struct flashchip flashchips[] = { {4 * 1024, 16}, /* sector */ {4 * 1024, 16}, /* sector */ }, - .block_erase = erase_sector_stm50, + .block_erase = STM50_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, } }, - .unlock = unlock_regspace2_uniform_64k, - .write = write_82802ab, - .read = read_memmapped, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ }, @@ -14551,7 +15559,7 @@ const struct flashchip flashchips[] = { .page_size = 0, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_FIXME, .block_erasers = { @@ -14562,15 +15570,15 @@ const struct flashchip flashchips[] = { {64 * 1024, 5}, /* block */ {4 * 1024, 16}, /* sector */ }, - .block_erase = erase_sector_stm50, + .block_erase = STM50_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, } }, - .unlock = unlock_regspace2_uniform_64k, - .write = write_82802ab, - .read = read_memmapped, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ }, @@ -14584,7 +15592,7 @@ const struct flashchip flashchips[] = { .page_size = 0, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PR, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_FIXME, .block_erasers = { @@ -14595,16 +15603,16 @@ const struct flashchip flashchips[] = { {4 * 1024, 16}, /* sector */ {4 * 1024, 16}, /* sector */ }, - .block_erase = erase_sector_stm50, + .block_erase = STM50_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, } }, - .printlock = printlock_regspace2_block_eraser_0, - .unlock = unlock_regspace2_block_eraser_0, - .write = write_82802ab, - .read = read_memmapped, + .printlock = PRINTLOCK_REGSPACE2_BLOCK_ERASER_0, + .unlock = UNLOCK_REGSPACE2_BLOCK_ERASER_0, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ }, @@ -14618,7 +15626,7 @@ const struct flashchip flashchips[] = { .page_size = 0, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_FIXME, .block_erasers = { @@ -14629,16 +15637,16 @@ const struct flashchip flashchips[] = { {64 * 1024, 13}, /* block */ {4 * 1024, 16}, /* sector */ }, - .block_erase = erase_sector_stm50, + .block_erase = STM50_SECTOR_ERASE, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, } }, - .printlock = printlock_regspace2_block_eraser_0, - .unlock = unlock_regspace2_block_eraser_0, - .write = write_82802ab, - .read = read_memmapped, + .printlock = PRINTLOCK_REGSPACE2_BLOCK_ERASER_0, + .unlock = UNLOCK_REGSPACE2_BLOCK_ERASER_0, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ }, @@ -14652,7 +15660,7 @@ const struct flashchip flashchips[] = { .page_size = 0, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PR, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (82802ab.c) */ .block_erasers = { @@ -14663,16 +15671,16 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = NULL, /* Only in A/A mux mode */ + .block_erase = NO_BLOCK_ERASE_FUNC, /* Only in A/A mux mode */ } }, - .printlock = printlock_regspace2_block_eraser_0, - .unlock = unlock_regspace2_block_eraser_0, - .write = write_82802ab, - .read = read_memmapped, + .printlock = PRINTLOCK_REGSPACE2_BLOCK_ERASER_0, + .unlock = UNLOCK_REGSPACE2_BLOCK_ERASER_0, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ }, @@ -14686,18 +15694,18 @@ const struct flashchip flashchips[] = { .page_size = 0, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (82802ab.c) */ .block_erasers = { { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, } }, - .unlock = unlock_regspace2_uniform_64k, - .write = write_82802ab, - .read = read_memmapped, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ }, @@ -14711,18 +15719,18 @@ const struct flashchip flashchips[] = { .page_size = 0, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PR, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (82802ab.c) */ .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, } }, - .unlock = unlock_regspace2_uniform_64k, - .write = write_82802ab, - .read = read_memmapped, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ }, @@ -14736,18 +15744,18 @@ const struct flashchip flashchips[] = { .page_size = 0, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PR, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (82802ab.c) */ .block_erasers = { { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, } }, - .unlock = unlock_regspace2_uniform_64k, - .write = write_82802ab, - .read = read_memmapped, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ }, @@ -14761,18 +15769,18 @@ const struct flashchip flashchips[] = { .page_size = 0, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, } }, - .unlock = unlock_regspace2_uniform_64k, - .write = write_82802ab, - .read = read_memmapped, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ }, @@ -14786,7 +15794,7 @@ const struct flashchip flashchips[] = { .page_size = 0, .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -14798,13 +15806,13 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, } }, - .printlock = printlock_regspace2_block_eraser_0, - .unlock = unlock_regspace2_block_eraser_0, - .write = write_82802ab, - .read = read_memmapped, + .printlock = PRINTLOCK_REGSPACE2_BLOCK_ERASER_0, + .unlock = UNLOCK_REGSPACE2_BLOCK_ERASER_0, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ }, @@ -14818,20 +15826,20 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN | FEATURE_NO_ERASE | FEATURE_ERASED_ZERO, .tested = TEST_OK_PREW, - .probe = probe_spi_st95, + .probe = PROBE_SPI_ST95, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_emulation, + .block_erase = SPI_BLOCK_ERASE_EMULATION, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect_bp1_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP1_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2500, 5500}, }, @@ -14845,27 +15853,27 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_res2, + .probe = PROBE_SPI_RES2, .probe_timing = TIMING_ZERO, .block_erasers = { /* FIXME: Is this correct? { .eraseblocks = { {2 * 1024, 64} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, },*/ { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect_bp1_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP1_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2300, 3600}, }, @@ -14879,25 +15887,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_res2, + .probe = PROBE_SPI_RES2, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, - .unlock = spi_disable_blockprotect_bp1_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP1_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2300, 3600}, }, @@ -14910,31 +15918,31 @@ const struct flashchip flashchips[] = { .total_size = 256, .page_size = 256, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, /* #WP pin write-protects SRWP bit. */ - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, /* #WP pin write-protects SRWP bit. */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2300, 3600}, }, @@ -14948,25 +15956,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_res2, + .probe = PROBE_SPI_RES2, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, /* #WP pin write-protects SRWP bit. */ - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, /* #WP pin write-protects SRWP bit. */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2300, 3600}, }, @@ -14980,31 +15988,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual read (0x3B) and dual I/O (0xBB) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B), dual read (0x3B) and dual I/O (0xBB) supported */ .voltage = {2300, 3600}, }, @@ -15018,25 +16026,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_res2, + .probe = PROBE_SPI_RES2, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {2 * 1024, 64} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {32 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp1_srwd, /* FIXME: Add ERSER error flag. */ - .unlock = spi_disable_blockprotect_bp1_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP1_SRWD, /* FIXME: Add ERSER error flag. */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP1_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -15049,25 +16057,25 @@ const struct flashchip flashchips[] = { .total_size = 256, .page_size = 256, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 1024} }, - .block_erase = spi_block_erase_db, + .block_erase = SPI_BLOCK_ERASE_DB, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_default_welwip, - .unlock = NULL, /* #WP pin write-protects lower 64kB. */ - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_DEFAULT_WELWIP, + .unlock = NO_BLOCKPROTECT_FUNC, /* #WP pin write-protects lower 64kB. */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -15080,25 +16088,25 @@ const struct flashchip flashchips[] = { .total_size = 512, .page_size = 256, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 2 * 1024} }, - .block_erase = spi_block_erase_db, + .block_erase = SPI_BLOCK_ERASE_DB, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_default_welwip, - .unlock = NULL, /* #WP pin write-protects lower 64kB. */ - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_DEFAULT_WELWIP, + .unlock = NO_BLOCKPROTECT_FUNC, /* #WP pin write-protects lower 64kB. */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -15112,25 +16120,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_res2, + .probe = PROBE_SPI_RES2, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -15144,25 +16152,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_res2, + .probe = PROBE_SPI_RES2, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, /* #WP pin write-protects SRWP bit. */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* some quad-read supported ("HD_READ mode") */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, /* #WP pin write-protects SRWP bit. */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* some quad-read supported ("HD_READ mode") */ .voltage = {2700, 3600}, }, @@ -15176,28 +16184,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_res2, + .probe = PROBE_SPI_RES2, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, /* #WP pin write-protects SRWP bit. */ - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, /* #WP pin write-protects SRWP bit. */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -15211,25 +16219,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_res2, + .probe = PROBE_SPI_RES2, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {8 * 1024, 128} }, - .block_erase = spi_block_erase_d7, + .block_erase = SPI_BLOCK_ERASE_D7, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect, /* #WP pin write-protects SRWP bit. */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* some quad-read supported ("HD_READ mode") */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT, /* #WP pin write-protects SRWP bit. */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* some quad-read supported ("HD_READ mode") */ .voltage = {2700, 3600}, }, @@ -15242,7 +16250,7 @@ const struct flashchip flashchips[] = { .total_size = 1024, .page_size = 64 * 1024, .tested = TEST_OK_PREW, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -15251,15 +16259,15 @@ const struct flashchip flashchips[] = { {8 * 1024, 8}, {64 * 1024, 15} }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = erase_sector_49lfxxxc, + .block_erase = ERASE_SECTOR_49LFXXXC, } }, - .unlock = unlock_lh28f008bjt, - .write = write_82802ab, - .read = read_memmapped, + .unlock = UNLOCK_LH28F008BJT, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -15273,7 +16281,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET | FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, - .probe = probe_82802ab, + .probe = PROBE_AT82802AB, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -15282,17 +16290,17 @@ const struct flashchip flashchips[] = { {64 * 1024, 15}, {8 * 1024, 8} }, - .block_erase = erase_block_82802ab, + .block_erase = ERASE_BLOCK_82802AB, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = NULL, /* 30 D0, only in A/A mux mode */ + .block_erase = NO_BLOCK_ERASE_FUNC, /* 30 D0, only in A/A mux mode */ }, }, - .unlock = unlock_regspace2_uniform_64k, - .write = write_82802ab, - .read = read_memmapped, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_82802AB, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -15306,22 +16314,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -15335,22 +16343,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PRE, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -15364,22 +16372,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -15393,22 +16401,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -15422,22 +16430,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -15452,28 +16460,28 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 (S25FL116K only) */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 2048 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 2048 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, - .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and dual I/O (0x3B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, /* #WP pin write-protects SRWP bit. */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and dual I/O (0x3B) supported */ .voltage = {2700, 3600}, }, @@ -15489,25 +16497,25 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total, 32B reserved; read 0x4B; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect_bp2_srwd, /* #WP pin write-protects SRWP bit. */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* #WP pin write-protects SRWP bit. */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -15524,7 +16532,7 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, /* FIXME: we should distinguish the configuration on probing time like we do for AT45DB chips */ - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -15537,23 +16545,80 @@ const struct flashchip flashchips[] = { {4 * 1024, 32}, {64 * 1024, 254} // inaccessible }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { */ .eraseblocks = { { 64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* #WP pin write-protects SRWP bit. */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ + .voltage = {2700, 3600}, + }, + + { + .vendor = "Spansion", + .name = "S25FL128L", + .bustype = BUS_SPI, + .manufacture_id = SPANSION_ID, + .model_id = SPANSION_S25FL128L, + .total_size = 16384, + .page_size = 256, + /* 4 x 256B Security Region (OTP) */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR_EXT3 | FEATURE_OTP, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 4096} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {16384 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {16384 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect_bp2_srwd, /* #WP pin write-protects SRWP bit. */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, + .reg_bits = + { + /* + * Note: This chip has a read-only Status Register 2 that is not + * counted here. Registers are mapped as follows: + * STATUS1 ... Status Register 1 + * STATUS2 ... Configuration Register 1 + * STATUS3 ... Configuration Register 2 + */ + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + .wps = {STATUS3, 2, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -15566,28 +16631,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, - .unlock = spi_disable_blockprotect_bp3_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -15601,22 +16666,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -15632,7 +16697,7 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total, 32B reserved; read 0x4B; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -15644,22 +16709,22 @@ const struct flashchip flashchips[] = { {4 * 1024, 32}, {64 * 1024, 254} // inaccessible }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { */ .eraseblocks = { { 64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: SR2 and many others */ - .unlock = spi_disable_blockprotect_bp2_srwd, /* TODO: various other locks */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_EP_SRWD, /* TODO: SR2 and many others */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* TODO: various other locks */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -15675,30 +16740,92 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total, 32B reserved; read 0x4B; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: SR2 and many others */ - .unlock = spi_disable_blockprotect_bp2_srwd, /* TODO: various other locks */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_EP_SRWD, /* TODO: SR2 and many others */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* TODO: various other locks */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, { .vendor = "Spansion", + .name = "S25FL128S_UL Uniform 128 kB Sectors", + .bustype = BUS_SPI, + .manufacture_id = SPANSION_ID, + .model_id = SPANSION_S25FL128S_UL, + .total_size = 16384, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_BIG_SPANSION, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {128 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + }, + }, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1700, 2000}, + }, + + { + .vendor = "Spansion", + .name = "S25FL128S_US Uniform 64 kB Sectors", + .bustype = BUS_SPI, + .manufacture_id = SPANSION_ID, + .model_id = SPANSION_S25FL128S_US, + .total_size = 16384, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_BIG_SPANSION, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {64 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + }, + }, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1700, 2000}, + }, + + { + .vendor = "Spansion", .name = "S25FL129P......0", /* hybrid: 32 (top or bottom) 4 kB sub-sectors + 64 kB sectors */ .bustype = BUS_SPI, .manufacture_id = SPANSION_ID, @@ -15708,7 +16835,7 @@ const struct flashchip flashchips[] = { /* OTP: 506B total, 16B reserved; read 0x4B; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -15720,29 +16847,29 @@ const struct flashchip flashchips[] = { {4 * 1024, 32}, {64 * 1024, 254} // inaccessible }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { */ /* FIXME: Additionally it also supports erase opcode 40h for the respective 2*4 kB pairs .eraseblocks = { {8 * 1024, 16}, {64 * 1024, 254} // inaccessible }, - .block_erase = spi_block_erase_40, + .block_erase = SPI_BLOCK_ERASE_40, }, { */ .eraseblocks = { { 64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: Configuration register */ - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_EP_SRWD, /* TODO: Configuration register */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -15757,25 +16884,25 @@ const struct flashchip flashchips[] = { /* OTP: 506B total, 16B reserved; read 0x4B; write 0x42 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 16384 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: Configuration register */ - .unlock = spi_disable_blockprotect_bp2_srwd, - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_EP_SRWD, /* TODO: Configuration register */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -15790,28 +16917,28 @@ const struct flashchip flashchips[] = { /* OTP: 768B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 4096 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 4096 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, /* TODO: improve */ - .unlock = spi_disable_blockprotect_bp2_srwd, /* #WP pin write-protects SRWP bit. */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* #WP pin write-protects SRWP bit. */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -15826,28 +16953,28 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 8192 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 8192 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_srwd, /* TODO: improve */ - .unlock = spi_disable_blockprotect_bp2_srwd, /* #WP pin write-protects SRWP bit. */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_SRWD, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* #WP pin write-protects SRWP bit. */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -15861,28 +16988,28 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PR, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, - .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and dual I/O (0x3B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, /* #WP pin write-protects SRWP bit. */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and dual I/O (0x3B) supported */ .voltage = {2700, 3600}, }, @@ -15896,29 +17023,151 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, /* #WP pin write-protects SRWP bit. */ + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) and dual I/O (0x3B) supported */ + .voltage = {2700, 3600}, + }, + + { + .vendor = "Spansion", + .name = "S25FL256L", + .bustype = BUS_SPI, + .manufacture_id = SPANSION_ID, + .model_id = SPANSION_S25FL256L, + .total_size = 32768, + .page_size = 256, + /* 4 x 256B Security Region (OTP) */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_WRSR_EXT3 | FEATURE_OTP | + FEATURE_4BA_ENTER | FEATURE_4BA_NATIVE, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 8192} }, + .block_erase = SPI_BLOCK_ERASE_21, + }, { + .eraseblocks = { {4 * 1024, 8192} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_53, + }, { + .eraseblocks = { {32 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_DC, + }, { + .eraseblocks = { {64 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {32768 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {32768 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp3_srwd, - .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */ - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) and dual I/O (0x3B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP3_SRWD, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP3_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, + .reg_bits = + { + /* + * Note: This chip has a read-only Status Register 2 that is not + * counted here. Registers are mapped as follows: + * STATUS1 ... Status Register 1 + * STATUS2 ... Configuration Register 1 + * STATUS3 ... Configuration Register 2 + */ + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 5, RW}}, + .tb = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + .wps = {STATUS3, 2, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "Spansion", + .name = "S25FL256S Large Sectors", + .bustype = BUS_SPI, + .manufacture_id = SPANSION_ID, + .model_id = SPANSION_S25FL256S_UL, + .total_size = 16384, /* This is just half the size.... */ + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_BIG_SPANSION, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {256 * 1024, 64} }, + .block_erase = S25FL_BLOCK_ERASE, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, + }, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1700, 2000}, + }, + + { + .vendor = "Spansion", + .name = "S25FL256S Small Sectors", + .bustype = BUS_SPI, + .manufacture_id = SPANSION_ID, + .model_id = SPANSION_S25FL256S_US, + .total_size = 16384, /* This is just half the size.... */ + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_BIG_SPANSION, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {64 * 1024, 256} }, + .block_erase = S25FL_BLOCK_ERASE, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, + }, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1700, 2000}, }, { @@ -15930,9 +17179,10 @@ const struct flashchip flashchips[] = { .total_size = 32768, .page_size = 256, /* OTP: 1024B total, 32B reserved; read 0x4B; write 0x42 */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_EAR7, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | + FEATURE_4BA_NATIVE | FEATURE_4BA_ENTER_EAR7 | FEATURE_4BA_EAR_1716, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -15944,27 +17194,26 @@ const struct flashchip flashchips[] = { {4 * 1024, 32}, {64 * 1024, 254} // inaccessible }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { */ .eraseblocks = { { 64 * 1024, 512} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { { 64 * 1024, 512} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 32768 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 32768 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: SR2 and many others */ - .unlock = spi_disable_blockprotect_bp2_srwd, /* TODO: various other locks */ - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_EP_SRWD, /* TODO: SR2 and many others */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* TODO: various other locks */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, - .wrea_override = 0x17, }, { @@ -15976,31 +17225,97 @@ const struct flashchip flashchips[] = { .total_size = 65536, /* 512 Mb (=> 64 MB)) */ .page_size = 256, /* OTP: 1024B total, 32B reserved; read 0x4B; write 0x42 */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_NATIVE, - .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | + FEATURE_4BA_NATIVE | FEATURE_4BA_ENTER_EAR7 | FEATURE_4BA_EAR_1716, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 256 * 1024, 256} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, + }, { + .eraseblocks = { { 256 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { { 65536 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { { 65536 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: SR2 and many others */ - .unlock = spi_disable_blockprotect_bp2_srwd, /* TODO: various other locks */ - .write = spi_chip_write_256, /* Multi I/O supported, IGNORE for now */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_EP_SRWD, /* TODO: SR2 and many others */ + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, /* TODO: various other locks */ + .write = SPI_CHIP_WRITE256, /* Multi I/O supported, IGNORE for now */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, { + .vendor = "Spansion", + .name = "S25FS128S Large Sectors", + .bustype = BUS_SPI, + .manufacture_id = SPANSION_ID, + .model_id = SPANSION_S25FS128S_L, + .total_size = 16384, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_BIG_SPANSION, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {64 * 1024, 256} }, + .block_erase = S25FS_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + }, + }, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1700, 2000}, + }, + + { + .vendor = "Spansion", + .name = "S25FS128S Small Sectors", + .bustype = BUS_SPI, + .manufacture_id = SPANSION_ID, + .model_id = SPANSION_S25FS128S_S, + .total_size = 16384, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_BIG_SPANSION, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {64 * 1024, 256} }, + .block_erase = S25FS_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + }, + }, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1700, 2000}, + }, + + { .vendor = "SyncMOS/MoselVitelic", .name = "{F,S,V}29C51001B", .bustype = BUS_PARALLEL, @@ -16010,20 +17325,20 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {512, 256} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -16037,20 +17352,20 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {512, 256} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -16064,20 +17379,20 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {512, 512} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, }, { @@ -16090,20 +17405,20 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {512, 512} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, }, { @@ -16116,20 +17431,20 @@ const struct flashchip flashchips[] = { .page_size = 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {1024, 512} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -16143,20 +17458,20 @@ const struct flashchip flashchips[] = { .page_size = 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {1024, 512} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -16170,20 +17485,20 @@ const struct flashchip flashchips[] = { .page_size = 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {1024, 512} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -16197,20 +17512,20 @@ const struct flashchip flashchips[] = { .page_size = 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { .eraseblocks = { {1024, 512} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -16224,7 +17539,7 @@ const struct flashchip flashchips[] = { .page_size = 16384, /* Non-uniform sectors */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -16235,14 +17550,14 @@ const struct flashchip flashchips[] = { {32 * 1024, 1}, {64 * 1024, 3}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -16256,7 +17571,7 @@ const struct flashchip flashchips[] = { .page_size = 16384, /* Non-uniform sectors */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { @@ -16267,14 +17582,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -16288,22 +17603,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2048 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -16317,22 +17632,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4096 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -16346,22 +17661,22 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, /* Fast read (0x0B) supported */ .voltage = {2700, 3600}, }, @@ -16375,34 +17690,46 @@ const struct flashchip flashchips[] = { .page_size = 256, /* supports SFDP */ /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, - .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | + FEATURE_WRSR_EXT2 | FEATURE_WRSR2 | FEATURE_WRSR3, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 512} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + .wps = {STATUS3, 2, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -16413,34 +17740,44 @@ const struct flashchip flashchips[] = { .model_id = WINBOND_NEX_W25Q128_V_M, .total_size = 16384, .page_size = 256, - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, - .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | FEATURE_WRSR2, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 512} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -16453,34 +17790,44 @@ const struct flashchip flashchips[] = { .page_size = 256, /* supports SFDP */ /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | FEATURE_WRSR2, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 512} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -16491,34 +17838,44 @@ const struct flashchip flashchips[] = { .model_id = WINBOND_NEX_W25Q128_DTR, .total_size = 16384, .page_size = 256, - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | FEATURE_WRSR2, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 512} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 256} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -16533,31 +17890,31 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -16573,31 +17930,31 @@ const struct flashchip flashchips[] = { /* QPI enable 0x38, disable 0xFF */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1700, 1950}, /* Fast read (0x0B) and multi I/O supported */ }, @@ -16612,37 +17969,37 @@ const struct flashchip flashchips[] = { /* OTP: 256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 8} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1700, 1950}, /* Fast read (0x0B) and multi I/O supported */ }, { .vendor = "Winbond", - .name = "W25Q256.V", + .name = "W25Q256FV", .bustype = BUS_SPI, .manufacture_id = WINBOND_NEX_ID, .model_id = WINBOND_NEX_W25Q256_V, @@ -16650,36 +18007,100 @@ const struct flashchip flashchips[] = { .page_size = 256, /* supports SFDP */ /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ - /* FOUR_BYTE_ADDR: supports 4-bytes addressing mode */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_ENTER_WREN - | FEATURE_4BA_EXT_ADDR | FEATURE_4BA_READ | FEATURE_4BA_FAST_READ, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_ENTER_WREN | + FEATURE_4BA_EAR_C5C8 | FEATURE_4BA_READ | FEATURE_4BA_FAST_READ | + FEATURE_WRSR2, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 8192} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {32 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {32 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 5, RW}}, + .tb = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "Winbond", + .name = "W25Q256JV_Q", + .bustype = BUS_SPI, + .manufacture_id = WINBOND_NEX_ID, + .model_id = WINBOND_NEX_W25Q256_V, + .total_size = 32768, + .page_size = 256, + /* supports SFDP */ + /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA | FEATURE_WRSR2, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_21, + }, { + .eraseblocks = { {4 * 1024, 8192} }, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {32 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 5, RW}}, + .tb = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -16692,46 +18113,207 @@ const struct flashchip flashchips[] = { .page_size = 256, /* supports SFDP */ /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ - /* FOUR_BYTE_ADDR: supports 4-bytes addressing mode */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA | FEATURE_WRSR2, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 8192} }, + .block_erase = SPI_BLOCK_ERASE_21, + }, { + .eraseblocks = { {4 * 1024, 8192} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_DC, + }, { + .eraseblocks = { {64 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {32 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {32 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 5, RW}}, + .tb = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "Winbond", + .name = "W25Q256JW", + .bustype = BUS_SPI, + .manufacture_id = WINBOND_NEX_ID, + .model_id = WINBOND_NEX_W25Q256_W, + .total_size = 32768, + .page_size = 256, + /* supports SFDP */ + /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 8192} }, + .block_erase = SPI_BLOCK_ERASE_21, + }, { + .eraseblocks = { {4 * 1024, 8192} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_DC, + }, { + .eraseblocks = { {64 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {32 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {32 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1650, 1950}, + }, + + { + .vendor = "Winbond", + .name = "W25Q256JW_DTR", + .bustype = BUS_SPI, + .manufacture_id = WINBOND_NEX_ID, + .model_id = WINBOND_NEX_W25Q256_DTR, + .total_size = 32768, + .page_size = 256, + /* supports SFDP */ + /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA | FEATURE_WRSR2 + | FEATURE_WRSR3, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_21, + .block_erase = SPI_BLOCK_ERASE_21, }, { .eraseblocks = { {4 * 1024, 8192} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 1024} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_dc, + .block_erase = SPI_BLOCK_ERASE_DC, }, { .eraseblocks = { {64 * 1024, 512} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {32 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {32 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1700, 1950}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 5, RW}}, + .tb = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + .wps = {STATUS3, 2, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "Winbond", + .name = "W25Q32BV/W25Q32CV/W25Q32DV", + .bustype = BUS_SPI, + .manufacture_id = WINBOND_NEX_ID, + .model_id = WINBOND_NEX_W25Q32_V, + .total_size = 4096, + .page_size = 256, + /* supports SFDP */ + /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_WRSR_EXT2, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 64} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {4 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {4 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { .vendor = "Winbond", - .name = "W25Q32.V", + .name = "W25Q32FV", .bustype = BUS_SPI, .manufacture_id = WINBOND_NEX_ID, .model_id = WINBOND_NEX_W25Q32_V, @@ -16739,74 +18321,304 @@ const struct flashchip flashchips[] = { .page_size = 256, /* supports SFDP */ /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | + FEATURE_WRSR_EXT2 | FEATURE_WRSR2 | FEATURE_WRSR3, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 128} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + .wps = {STATUS3, 2, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { .vendor = "Winbond", - .name = "W25Q32.W", + .name = "W25Q32JV", + .bustype = BUS_SPI, + .manufacture_id = WINBOND_NEX_ID, + .model_id = WINBOND_NEX_W25Q32_V, + .total_size = 4096, + .page_size = 256, + /* supports SFDP */ + /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | + FEATURE_WRSR_EXT2 | FEATURE_WRSR2 | FEATURE_WRSR3, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 64} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {4 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {4 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + .wps = {STATUS3, 2, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "Winbond", + .name = "W25Q32BW/W25Q32CW/W25Q32DW", .bustype = BUS_SPI, .manufacture_id = WINBOND_NEX_ID, .model_id = WINBOND_NEX_W25Q32_W, .total_size = 4096, .page_size = 256, - /* OTP: 256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + /* OTP: 1024B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ /* QPI enable 0x38, disable 0xFF */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | FEATURE_WRSR_EXT2, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 64} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {4 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {4 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1700, 1950}, /* Fast read (0x0B) and multi I/O supported */ + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "Winbond", + .name = "W25Q32FW", + .bustype = BUS_SPI, + .manufacture_id = WINBOND_NEX_ID, + .model_id = WINBOND_NEX_W25Q32_W, + .total_size = 4096, + .page_size = 256, + /* OTP: 768B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + /* QPI enable 0x38, disable 0xFF */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | + FEATURE_WRSR_EXT2 | FEATURE_WRSR2 | FEATURE_WRSR3, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 64} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {4 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {4 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1700, 1950}, /* Fast read (0x0B) and multi I/O supported */ + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + .wps = {STATUS3, 2, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "Winbond", + .name = "W25Q32JW...Q", + .bustype = BUS_SPI, + .manufacture_id = WINBOND_NEX_ID, + .model_id = WINBOND_NEX_W25Q32_W, + .total_size = 4096, + .page_size = 256, + /* OTP: 768B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + /* QPI enable 0x38, disable 0xFF */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | + FEATURE_WRSR_EXT2 | FEATURE_WRSR2 | FEATURE_WRSR3, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 128} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1700, 1950}, /* Fast read (0x0B) and multi I/O supported */ + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + .wps = {STATUS3, 2, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "Winbond", + .name = "W25Q32JW...M", + .bustype = BUS_SPI, + .manufacture_id = WINBOND_NEX_ID, + .model_id = WINBOND_NEX_W25Q32JW_M, + .total_size = 4096, + .page_size = 256, + /* OTP: 768B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + /* QPI enable 0x38, disable 0xFF */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | + FEATURE_WRSR2 | FEATURE_WRSR3 | FEATURE_WRSR_EXT2, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 64} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {4 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {4 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_TB_BPL, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1700, 1950}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + .wps = {STATUS3, 2, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -16821,31 +18633,31 @@ const struct flashchip flashchips[] = { /* OTP: 756B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, /* Multi I/O supported */ - .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, /* Multi I/O supported */ + .read = SPI_CHIP_READ, /* Fast read (0x0B) and multi I/O supported */ .voltage = {2700, 3600}, }, @@ -16860,31 +18672,31 @@ const struct flashchip flashchips[] = { /* OTP: 256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1700, 1950}, /* Fast read (0x0B) and multi I/O supported */ }, @@ -16899,37 +18711,135 @@ const struct flashchip flashchips[] = { /* OTP: 3*256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, /* Fast read (0x0B) and multi I/O supported */ }, { .vendor = "Winbond", - .name = "W25Q64.V", + .name = "W25Q512JV", + .bustype = BUS_SPI, + .manufacture_id = WINBOND_NEX_ID, + .model_id = WINBOND_NEX_W25Q512JV, + .total_size = 64 * 1024, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 16384} }, + .block_erase = SPI_BLOCK_ERASE_21, + }, { + .eraseblocks = { {4 * 1024, 16384} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 2048} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_DC, + }, { + .eraseblocks = { {64 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {64 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {64 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {2700, 3600}, + }, + + { + .vendor = "Winbond", + .name = "W25Q512NW-IM", + .bustype = BUS_SPI, + .manufacture_id = WINBOND_NEX_ID, + .model_id = WINBOND_NEX_W25Q512NW_IM, + .total_size = 64 * 1024, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA | FEATURE_WRSR2 + | FEATURE_WRSR3, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 16384} }, + .block_erase = SPI_BLOCK_ERASE_21, + }, { + .eraseblocks = { {4 * 1024, 16384} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 2048} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_DC, + }, { + .eraseblocks = { {64 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {64 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {64 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1650, 1950}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 5, RW}}, + .tb = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + .wps = {STATUS3, 2, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "Winbond", + .name = "W25Q64BV/W25Q64CV/W25Q64FV", .bustype = BUS_SPI, .manufacture_id = WINBOND_NEX_ID, .model_id = WINBOND_NEX_W25Q64_V, @@ -16937,33 +18847,135 @@ const struct flashchip flashchips[] = { .page_size = 256, /* supports SFDP */ /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_WRSR2, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 2048} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "Winbond", + .name = "W25Q64JV-.Q", + .bustype = BUS_SPI, + .manufacture_id = WINBOND_NEX_ID, + .model_id = WINBOND_NEX_W25Q64_V, + .total_size = 8192, + .page_size = 256, + /* supports SFDP */ + /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | + FEATURE_WRSR_EXT2 | FEATURE_WRSR2 | FEATURE_WRSR3, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 2048} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + .wps = {STATUS3, 2, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "Winbond", + .name = "W25Q64JV-.M", + .bustype = BUS_SPI, + .manufacture_id = WINBOND_NEX_ID, + .model_id = WINBOND_NEX_W25Q64JV, + .total_size = 8192, + .page_size = 256, + /* supports SFDP */ + /* QPI enable 0x38 */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 256} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_BP2_TB_BPL, + .unlock = SPI_DISABLE_BLOCKPROTECT_BP2_SRWD, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -16977,34 +18989,95 @@ const struct flashchip flashchips[] = { .page_size = 256, /* OTP: 256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ /* QPI enable 0x38, disable 0xFF */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | FEATURE_WRSR2, + .tested = TEST_OK_PREWB, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 2048} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1700, 1950}, /* Fast read (0x0B) and multi I/O supported */ + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "Winbond", + .name = "W25Q64JW...M", + .bustype = BUS_SPI, + .manufacture_id = WINBOND_NEX_ID, + .model_id = WINBOND_NEX_W25Q64JW_M, + .total_size = 8192, + .page_size = 256, + /* OTP: 256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + /* QPI enable 0x38, disable 0xFF */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | FEATURE_WRSR2 | FEATURE_WRSR3, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 256} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1700, 1950}, /* Fast read (0x0B) and multi I/O supported */ + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + .wps = {STATUS3, 2, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, }, { @@ -17019,31 +19092,31 @@ const struct flashchip flashchips[] = { /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -17058,31 +19131,31 @@ const struct flashchip flashchips[] = { /* OTP: 256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1700, 1950}, /* Fast read (0x0B) and multi I/O supported */ }, @@ -17097,36 +19170,68 @@ const struct flashchip flashchips[] = { /* OTP: 3*256B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 32} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {1 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {1650, 1950}, /* Fast read (0x0B) and multi I/O supported */ }, { .vendor = "Winbond", + .name = "W25X05", + .bustype = BUS_SPI, + .manufacture_id = WINBOND_NEX_ID, + .model_id = WINBOND_NEX_W25X05, + .total_size = 64, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 16} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 2} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_D8, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {2300, 3600}, + }, + + { + .vendor = "Winbond", .name = "W25X10", .bustype = BUS_SPI, .manufacture_id = WINBOND_NEX_ID, @@ -17135,25 +19240,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 2} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -17167,31 +19272,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 64} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -17205,25 +19310,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -17237,31 +19342,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 128} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -17275,25 +19380,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -17307,31 +19412,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 256} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -17345,25 +19450,25 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -17378,17 +19483,17 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, /* used datasheet for the W29C011A */ .block_erasers = { { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec, - .read = read_memmapped, + .write = WRITE_JEDEC, + .read = READ_MEMMAPPED, }, { @@ -17401,17 +19506,17 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PREW, - .probe = probe_w29ee011, + .probe = PROBE_W29EE011, .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (w29ee011.c) */ .block_erasers = { { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec, - .read = read_memmapped, + .write = WRITE_JEDEC, + .read = READ_MEMMAPPED, }, { @@ -17424,17 +19529,17 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec, - .read = read_memmapped, + .write = WRITE_JEDEC, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -17448,17 +19553,17 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec, - .read = read_memmapped, + .write = WRITE_JEDEC, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -17472,17 +19577,17 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {64 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec, - .read = read_memmapped, + .write = WRITE_JEDEC, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -17496,7 +19601,7 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -17505,14 +19610,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 8}, {64 * 1024, 63}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -17526,20 +19631,20 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 64} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -17553,7 +19658,7 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -17562,14 +19667,14 @@ const struct flashchip flashchips[] = { {64 * 1024, 63}, {8 * 1024, 8}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {4 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -17583,7 +19688,7 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -17592,14 +19697,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 8}, {64 * 1024, 127}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -17613,20 +19718,20 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {64 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -17640,7 +19745,7 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -17649,14 +19754,14 @@ const struct flashchip flashchips[] = { {64 * 1024, 127}, {8 * 1024, 8}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {8 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -17670,20 +19775,20 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* actual page size is 16 */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec_29gl, + .probe = PROBE_JEDEC_29GL, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {128 * 1024, 128} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {16 * 1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, }, }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {2700, 3600}, }, @@ -17697,21 +19802,21 @@ const struct flashchip flashchips[] = { .page_size = 4 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .printlock = printlock_w39f010, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_W39F010, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -17725,21 +19830,21 @@ const struct flashchip flashchips[] = { .page_size = 4 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {128 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .printlock = printlock_w39l010, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_W39L010, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -17753,24 +19858,24 @@ const struct flashchip flashchips[] = { .page_size = 4 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .printlock = printlock_w39l020, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_W39L020, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -17784,24 +19889,24 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PR, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .printlock = printlock_w39l040, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_W39L040, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -17815,21 +19920,21 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .printlock = printlock_w39v040a, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_W39V040A, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -17843,21 +19948,21 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .printlock = printlock_w39v040b, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_W39V040B, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -17871,21 +19976,21 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .printlock = printlock_w39v040c, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_W39V040C, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -17899,25 +20004,25 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = erase_block_jedec, + .block_erase = JEDEC_BLOCK_ERASE, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .printlock = printlock_w39v040fa, - .unlock = unlock_regspace2_uniform_64k, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_W39V040FA, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -17931,22 +20036,22 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .printlock = printlock_w39v040fb, - .unlock = unlock_regspace2_uniform_64k, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_W39V040FB, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* Also has 12V fast program */ }, @@ -17960,21 +20065,21 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .printlock = printlock_w39v040fc, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_W39V040FC, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* Also has 12V fast program */ }, @@ -17988,21 +20093,21 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .printlock = printlock_w39v080a, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_W39V080A, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -18016,22 +20121,22 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {64 * 1024, 16} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {1024 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .printlock = printlock_w39v080fa, - .unlock = unlock_regspace2_uniform_64k, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_W39V080FA, + .unlock = UNLOCK_REGSPACE2_UNIFORM_64K, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* Also has 12V fast program */ }, @@ -18045,21 +20150,21 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .printlock = printlock_w39v080fa_dual, - .write = write_jedec_1, - .read = read_memmapped, + .printlock = PRINTLOCK_W39V080FA_DUAL, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, /* Also has 12V fast program */ }, @@ -18073,7 +20178,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { @@ -18084,14 +20189,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -18105,17 +20210,17 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PROBE, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {4500, 5500}, }, @@ -18129,7 +20234,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { @@ -18140,14 +20245,14 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, @@ -18161,7 +20266,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, + .probe = PROBE_JEDEC, .probe_timing = 10, .block_erasers = { @@ -18172,18 +20277,274 @@ const struct flashchip flashchips[] = { {8 * 1024, 2}, {16 * 1024, 1}, }, - .block_erase = erase_sector_jedec, + .block_erase = JEDEC_SECTOR_ERASE, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = erase_chip_block_jedec, + .block_erase = JEDEC_CHIP_BLOCK_ERASE, } }, - .write = write_jedec_1, - .read = read_memmapped, + .write = WRITE_JEDEC1, + .read = READ_MEMMAPPED, .voltage = {3000, 3600}, }, { + .vendor = "XMC", + .name = "XM25QH64C", + .bustype = BUS_SPI, + .manufacture_id = ST_ID, + .model_id = XMC_XM25QH64C, + .total_size = 8192, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .tested = TEST_OK_PREW, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 2048} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {2700, 3600}, + }, + + { + .vendor = "XMC", + .name = "XM25QU64C", + .bustype = BUS_SPI, + .manufacture_id = ST_ID, + .model_id = XMC_XM25QU64C, + .total_size = 8192, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 2048} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 128} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1650, 1950}, + }, + + { + .vendor = "XMC", + .name = "XM25QH128C", + .bustype = BUS_SPI, + .manufacture_id = ST_ID, + .model_id = XMC_XM25QH128C, + .total_size = 16384, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI | FEATURE_WRSR2, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 4096} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}}, + .tb = {STATUS1, 5, RW}, + .sec = {STATUS1, 6, RW}, + .cmp = {STATUS2, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "XMC", + .name = "XM25QU128C", + .bustype = BUS_SPI, + .manufacture_id = ST_ID, + .model_id = XMC_XM25QU128C, + .total_size = 16384, + .page_size = 256, + /* supports SFDP */ + /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 4096} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 256} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {16 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1650, 1950}, + }, + + { + .vendor = "XMC", + .name = "XM25QH256C", + .bustype = BUS_SPI, + .manufacture_id = ST_ID, + .model_id = XMC_XM25QH256C, + .total_size = 32768, + .page_size = 256, + /* supports SFDP */ + /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_ENTER_WREN | + FEATURE_4BA_EAR_C5C8 | FEATURE_4BA_READ | FEATURE_4BA_FAST_READ | + FEATURE_4BA_WRITE | FEATURE_WRSR2, + .tested = TEST_OK_PR, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 8192} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {32 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {32 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {2700, 3600}, + .reg_bits = + { + .srp = {STATUS1, 7, RW}, + .srl = {STATUS2, 0, RW}, + .bp = {{STATUS1, 2, RW}, {STATUS1, 3, RW}, {STATUS1, 4, RW}, {STATUS1, 5, RW}}, + .tb = {STATUS1, 6, RW}, + }, + .decode_range = DECODE_RANGE_SPI25, + }, + + { + .vendor = "XMC", + .name = "XM25QU256C", + .bustype = BUS_SPI, + .manufacture_id = ST_ID, + .model_id = XMC_XM25QU256C, + .total_size = 32768, + .page_size = 256, + /* supports SFDP */ + /* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_4BA_ENTER_WREN + | FEATURE_4BA_EAR_C5C8 | FEATURE_4BA_READ | FEATURE_4BA_FAST_READ + | FEATURE_4BA_WRITE, + .tested = TEST_UNTESTED, + .probe = PROBE_SPI_RDID, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 8192} }, + .block_erase = SPI_BLOCK_ERASE_20, + }, { + .eraseblocks = { {32 * 1024, 1024} }, + .block_erase = SPI_BLOCK_ERASE_52, + }, { + .eraseblocks = { {64 * 1024, 512} }, + .block_erase = SPI_BLOCK_ERASE_D8, + }, { + .eraseblocks = { {32 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_60, + }, { + .eraseblocks = { {32 * 1024 * 1024, 1} }, + .block_erase = SPI_BLOCK_ERASE_C7, + } + }, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, + .voltage = {1650, 1950}, + }, + + { .vendor = "Zetta Device", .name = "ZD25D20", .bustype = BUS_SPI, @@ -18193,31 +20554,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 8} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 4} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {256 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -18231,31 +20592,31 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, - .block_erase = spi_block_erase_20, + .block_erase = SPI_BLOCK_ERASE_20, }, { .eraseblocks = { {32 * 1024, 16} }, - .block_erase = spi_block_erase_52, + .block_erase = SPI_BLOCK_ERASE_52, }, { .eraseblocks = { {64 * 1024, 8} }, - .block_erase = spi_block_erase_d8, + .block_erase = SPI_BLOCK_ERASE_D8, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_60, + .block_erase = SPI_BLOCK_ERASE_60, }, { .eraseblocks = { {512 * 1024, 1} }, - .block_erase = spi_block_erase_c7, + .block_erase = SPI_BLOCK_ERASE_C7, } }, - .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, + .printlock = SPI_PRETTYPRINT_STATUS_REGISTER_PLAIN, /* TODO: improve */ + .unlock = SPI_DISABLE_BLOCKPROTECT, + .write = SPI_CHIP_WRITE256, + .read = SPI_CHIP_READ, .voltage = {2700, 3600}, }, @@ -18272,11 +20633,11 @@ const struct flashchip flashchips[] = { /* want the default "This flash part has status UNTESTED..." */ /* text to be printed. */ .tested = TEST_OK_PREW, - .probe = probe_spi_sfdp, + .probe = PROBE_SPI_SFDP, .block_erasers = {}, /* set by probing function */ - .unlock = spi_disable_blockprotect, /* is this safe? */ - .write = NULL, /* set by probing function */ - .read = spi_chip_read, + .unlock = SPI_DISABLE_BLOCKPROTECT, /* is this safe? */ + .write = 0, /* set by probing function */ + .read = SPI_CHIP_READ, /* FIXME: some vendor extensions define this */ .voltage = {0}, }, @@ -18291,16 +20652,16 @@ const struct flashchip flashchips[] = { .page_size = 256, /* probe is assumed to work, rest will be filled in by probe */ .tested = TEST_OK_PROBE, - .probe = probe_opaque, + .probe = PROBE_OPAQUE, /* eraseblock sizes will be set by the probing function */ .block_erasers = { { - .block_erase = erase_opaque, + .block_erase = OPAQUE_ERASE, } }, - .write = write_opaque, - .read = read_opaque, + .write = WRITE_OPAQUE, + .read = READ_OPAQUE, }, { @@ -18312,10 +20673,10 @@ const struct flashchip flashchips[] = { .total_size = 0, .page_size = 256, .tested = TEST_BAD_PREW, - .probe = probe_spi_rdid4, + .probe = PROBE_SPI_RDID4, .probe_timing = TIMING_ZERO, - .write = NULL, - .read = NULL, + .write = 0, + .read = 0, }, { @@ -18327,10 +20688,10 @@ const struct flashchip flashchips[] = { .total_size = 0, .page_size = 256, .tested = TEST_BAD_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, - .write = NULL, - .read = NULL, + .write = 0, + .read = 0, }, { @@ -18342,10 +20703,10 @@ const struct flashchip flashchips[] = { .total_size = 0, .page_size = 256, .tested = TEST_BAD_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, - .write = NULL, - .read = NULL, + .write = 0, + .read = 0, }, { @@ -18357,10 +20718,10 @@ const struct flashchip flashchips[] = { .total_size = 0, .page_size = 256, .tested = TEST_BAD_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, - .write = NULL, - .read = NULL, + .write = 0, + .read = 0, }, { @@ -18372,10 +20733,10 @@ const struct flashchip flashchips[] = { .total_size = 0, .page_size = 256, .tested = TEST_BAD_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, - .write = NULL, - .read = NULL, + .write = 0, + .read = 0, }, { @@ -18387,10 +20748,10 @@ const struct flashchip flashchips[] = { .total_size = 0, .page_size = 256, .tested = TEST_BAD_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, - .write = NULL, - .read = NULL, + .write = 0, + .read = 0, }, { @@ -18402,10 +20763,10 @@ const struct flashchip flashchips[] = { .total_size = 0, .page_size = 256, .tested = TEST_BAD_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, - .write = NULL, - .read = NULL, + .write = 0, + .read = 0, }, { @@ -18417,10 +20778,10 @@ const struct flashchip flashchips[] = { .total_size = 0, .page_size = 256, .tested = TEST_BAD_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, - .write = NULL, - .read = NULL, + .write = 0, + .read = 0, }, { @@ -18432,10 +20793,10 @@ const struct flashchip flashchips[] = { .total_size = 0, .page_size = 256, .tested = TEST_BAD_PREW, - .probe = probe_spi_rdid, + .probe = PROBE_SPI_RDID, .probe_timing = TIMING_ZERO, - .write = NULL, - .read = NULL, + .write = 0, + .read = 0, }, { @@ -18447,8 +20808,8 @@ const struct flashchip flashchips[] = { .total_size = 0, .page_size = 256, .tested = TEST_BAD_PREW, - .probe = probe_spi_rdid, - .write = NULL, + .probe = PROBE_SPI_RDID, + .write = 0, }, { @@ -18460,8 +20821,8 @@ const struct flashchip flashchips[] = { .total_size = 0, .page_size = 256, .tested = TEST_BAD_PREW, - .probe = probe_spi_rems, - .write = NULL, + .probe = PROBE_SPI_REMS, + .write = 0, }, {0} |