diff options
| author | Rudolf Marek <r.marek@assembler.cz> | 2010-04-20 19:34:31 +0000 | 
|---|---|---|
| committer | Rudolf Marek <r.marek@assembler.cz> | 2010-04-20 19:34:31 +0000 | 
| commit | ce1c798c1ce12873c101d0e3345548db83d2e374 (patch) | |
| tree | ef7e6e60e5a1ab1f159a03a23499293cb5b73696 /flashchips.c | |
| parent | 8f10d24a0098eb727599688ee2d4bb0eb637d674 (diff) | |
| download | flashrom-ce1c798c1ce12873c101d0e3345548db83d2e374.tar.gz flashrom-ce1c798c1ce12873c101d0e3345548db83d2e374.tar.bz2 flashrom-ce1c798c1ce12873c101d0e3345548db83d2e374.zip | |
Add support for Winbond W25Q80, W25Q16 and W25Q32
I tested read/write/probe with W25Q80.
Corresponding to flashrom svn r994.
Signed-off-by: Rudolf Marek <r.marek@assembler.cz> 
Acked-by: David Hendricks <dhendrix@google.com>
Diffstat (limited to 'flashchips.c')
| -rw-r--r-- | flashchips.c | 102 | 
1 files changed, 102 insertions, 0 deletions
| diff --git a/flashchips.c b/flashchips.c index 2e0552d7..10c09899 100644 --- a/flashchips.c +++ b/flashchips.c @@ -5593,6 +5593,108 @@ struct flashchip flashchips[] = {  	{  		.vendor		= "Winbond", +		.name		= "W25Q80", +		.bustype	= CHIP_BUSTYPE_SPI, +		.manufacture_id	= WINBOND_NEX_ID, +		.model_id	= W_25Q80, +		.total_size	= 1024, +		.page_size	= 256, +		.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, +			} +		}, +		.write		= spi_chip_write_256, +		.read		= spi_chip_read, +	}, + +	{ +		.vendor		= "Winbond", +		.name		= "W25Q16", +		.bustype	= CHIP_BUSTYPE_SPI, +		.manufacture_id	= WINBOND_NEX_ID, +		.model_id	= W_25Q16, +		.total_size	= 2048, +		.page_size	= 256, +		.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, +			} +		}, +		.write		= spi_chip_write_256, +		.read		= spi_chip_read, +	}, + +	{ +		.vendor		= "Winbond", +		.name		= "W25Q32", +		.bustype	= CHIP_BUSTYPE_SPI, +		.manufacture_id	= WINBOND_NEX_ID, +		.model_id	= W_25Q32, +		.total_size	= 4096, +		.page_size	= 256, +		.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, +			} +		}, +		.write		= spi_chip_write_256, +		.read		= spi_chip_read, +	}, + +	{ +		.vendor		= "Winbond",  		.name		= "W25x10",  		.bustype	= CHIP_BUSTYPE_SPI,  		.manufacture_id	= WINBOND_NEX_ID, | 
