From 96123034f4c28800fe2c3693be82970f2b9148c3 Mon Sep 17 00:00:00 2001 From: Carl-Daniel Hailfinger Date: Wed, 25 Nov 2009 02:07:30 +0000 Subject: Kill hardcoded block erase on ICH SPI The existing code does not work for all SPI chips, and it just was a band-aid to cope with locked down chipsets back in a time when there was no eraseblock infrastructure. Basically, this unbreaks a few SPI chips on ICH. Corresponding to flashrom svn r777. Signed-off-by: Carl-Daniel Hailfinger Acked-by: Maciej Pijanka --- ichspi.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'ichspi.c') diff --git a/ichspi.c b/ichspi.c index b53a925..cd02b96 100644 --- a/ichspi.c +++ b/ichspi.c @@ -658,20 +658,16 @@ int ich_spi_write_256(struct flashchip *flash, uint8_t * buf) int maxdata = 64; spi_disable_blockprotect(); + /* Erase first */ + printf("Erasing flash before programming... "); + if (erase_flash(flash)) { + fprintf(stderr, "ERASE FAILED!\n"); + return -1; + } + printf("done.\n"); printf("Programming page: \n"); - for (i = 0; i < total_size / erase_size; i++) { - /* FIMXE: call the chip-specific spi_block_erase_XX instead. - * For this, we need to add a block erase function to - * struct flashchip. - */ - rc = spi_block_erase_d8(flash, i * erase_size, erase_size); - if (rc) { - printf("Error erasing block at 0x%x\n", i); - break; - } - if (spi_controller == SPI_CONTROLLER_VIA) maxdata = 16; -- cgit v1.1