| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520 | 
							- menu "Bootloader config"
 
-     choice BOOTLOADER_LOG_LEVEL
 
-         bool "Bootloader log verbosity"
 
-         default BOOTLOADER_LOG_LEVEL_INFO
 
-         help
 
-             Specify how much output to see in bootloader logs.
 
-         config BOOTLOADER_LOG_LEVEL_NONE
 
-             bool "No output"
 
-         config BOOTLOADER_LOG_LEVEL_ERROR
 
-             bool "Error"
 
-         config BOOTLOADER_LOG_LEVEL_WARN
 
-             bool "Warning"
 
-         config BOOTLOADER_LOG_LEVEL_INFO
 
-             bool "Info"
 
-         config BOOTLOADER_LOG_LEVEL_DEBUG
 
-             bool "Debug"
 
-         config BOOTLOADER_LOG_LEVEL_VERBOSE
 
-             bool "Verbose"
 
-     endchoice
 
-     config BOOTLOADER_LOG_LEVEL
 
-         int
 
-         default 0 if BOOTLOADER_LOG_LEVEL_NONE
 
-         default 1 if BOOTLOADER_LOG_LEVEL_ERROR
 
-         default 2 if BOOTLOADER_LOG_LEVEL_WARN
 
-         default 3 if BOOTLOADER_LOG_LEVEL_INFO
 
-         default 4 if BOOTLOADER_LOG_LEVEL_DEBUG
 
-         default 5 if BOOTLOADER_LOG_LEVEL_VERBOSE
 
-     config BOOTLOADER_SPI_WP_PIN
 
-         int "SPI Flash WP Pin when customising pins via eFuse (read help)"
 
-         range 0 33
 
-         default 7
 
-         depends on ESPTOOLPY_FLASHMODE_QIO || ESPTOOLPY_FLASHMODE_QOUT
 
-         help
 
-             This value is ignored unless flash mode is set to QIO or QOUT *and* the SPI flash pins have been
 
-             overriden by setting the eFuses SPI_PAD_CONFIG_xxx.
 
-             When this is the case, the eFuse config only defines 3 of the 4 Quad I/O data pins. The WP pin (aka ESP32
 
-             pin "SD_DATA_3" or SPI flash pin "IO2") is not specified in eFuse. That pin number is compiled into the
 
-             bootloader instead.
 
-             The default value (GPIO 7) is correct for WP pin on ESP32-D2WD integrated flash.
 
-     choice BOOTLOADER_VDDSDIO_BOOST
 
-         bool "VDDSDIO LDO voltage"
 
-         default BOOTLOADER_VDDSDIO_BOOST_1_9V
 
-         help
 
-             If this option is enabled, and VDDSDIO LDO is set to 1.8V (using eFuse
 
-             or MTDI bootstrapping pin), bootloader will change LDO settings to
 
-             output 1.9V instead. This helps prevent flash chip from browning out
 
-             during flash programming operations.
 
-             This option has no effect if VDDSDIO is set to 3.3V, or if the internal
 
-             VDDSDIO regulator is disabled via eFuse.
 
-         config BOOTLOADER_VDDSDIO_BOOST_1_8V
 
-             bool "1.8V"
 
-             depends on !ESPTOOLPY_FLASHFREQ_80M
 
-         config BOOTLOADER_VDDSDIO_BOOST_1_9V
 
-             bool "1.9V"
 
-     endchoice
 
-     config BOOTLOADER_FACTORY_RESET
 
-         bool "GPIO triggers factory reset"
 
-         default N
 
-         help
 
-             Allows to reset the device to factory settings:
 
-             - clear one or more data partitions;
 
-             - boot from "factory" partition.
 
-             The factory reset will occur if there is a GPIO input pulled low while device starts up.
 
-             See settings below.
 
-     config BOOTLOADER_NUM_PIN_FACTORY_RESET
 
-         int "Number of the GPIO input for factory reset"
 
-         depends on BOOTLOADER_FACTORY_RESET
 
-         range 0 39
 
-         default 4
 
