]> granicus.if.org Git - esp-idf/commitdiff
spi_flash: fix erase_range for block erase check
authorMahavir Jain <mahavir@espressif.com>
Mon, 27 Aug 2018 16:24:20 +0000 (21:54 +0530)
committerKonstantin Kondrashov <konstantin@espressif.com>
Tue, 23 Apr 2019 13:14:33 +0000 (21:14 +0800)
Erase in block (64k) as much as possible, before falling back
to sector (4k) erase.

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
components/spi_flash/flash_ops.c

index aab0c1210fa877d5a6e71d694f42ec57c7975e0e..89f9ef5e141fd7256edf0e384a2857d10e8bb225 100644 (file)
@@ -218,7 +218,7 @@ esp_err_t IRAM_ATTR spi_flash_erase_range(uint32_t start_addr, uint32_t size)
     if (rc == ESP_ROM_SPIFLASH_RESULT_OK) {
         for (size_t sector = start; sector != end && rc == ESP_ROM_SPIFLASH_RESULT_OK; ) {
             spi_flash_guard_start();
-            if (sector % sectors_per_block == 0 && end - sector > sectors_per_block) {
+            if (sector % sectors_per_block == 0 && end - sector >= sectors_per_block) {
                 rc = esp_rom_spiflash_erase_block(sector / sectors_per_block);
                 sector += sectors_per_block;
                 COUNTER_ADD_BYTES(erase, sectors_per_block * SPI_FLASH_SEC_SIZE);