Hi
I have two of those chips and added support for them.
This chip looks similar to the "MX25L6406E", so i took this part of code
and modified it to fit the MX25L6455EMI.
I have tested all erase modes (logs available if needed).
spi_block_erase_20
spi_block_erase_52
spi_block_erase_d8
spi_block_erase_60
spi_block_erase_c7
I am not a coder and it's years ago since my last patch. So sorry for
not posting a patch. :-(
Here are my modifications (are the correct?):
File flashchips.h
#define MACRONIX_MX25L6455EMI 0x2617 /* MX25L6455EMI (4k 0x20) */
File flashchips.c
{
.vendor = "Macronix",
.name = "MX25L6455EMI",
.bustype = BUS_SPI,
.manufacture_id = MACRONIX_ID,
.model_id = MACRONIX_MX25L6455EMI,
.total_size = 8192,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
.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 = { {64 * 1024, 128} },
.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,
.unlock = spi_disable_blockprotect_bp3_srwd,
.write = spi_chip_write_256,
.read = spi_chip_read, /* Fast read (0x0B), dual I/O read
supported */
.voltage = {2700, 3600},
},