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}, },