Hi. I added support for IS25LP016 by copying the configuration from IS25LP064 and modifying it. I'm not sure if the feature_bits are set correctly, but writing, reading and erasing works fine.
Ondrej Hennel
From af04e4f19ff01084be6b4bbb69cf1bdb7513cf67 Mon Sep 17 00:00:00 2001 From: Ondrej Hennel ondrej.hennel@gmail.com Date: Thu, 9 Sep 2021 14:24:36 +0200 Subject: [PATCH] add support for IS25LP016
Signed-off-by: Ondrej Hennel ondrej.hennel@gmail.com --- flashchips.c | 41 +++++++++++++++++++++++++++++++++++++++++ flashchips.h | 1 + 2 files changed, 42 insertions(+)
diff --git a/flashchips.c b/flashchips.c index 3187a49..467e55d 100644 --- a/flashchips.c +++ b/flashchips.c @@ -7301,6 +7301,47 @@ const struct flashchip flashchips[] = { .voltage = {4500, 5500}, },
+ { + .vendor = "ISSI", + .name = "IS25LP016", + .bustype = BUS_SPI, + .manufacture_id = ISSI_ID_SPI, + .model_id = ISSI_IS25LP016, + .total_size = 2048, + .page_size = 256, + /* OTP: 1024B total; read 0x48; write 0x42 */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, + .tested = TEST_UNTESTED, + .probe = probe_spi_rdid, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 512} }, + .block_erase = spi_block_erase_20, + }, { + .eraseblocks = { {4 * 1024, 512} }, + .block_erase = spi_block_erase_d7, + }, { + .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, + } + }, + .unlock = spi_disable_blockprotect, + .write = spi_chip_write_256, + .read = spi_chip_read, + .voltage = {2300, 3600}, + }, + { .vendor = "ISSI", .name = "IS25LP064", diff --git a/flashchips.h b/flashchips.h index e190dca..f87e30e 100644 --- a/flashchips.h +++ b/flashchips.h @@ -472,6 +472,7 @@
#define ISSI_ID 0xD5 /* ISSI Integrated Silicon Solutions, see also PMC. */ #define ISSI_ID_SPI 0x9D /* ISSI ID used for SPI flash, see also PMC_ID_NOPREFIX */ +#define ISSI_IS25LP016 0x6015 #define ISSI_IS25LP064 0x6017 #define ISSI_IS25LP128 0x6018 #define ISSI_IS25LP256 0x6019