1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-07-02 06:23:18 +02:00

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>
This commit is contained in:
Carl-Daniel Hailfinger
2010-07-14 16:19:05 +00:00
parent 1748c5701f
commit 9a795d83fb
13 changed files with 126 additions and 130 deletions

View File

@ -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,