]> granicus.if.org Git - esp-idf/blobdiff - components/spi_flash/Kconfig
console/linenoise: support buffered stdout
[esp-idf] / components / spi_flash / Kconfig
index 8b9c7148208b23cc515dd39849b89a44e6b81059..f5e3c7ecd976fd6f9bb517952618ad10fd98a6ac 100644 (file)
@@ -1,5 +1,36 @@
 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
@@ -21,6 +52,31 @@ config SPI_FLASH_ROM_DRIVER_PATCH
         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