-         help
 
-             The selected GPIO will be configured as an input with internal pull-up enabled.
 
-             To trigger a factory reset, this GPIO must be pulled low on reset.
 
-             Note that GPIO34-39 do not have an internal pullup and an external one must be provided.
 
-     config BOOTLOADER_OTA_DATA_ERASE
 
-         bool "Clear OTA data on factory reset (select factory partition)"
 
-         depends on BOOTLOADER_FACTORY_RESET
 
-         help
 
-             The device will boot from "factory" partition (or OTA slot 0 if no factory partition is present) after a
 
-             factory reset.
 
-     config BOOTLOADER_DATA_FACTORY_RESET
 
-         string "Comma-separated names of partitions to clear on factory reset"
 
-         depends on BOOTLOADER_FACTORY_RESET
 
-         default "nvs"
 
-         help
 
-             Allows customers to select which data partitions will be erased while factory reset.
 
-             Specify the names of partitions as a comma-delimited with optional spaces for readability. (Like this:
 
-             "nvs, phy_init, ...")
 
-             Make sure that the name specified in the partition table and here are the same.
 
-             Partitions of type "app" cannot be specified here.
 
-     config BOOTLOADER_APP_TEST
 
-         bool "GPIO triggers boot from test app partition"
 
-         default N
 
-         help
 
-             Allows to run the test app from "TEST" partition.
 
-             A boot from "test" partition will occur if there is a GPIO input pulled low while device starts up.
 
-             See settings below.
 
-     config BOOTLOADER_NUM_PIN_APP_TEST
 
-         int "Number of the GPIO input to boot TEST partition"
 
-         depends on BOOTLOADER_APP_TEST
 
-         range 0 39
 
-         default 18
 
-         help
 
-             The selected GPIO will be configured as an input with internal pull-up enabled.
 
-             To trigger a test app, this GPIO must be pulled low on reset.
 
-             After the GPIO input is deactivated and the device reboots, the old application will boot.
 
-             (factory or OTA[x]).
 
-             Note that GPIO34-39 do not have an internal pullup and an external one must be provided.
 
-     config BOOTLOADER_HOLD_TIME_GPIO
 
-         int "Hold time of GPIO for reset/test mode (seconds)"
 
-         depends on BOOTLOADER_FACTORY_RESET || BOOTLOADER_APP_TEST
 
-         default 5
 
-         help
 
-             The GPIO must be held low continuously for this period of time after reset
 
-             before a factory reset or test partition boot (as applicable) is performed.
 
-     config BOOTLOADER_WDT_ENABLE
 
-         bool "Use RTC watchdog in start code"
 
-         default y
 
-         help
 
-             Tracks the execution time of startup code.
 
-             If the execution time is exceeded, the RTC_WDT will restart system.
 
-             It is also useful to prevent a lock up in start code caused by an unstable power source.
 
-             NOTE: Tracks the execution time starts from the bootloader code - re-set timeout, while selecting the
 
-             source for slow_clk - and ends calling app_main.
 
-             Re-set timeout is needed due to WDT uses a SLOW_CLK clock source. After changing a frequency slow_clk a
 
-             time of WDT needs to re-set for new frequency.
 
-             slow_clk depends on ESP32_RTC_CLK_SRC (INTERNAL_RC or EXTERNAL_CRYSTAL).
 
-     config BOOTLOADER_WDT_DISABLE_IN_USER_CODE
 
-         bool "Allows RTC watchdog disable in user code"
 
-         depends on BOOTLOADER_WDT_ENABLE
 
-         default n
 
-         help
 
-             If it is set, the client must itself reset or disable rtc_wdt in their code (app_main()).
 
-             Otherwise rtc_wdt will be disabled before calling app_main function.
 
-             Use function rtc_wdt_feed() for resetting counter of rtc_wdt.
 
-             Use function rtc_wdt_disable() for disabling rtc_wdt.
 
-     config BOOTLOADER_WDT_TIME_MS
 
-         int "Timeout for RTC watchdog (ms)"
 
