aboutsummaryrefslogtreecommitdiffstats
path: root/ichspi.c
diff options
context:
space:
mode:
authorCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2010-07-14 16:19:05 +0000
committerCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2010-07-14 16:19:05 +0000
commit9a795d83fbb8842a271d5e037dc983a57b0419fd (patch)
treea9049f708d0ab7d42d122fecd23855aaa819c5bc /ichspi.c
parent1748c5701f77ab7164ab3311f37abc356d825ccb (diff)
downloadflashrom-9a795d83fbb8842a271d5e037dc983a57b0419fd.tar.gz
flashrom-9a795d83fbb8842a271d5e037dc983a57b0419fd.tar.bz2
flashrom-9a795d83fbb8842a271d5e037dc983a57b0419fd.zip
Convert SPI chips to partial write
However, wrap the write functions in a compat layer to allow converting the rest of flashrom later. Tested on Intel NM10 by David Hendricks. Corresponding to flashrom svn r1080. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
Diffstat (limited to 'ichspi.c')
-rw-r--r--ichspi.c25
1 files changed, 2 insertions, 23 deletions
diff --git a/ichspi.c b/ichspi.c
index fead7e6d..8fa3c295 100644
--- a/ichspi.c
+++ b/ichspi.c
@@ -683,36 +683,15 @@ int ich_spi_read(struct flashchip *flash, uint8_t * buf, int start, int len)
return spi_read_chunked(flash, buf, start, len, maxdata);
}
-int ich_spi_write_256(struct flashchip *flash, uint8_t * buf)
+int ich_spi_write_256(struct flashchip *flash, uint8_t * buf, int start, int len)
{
- int i, ret = 0;
- int total_size = flash->total_size * 1024;
- int erase_size = 64 * 1024;
int maxdata = 64;
if (spi_controller == SPI_CONTROLLER_VIA)
maxdata = 16;
spi_disable_blockprotect();
- /* Erase first */
- msg_pinfo("Erasing flash before programming... ");
- if (erase_flash(flash)) {
- msg_perr("ERASE FAILED!\n");
- return -1;
- }
- msg_pinfo("done.\n");
-
- msg_pinfo("Programming page: \n");
- for (i = 0; i < total_size / erase_size; i++) {
- ret = spi_write_chunked(flash, buf + (i * erase_size),
- i * erase_size, erase_size, maxdata);
- if (ret)
- break;
- }
-
- msg_pinfo("\n");
-
- return ret;
+ return spi_write_chunked(flash, buf, start, len, maxdata);
}
int ich_spi_send_command(unsigned int writecnt, unsigned int readcnt,