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>
diff --git a/ichspi.c b/ichspi.c
index fead7e6..8fa3c29 100644
--- a/ichspi.c
+++ b/ichspi.c
@@ -683,36 +683,15 @@
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,