menu "SPI Flash driver"
+config SPI_FLASH_VERIFY_WRITE
+ bool "Verify SPI flash writes"
+ default n
+ help
+ If this option is enabled, any time SPI flash is written then the data will be read
+ back and verified. This can catch hardware problems with SPI flash, or flash which
+ was not erased before verification.
+
+config SPI_FLASH_LOG_FAILED_WRITE
+ bool "Log errors if verification fails"
+ depends on SPI_FLASH_VERIFY_WRITE
+ default n
+ help
+ If this option is enabled, if SPI flash write verification fails then a log error line
+ will be written with the address, expected & actual values. This can be useful when
+ debugging hardware SPI flash problems.
+
+config SPI_FLASH_WARN_SETTING_ZERO_TO_ONE
+ bool "Log warning if writing zero bits to ones"
+ depends on SPI_FLASH_VERIFY_WRITE
+ default n
+ help
+ If this option is enabled, any SPI flash write which tries to set zero bits in the flash to
+ ones will log a warning. Such writes will not result in the requested data appearing identically
+ in flash once written, as SPI NOR flash can only set bits to one when an entire sector is erased.
+ After erasing, individual bits can only be written from one to zero.
+
+ Note that some software (such as SPIFFS) which is aware of SPI NOR flash may write one bits as an
+ optimisation, relying on the data in flash becoming a bitwise AND of the new data and any existing data.
+ Such software will log spurious warnings if this option is enabled.
+
config SPI_FLASH_ENABLE_COUNTERS
bool "Enable operation counters"
default 0
This option is needed to write to flash on ESP32-D2WD, and any configuration
where external SPI flash is connected to non-default pins.
+choice SPI_FLASH_WRITING_DANGEROUS_REGIONS
+ bool "Writing to dangerous flash regions"
+ default SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS
+ help
+ SPI flash APIs can optionally abort or return a failure code
+ if erasing or writing addresses that fall at the beginning
+ of flash (covering the bootloader and partition table) or that
+ overlap the app partition that contains the running app.
+
+ It is not recommended to ever write to these regions from an IDF app,
+ and this check prevents logic errors or corrupted firmware memory from
+ damaging these regions.
+
+ Note that this feature *does not* check calls to the esp_rom_xxx SPI flash
+ ROM functions. These functions should not be called directly from IDF
+ applications.
+
+config SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS
+ bool "Aborts"
+config SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS
+ bool "Fails"
+config SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED
+ bool "Allowed"
+endchoice
+
endmenu