-         depends on BOOTLOADER_WDT_ENABLE
 
-         default 9000
 
-         range 0 120000
 
-         help
 
-             Verify that this parameter is correct and more then the execution time.
 
-             Pay attention to options such as reset to factory, trigger test partition and encryption on boot
 
-             - these options can increase the execution time.
 
-             Note: RTC_WDT will reset while encryption operations will be performed.
 
-     config BOOTLOADER_APP_ROLLBACK_ENABLE
 
-         bool "Enable app rollback support"
 
-         default n
 
-         help
 
-             After updating the app, the bootloader runs a new app with the "ESP_OTA_IMG_PENDING_VERIFY" state set.
 
-             This state prevents the re-run of this app. After the first boot of the new app in the user code, the
 
-             function should be called to confirm the operability of the app or vice versa about its non-operability.
 
-             If the app is working, then it is marked as valid. Otherwise, it is marked as not valid and rolls back to
 
-             the previous working app. A reboot is performed, and the app is booted before the software update.
 
-             Note: If during the first boot a new app the power goes out or the WDT works, then roll back will happen.
 
-             Rollback is possible only between the apps with the same security versions.
 
-     config BOOTLOADER_APP_ANTI_ROLLBACK
 
-         bool "Enable app anti-rollback support"
 
-         depends on BOOTLOADER_APP_ROLLBACK_ENABLE
 
-         default n
 
-         help
 
-             This option prevents rollback to previous firmware/application image with lower security version.
 
-     config BOOTLOADER_APP_SECURE_VERSION
 
-         int "eFuse secure version of app"
 
-         depends on BOOTLOADER_APP_ANTI_ROLLBACK
 
-         default 0
 
-         help
 
-             The secure version is the sequence number stored in the header of each firmware.
 
-             The security version is set in the bootloader, version is recorded in the eFuse field
 
-             as the number of set ones. The allocated number of bits in the efuse field
 
-             for storing the security version is limited (see BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD option).
 
-             Bootloader: When bootloader selects an app to boot, an app is selected that has
 
-             a security version greater or equal that recorded in eFuse field.
 
-             The app is booted with a higher (or equal) secure version.
 
-             The security version is worth increasing if in previous versions there is
 
-             a significant vulnerability and their use is not acceptable.
 
-             Your partition table should has a scheme with ota_0 + ota_1 (without factory).
 
-     config BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD
 
-         int "Size of the efuse secure version field"
 
-         depends on BOOTLOADER_APP_ANTI_ROLLBACK
 
-         range 1 32
 
-         default 32
 
-         help
 
-             The size of the efuse secure version field. Its length is limited to 32 bits.
 
-             This determines how many times the security version can be increased.
 
-     config BOOTLOADER_EFUSE_SECURE_VERSION_EMULATE
 
-         bool "Emulate operations with efuse secure version(only test)"
 
-         default n
 
-         depends on BOOTLOADER_APP_ANTI_ROLLBACK
 
-         help
 
-             This option allow emulate read/write operations with efuse secure version.
 
-             It allow to test anti-rollback implemention without permanent write eFuse bits.
 
-             In partition table should be exist this partition `emul_efuse, data, 5, , 0x2000`.
 
- endmenu  # Bootloader
 
- menu "Security features"
 
-     # These three are the actual options to check in code,
 
-     # selected by the displayed options
 
-     config SECURE_SIGNED_ON_BOOT
 
-         bool
 
-         default y
 
-         depends on SECURE_BOOT_ENABLED || SECURE_SIGNED_ON_BOOT_NO_SECURE_BOOT
 
-     config SECURE_SIGNED_ON_UPDATE
 
-         bool
 
-         default y
 
-         select MBEDTLS_ECP_DP_SECP256R1_ENABLED
 
-         depends on SECURE_BOOT_ENABLED || SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
 
-     config SECURE_SIGNED_APPS
 
-         bool
 
-         default y
 
-         depends on SECURE_SIGNED_ON_BOOT || SECURE_SIGNED_ON_UPDATE
 
