summaryrefslogtreecommitdiffstats
path: root/flashchips.c
diff options
context:
space:
mode:
authorCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2009-10-01 13:15:01 +0000
committerCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2009-10-01 13:15:01 +0000
commit4010712033b988f0be85f790982a12bb4010094b (patch)
treeef7410b7271f893786b85dbc262f6740eecdd6d9 /flashchips.c
parent2bc98f6c915f615fe5262eceeeb280c12d337357 (diff)
downloadast2050-flashrom-4010712033b988f0be85f790982a12bb4010094b.zip
ast2050-flashrom-4010712033b988f0be85f790982a12bb4010094b.tar.gz
Add comments about the meaning of block erase related struct flashchip members
Cosmetics: Place curly brackets on a common line. Add MX25V512 as alias name to MX25L512. Add MX25V8005 as alias name to MX25L8005. Add erase block definitions for MX25L2005, MX25L4005, MX25L8005, MX25L1605 and change their status to TEST_OK_PRW where applicable. Corresponding to flashrom svn r738. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Stefan Reinauer <stepan@coresystems.de>
Diffstat (limited to 'flashchips.c')
-rw-r--r--flashchips.c116
1 files changed, 95 insertions, 21 deletions
diff --git a/flashchips.c b/flashchips.c
index b876d51..c8d51bf 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -44,6 +44,11 @@ struct flashchip flashchips[] = {
* .probe = Probe function
* .probe_timing = Probe function delay
* .erase = Chip erase function
+ * .block_erasers[] = Array of erase layouts and erase functions
+ * {
+ * .eraseblocks[] = Array of { blocksize, blockcount }
+ * .block_erase = Block erase function
+ * }
* .write = Chip write function
* .read = Chip read function
*/
@@ -1235,20 +1240,16 @@ struct flashchip flashchips[] = {
{
.eraseblocks = { {4 * 1024, 16} },
.block_erase = spi_block_erase_20,
- },
- {
+ }, {
.eraseblocks = { {64 * 1024, 1} },
.block_erase = spi_block_erase_52,
- },
- {
+ }, {
.eraseblocks = { {64 * 1024, 1} },
.block_erase = spi_block_erase_d8,
- },
- {
+ }, {
.eraseblocks = { {64 * 1024, 1} },
.block_erase = spi_block_erase_60,
- },
- {
+ }, {
.eraseblocks = { {64 * 1024, 1} },
.block_erase = spi_block_erase_c7,
},
@@ -1274,16 +1275,13 @@ struct flashchip flashchips[] = {
{
.eraseblocks = { {4 * 1024, 32} },
.block_erase = spi_block_erase_20,
- },
- {
+ }, {
.eraseblocks = { {64 * 1024, 2} },
.block_erase = spi_block_erase_d8,
- },
- {
+ }, {
.eraseblocks = { {128 * 1024, 1} },
.block_erase = spi_block_erase_60,
- },
- {
+ }, {
.eraseblocks = { {128 * 1024, 1} },
.block_erase = spi_block_erase_c7,
},
@@ -1303,7 +1301,26 @@ struct flashchip flashchips[] = {
.tested = TEST_UNTESTED,
.probe = probe_spi_rdid,
.probe_timing = TIMING_ZERO,
- .erase = spi_chip_erase_60_c7,
+ .erase = NULL,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {4 * 1024, 64} },
+ .block_erase = spi_block_erase_20,
+ }, {
+ .eraseblocks = { {64 * 1024, 4} },
+ .block_erase = spi_block_erase_52,
+ }, {
+ .eraseblocks = { {64 * 1024, 4} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { {256 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
+ }, {
+ .eraseblocks = { {256 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ },
+ },
.write = spi_chip_write_256,
.read = spi_chip_read,
},
@@ -1316,10 +1333,29 @@ struct flashchip flashchips[] = {
.model_id = MX_25L4005,
.total_size = 512,
.page_size = 256,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PRW,
.probe = probe_spi_rdid,
.probe_timing = TIMING_ZERO,
- .erase = spi_chip_erase_60_c7,
+ .erase = NULL,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {4 * 1024, 128} },
+ .block_erase = spi_block_erase_20,
+ }, {
+ .eraseblocks = { {64 * 1024, 8} },
+ .block_erase = spi_block_erase_52,
+ }, {
+ .eraseblocks = { {64 * 1024, 8} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { {512 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
+ }, {
+ .eraseblocks = { {512 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ },
+ },
.write = spi_chip_write_256,
.read = spi_chip_read,
},
@@ -1332,10 +1368,29 @@ struct flashchip flashchips[] = {
.model_id = MX_25L8005,
.total_size = 1024,
.page_size = 256,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PRW,
.probe = probe_spi_rdid,
.probe_timing = TIMING_ZERO,
- .erase = spi_chip_erase_60_c7,
+ .erase = NULL,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {4 * 1024, 256} },
+ .block_erase = spi_block_erase_20,
+ }, {
+ .eraseblocks = { {64 * 1024, 16} },
+ .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,
},
@@ -1348,10 +1403,29 @@ struct flashchip flashchips[] = {
.model_id = MX_25L1605,
.total_size = 2048,
.page_size = 256,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PRW,
.probe = probe_spi_rdid,
.probe_timing = TIMING_ZERO,
- .erase = spi_chip_erase_60_c7,
+ .erase = NULL,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {4 * 1024, 512} },
+ .block_erase = spi_block_erase_20, /* This erase function has 64k blocksize for eLiteFlash */
+ }, {
+ .eraseblocks = { {64 * 1024, 32} }, /* Not supported in MX25L1605 (eLiteFlash) and MX25L1605D */
+ .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,
},
OpenPOWER on IntegriCloud