Merge branch 'feature/configure_flash_write_chunk_size' into 'master'

spi_flash: add configuration option to select flash write chunk size

See merge request espressif/esp-idf!9067
This commit is contained in:
Michael (XIAO Xufeng) 2020-06-22 14:50:42 +08:00
commit 479269a52b
3 changed files with 20 additions and 0 deletions

View file

@ -130,6 +130,16 @@ menu "SPI Flash driver"
help help
Defines how many ticks will be before returning to continue a erasing. Defines how many ticks will be before returning to continue a erasing.
config SPI_FLASH_WRITE_CHUNK_SIZE
int "Flash write chunk size"
default 8192
range 256 8192
help
Flash write is broken down in terms of multiple (smaller) write operations.
This configuration options helps to set individual write chunk size, smaller
value here ensures that cache (and non-IRAM resident interrupts) remains
disabled for shorter duration.
menu "Auto-detect flash chips" menu "Auto-detect flash chips"
config SPI_FLASH_SUPPORT_ISSI_CHIP config SPI_FLASH_SUPPORT_ISSI_CHIP

View file

@ -28,7 +28,12 @@
static const char TAG[] = "spi_flash"; static const char TAG[] = "spi_flash";
#ifdef CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE
#define MAX_WRITE_CHUNK CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE /* write in chunks */
#else
#define MAX_WRITE_CHUNK 8192 /* write in chunks */ #define MAX_WRITE_CHUNK 8192 /* write in chunks */
#endif // CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE
#define MAX_READ_CHUNK 16384 #define MAX_READ_CHUNK 16384

View file

@ -53,7 +53,12 @@ esp_rom_spiflash_result_t IRAM_ATTR spi_flash_write_encrypted_chip(size_t dest_a
/* Limit number of bytes written/read in a single SPI operation, /* Limit number of bytes written/read in a single SPI operation,
as these operations disable all higher priority tasks from running. as these operations disable all higher priority tasks from running.
*/ */
#ifdef CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE
#define MAX_WRITE_CHUNK CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE
#else
#define MAX_WRITE_CHUNK 8192 #define MAX_WRITE_CHUNK 8192
#endif // CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE
#define MAX_READ_CHUNK 16384 #define MAX_READ_CHUNK 16384
static const char *TAG __attribute__((unused)) = "spi_flash"; static const char *TAG __attribute__((unused)) = "spi_flash";