-     config SECURE_SIGNED_APPS_NO_SECURE_BOOT
 
-         bool "Require signed app images"
 
-         default n
 
-         depends on !SECURE_BOOT_ENABLED
 
-         help
 
-             Require apps to be signed to verify their integrity.
 
-             This option uses the same app signature scheme as hardware secure boot, but unlike hardware secure boot it
 
-             does not prevent the bootloader from being physically updated. This means that the device can be secured
 
-             against remote network access, but not physical access. Compared to using hardware Secure Boot this option
 
-             is much simpler to implement.
 
-     config SECURE_SIGNED_ON_BOOT_NO_SECURE_BOOT
 
-         bool "Bootloader verifies app signatures"
 
-         default n
 
-         depends on SECURE_SIGNED_APPS_NO_SECURE_BOOT
 
-         help
 
-             If this option is set, the bootloader will be compiled with code to verify that an app is signed before
 
-             booting it.
 
-             If hardware secure boot is enabled, this option is always enabled and cannot be disabled.
 
-             If hardware secure boot is not enabled, this option doesn't add significant security by itself so most
 
-             users will want to leave it disabled.
 
-     config SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
 
-         bool "Verify app signature on update"
 
-         default y
 
-         depends on SECURE_SIGNED_APPS_NO_SECURE_BOOT
 
-         help
 
-             If this option is set, any OTA updated apps will have the signature verified before being considered valid.
 
-             When enabled, the signature is automatically checked whenever the esp_ota_ops.h APIs are used for OTA
 
-             updates, or esp_image_format.h APIs are used to verify apps.
 
-             If hardware secure boot is enabled, this option is always enabled and cannot be disabled.
 
-             If hardware secure boot is not enabled, this option still adds significant security against network-based
 
-             attackers by preventing spoofing of OTA updates.
 
-     config SECURE_BOOT_ENABLED
 
-         bool "Enable hardware secure boot in bootloader (READ DOCS FIRST)"
 
-         default n
 
-         help
 
-             Build a bootloader which enables secure boot on first boot.
 
-             Once enabled, secure boot will not boot a modified bootloader. The bootloader will only load a partition
 
-             table or boot an app if the data has a verified digital signature. There are implications for reflashing
 
-             updated apps once secure boot is enabled.
 
-             When enabling secure boot, JTAG and ROM BASIC Interpreter are permanently disabled by default.
 
-             Refer to https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html before enabling.
 
-     choice SECURE_BOOTLOADER_MODE
 
-         bool "Secure bootloader mode"
 
-         depends on SECURE_BOOT_ENABLED
 
-         default SECURE_BOOTLOADER_ONE_TIME_FLASH
 
-         config SECURE_BOOTLOADER_ONE_TIME_FLASH
 
-             bool "One-time flash"
 
-             help
 
-                 On first boot, the bootloader will generate a key which is not readable externally or by software. A
 
-                 digest is generated from the bootloader image itself. This digest will be verified on each subsequent
 
-                 boot.
 
-                 Enabling this option means that the bootloader cannot be changed after the first time it is booted.
 
-         config SECURE_BOOTLOADER_REFLASHABLE
 
-             bool "Reflashable"
 
-             help
 
-                 Generate a reusable secure bootloader key, derived (via SHA-256) from the secure boot signing key.
 
-                 This allows the secure bootloader to be re-flashed by anyone with access to the secure boot signing
 
-                 key.
 
-                 This option is less secure than one-time flash, because a leak of the digest key from one device
 
-                 allows reflashing of any device that uses it.
 
-     endchoice
 
-     config SECURE_BOOT_BUILD_SIGNED_BINARIES
 
-         bool "Sign binaries during build"
 
-         depends on SECURE_SIGNED_APPS
 
-         default y
 
-         help
 
-             Once secure boot or signed app requirement is enabled, app images are required to be signed.
 
-             If enabled (default), these binary files are signed as part of the build process. The file named in
 
-             "Secure boot private signing key" will be used to sign the image.
 
