summaryrefslogtreecommitdiff
path: root/spi.c
diff options
context:
space:
mode:
authorstepan <stepan@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2008-10-29 22:13:20 +0000
committerstepan <stepan@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2008-10-29 22:13:20 +0000
commit4cbd5884752ad0854d75d8dc31a358d3647f21ac (patch)
tree604ec97701af76c957c5b8eef17adab3bc95a02f /spi.c
parent1e77ef28bdcec985fd5fcb4e10fd628172e02d44 (diff)
downloadflashrom-4cbd5884752ad0854d75d8dc31a358d3647f21ac.tar.gz
Original v2 revision: 3707
Flashrom support for some Numonyx parts (M25PE) using block erase d8 as discussed with Peter Stuge Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: https://code.coreboot.org/svn/flashrom/trunk@333 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'spi.c')
-rw-r--r--spi.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/spi.c b/spi.c
index 0028b4c..83624fa 100644
--- a/spi.c
+++ b/spi.c
@@ -310,6 +310,29 @@ int spi_block_erase_d8(const struct flashchip *flash, unsigned long addr)
return 0;
}
+int spi_chip_erase_d8(struct flashchip *flash)
+{
+ int i, rc = 0;
+ int total_size = flash->total_size * 1024;
+ int erase_size = 64 * 1024;
+
+ spi_disable_blockprotect();
+
+ printf("Erasing chip: \n");
+
+ for (i = 0; i < total_size / erase_size; i++) {
+ rc = spi_block_erase_d8(flash, i * erase_size);
+ if (rc) {
+ printf("Error erasing block at 0x%x\n", i);
+ break;
+ }
+ }
+
+ printf("\n");
+
+ return rc;
+}
+
/* Sector size is usually 4k, though Macronix eliteflash has 64k */
int spi_sector_erase(const struct flashchip *flash, unsigned long addr)
{