diff options
| author | Nikolay Nikolaev <evrinoma@gmail.com> | 2013-06-28 21:28:49 +0000 | 
|---|---|---|
| committer | Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> | 2013-06-28 21:28:49 +0000 | 
| commit | 384de8e7450fc705820ae24419d208e95eddf974 (patch) | |
| tree | ca0f37787e7dd7a60b8fe59c1f8432da2a15f9f5 | |
| parent | b6b00e99aac373176e612c79b4579c9e577bd2ed (diff) | |
| download | flashrom-384de8e7450fc705820ae24419d208e95eddf974.tar.gz flashrom-384de8e7450fc705820ae24419d208e95eddf974.tar.bz2 flashrom-384de8e7450fc705820ae24419d208e95eddf974.zip  | |
Add support for all Sanyo LE25FW chips
Add...
 - Sanyo LE25FW403A
 - Sanyo LE25FW418A
 - Sanyo LE25FW806
 - Sanyo LE25FW808
Also, fix wrong description of Sanyo LE25FW203A.
Corresponding to flashrom svn r1684.
Signed-off-by: Nikolay Nikolaev <evrinoma@gmail.com>
Reviewed-by: Steven Zakulec <spzakulec@gmail.com>
Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
| -rw-r--r-- | flashchips.c | 142 | ||||
| -rw-r--r-- | flashchips.h | 5 | 
2 files changed, 141 insertions, 6 deletions
diff --git a/flashchips.c b/flashchips.c index 7532618b..2212a95c 100644 --- a/flashchips.c +++ b/flashchips.c @@ -7431,11 +7431,11 @@ const struct flashchip flashchips[] = {  	{  		.vendor		= "Sanyo", -		.name		= "LF25FW203A", +		.name		= "LE25FW203A",  		.bustype	= BUS_SPI,  		.manufacture_id	= SANYO_ID,  		.model_id	= SANYO_LE25FW203A, -		.total_size	= 2048, +		.total_size	= 256,  		.page_size	= 256,  		.tested		= TEST_UNTESTED,  		.probe		= probe_spi_rdid, @@ -7443,17 +7443,147 @@ const struct flashchip flashchips[] = {  		.block_erasers	=  		{  			{ -				.eraseblocks = { {64 * 1024, 32} }, +				.eraseblocks = { {256, 1024} }, +				.block_erase = spi_block_erase_db, +			},	{ +				.eraseblocks = { {64 * 1024, 4} },  				.block_erase = spi_block_erase_d8,  			},	{ -				.eraseblocks = { {2 * 1024 * 1024, 1} }, +				.eraseblocks = { {256 * 1024, 1} },  				.block_erase = spi_block_erase_c7,  			}  		}, -		.printlock	= spi_prettyprint_status_register_plain, /* TODO: improve */ -		.unlock		= spi_disable_blockprotect, +		.printlock	= spi_prettyprint_status_register_default_welwip, +		.unlock		= NULL, /* #WP pin write-protects lower 64kB. */  		.write		= spi_chip_write_256,  		.read		= spi_chip_read, +		.voltage	= {2700, 3600}, +	}, + +	{ +		.vendor		= "Sanyo", +		.name		= "LE25FW403A", +		.bustype	= BUS_SPI, +		.manufacture_id	= SANYO_ID, +		.model_id	= SANYO_LE25FW403A, +		.total_size	= 512, +		.page_size	= 256, +		.tested		= TEST_UNTESTED, +		.probe		= probe_spi_rdid, +		.probe_timing	= TIMING_ZERO, +		.block_erasers	= { +			{ +				.eraseblocks = { {256, 2 * 1024} }, +				.block_erase = spi_block_erase_db, +			},	{ +				.eraseblocks = { {64 * 1024, 8} }, +				.block_erase = spi_block_erase_d8, +			},	{ +				.eraseblocks = { {512 * 1024, 1} }, +				.block_erase = spi_block_erase_c7, +			} +		}, +		.printlock	= spi_prettyprint_status_register_default_welwip, +		.unlock		= NULL, /* #WP pin write-protects lower 64kB. */ +		.write		= spi_chip_write_256, +		.read		= spi_chip_read, +		.voltage	= {2700, 3600}, +	}, + +	{ +		.vendor		= "Sanyo", +		.name		= "LE25FW418A", +		.bustype	= BUS_SPI, +		.manufacture_id	= SANYO_ID, +		.model_id	= SANYO_LE25FW418A, +		.total_size	= 512, +		.page_size	= 256, +		.feature_bits	= FEATURE_WRSR_WREN, +		.tested		= TEST_UNTESTED, +		.probe		= probe_spi_res2, +		.probe_timing	= TIMING_ZERO, +		.block_erasers	= { +			{ +				.eraseblocks = { {4 * 1024, 128} }, +				.block_erase = spi_block_erase_d7, +			},	{ +				.eraseblocks = { {64 * 1024, 8} }, +				.block_erase = spi_block_erase_d8, +			},	{ +				.eraseblocks = { {512 * 1024, 1} }, +				.block_erase = spi_block_erase_c7, +				} +			}, +		.printlock	= spi_prettyprint_status_register_default_bp2, +		.unlock		= spi_disable_blockprotect, /* #WP pin write-protects SRWP bit. */ +		.write		= spi_chip_write_256, +		.read		= spi_chip_read, /* some quad-read supported ("HD_READ mode") */ +		.voltage	= {2700, 3600}, +	}, + +	{ +		.vendor		= "Sanyo", +		.name		= "LE25FW806", +		.bustype	= BUS_SPI, +		.manufacture_id	= SANYO_ID, +		.model_id	= SANYO_LE25FW806, +		.total_size	= 1024, +		.page_size	= 256, +		.feature_bits	= FEATURE_WRSR_WREN, +		.tested		= TEST_UNTESTED, +		.probe		= probe_spi_res2, +		.probe_timing	= TIMING_ZERO, +		.block_erasers	= { +			{ +				.eraseblocks = { {4 * 1024, 256} }, +				.block_erase = spi_block_erase_20, +			},	{ +				.eraseblocks = { {4 * 1024, 256} }, +				.block_erase = spi_block_erase_d7, +			},	{ +				.eraseblocks = { {64 * 1024, 16} }, +				.block_erase = spi_block_erase_d8, +			},	{ +				.eraseblocks = { {1024 * 1024, 1} }, +				.block_erase = spi_block_erase_c7, +			} +		}, +		.printlock	= spi_prettyprint_status_register_default_bp2, +		.unlock		= spi_disable_blockprotect, /* #WP pin write-protects SRWP bit. */ +		.write		= spi_chip_write_256, +		.read		= spi_chip_read, +		.voltage	= {2700, 3600}, +	}, + +	{ +		.vendor		= "Sanyo", +		.name		= "LE25FW808", +		.bustype	= BUS_SPI, +		.manufacture_id	= SANYO_ID, +		.model_id	= SANYO_LE25FW808, +		.total_size	= 1024, +		.page_size	= 256, +		.feature_bits	= FEATURE_WRSR_WREN, +		.tested		= TEST_UNTESTED, +		.probe		= probe_spi_res2, +		.probe_timing	= TIMING_ZERO, +		.block_erasers	= { +			{ +				.eraseblocks = { {8 * 1024, 128} }, +				.block_erase = spi_block_erase_d7, +			},	{ +				.eraseblocks = { {64 * 1024, 16} }, +				.block_erase = spi_block_erase_d8, +			},	{ +				.eraseblocks = { {1024 * 1024, 1} }, +				.block_erase = spi_block_erase_c7, +			} +		}, +		.printlock	= spi_prettyprint_status_register_default_bp2, +		.unlock		= spi_disable_blockprotect, /* #WP pin write-protects SRWP bit. */ +		.write		= spi_chip_write_256, +		.read		= spi_chip_read, /* some quad-read supported ("HD_READ mode") */ +		.voltage	= {2700, 3600},  	},  	{ diff --git a/flashchips.h b/flashchips.h index 4e9b73ba..22dde4f6 100644 --- a/flashchips.h +++ b/flashchips.h @@ -494,6 +494,11 @@   */  #define SANYO_ID		0x62  #define SANYO_LE25FW203A	0x1600 +#define SANYO_LE25FW403A	0x1100 +#define SANYO_LE25FW406		0x07	/* RES2 */ +#define SANYO_LE25FW418A	0x10	/* RES2 and some weird 1 byte RDID variant */ +#define SANYO_LE25FW806		0x26	/* RES2 and some weird 1 byte RDID variant */ +#define SANYO_LE25FW808		0x20	/* RES2 and some weird 1 byte RDID variant */  #define SHARP_ID		0xB0	/* Sharp */  #define SHARP_LH28F008BJ__PT	0xEC  | 