-             If disabled, unsigned app/partition data will be built. They must be signed manually using espsecure.py
 
-             (for example, on a remote signing server.)
 
-     config SECURE_BOOT_SIGNING_KEY
 
-         string "Secure boot private signing key"
 
-         depends on SECURE_BOOT_BUILD_SIGNED_BINARIES
 
-         default secure_boot_signing_key.pem
 
-         help
 
-             Path to the key file used to sign app images.
 
-             Key file is an ECDSA private key (NIST256p curve) in PEM format.
 
-             Path is evaluated relative to the project directory.
 
-             You can generate a new signing key by running the following command:
 
-             espsecure.py generate_signing_key secure_boot_signing_key.pem
 
-             See https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html for details.
 
-     config SECURE_BOOT_VERIFICATION_KEY
 
-         string "Secure boot public signature verification key"
 
-         depends on SECURE_SIGNED_APPS && !SECURE_BOOT_BUILD_SIGNED_BINARIES
 
-         default signature_verification_key.bin
 
-         help
 
-             Path to a public key file used to verify signed images. This key is compiled into the bootloader and/or
 
-             app, to verify app images.
 
-             Key file is in raw binary format, and can be extracted from a
 
-             PEM formatted private key using the espsecure.py
 
-             extract_public_key command.
 
-             Refer to https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html before enabling.
 
-     choice SECURE_BOOTLOADER_KEY_ENCODING
 
-         bool "Hardware Key Encoding"
 
-         depends on SECURE_BOOTLOADER_REFLASHABLE
 
-         default SECURE_BOOTLOADER_NO_ENCODING
 
-         help
 
-             In reflashable secure bootloader mode, a hardware key is derived from the signing key (with SHA-256) and
 
-             can be written to eFuse with espefuse.py.
 
-             Normally this is a 256-bit key, but if 3/4 Coding Scheme is used on the device then the eFuse key is
 
-             truncated to 192 bits.
 
-             This configuration item doesn't change any firmware code, it only changes the size of key binary which is
 
-             generated at build time.
 
-         config SECURE_BOOTLOADER_KEY_ENCODING_256BIT
 
-             bool "No encoding (256 bit key)"
 
-         config SECURE_BOOTLOADER_KEY_ENCODING_192BIT
 
-             bool "3/4 encoding (192 bit key)"
 
-     endchoice
 
-     config SECURE_BOOT_INSECURE
 
-         bool "Allow potentially insecure options"
 
-         depends on SECURE_BOOT_ENABLED
 
-         default N
 
-         help
 
-             You can disable some of the default protections offered by secure boot, in order to enable testing or a
 
-             custom combination of security features.
 
-             Only enable these options if you are very sure.
 
-             Refer to https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html before enabling.
 
-     config SECURE_FLASH_ENC_ENABLED
 
-         bool "Enable flash encryption on boot (READ DOCS FIRST)"
 
-         default N
 
-         help
 
-             If this option is set, flash contents will be encrypted by the bootloader on first boot.
 
-             Note: After first boot, the system will be permanently encrypted. Re-flashing an encrypted
 
-             system is complicated and not always possible.
 
-             Read https://docs.espressif.com/projects/esp-idf/en/latest/security/flash-encryption.html
 
-             before enabling.
 
-     choice SECURE_FLASH_ENCRYPTION_MODE
 
-         bool "Enable usage mode"
 
-         depends on SECURE_FLASH_ENC_ENABLED
 
-         default SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
 
-         help
 
-             By default Development mode is enabled which allows UART bootloader to perform flash encryption operations
 
-             Select Release mode only for production or manufacturing. Once enabled you can not reflash using UART
 
-             bootloader
 
-             Refer to https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html and
 
-             https://docs.espressif.com/projects/esp-idf/en/latest/security/flash-encryption.html for details.
 
-         config SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
 
-             bool "Development(NOT SECURE)"
 
-             select SECURE_FLASH_UART_BOOTLOADER_ALLOW_ENC
 
-         config SECURE_FLASH_ENCRYPTION_MODE_RELEASE
 
