diff options
| -rw-r--r-- | flashchips.c | 37 | ||||
| -rw-r--r-- | flashchips.h | 1 | 
2 files changed, 38 insertions, 0 deletions
| diff --git a/flashchips.c b/flashchips.c index d2773d62..e066e03f 100644 --- a/flashchips.c +++ b/flashchips.c @@ -15431,6 +15431,43 @@ const struct flashchip flashchips[] = {  	{  		.vendor		= "Winbond", +		.name		= "W25Q128.V..M", +		.bustype	= BUS_SPI, +		.manufacture_id	= WINBOND_NEX_ID, +		.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, +		.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, +			} +		}, +		.unlock		= spi_disable_blockprotect, +		.write		= spi_chip_write_256, +		.read		= spi_chip_read, +		.voltage	= {2700, 3600}, +	}, + +	{ +		.vendor		= "Winbond",  		.name		= "W25Q256.V",  		.bustype	= BUS_SPI,  		.manufacture_id	= WINBOND_NEX_ID, diff --git a/flashchips.h b/flashchips.h index 6bc40944..7c1a5231 100644 --- a/flashchips.h +++ b/flashchips.h @@ -925,6 +925,7 @@  #define WINBOND_NEX_W25Q32_W	0x6016	/* W25Q32DW; W25Q32FV in QPI mode */  #define WINBOND_NEX_W25Q64_W	0x6017	/* W25Q64DW; W25Q64FV in QPI mode */  #define WINBOND_NEX_W25Q128_W	0x6018	/* W25Q128FW; W25Q128FV in QPI mode */ +#define WINBOND_NEX_W25Q128_V_M	0x7018	/* W25Q128JVSM */  #define WINBOND_ID		0xDA	/* Winbond */  #define WINBOND_W19B160BB	0x49 | 
