diff options
author | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2010-07-14 16:19:05 +0000 |
---|---|---|
committer | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2010-07-14 16:19:05 +0000 |
commit | 9a795d83fbb8842a271d5e037dc983a57b0419fd (patch) | |
tree | a9049f708d0ab7d42d122fecd23855aaa819c5bc /ichspi.c | |
parent | 1748c5701f77ab7164ab3311f37abc356d825ccb (diff) | |
download | flashrom-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.c | 25 |
1 files changed, 2 insertions, 23 deletions
@@ -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, |