-             bool "Release"
 
-     endchoice
 
-     menu "Potentially insecure options"
 
-         visible if SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT || SECURE_BOOT_INSECURE
 
-         # NOTE: Options in this menu NEED to have SECURE_BOOT_INSECURE
 
-         # and/or SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT in "depends on", as the menu
 
-         # itself doesn't enable/disable its children (if it's not set,
 
-         # it's possible for the insecure menu to be disabled but the insecure option
 
-         # to remain on which is very bad.)
 
-         config SECURE_BOOT_ALLOW_ROM_BASIC
 
-             bool "Leave ROM BASIC Interpreter available on reset"
 
-             depends on SECURE_BOOT_INSECURE || SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
 
-             default N
 
-             help
 
-                 By default, the BASIC ROM Console starts on reset if no valid bootloader is
 
-                 read from the flash.
 
-                 When either flash encryption or secure boot are enabled, the default is to
 
-                 disable this BASIC fallback mode permanently via eFuse.
 
-                 If this option is set, this eFuse is not burned and the BASIC ROM Console may
 
-                 remain accessible.  Only set this option in testing environments.
 
-         config SECURE_BOOT_ALLOW_JTAG
 
-             bool "Allow JTAG Debugging"
 
-             depends on SECURE_BOOT_INSECURE || SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
 
-             default N
 
-             help
 
-                 If not set (default), the bootloader will permanently disable JTAG (across entire chip) on first boot
 
-                 when either secure boot or flash encryption is enabled.
 
-                 Setting this option leaves JTAG on for debugging, which negates all protections of flash encryption
 
-                 and some of the protections of secure boot.
 
-                 Only set this option in testing environments.
 
-         config SECURE_BOOT_ALLOW_SHORT_APP_PARTITION
 
-             bool "Allow app partition length not 64KB aligned"
 
-             depends on SECURE_BOOT_INSECURE
 
-             help
 
-                 If not set (default), app partition size must be a multiple of 64KB. App images are padded to 64KB
 
-                 length, and the bootloader checks any trailing bytes after the signature (before the next 64KB
 
-                 boundary) have not been written. This is because flash cache maps entire 64KB pages into the address
 
-                 space. This prevents an attacker from appending unverified data after the app image in the flash,
 
-                 causing it to be mapped into the address space.
 
-                 Setting this option allows the app partition length to be unaligned, and disables padding of the app
 
-                 image to this length. It is generally not recommended to set this option, unless you have a legacy
 
-                 partitioning scheme which doesn't support 64KB aligned partition lengths.
 
-         config SECURE_FLASH_UART_BOOTLOADER_ALLOW_ENC
 
-             bool "Leave UART bootloader encryption enabled"
 
-             depends on SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
 
-             default N
 
-             help
 
-                 If not set (default), the bootloader will permanently disable UART bootloader encryption access on
 
-                 first boot. If set, the UART bootloader will still be able to access hardware encryption.
 
-                 It is recommended to only set this option in testing environments.
 
-         config SECURE_FLASH_UART_BOOTLOADER_ALLOW_DEC
 
-             bool "Leave UART bootloader decryption enabled"
 
-             depends on SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
 
-             default N
 
-             help
 
-                 If not set (default), the bootloader will permanently disable UART bootloader decryption access on
 
-                 first boot. If set, the UART bootloader will still be able to access hardware decryption.
 
-                 Only set this option in testing environments. Setting this option allows complete bypass of flash
 
-                 encryption.
 
-         config SECURE_FLASH_UART_BOOTLOADER_ALLOW_CACHE
 
-             bool "Leave UART bootloader flash cache enabled"
 
-             depends on SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
 
-             default N
 
-             help
 
-                 If not set (default), the bootloader will permanently disable UART bootloader flash cache access on
 
-                 first boot. If set, the UART bootloader will still be able to access the flash cache.
 
-                 Only set this option in testing environments.
 
-     endmenu  # Potentially Insecure
 
- endmenu  # Security features
 
 
  |