From 37126d3451eabb44eeeb48b8e2ee554dc233e2a8 Mon Sep 17 00:00:00 2001 From: Roland Dobai Date: Fri, 25 Jan 2019 17:10:53 +0100 Subject: [PATCH] Correct Kconfigs according to the coding style --- components/app_update/Kconfig.projbuild | 41 +- components/aws_iot/Kconfig | 129 +- components/bootloader/Kconfig.projbuild | 835 +++--- components/bt/Kconfig | 2404 +++++++-------- components/driver/Kconfig | 113 +- components/esp32/Kconfig | 2569 +++++++++-------- components/esp_adc_cal/Kconfig | 42 +- components/esp_event/Kconfig | 16 +- components/esp_http_client/Kconfig | 10 +- components/esp_http_server/Kconfig | 21 +- components/esptool_py/Kconfig.projbuild | 374 +-- components/fatfs/Kconfig | 332 +-- components/freemodbus/Kconfig | 192 +- components/freertos/Kconfig | 703 ++--- components/heap/Kconfig | 74 +- components/libsodium/Kconfig | 20 +- components/log/Kconfig | 78 +- components/lwip/Kconfig | 1084 +++---- components/mbedtls/Kconfig | 1112 +++---- components/mdns/Kconfig | 20 +- components/mqtt/Kconfig | 173 +- components/nvs_flash/Kconfig | 18 +- components/openssl/Kconfig | 108 +- components/partition_table/Kconfig.projbuild | 99 +- components/pthread/Kconfig | 80 +- components/spi_flash/Kconfig | 134 +- components/spiffs/Kconfig | 308 +- components/tcpip_adapter/Kconfig | 44 +- components/unity/Kconfig | 70 +- components/vfs/Kconfig | 26 +- components/wear_levelling/Kconfig | 110 +- .../a2dp_gatts_coex/main/Kconfig.projbuild | 65 +- .../a2dp_sink/main/Kconfig.projbuild | 65 +- .../ble_ibeacon/main/Kconfig.projbuild | 36 +- .../throughput_client/main/Kconfig | 20 +- .../throughput_server/main/Kconfig | 36 +- examples/bluetooth/gatt_server/main/Kconfig | 16 +- .../get-started/blink/main/Kconfig.projbuild | 16 +- .../main/Kconfig.projbuild | 62 +- .../manual_networking/main/Kconfig.projbuild | 80 +- .../peripherals/adc2/main/Kconfig.projbuild | 104 +- .../i2c/i2c_self_test/main/Kconfig.projbuild | 214 +- .../i2c/i2c_tools/main/Kconfig.projbuild | 38 +- .../sdio/host/main/Kconfig.projbuild | 68 +- .../sdio/slave/main/Kconfig.projbuild | 24 +- .../spi_master/main/Kconfig.projbuild | 40 +- .../nmea0183_parser/main/Kconfig.projbuild | 134 +- .../asio/chat_client/main/Kconfig.projbuild | 41 +- .../asio/chat_server/main/Kconfig.projbuild | 30 +- .../tcp_echo_server/main/Kconfig.projbuild | 30 +- .../udp_echo_server/main/Kconfig.projbuild | 30 +- .../subscribe_publish/main/Kconfig.projbuild | 94 +- .../thing_shadow/main/Kconfig.projbuild | 104 +- .../coap_client/main/Kconfig.projbuild | 30 +- .../coap_server/main/Kconfig.projbuild | 20 +- .../esp_http_client/main/Kconfig.projbuild | 22 +- .../http2_request/main/Kconfig.projbuild | 22 +- .../http_request/main/Kconfig.projbuild | 22 +- .../advanced_tests/main/Kconfig.projbuild | 22 +- .../persistent_sockets/main/Kconfig.projbuild | 22 +- .../http_server/simple/main/Kconfig.projbuild | 22 +- .../https_mbedtls/main/Kconfig.projbuild | 22 +- .../https_request/main/Kconfig.projbuild | 22 +- .../https_server/main/Kconfig.projbuild | 22 +- .../protocols/mdns/main/Kconfig.projbuild | 58 +- .../modbus_slave/main/Kconfig.projbuild | 44 +- .../protocols/mqtt/ssl/main/Kconfig.projbuild | 47 +- .../ssl_mutual_auth/main/Kconfig.projbuild | 20 +- .../protocols/mqtt/tcp/main/Kconfig.projbuild | 36 +- .../protocols/mqtt/ws/main/Kconfig.projbuild | 30 +- .../protocols/mqtt/wss/main/Kconfig.projbuild | 47 +- .../openssl_client/main/Kconfig.projbuild | 44 +- .../openssl_server/main/Kconfig.projbuild | 20 +- .../pppos_client/main/Kconfig.projbuild | 10 +- .../protocols/sntp/main/Kconfig.projbuild | 22 +- .../sockets/tcp_client/main/Kconfig.projbuild | 76 +- .../sockets/tcp_server/main/Kconfig.projbuild | 52 +- .../sockets/udp_client/main/Kconfig.projbuild | 76 +- .../udp_multicast/main/Kconfig.projbuild | 139 +- .../sockets/udp_server/main/Kconfig.projbuild | 52 +- .../ble_prov/main/Kconfig.projbuild | 54 +- .../console_prov/main/Kconfig.projbuild | 54 +- .../custom_config/main/Kconfig.projbuild | 84 +- .../softap_prov/main/Kconfig.projbuild | 86 +- .../app_trace_to_host/main/Kconfig.projbuild | 28 +- .../base_mac_address/main/Kconfig.projbuild | 72 +- .../system/console/main/Kconfig.projbuild | 14 +- .../system/deep_sleep/main/Kconfig.projbuild | 30 +- examples/system/gcov/main/Kconfig.projbuild | 16 +- .../native_ota_example/main/Kconfig.projbuild | 34 +- .../simple_ota_example/main/Kconfig.projbuild | 32 +- .../sysview_tracing/main/Kconfig.projbuild | 16 +- examples/wifi/espnow/main/Kconfig.projbuild | 108 +- .../softAP/main/Kconfig.projbuild | 32 +- .../station/main/Kconfig.projbuild | 30 +- .../wifi/power_save/main/Kconfig.projbuild | 166 +- examples/wifi/scan/main/Kconfig.projbuild | 110 +- .../simple_sniffer/main/Kconfig.projbuild | 70 +- .../wpa2_enterprise/main/Kconfig.projbuild | 58 +- examples/wifi/wps/main/Kconfig.projbuild | 24 +- tools/check_kconfigs.py | 146 +- tools/kconfig_new/test/Kconfig | 62 +- tools/ldgen/test/data/Kconfig | 6 +- tools/test_check_kconfigs.py | 39 +- .../components/test_utils/Kconfig | 18 +- 105 files changed, 7561 insertions(+), 7535 deletions(-) diff --git a/components/app_update/Kconfig.projbuild b/components/app_update/Kconfig.projbuild index 6e2c41b16d..2c77c8ae26 100644 --- a/components/app_update/Kconfig.projbuild +++ b/components/app_update/Kconfig.projbuild @@ -1,26 +1,25 @@ menu "Application manager" -config APP_COMPILE_TIME_DATE - bool "Use time/date stamp for app" - default y - help - If set, then the app will be built with the current time/date stamp. It is stored in the app description structure. - If not set, time/date stamp will be excluded from app image. - This can be useful for getting the same binary image files made from the same source, - but at different times. + config APP_COMPILE_TIME_DATE + bool "Use time/date stamp for app" + default y + help + If set, then the app will be built with the current time/date stamp. It is stored in the app description + structure. If not set, time/date stamp will be excluded from app image. This can be useful for getting the + same binary image files made from the same source, but at different times. -config APP_EXCLUDE_PROJECT_VER_VAR - bool "Exclude PROJECT_VER from firmware image" - default n - help - The PROJECT_VER variable from the build system will not affect the firmware image. - This value will not be contained in the esp_app_desc structure. + config APP_EXCLUDE_PROJECT_VER_VAR + bool "Exclude PROJECT_VER from firmware image" + default n + help + The PROJECT_VER variable from the build system will not affect the firmware image. + This value will not be contained in the esp_app_desc structure. -config APP_EXCLUDE_PROJECT_NAME_VAR - bool "Exclude PROJECT_NAME from firmware image" - default n - help - The PROJECT_NAME variable from the build system will not affect the firmware image. - This value will not be contained in the esp_app_desc structure. + config APP_EXCLUDE_PROJECT_NAME_VAR + bool "Exclude PROJECT_NAME from firmware image" + default n + help + The PROJECT_NAME variable from the build system will not affect the firmware image. + This value will not be contained in the esp_app_desc structure. -endmenu # "Application manager" \ No newline at end of file +endmenu # "Application manager" diff --git a/components/aws_iot/Kconfig b/components/aws_iot/Kconfig index 9144f16608..caf441b046 100644 --- a/components/aws_iot/Kconfig +++ b/components/aws_iot/Kconfig @@ -1,8 +1,8 @@ menuconfig AWS_IOT_SDK bool "Amazon Web Services IoT Platform" help - Select this option to enable support for the AWS IoT platform, - via the esp-idf component for the AWS IoT Device C SDK. + Select this option to enable support for the AWS IoT platform, + via the esp-idf component for the AWS IoT Device C SDK. config AWS_IOT_MQTT_HOST string "AWS IoT Endpoint Hostname" @@ -86,74 +86,79 @@ config AWS_IOT_MQTT_MAX_RECONNECT_WAIT_INTERVAL menu "Thing Shadow" depends on AWS_IOT_SDK -config AWS_IOT_OVERRIDE_THING_SHADOW_RX_BUFFER - bool "Override Shadow RX buffer size" - depends on AWS_IOT_SDK - default n - help - Allows setting a different Thing Shadow RX buffer - size. This is the maximum size of a Thing Shadow - message in bytes, plus one. + config AWS_IOT_OVERRIDE_THING_SHADOW_RX_BUFFER + bool "Override Shadow RX buffer size" + depends on AWS_IOT_SDK + default n + help + Allows setting a different Thing Shadow RX buffer + size. This is the maximum size of a Thing Shadow + message in bytes, plus one. - If not overridden, the default value is the MQTT RX Buffer length plus one. If overriden, do not set higher than the default value. + If not overridden, the default value is the MQTT RX Buffer length plus one. If overriden, do not set + higher than the default value. -config AWS_IOT_SHADOW_MAX_SIZE_OF_RX_BUFFER - int "Maximum RX Buffer (bytes)" - depends on AWS_IOT_OVERRIDE_THING_SHADOW_RX_BUFFER - default 513 - range 32 65536 - help - Allows setting a different Thing Shadow RX buffer size. - This is the maximum size of a Thing Shadow message in bytes, - plus one. + config AWS_IOT_SHADOW_MAX_SIZE_OF_RX_BUFFER + int "Maximum RX Buffer (bytes)" + depends on AWS_IOT_OVERRIDE_THING_SHADOW_RX_BUFFER + default 513 + range 32 65536 + help + Allows setting a different Thing Shadow RX buffer size. + This is the maximum size of a Thing Shadow message in bytes, + plus one. -config AWS_IOT_SHADOW_MAX_SIZE_OF_UNIQUE_CLIENT_ID_BYTES - int "Maximum unique client ID size (bytes)" - depends on AWS_IOT_SDK - default 80 - range 4 1000 - help - Maximum size of the Unique Client Id. + config AWS_IOT_SHADOW_MAX_SIZE_OF_UNIQUE_CLIENT_ID_BYTES + int "Maximum unique client ID size (bytes)" + depends on AWS_IOT_SDK + default 80 + range 4 1000 + help + Maximum size of the Unique Client Id. -config AWS_IOT_SHADOW_MAX_SIMULTANEOUS_ACKS - int "Maximum simultaneous responses" - depends on AWS_IOT_SDK - default 10 - range 1 100 - help - At any given time we will wait for this many responses. This will correlate to the rate at which the shadow actions are requested + config AWS_IOT_SHADOW_MAX_SIMULTANEOUS_ACKS + int "Maximum simultaneous responses" + depends on AWS_IOT_SDK + default 10 + range 1 100 + help + At any given time we will wait for this many responses. This will correlate to the rate at which the + shadow actions are requested -config AWS_IOT_SHADOW_MAX_SIMULTANEOUS_THINGNAMES - int "Maximum simultaneous Thing Name operations" - depends on AWS_IOT_SDK - default 10 - range 1 100 - help - We could perform shadow action on any thing Name and this is maximum Thing Names we can act on at any given time + config AWS_IOT_SHADOW_MAX_SIMULTANEOUS_THINGNAMES + int "Maximum simultaneous Thing Name operations" + depends on AWS_IOT_SDK + default 10 + range 1 100 + help + We could perform shadow action on any thing Name and this is maximum Thing Names we can act on at any + given time -config AWS_IOT_SHADOW_MAX_JSON_TOKEN_EXPECTED - int "Maximum expected JSON tokens" - depends on AWS_IOT_SDK - default 120 - help - These are the max tokens that is expected to be in the Shadow JSON document. Includes the metadata which is published + config AWS_IOT_SHADOW_MAX_JSON_TOKEN_EXPECTED + int "Maximum expected JSON tokens" + depends on AWS_IOT_SDK + default 120 + help + These are the max tokens that is expected to be in the Shadow JSON document. Includes the metadata which + is published -config AWS_IOT_SHADOW_MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME - int "Maximum topic length (not including Thing Name)" - depends on AWS_IOT_SDK - default 60 - range 10 1000 - help - All shadow actions have to be published or subscribed to a topic which is of the format $aws/things/{thingName}/shadow/update/accepted. This refers to the size of the topic without the Thing Name + config AWS_IOT_SHADOW_MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME + int "Maximum topic length (not including Thing Name)" + depends on AWS_IOT_SDK + default 60 + range 10 1000 + help + All shadow actions have to be published or subscribed to a topic which is of the format + $aws/things/{thingName}/shadow/update/accepted. This refers to the size of the topic without the Thing + Name -config AWS_IOT_SHADOW_MAX_SIZE_OF_THING_NAME - int "Maximum Thing Name length" - depends on AWS_IOT_SDK - default 20 - range 4 1000 - help - Maximum length of a Thing Name. + config AWS_IOT_SHADOW_MAX_SIZE_OF_THING_NAME + int "Maximum Thing Name length" + depends on AWS_IOT_SDK + default 20 + range 4 1000 + help + Maximum length of a Thing Name. endmenu # Thing Shadow - diff --git a/components/bootloader/Kconfig.projbuild b/components/bootloader/Kconfig.projbuild index a982461e23..bdf84fa7b9 100644 --- a/components/bootloader/Kconfig.projbuild +++ b/components/bootloader/Kconfig.projbuild @@ -1,441 +1,474 @@ menu "Bootloader config" -choice LOG_BOOTLOADER_LEVEL - bool "Bootloader log verbosity" - default LOG_BOOTLOADER_LEVEL_INFO - help - Specify how much output to see in bootloader logs. + choice LOG_BOOTLOADER_LEVEL + bool "Bootloader log verbosity" + default LOG_BOOTLOADER_LEVEL_INFO + help + Specify how much output to see in bootloader logs. -config LOG_BOOTLOADER_LEVEL_NONE - bool "No output" -config LOG_BOOTLOADER_LEVEL_ERROR - bool "Error" -config LOG_BOOTLOADER_LEVEL_WARN - bool "Warning" -config LOG_BOOTLOADER_LEVEL_INFO - bool "Info" -config LOG_BOOTLOADER_LEVEL_DEBUG - bool "Debug" -config LOG_BOOTLOADER_LEVEL_VERBOSE - bool "Verbose" -endchoice + config LOG_BOOTLOADER_LEVEL_NONE + bool "No output" + config LOG_BOOTLOADER_LEVEL_ERROR + bool "Error" + config LOG_BOOTLOADER_LEVEL_WARN + bool "Warning" + config LOG_BOOTLOADER_LEVEL_INFO + bool "Info" + config LOG_BOOTLOADER_LEVEL_DEBUG + bool "Debug" + config LOG_BOOTLOADER_LEVEL_VERBOSE + bool "Verbose" + endchoice -config LOG_BOOTLOADER_LEVEL - int - default 0 if LOG_BOOTLOADER_LEVEL_NONE - default 1 if LOG_BOOTLOADER_LEVEL_ERROR - default 2 if LOG_BOOTLOADER_LEVEL_WARN - default 3 if LOG_BOOTLOADER_LEVEL_INFO - default 4 if LOG_BOOTLOADER_LEVEL_DEBUG - default 5 if LOG_BOOTLOADER_LEVEL_VERBOSE + config LOG_BOOTLOADER_LEVEL + int + default 0 if LOG_BOOTLOADER_LEVEL_NONE + default 1 if LOG_BOOTLOADER_LEVEL_ERROR + default 2 if LOG_BOOTLOADER_LEVEL_WARN + default 3 if LOG_BOOTLOADER_LEVEL_INFO + default 4 if LOG_BOOTLOADER_LEVEL_DEBUG + default 5 if LOG_BOOTLOADER_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 FLASHMODE_QIO || 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. + config BOOTLOADER_SPI_WP_PIN + int "SPI Flash WP Pin when customising pins via eFuse (read help)" + range 0 33 + default 7 + depends on FLASHMODE_QIO || 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. + 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. + 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. + 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. + 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_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_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_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_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_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. -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. + 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_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_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_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_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_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_CLOCK_SOURCE (INTERNAL_RC or EXTERNAL_CRYSTAL). + 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_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_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_CLOCK_SOURCE (INTERNAL_RC or EXTERNAL_CRYSTAL). -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_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 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. + 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 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. 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 + # 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 + 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_SIGNED_ON_UPDATE - bool - default y - depends on SECURE_BOOT_ENABLED || SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT + 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. -config SECURE_SIGNED_APPS - bool - default y - depends on SECURE_SIGNED_ON_BOOT || SECURE_SIGNED_ON_UPDATE + 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_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. + 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. - 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. + 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 -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. + 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. - 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. + 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. -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. + Refer to https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html before enabling. - 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. + choice SECURE_BOOTLOADER_KEY_ENCODING + bool "Hardware Key Encoding" + depends on SECURE_BOOTLOADER_REFLASHABLE + default SECURE_BOOTLOADER_NO_ENCODING + help - 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. + 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. -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. + 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. - 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. + 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)" - 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 docs/security/secure-boot.rst 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 FLASH_ENCRYPTION_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. - -config FLASH_ENCRYPTION_INSECURE - bool "Allow potentially insecure options" - depends on FLASH_ENCRYPTION_ENABLED - default N - help - You can disable some of the default protections offered by flash encryption, in order to enable testing or a custom combination of security features. - - Only enable these options if you are very sure. - - Refer to docs/security/secure-boot.rst and docs/security/flash-encryption.rst for details. - -menu "Potentially insecure options" - visible if FLASH_ENCRYPTION_INSECURE || SECURE_BOOT_INSECURE - -# NOTE: Options in this menu NEED to have SECURE_BOOT_INSECURE -# and/or FLASH_ENCRYPTION_INSECURE 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 || FLASH_ENCRYPTION_INSECURE - 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 || FLASH_ENCRYPTION_INSECURE - 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 FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_ENCRYPT - bool "Leave UART bootloader encryption enabled" - depends on FLASH_ENCRYPTION_INSECURE - 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 FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_DECRYPT - bool "Leave UART bootloader decryption enabled" - depends on FLASH_ENCRYPTION_INSECURE - 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 FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_CACHE - bool "Leave UART bootloader flash cache enabled" - depends on FLASH_ENCRYPTION_INSECURE - 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. - -config SECURE_BOOT_TEST_MODE - bool "Secure boot test mode: don't permanently set any efuses" - depends on SECURE_BOOT_INSECURE - default N - help - If this option is set, all permanent secure boot changes (via Efuse) are disabled. - - Log output will state changes which would be applied, but they will not be. - - This option is for testing purposes only - it completely disables secure boot protection. - - -endmenu # Potentially Insecure + 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 FLASH_ENCRYPTION_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. + + config FLASH_ENCRYPTION_INSECURE + bool "Allow potentially insecure options" + depends on FLASH_ENCRYPTION_ENABLED + default N + help + You can disable some of the default protections offered by flash encryption, 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 and + https://docs.espressif.com/projects/esp-idf/en/latest/security/flash-encryption.html for details. + + menu "Potentially insecure options" + visible if FLASH_ENCRYPTION_INSECURE || SECURE_BOOT_INSECURE + + # NOTE: Options in this menu NEED to have SECURE_BOOT_INSECURE + # and/or FLASH_ENCRYPTION_INSECURE 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 || FLASH_ENCRYPTION_INSECURE + 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 || FLASH_ENCRYPTION_INSECURE + 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 FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_ENCRYPT + bool "Leave UART bootloader encryption enabled" + depends on FLASH_ENCRYPTION_INSECURE + 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 FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_DECRYPT + bool "Leave UART bootloader decryption enabled" + depends on FLASH_ENCRYPTION_INSECURE + 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 FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_CACHE + bool "Leave UART bootloader flash cache enabled" + depends on FLASH_ENCRYPTION_INSECURE + 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. + + config SECURE_BOOT_TEST_MODE + bool "Secure boot test mode: don't permanently set any eFuses" + depends on SECURE_BOOT_INSECURE + default N + help + If this option is set, all permanent secure boot changes (via eFuse) are disabled. + + Log output will state changes which would be applied, but they will not be. + + This option is for testing purposes only - it completely disables secure boot protection. + + endmenu # Potentially Insecure endmenu # Security features diff --git a/components/bt/Kconfig b/components/bt/Kconfig index 76231585d6..2638f1fa8c 100644 --- a/components/bt/Kconfig +++ b/components/bt/Kconfig @@ -1,1224 +1,1232 @@ menu Bluetooth -config BT_ENABLED - bool "Bluetooth" - help - Select this option to enable Bluetooth and show the submenu with Bluetooth configuration choices. + config BT_ENABLED + bool "Bluetooth" + help + Select this option to enable Bluetooth and show the submenu with Bluetooth configuration choices. -menu "Bluetooth controller" - visible if BT_ENABLED + menu "Bluetooth controller" + visible if BT_ENABLED -choice BTDM_CONTROLLER_MODE - prompt "Bluetooth controller mode (BR/EDR/BLE/DUALMODE)" - depends on BT_ENABLED - help - Specify the bluetooth controller mode (BR/EDR, BLE or dual mode). + choice BTDM_CONTROLLER_MODE + prompt "Bluetooth controller mode (BR/EDR/BLE/DUALMODE)" + depends on BT_ENABLED + help + Specify the bluetooth controller mode (BR/EDR, BLE or dual mode). -config BTDM_CONTROLLER_MODE_BLE_ONLY - bool "BLE Only" + config BTDM_CONTROLLER_MODE_BLE_ONLY + bool "BLE Only" -config BTDM_CONTROLLER_MODE_BR_EDR_ONLY - bool "BR/EDR Only" + config BTDM_CONTROLLER_MODE_BR_EDR_ONLY + bool "BR/EDR Only" -config BTDM_CONTROLLER_MODE_BTDM - bool "Bluetooth Dual Mode" + config BTDM_CONTROLLER_MODE_BTDM + bool "Bluetooth Dual Mode" -endchoice + endchoice -config BTDM_CONTROLLER_BLE_MAX_CONN - int "BLE Max Connections" - depends on BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM - default 3 - range 1 9 - help - BLE maximum connections of bluetooth controller. - Each connection uses 1KB static DRAM whenever the BT controller is enabled. + config BTDM_CONTROLLER_BLE_MAX_CONN + int "BLE Max Connections" + depends on BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM + default 3 + range 1 9 + help + BLE maximum connections of bluetooth controller. + Each connection uses 1KB static DRAM whenever the BT controller is enabled. -config BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN - int "BR/EDR ACL Max Connections" - depends on BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM - default 2 - range 1 7 - help - BR/EDR ACL maximum connections of bluetooth controller. - Each connection uses 1.2KB static DRAM whenever the BT controller is enabled. + config BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN + int "BR/EDR ACL Max Connections" + depends on BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM + default 2 + range 1 7 + help + BR/EDR ACL maximum connections of bluetooth controller. + Each connection uses 1.2KB static DRAM whenever the BT controller is enabled. -config BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN - int "BR/EDR Sync(SCO/eSCO) Max Connections" - depends on BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM - default 0 - range 0 3 - help - BR/EDR Synchronize maximum connections of bluetooth controller. - Each connection uses 2KB static DRAM whenever the BT controller is enabled. + config BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN + int "BR/EDR Sync(SCO/eSCO) Max Connections" + depends on BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM + default 0 + range 0 3 + help + BR/EDR Synchronize maximum connections of bluetooth controller. + Each connection uses 2KB static DRAM whenever the BT controller is enabled. -config BTDM_CONTROLLER_BLE_MAX_CONN_EFF - int - default BTDM_CONTROLLER_BLE_MAX_CONN if BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM - default 0 + config BTDM_CONTROLLER_BLE_MAX_CONN_EFF + int + default BTDM_CONTROLLER_BLE_MAX_CONN if BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM + default 0 -config BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF - int - default BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN if BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM - default 0 + config BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF + int + default \ + BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN if BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM + default 0 -config BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF - int - default BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN if BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM - default 0 + config BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF + int + default \ + BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN if BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM + default 0 -choice BTDM_CONTROLLER_PINNED_TO_CORE_CHOICE - prompt "The cpu core which bluetooth controller run" - depends on BT_ENABLED && !FREERTOS_UNICORE - help - Specify the cpu core to run bluetooth controller. - Can not specify no-affinity. + choice BTDM_CONTROLLER_PINNED_TO_CORE_CHOICE + prompt "The cpu core which bluetooth controller run" + depends on BT_ENABLED && !FREERTOS_UNICORE + help + Specify the cpu core to run bluetooth controller. + Can not specify no-affinity. -config BTDM_CONTROLLER_PINNED_TO_CORE_0 - bool "Core 0 (PRO CPU)" -config BTDM_CONTROLLER_PINNED_TO_CORE_1 - bool "Core 1 (APP CPU)" - depends on !FREERTOS_UNICORE -endchoice + config BTDM_CONTROLLER_PINNED_TO_CORE_0 + bool "Core 0 (PRO CPU)" + config BTDM_CONTROLLER_PINNED_TO_CORE_1 + bool "Core 1 (APP CPU)" + depends on !FREERTOS_UNICORE + endchoice -config BTDM_CONTROLLER_PINNED_TO_CORE - int - default 0 if BTDM_CONTROLLER_PINNED_TO_CORE_0 - default 1 if BTDM_CONTROLLER_PINNED_TO_CORE_1 - default 0 + config BTDM_CONTROLLER_PINNED_TO_CORE + int + default 0 if BTDM_CONTROLLER_PINNED_TO_CORE_0 + default 1 if BTDM_CONTROLLER_PINNED_TO_CORE_1 + default 0 -choice BTDM_CONTROLLER_HCI_MODE_CHOICE - prompt "HCI mode" - depends on BT_ENABLED - help - Speicify HCI mode as VHCI or UART(H4) + choice BTDM_CONTROLLER_HCI_MODE_CHOICE + prompt "HCI mode" + depends on BT_ENABLED + help + Speicify HCI mode as VHCI or UART(H4) -config BTDM_CONTROLLER_HCI_MODE_VHCI - bool "VHCI" - help - Normal option. Mostly, choose this VHCI when bluetooth host run on ESP32, too. + config BTDM_CONTROLLER_HCI_MODE_VHCI + bool "VHCI" + help + Normal option. Mostly, choose this VHCI when bluetooth host run on ESP32, too. -config BTDM_CONTROLLER_HCI_MODE_UART_H4 - bool "UART(H4)" - help - If use external bluetooth host which run on other hardware and use UART as the HCI interface, - choose this option. -endchoice + config BTDM_CONTROLLER_HCI_MODE_UART_H4 + bool "UART(H4)" + help + If use external bluetooth host which run on other hardware and use UART as the HCI interface, + choose this option. + endchoice -menu "HCI UART(H4) Options" - visible if BTDM_CONTROLLER_HCI_MODE_UART_H4 + menu "HCI UART(H4) Options" + visible if BTDM_CONTROLLER_HCI_MODE_UART_H4 -config BT_HCI_UART_NO - int "UART Number for HCI" - depends on BTDM_CONTROLLER_HCI_MODE_UART_H4 - range 1 2 - default 1 - help - Uart number for HCI. The available uart is UART1 and UART2. + config BT_HCI_UART_NO + int "UART Number for HCI" + depends on BTDM_CONTROLLER_HCI_MODE_UART_H4 + range 1 2 + default 1 + help + Uart number for HCI. The available uart is UART1 and UART2. -config BT_HCI_UART_BAUDRATE - int "UART Baudrate for HCI" - depends on BTDM_CONTROLLER_HCI_MODE_UART_H4 - range 115200 921600 - default 921600 - help - UART Baudrate for HCI. Please use standard baudrate. - -endmenu - -menu "MODEM SLEEP Options" - visible if BT_ENABLED - -config BTDM_CONTROLLER_MODEM_SLEEP - bool "Bluetooth modem sleep" - depends on BT_ENABLED - default y - help - Enable/disable bluetooth controller low power mode. - -choice BTDM_MODEM_SLEEP_MODE - prompt "Bluetooth Modem sleep mode" - depends on BTDM_CONTROLLER_MODEM_SLEEP - help - To select which strategy to use for modem sleep - -config BTDM_MODEM_SLEEP_MODE_ORIG - bool "ORIG Mode(sleep with low power clock)" - help - ORIG mode is a bluetooth sleep mode that can be used for dual mode controller. In this mode, bluetooth controller - sleeps between BR/EDR frames and BLE events. A low power clock is used to maintain bluetooth reference clock. -config BTDM_MODEM_SLEEP_MODE_EVED - bool "EVED Mode(For internal test only)" - help - EVED mode is for BLE only and is only for internal test. Do not use it for production. this mode is not compatible - with DFS nor light sleep -endchoice - -choice BTDM_LOW_POWER_CLOCK - prompt "Bluetooth low power clock" - depends on BTDM_MODEM_SLEEP_MODE_ORIG - help - Select the low power clock source for bluetooth controller - -config BTDM_LPCLK_SEL_MAIN_XTAL - bool "Main crystal" - help - Main crystal can be used as low power clock for bluetooth modem sleep. If this option is selected, bluetooth - modem sleep can work under Dynamic Frequency Scaling(DFS) enabled, but cannot work when light sleep is enabled. - Main crystal has a relatively better performance than other bluetooth low power clock sources. -config BTDM_LPCLK_SEL_EXT_32K_XTAL - bool "External 32kHz crystal" - depends on ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL -endchoice - -endmenu - -config BLE_SCAN_DUPLICATE - bool "BLE Scan Duplicate Options" - depends on (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY) - default y - help - This select enables parameters setting of BLE scan duplicate. - -choice SCAN_DUPLICATE_TYPE - prompt "Scan Duplicate Type" - default SCAN_DUPLICATE_BY_DEVICE_ADDR - depends on BLE_SCAN_DUPLICATE - help - Scan duplicate have three ways. one is "Scan Duplicate By Device Address", This way is to use advertiser address - filtering. The adv packet of the same address is only allowed to be reported once. Another way is "Scan Duplicate - By Device Address And Advertising Data". This way is to use advertising data and device address filtering. All - different adv packets with the same address are allowed to be reported. The last way is "Scan Duplicate By Advertising - Data". This way is to use advertising data filtering. All same advertising data only allow to be reported once even though - they are from different devices. - -config SCAN_DUPLICATE_BY_DEVICE_ADDR - bool "Scan Duplicate By Device Address" - help - This way is to use advertiser address filtering. The adv packet of the same address is only allowed to be reported once - -config SCAN_DUPLICATE_BY_ADV_DATA - bool "Scan Duplicate By Advertising Data" - help - This way is to use advertising data filtering. All same advertising data only allow to be reported once even though - they are from different devices. - -config SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR - bool "Scan Duplicate By Device Address And Advertising Data" - help - This way is to use advertising data and device address filtering. All different adv packets with the same address are - allowed to be reported. -endchoice - -config SCAN_DUPLICATE_TYPE - int - depends on BLE_SCAN_DUPLICATE - default 0 if SCAN_DUPLICATE_BY_DEVICE_ADDR - default 1 if SCAN_DUPLICATE_BY_ADV_DATA - default 2 if SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR - default 0 - -config DUPLICATE_SCAN_CACHE_SIZE - int "Maximum number of devices in scan duplicate filter" - depends on BLE_SCAN_DUPLICATE - range 10 1000 - default 200 - help - Maximum number of devices which can be recorded in scan duplicate filter. - When the maximum amount of device in the filter is reached, the cache will be refreshed. - -config BLE_MESH_SCAN_DUPLICATE_EN - bool "Special duplicate scan mechanism for BLE Mesh scan" - depends on BLE_SCAN_DUPLICATE - default n - help - This enables the BLE scan duplicate for special BLE Mesh scan. - -config MESH_DUPLICATE_SCAN_CACHE_SIZE - int "Maximum number of Mesh adv packets in scan duplicate filter" - depends on BLE_MESH_SCAN_DUPLICATE_EN - range 10 1000 - default 200 - help - Maximum number of adv packets which can be recorded in duplicate scan cache for BLE Mesh. - When the maximum amount of device in the filter is reached, the cache will be refreshed. - -config BTDM_CONTROLLER_FULL_SCAN_SUPPORTED - bool "BLE full scan feature supported" - depends on BTDM_CONTROLLER_MODE_BLE_ONLY - default n - help - The full scan function is mainly used to provide BLE scan performance. - This is required for scenes with high scan performance requirements, such as BLE Mesh scenes. - -endmenu - -menuconfig BLUEDROID_ENABLED - bool "Bluedroid Enable" - depends on BTDM_CONTROLLER_HCI_MODE_VHCI - default y - help - This enables the default Bluedroid Bluetooth stack - -choice BLUEDROID_PINNED_TO_CORE_CHOICE - prompt "The cpu core which Bluedroid run" - depends on BLUEDROID_ENABLED && !FREERTOS_UNICORE - help - Which the cpu core to run Bluedroid. Can choose core0 and core1. - Can not specify no-affinity. - -config BLUEDROID_PINNED_TO_CORE_0 - bool "Core 0 (PRO CPU)" -config BLUEDROID_PINNED_TO_CORE_1 - bool "Core 1 (APP CPU)" - depends on !FREERTOS_UNICORE -endchoice - -config BLUEDROID_PINNED_TO_CORE - int - depends on BLUEDROID_ENABLED - default 0 if BLUEDROID_PINNED_TO_CORE_0 - default 1 if BLUEDROID_PINNED_TO_CORE_1 - default 0 - -config BTC_TASK_STACK_SIZE - int "Bluetooth event (callback to application) task stack size" - depends on BLUEDROID_ENABLED - default 3072 - help - This select btc task stack size - -config BTU_TASK_STACK_SIZE - int "Bluetooth Bluedroid Host Stack task stack size" - depends on BLUEDROID_ENABLED - default 4096 - help - This select btu task stack size - -config BLUEDROID_MEM_DEBUG - bool "Bluedroid memory debug" - depends on BLUEDROID_ENABLED - default n - help - Bluedroid memory debug - -config CLASSIC_BT_ENABLED - bool "Classic Bluetooth" - depends on BLUEDROID_ENABLED - default n - help - For now this option needs "SMP_ENABLE" to be set to yes - -config A2DP_ENABLE - bool "A2DP" - depends on CLASSIC_BT_ENABLED - default n - help - Advanced Audio Distrubution Profile - -config A2DP_SINK_TASK_STACK_SIZE - int "A2DP sink (audio stream decoding) task stack size" - depends on A2DP_ENABLE - default 2048 - -config A2DP_SOURCE_TASK_STACK_SIZE - int "A2DP source (audio stream encoding) task stack size" - depends on A2DP_ENABLE - default 2048 - -config BT_SPP_ENABLED - bool "SPP" - depends on CLASSIC_BT_ENABLED - default n - help - This enables the Serial Port Profile - -config HFP_ENABLE - bool "Hands Free/Handset Profile" - depends on CLASSIC_BT_ENABLED - default n - -choice HFP_ROLE - prompt "Hands-free Profile Role configuration" - depends on HFP_ENABLE - -config HFP_CLIENT_ENABLE - bool "Hands Free Unit" -endchoice - -choice HFP_AUDIO_DATA_PATH - prompt "audio(SCO) data path" - depends on HFP_ENABLE - -config HFP_AUDIO_DATA_PATH_PCM - bool "PCM" - help - This enables the Serial Port Profile -config HFP_AUDIO_DATA_PATH_HCI - bool "HCI" - help - This enables the Serial Port Profile -endchoice - -config BT_SSP_ENABLED - bool "Secure Simple Pairing" - depends on CLASSIC_BT_ENABLED - default y - help - This enables the Secure Simple Pairing. If disable this option, Bluedroid will only support Legacy Pairing - -config GATTS_ENABLE - bool "Include GATT server module(GATTS)" - depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY) - default y - help - This option can be disabled when the app work only on gatt client mode - -choice GATTS_SEND_SERVICE_CHANGE_MODE - prompt "GATTS Service Change Mode" - default GATTS_SEND_SERVICE_CHANGE_AUTO - depends on GATTS_ENABLE - help - Service change indication mode for GATT Server. - -config GATTS_SEND_SERVICE_CHANGE_MANUAL - bool "GATTS manually send service change indication" - help - Manually send service change indication through API esp_ble_gatts_send_service_change_indication() - -config GATTS_SEND_SERVICE_CHANGE_AUTO - bool "GATTS automatically send service change indication" - help - Let Bluedroid handle the service change indication internally - -endchoice - -config GATTS_SEND_SERVICE_CHANGE_MODE - int - depends on GATTS_ENABLE - default 0 if GATTS_SEND_SERVICE_CHANGE_AUTO - default 1 if GATTS_SEND_SERVICE_CHANGE_MANUAL - default 0 - -config GATTC_ENABLE - bool "Include GATT client module(GATTC)" - depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY) - default y - help - This option can be close when the app work only on gatt server mode - -config GATTC_CACHE_NVS_FLASH - bool "Save gattc cache data to nvs flash" - depends on GATTC_ENABLE && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY) - default n - help - This select can save gattc cache data to nvs flash - -config BLE_SMP_ENABLE - bool "Include BLE security module(SMP)" - depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY) - default y - help - This option can be close when the app not used the ble security connect. - -config BT_STACK_NO_LOG - bool "Disable BT debug logs (minimize bin size)" - depends on BLUEDROID_ENABLED - default n - help - This select can save the rodata code size - -menu "BT DEBUG LOG LEVEL" - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - -choice HCI_INITIAL_TRACE_LEVEL - prompt "HCI layer" - default HCI_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for HCI layer - -config HCI_TRACE_LEVEL_NONE - bool "NONE" -config HCI_TRACE_LEVEL_ERROR - bool "ERROR" -config HCI_TRACE_LEVEL_WARNING - bool "WARNING" -config HCI_TRACE_LEVEL_API - bool "API" -config HCI_TRACE_LEVEL_EVENT - bool "EVENT" -config HCI_TRACE_LEVEL_DEBUG - bool "DEBUG" -config HCI_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config HCI_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if HCI_TRACE_LEVEL_NONE - default 1 if HCI_TRACE_LEVEL_ERROR - default 2 if HCI_TRACE_LEVEL_WARNING - default 3 if HCI_TRACE_LEVEL_API - default 4 if HCI_TRACE_LEVEL_EVENT - default 5 if HCI_TRACE_LEVEL_DEBUG - default 6 if HCI_TRACE_LEVEL_VERBOSE - default 2 - -choice BTM_INITIAL_TRACE_LEVEL - prompt "BTM layer" - default BTM_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for BTM layer - -config BTM_TRACE_LEVEL_NONE - bool "NONE" -config BTM_TRACE_LEVEL_ERROR - bool "ERROR" -config BTM_TRACE_LEVEL_WARNING - bool "WARNING" -config BTM_TRACE_LEVEL_API - bool "API" -config BTM_TRACE_LEVEL_EVENT - bool "EVENT" -config BTM_TRACE_LEVEL_DEBUG - bool "DEBUG" -config BTM_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config BTM_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if BTM_TRACE_LEVEL_NONE - default 1 if BTM_TRACE_LEVEL_ERROR - default 2 if BTM_TRACE_LEVEL_WARNING - default 3 if BTM_TRACE_LEVEL_API - default 4 if BTM_TRACE_LEVEL_EVENT - default 5 if BTM_TRACE_LEVEL_DEBUG - default 6 if BTM_TRACE_LEVEL_VERBOSE - default 2 - -choice L2CAP_INITIAL_TRACE_LEVEL - prompt "L2CAP layer" - default L2CAP_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for L2CAP layer - -config L2CAP_TRACE_LEVEL_NONE - bool "NONE" -config L2CAP_TRACE_LEVEL_ERROR - bool "ERROR" -config L2CAP_TRACE_LEVEL_WARNING - bool "WARNING" -config L2CAP_TRACE_LEVEL_API - bool "API" -config L2CAP_TRACE_LEVEL_EVENT - bool "EVENT" -config L2CAP_TRACE_LEVEL_DEBUG - bool "DEBUG" -config L2CAP_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config L2CAP_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if L2CAP_TRACE_LEVEL_NONE - default 1 if L2CAP_TRACE_LEVEL_ERROR - default 2 if L2CAP_TRACE_LEVEL_WARNING - default 3 if L2CAP_TRACE_LEVEL_API - default 4 if L2CAP_TRACE_LEVEL_EVENT - default 5 if L2CAP_TRACE_LEVEL_DEBUG - default 6 if L2CAP_TRACE_LEVEL_VERBOSE - default 2 - -choice RFCOMM_INITIAL_TRACE_LEVEL - prompt "RFCOMM layer" - default RFCOMM_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for RFCOMM layer - -config RFCOMM_TRACE_LEVEL_NONE - bool "NONE" -config RFCOMM_TRACE_LEVEL_ERROR - bool "ERROR" -config RFCOMM_TRACE_LEVEL_WARNING - bool "WARNING" -config RFCOMM_TRACE_LEVEL_API - bool "API" -config RFCOMM_TRACE_LEVEL_EVENT - bool "EVENT" -config RFCOMM_TRACE_LEVEL_DEBUG - bool "DEBUG" -config RFCOMM_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config RFCOMM_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if RFCOMM_TRACE_LEVEL_NONE - default 1 if RFCOMM_TRACE_LEVEL_ERROR - default 2 if RFCOMM_TRACE_LEVEL_WARNING - default 3 if RFCOMM_TRACE_LEVEL_API - default 4 if RFCOMM_TRACE_LEVEL_EVENT - default 5 if RFCOMM_TRACE_LEVEL_DEBUG - default 6 if RFCOMM_TRACE_LEVEL_VERBOSE - default 2 - -choice SDP_INITIAL_TRACE_LEVEL - prompt "SDP layer" - default SDP_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for SDP layer - -config SDP_TRACE_LEVEL_NONE - bool "NONE" -config SDP_TRACE_LEVEL_ERROR - bool "ERROR" -config SDP_TRACE_LEVEL_WARNING - bool "WARNING" -config SDP_TRACE_LEVEL_API - bool "API" -config SDP_TRACE_LEVEL_EVENT - bool "EVENT" -config SDP_TRACE_LEVEL_DEBUG - bool "DEBUG" -config SDP_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config SDP_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if SDP_TRACE_LEVEL_NONE - default 1 if SDP_TRACE_LEVEL_ERROR - default 2 if SDP_TRACE_LEVEL_WARNING - default 3 if SDP_TRACE_LEVEL_API - default 4 if SDP_TRACE_LEVEL_EVENT - default 5 if SDP_TRACE_LEVEL_DEBUG - default 6 if SDP_TRACE_LEVEL_VERBOSE - default 2 - -choice GAP_INITIAL_TRACE_LEVEL - prompt "GAP layer" - default GAP_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for GAP layer - -config GAP_TRACE_LEVEL_NONE - bool "NONE" -config GAP_TRACE_LEVEL_ERROR - bool "ERROR" -config GAP_TRACE_LEVEL_WARNING - bool "WARNING" -config GAP_TRACE_LEVEL_API - bool "API" -config GAP_TRACE_LEVEL_EVENT - bool "EVENT" -config GAP_TRACE_LEVEL_DEBUG - bool "DEBUG" -config GAP_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config GAP_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if GAP_TRACE_LEVEL_NONE - default 1 if GAP_TRACE_LEVEL_ERROR - default 2 if GAP_TRACE_LEVEL_WARNING - default 3 if GAP_TRACE_LEVEL_API - default 4 if GAP_TRACE_LEVEL_EVENT - default 5 if GAP_TRACE_LEVEL_DEBUG - default 6 if GAP_TRACE_LEVEL_VERBOSE - default 2 - -choice BNEP_INITIAL_TRACE_LEVEL - prompt "BNEP layer" - default BNEP_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for BNEP layer - -config BNEP_TRACE_LEVEL_NONE - bool "NONE" -config BNEP_TRACE_LEVEL_ERROR - bool "ERROR" -config BNEP_TRACE_LEVEL_WARNING - bool "WARNING" -config BNEP_TRACE_LEVEL_API - bool "API" -config BNEP_TRACE_LEVEL_EVENT - bool "EVENT" -config BNEP_TRACE_LEVEL_DEBUG - bool "DEBUG" -config BNEP_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config BNEP_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if BNEP_TRACE_LEVEL_NONE - default 1 if BNEP_TRACE_LEVEL_ERROR - default 2 if BNEP_TRACE_LEVEL_WARNING - default 3 if BNEP_TRACE_LEVEL_API - default 4 if BNEP_TRACE_LEVEL_EVENT - default 5 if BNEP_TRACE_LEVEL_DEBUG - default 6 if BNEP_TRACE_LEVEL_VERBOSE - default 2 - -choice PAN_INITIAL_TRACE_LEVEL - prompt "PAN layer" - default PAN_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for PAN layer - -config PAN_TRACE_LEVEL_NONE - bool "NONE" -config PAN_TRACE_LEVEL_ERROR - bool "ERROR" -config PAN_TRACE_LEVEL_WARNING - bool "WARNING" -config PAN_TRACE_LEVEL_API - bool "API" -config PAN_TRACE_LEVEL_EVENT - bool "EVENT" -config PAN_TRACE_LEVEL_DEBUG - bool "DEBUG" -config PAN_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config PAN_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if PAN_TRACE_LEVEL_NONE - default 1 if PAN_TRACE_LEVEL_ERROR - default 2 if PAN_TRACE_LEVEL_WARNING - default 3 if PAN_TRACE_LEVEL_API - default 4 if PAN_TRACE_LEVEL_EVENT - default 5 if PAN_TRACE_LEVEL_DEBUG - default 6 if PAN_TRACE_LEVEL_VERBOSE - default 2 - -choice A2D_INITIAL_TRACE_LEVEL - prompt "A2D layer" - default A2D_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for A2D layer - -config A2D_TRACE_LEVEL_NONE - bool "NONE" -config A2D_TRACE_LEVEL_ERROR - bool "ERROR" -config A2D_TRACE_LEVEL_WARNING - bool "WARNING" -config A2D_TRACE_LEVEL_API - bool "API" -config A2D_TRACE_LEVEL_EVENT - bool "EVENT" -config A2D_TRACE_LEVEL_DEBUG - bool "DEBUG" -config A2D_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config A2D_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if A2D_TRACE_LEVEL_NONE - default 1 if A2D_TRACE_LEVEL_ERROR - default 2 if A2D_TRACE_LEVEL_WARNING - default 3 if A2D_TRACE_LEVEL_API - default 4 if A2D_TRACE_LEVEL_EVENT - default 5 if A2D_TRACE_LEVEL_DEBUG - default 6 if A2D_TRACE_LEVEL_VERBOSE - default 2 - -choice AVDT_INITIAL_TRACE_LEVEL - prompt "AVDT layer" - default AVDT_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for AVDT layer - -config AVDT_TRACE_LEVEL_NONE - bool "NONE" -config AVDT_TRACE_LEVEL_ERROR - bool "ERROR" -config AVDT_TRACE_LEVEL_WARNING - bool "WARNING" -config AVDT_TRACE_LEVEL_API - bool "API" -config AVDT_TRACE_LEVEL_EVENT - bool "EVENT" -config AVDT_TRACE_LEVEL_DEBUG - bool "DEBUG" -config AVDT_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config AVDT_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if AVDT_TRACE_LEVEL_NONE - default 1 if AVDT_TRACE_LEVEL_ERROR - default 2 if AVDT_TRACE_LEVEL_WARNING - default 3 if AVDT_TRACE_LEVEL_API - default 4 if AVDT_TRACE_LEVEL_EVENT - default 5 if AVDT_TRACE_LEVEL_DEBUG - default 6 if AVDT_TRACE_LEVEL_VERBOSE - default 2 - -choice AVCT_INITIAL_TRACE_LEVEL - prompt "AVCT layer" - default AVCT_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for AVCT layer - -config AVCT_TRACE_LEVEL_NONE - bool "NONE" -config AVCT_TRACE_LEVEL_ERROR - bool "ERROR" -config AVCT_TRACE_LEVEL_WARNING - bool "WARNING" -config AVCT_TRACE_LEVEL_API - bool "API" -config AVCT_TRACE_LEVEL_EVENT - bool "EVENT" -config AVCT_TRACE_LEVEL_DEBUG - bool "DEBUG" -config AVCT_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config AVCT_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if AVCT_TRACE_LEVEL_NONE - default 1 if AVCT_TRACE_LEVEL_ERROR - default 2 if AVCT_TRACE_LEVEL_WARNING - default 3 if AVCT_TRACE_LEVEL_API - default 4 if AVCT_TRACE_LEVEL_EVENT - default 5 if AVCT_TRACE_LEVEL_DEBUG - default 6 if AVCT_TRACE_LEVEL_VERBOSE - default 2 - -choice AVRC_INITIAL_TRACE_LEVEL - prompt "AVRC layer" - default AVRC_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for AVRC layer - -config AVRC_TRACE_LEVEL_NONE - bool "NONE" -config AVRC_TRACE_LEVEL_ERROR - bool "ERROR" -config AVRC_TRACE_LEVEL_WARNING - bool "WARNING" -config AVRC_TRACE_LEVEL_API - bool "API" -config AVRC_TRACE_LEVEL_EVENT - bool "EVENT" -config AVRC_TRACE_LEVEL_DEBUG - bool "DEBUG" -config AVRC_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config AVRC_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if AVRC_TRACE_LEVEL_NONE - default 1 if AVRC_TRACE_LEVEL_ERROR - default 2 if AVRC_TRACE_LEVEL_WARNING - default 3 if AVRC_TRACE_LEVEL_API - default 4 if AVRC_TRACE_LEVEL_EVENT - default 5 if AVRC_TRACE_LEVEL_DEBUG - default 6 if AVRC_TRACE_LEVEL_VERBOSE - default 2 - -choice MCA_INITIAL_TRACE_LEVEL - prompt "MCA layer" - default MCA_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for MCA layer - -config MCA_TRACE_LEVEL_NONE - bool "NONE" -config MCA_TRACE_LEVEL_ERROR - bool "ERROR" -config MCA_TRACE_LEVEL_WARNING - bool "WARNING" -config MCA_TRACE_LEVEL_API - bool "API" -config MCA_TRACE_LEVEL_EVENT - bool "EVENT" -config MCA_TRACE_LEVEL_DEBUG - bool "DEBUG" -config MCA_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config MCA_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if MCA_TRACE_LEVEL_NONE - default 1 if MCA_TRACE_LEVEL_ERROR - default 2 if MCA_TRACE_LEVEL_WARNING - default 3 if MCA_TRACE_LEVEL_API - default 4 if MCA_TRACE_LEVEL_EVENT - default 5 if MCA_TRACE_LEVEL_DEBUG - default 6 if MCA_TRACE_LEVEL_VERBOSE - default 2 - -choice HID_INITIAL_TRACE_LEVEL - prompt "HID layer" - default HID_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for HID layer - -config HID_TRACE_LEVEL_NONE - bool "NONE" -config HID_TRACE_LEVEL_ERROR - bool "ERROR" -config HID_TRACE_LEVEL_WARNING - bool "WARNING" -config HID_TRACE_LEVEL_API - bool "API" -config HID_TRACE_LEVEL_EVENT - bool "EVENT" -config HID_TRACE_LEVEL_DEBUG - bool "DEBUG" -config HID_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config HID_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if HID_TRACE_LEVEL_NONE - default 1 if HID_TRACE_LEVEL_ERROR - default 2 if HID_TRACE_LEVEL_WARNING - default 3 if HID_TRACE_LEVEL_API - default 4 if HID_TRACE_LEVEL_EVENT - default 5 if HID_TRACE_LEVEL_DEBUG - default 6 if HID_TRACE_LEVEL_VERBOSE - default 2 - -choice APPL_INITIAL_TRACE_LEVEL - prompt "APPL layer" - default APPL_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for APPL layer - -config APPL_TRACE_LEVEL_NONE - bool "NONE" -config APPL_TRACE_LEVEL_ERROR - bool "ERROR" -config APPL_TRACE_LEVEL_WARNING - bool "WARNING" -config APPL_TRACE_LEVEL_API - bool "API" -config APPL_TRACE_LEVEL_EVENT - bool "EVENT" -config APPL_TRACE_LEVEL_DEBUG - bool "DEBUG" -config APPL_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config APPL_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if APPL_TRACE_LEVEL_NONE - default 1 if APPL_TRACE_LEVEL_ERROR - default 2 if APPL_TRACE_LEVEL_WARNING - default 3 if APPL_TRACE_LEVEL_API - default 4 if APPL_TRACE_LEVEL_EVENT - default 5 if APPL_TRACE_LEVEL_DEBUG - default 6 if APPL_TRACE_LEVEL_VERBOSE - default 2 - -choice GATT_INITIAL_TRACE_LEVEL - prompt "GATT layer" - default GATT_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for GATT layer - -config GATT_TRACE_LEVEL_NONE - bool "NONE" -config GATT_TRACE_LEVEL_ERROR - bool "ERROR" -config GATT_TRACE_LEVEL_WARNING - bool "WARNING" -config GATT_TRACE_LEVEL_API - bool "API" -config GATT_TRACE_LEVEL_EVENT - bool "EVENT" -config GATT_TRACE_LEVEL_DEBUG - bool "DEBUG" -config GATT_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config GATT_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if GATT_TRACE_LEVEL_NONE - default 1 if GATT_TRACE_LEVEL_ERROR - default 2 if GATT_TRACE_LEVEL_WARNING - default 3 if GATT_TRACE_LEVEL_API - default 4 if GATT_TRACE_LEVEL_EVENT - default 5 if GATT_TRACE_LEVEL_DEBUG - default 6 if GATT_TRACE_LEVEL_VERBOSE - default 2 - -choice SMP_INITIAL_TRACE_LEVEL - prompt "SMP layer" - default SMP_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for SMP layer - -config SMP_TRACE_LEVEL_NONE - bool "NONE" -config SMP_TRACE_LEVEL_ERROR - bool "ERROR" -config SMP_TRACE_LEVEL_WARNING - bool "WARNING" -config SMP_TRACE_LEVEL_API - bool "API" -config SMP_TRACE_LEVEL_EVENT - bool "EVENT" -config SMP_TRACE_LEVEL_DEBUG - bool "DEBUG" -config SMP_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config SMP_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if SMP_TRACE_LEVEL_NONE - default 1 if SMP_TRACE_LEVEL_ERROR - default 2 if SMP_TRACE_LEVEL_WARNING - default 3 if SMP_TRACE_LEVEL_API - default 4 if SMP_TRACE_LEVEL_EVENT - default 5 if SMP_TRACE_LEVEL_DEBUG - default 6 if SMP_TRACE_LEVEL_VERBOSE - default 2 - -choice BTIF_INITIAL_TRACE_LEVEL - prompt "BTIF layer" - default BTIF_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for BTIF layer - -config BTIF_TRACE_LEVEL_NONE - bool "NONE" -config BTIF_TRACE_LEVEL_ERROR - bool "ERROR" -config BTIF_TRACE_LEVEL_WARNING - bool "WARNING" -config BTIF_TRACE_LEVEL_API - bool "API" -config BTIF_TRACE_LEVEL_EVENT - bool "EVENT" -config BTIF_TRACE_LEVEL_DEBUG - bool "DEBUG" -config BTIF_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config BTIF_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if BTIF_TRACE_LEVEL_NONE - default 1 if BTIF_TRACE_LEVEL_ERROR - default 2 if BTIF_TRACE_LEVEL_WARNING - default 3 if BTIF_TRACE_LEVEL_API - default 4 if BTIF_TRACE_LEVEL_EVENT - default 5 if BTIF_TRACE_LEVEL_DEBUG - default 6 if BTIF_TRACE_LEVEL_VERBOSE - default 2 - -choice BTC_INITIAL_TRACE_LEVEL - prompt "BTC layer" - default BTC_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for BTC layer - -config BTC_TRACE_LEVEL_NONE - bool "NONE" -config BTC_TRACE_LEVEL_ERROR - bool "ERROR" -config BTC_TRACE_LEVEL_WARNING - bool "WARNING" -config BTC_TRACE_LEVEL_API - bool "API" -config BTC_TRACE_LEVEL_EVENT - bool "EVENT" -config BTC_TRACE_LEVEL_DEBUG - bool "DEBUG" -config BTC_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config BTC_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if BTC_TRACE_LEVEL_NONE - default 1 if BTC_TRACE_LEVEL_ERROR - default 2 if BTC_TRACE_LEVEL_WARNING - default 3 if BTC_TRACE_LEVEL_API - default 4 if BTC_TRACE_LEVEL_EVENT - default 5 if BTC_TRACE_LEVEL_DEBUG - default 6 if BTC_TRACE_LEVEL_VERBOSE - default 2 - -choice OSI_INITIAL_TRACE_LEVEL - prompt "OSI layer" - default OSI_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for OSI layer - -config OSI_TRACE_LEVEL_NONE - bool "NONE" -config OSI_TRACE_LEVEL_ERROR - bool "ERROR" -config OSI_TRACE_LEVEL_WARNING - bool "WARNING" -config OSI_TRACE_LEVEL_API - bool "API" -config OSI_TRACE_LEVEL_EVENT - bool "EVENT" -config OSI_TRACE_LEVEL_DEBUG - bool "DEBUG" -config OSI_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config OSI_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if OSI_TRACE_LEVEL_NONE - default 1 if OSI_TRACE_LEVEL_ERROR - default 2 if OSI_TRACE_LEVEL_WARNING - default 3 if OSI_TRACE_LEVEL_API - default 4 if OSI_TRACE_LEVEL_EVENT - default 5 if OSI_TRACE_LEVEL_DEBUG - default 6 if OSI_TRACE_LEVEL_VERBOSE - default 2 - -choice BLUFI_INITIAL_TRACE_LEVEL - prompt "BLUFI layer" - default BLUFI_TRACE_LEVEL_WARNING - depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG - help - Define BT trace level for BLUFI layer - -config BLUFI_TRACE_LEVEL_NONE - bool "NONE" -config BLUFI_TRACE_LEVEL_ERROR - bool "ERROR" -config BLUFI_TRACE_LEVEL_WARNING - bool "WARNING" -config BLUFI_TRACE_LEVEL_API - bool "API" -config BLUFI_TRACE_LEVEL_EVENT - bool "EVENT" -config BLUFI_TRACE_LEVEL_DEBUG - bool "DEBUG" -config BLUFI_TRACE_LEVEL_VERBOSE - bool "VERBOSE" -endchoice - -config BLUFI_INITIAL_TRACE_LEVEL - int - depends on BLUEDROID_ENABLED - default 0 if BLUFI_TRACE_LEVEL_NONE - default 1 if BLUFI_TRACE_LEVEL_ERROR - default 2 if BLUFI_TRACE_LEVEL_WARNING - default 3 if BLUFI_TRACE_LEVEL_API - default 4 if BLUFI_TRACE_LEVEL_EVENT - default 5 if BLUFI_TRACE_LEVEL_DEBUG - default 6 if BLUFI_TRACE_LEVEL_VERBOSE - default 2 - -endmenu #BT DEBUG LOG LEVEL - - -config BT_ACL_CONNECTIONS - int "BT/BLE MAX ACL CONNECTIONS(1~7)" - depends on BLUEDROID_ENABLED - range 1 7 - default 4 - help - Maximum BT/BLE connection count - -config BT_ALLOCATION_FROM_SPIRAM_FIRST - bool "BT/BLE will first malloc the memory from the PSRAM" - depends on BLUEDROID_ENABLED - default n - help - This select can save the internal RAM if there have the PSRAM - -config BT_BLE_DYNAMIC_ENV_MEMORY - bool "Use dynamic memory allocation in BT/BLE stack" - depends on BLUEDROID_ENABLED - default n - help - This select can make the allocation of memory will become more flexible - -config BLE_HOST_QUEUE_CONGESTION_CHECK - bool "BLE queue congestion check" - depends on BLUEDROID_ENABLED - default n - help - When scanning and scan duplicate is not enabled, if there are a lot of adv packets around or application layer - handling adv packets is slow, it will cause the controller memory to run out. if enabled, adv packets will be - lost when host queue is congested. - -config SMP_ENABLE - bool - depends on BLUEDROID_ENABLED - default CLASSIC_BT_ENABLED || BLE_SMP_ENABLE - -config BLE_ACTIVE_SCAN_REPORT_ADV_SCAN_RSP_INDIVIDUALLY - bool "Report adv data and scan response individually when BLE active scan" - depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY) - default n - help - Originally, when doing BLE active scan, Bluedroid will not report adv to application layer - until receive scan response. This option is used to disable the behavior. When enable this option, - Bluedroid will report adv data or scan response to application layer immediately. - -# Memory reserved at start of DRAM for Bluetooth stack -config BT_RESERVE_DRAM - hex - default 0xdb5c if BT_ENABLED - default 0 + config BT_HCI_UART_BAUDRATE + int "UART Baudrate for HCI" + depends on BTDM_CONTROLLER_HCI_MODE_UART_H4 + range 115200 921600 + default 921600 + help + UART Baudrate for HCI. Please use standard baudrate. + + endmenu + + menu "MODEM SLEEP Options" + visible if BT_ENABLED + + config BTDM_CONTROLLER_MODEM_SLEEP + bool "Bluetooth modem sleep" + depends on BT_ENABLED + default y + help + Enable/disable bluetooth controller low power mode. + + choice BTDM_MODEM_SLEEP_MODE + prompt "Bluetooth Modem sleep mode" + depends on BTDM_CONTROLLER_MODEM_SLEEP + help + To select which strategy to use for modem sleep + + config BTDM_MODEM_SLEEP_MODE_ORIG + bool "ORIG Mode(sleep with low power clock)" + help + ORIG mode is a bluetooth sleep mode that can be used for dual mode controller. In this mode, + bluetooth controller sleeps between BR/EDR frames and BLE events. A low power clock is used to + maintain bluetooth reference clock. + + config BTDM_MODEM_SLEEP_MODE_EVED + bool "EVED Mode(For internal test only)" + help + EVED mode is for BLE only and is only for internal test. Do not use it for production. this + mode is not compatible with DFS nor light sleep + endchoice + + choice BTDM_LOW_POWER_CLOCK + prompt "Bluetooth low power clock" + depends on BTDM_MODEM_SLEEP_MODE_ORIG + help + Select the low power clock source for bluetooth controller + + config BTDM_LPCLK_SEL_MAIN_XTAL + bool "Main crystal" + help + Main crystal can be used as low power clock for bluetooth modem sleep. If this option is + selected, bluetooth modem sleep can work under Dynamic Frequency Scaling(DFS) enabled, but + cannot work when light sleep is enabled. Main crystal has a relatively better performance than + other bluetooth low power clock sources. + + config BTDM_LPCLK_SEL_EXT_32K_XTAL + bool "External 32kHz crystal" + depends on ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL + endchoice + + endmenu + + config BLE_SCAN_DUPLICATE + bool "BLE Scan Duplicate Options" + depends on (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY) + default y + help + This select enables parameters setting of BLE scan duplicate. + + choice SCAN_DUPLICATE_TYPE + prompt "Scan Duplicate Type" + default SCAN_DUPLICATE_BY_DEVICE_ADDR + depends on BLE_SCAN_DUPLICATE + help + Scan duplicate have three ways. one is "Scan Duplicate By Device Address", This way is to use + advertiser address filtering. The adv packet of the same address is only allowed to be reported once. + Another way is "Scan Duplicate By Device Address And Advertising Data". This way is to use advertising + data and device address filtering. All different adv packets with the same address are allowed to be + reported. The last way is "Scan Duplicate By Advertising Data". This way is to use advertising data + filtering. All same advertising data only allow to be reported once even though they are from + different devices. + + config SCAN_DUPLICATE_BY_DEVICE_ADDR + bool "Scan Duplicate By Device Address" + help + This way is to use advertiser address filtering. The adv packet of the same address is only + allowed to be reported once + + config SCAN_DUPLICATE_BY_ADV_DATA + bool "Scan Duplicate By Advertising Data" + help + This way is to use advertising data filtering. All same advertising data only allow to be reported + once even though they are from different devices. + + config SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR + bool "Scan Duplicate By Device Address And Advertising Data" + help + This way is to use advertising data and device address filtering. All different adv packets with + the same address are allowed to be reported. + endchoice + + config SCAN_DUPLICATE_TYPE + int + depends on BLE_SCAN_DUPLICATE + default 0 if SCAN_DUPLICATE_BY_DEVICE_ADDR + default 1 if SCAN_DUPLICATE_BY_ADV_DATA + default 2 if SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR + default 0 + + config DUPLICATE_SCAN_CACHE_SIZE + int "Maximum number of devices in scan duplicate filter" + depends on BLE_SCAN_DUPLICATE + range 10 1000 + default 200 + help + Maximum number of devices which can be recorded in scan duplicate filter. + When the maximum amount of device in the filter is reached, the cache will be refreshed. + + config BLE_MESH_SCAN_DUPLICATE_EN + bool "Special duplicate scan mechanism for BLE Mesh scan" + depends on BLE_SCAN_DUPLICATE + default n + help + This enables the BLE scan duplicate for special BLE Mesh scan. + + config MESH_DUPLICATE_SCAN_CACHE_SIZE + int "Maximum number of Mesh adv packets in scan duplicate filter" + depends on BLE_MESH_SCAN_DUPLICATE_EN + range 10 1000 + default 200 + help + Maximum number of adv packets which can be recorded in duplicate scan cache for BLE Mesh. + When the maximum amount of device in the filter is reached, the cache will be refreshed. + + config BTDM_CONTROLLER_FULL_SCAN_SUPPORTED + bool "BLE full scan feature supported" + depends on BTDM_CONTROLLER_MODE_BLE_ONLY + default n + help + The full scan function is mainly used to provide BLE scan performance. + This is required for scenes with high scan performance requirements, such as BLE Mesh scenes. + + endmenu + + menuconfig BLUEDROID_ENABLED + bool "Bluedroid Enable" + depends on BTDM_CONTROLLER_HCI_MODE_VHCI + default y + help + This enables the default Bluedroid Bluetooth stack + + choice BLUEDROID_PINNED_TO_CORE_CHOICE + prompt "The cpu core which Bluedroid run" + depends on BLUEDROID_ENABLED && !FREERTOS_UNICORE + help + Which the cpu core to run Bluedroid. Can choose core0 and core1. + Can not specify no-affinity. + + config BLUEDROID_PINNED_TO_CORE_0 + bool "Core 0 (PRO CPU)" + config BLUEDROID_PINNED_TO_CORE_1 + bool "Core 1 (APP CPU)" + depends on !FREERTOS_UNICORE + endchoice + + config BLUEDROID_PINNED_TO_CORE + int + depends on BLUEDROID_ENABLED + default 0 if BLUEDROID_PINNED_TO_CORE_0 + default 1 if BLUEDROID_PINNED_TO_CORE_1 + default 0 + + config BTC_TASK_STACK_SIZE + int "Bluetooth event (callback to application) task stack size" + depends on BLUEDROID_ENABLED + default 3072 + help + This select btc task stack size + + config BTU_TASK_STACK_SIZE + int "Bluetooth Bluedroid Host Stack task stack size" + depends on BLUEDROID_ENABLED + default 4096 + help + This select btu task stack size + + config BLUEDROID_MEM_DEBUG + bool "Bluedroid memory debug" + depends on BLUEDROID_ENABLED + default n + help + Bluedroid memory debug + + config CLASSIC_BT_ENABLED + bool "Classic Bluetooth" + depends on BLUEDROID_ENABLED + default n + help + For now this option needs "SMP_ENABLE" to be set to yes + + config A2DP_ENABLE + bool "A2DP" + depends on CLASSIC_BT_ENABLED + default n + help + Advanced Audio Distrubution Profile + + config A2DP_SINK_TASK_STACK_SIZE + int "A2DP sink (audio stream decoding) task stack size" + depends on A2DP_ENABLE + default 2048 + + config A2DP_SOURCE_TASK_STACK_SIZE + int "A2DP source (audio stream encoding) task stack size" + depends on A2DP_ENABLE + default 2048 + + config BT_SPP_ENABLED + bool "SPP" + depends on CLASSIC_BT_ENABLED + default n + help + This enables the Serial Port Profile + + config HFP_ENABLE + bool "Hands Free/Handset Profile" + depends on CLASSIC_BT_ENABLED + default n + + choice HFP_ROLE + prompt "Hands-free Profile Role configuration" + depends on HFP_ENABLE + + config HFP_CLIENT_ENABLE + bool "Hands Free Unit" + endchoice + + choice HFP_AUDIO_DATA_PATH + prompt "audio(SCO) data path" + depends on HFP_ENABLE + + config HFP_AUDIO_DATA_PATH_PCM + bool "PCM" + help + This enables the Serial Port Profile + config HFP_AUDIO_DATA_PATH_HCI + bool "HCI" + help + This enables the Serial Port Profile + endchoice + + config BT_SSP_ENABLED + bool "Secure Simple Pairing" + depends on CLASSIC_BT_ENABLED + default y + help + This enables the Secure Simple Pairing. If disable this option, Bluedroid will only support Legacy Pairing + + config GATTS_ENABLE + bool "Include GATT server module(GATTS)" + depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY) + default y + help + This option can be disabled when the app work only on gatt client mode + + choice GATTS_SEND_SERVICE_CHANGE_MODE + prompt "GATTS Service Change Mode" + default GATTS_SEND_SERVICE_CHANGE_AUTO + depends on GATTS_ENABLE + help + Service change indication mode for GATT Server. + + config GATTS_SEND_SERVICE_CHANGE_MANUAL + bool "GATTS manually send service change indication" + help + Manually send service change indication through API esp_ble_gatts_send_service_change_indication() + + config GATTS_SEND_SERVICE_CHANGE_AUTO + bool "GATTS automatically send service change indication" + help + Let Bluedroid handle the service change indication internally + + endchoice + + config GATTS_SEND_SERVICE_CHANGE_MODE + int + depends on GATTS_ENABLE + default 0 if GATTS_SEND_SERVICE_CHANGE_AUTO + default 1 if GATTS_SEND_SERVICE_CHANGE_MANUAL + default 0 + + config GATTC_ENABLE + bool "Include GATT client module(GATTC)" + depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY) + default y + help + This option can be close when the app work only on gatt server mode + + config GATTC_CACHE_NVS_FLASH + bool "Save gattc cache data to nvs flash" + depends on GATTC_ENABLE && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY) + default n + help + This select can save gattc cache data to nvs flash + + config BLE_SMP_ENABLE + bool "Include BLE security module(SMP)" + depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY) + default y + help + This option can be close when the app not used the ble security connect. + + config BT_STACK_NO_LOG + bool "Disable BT debug logs (minimize bin size)" + depends on BLUEDROID_ENABLED + default n + help + This select can save the rodata code size + + menu "BT DEBUG LOG LEVEL" + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + + choice HCI_INITIAL_TRACE_LEVEL + prompt "HCI layer" + default HCI_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for HCI layer + + config HCI_TRACE_LEVEL_NONE + bool "NONE" + config HCI_TRACE_LEVEL_ERROR + bool "ERROR" + config HCI_TRACE_LEVEL_WARNING + bool "WARNING" + config HCI_TRACE_LEVEL_API + bool "API" + config HCI_TRACE_LEVEL_EVENT + bool "EVENT" + config HCI_TRACE_LEVEL_DEBUG + bool "DEBUG" + config HCI_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config HCI_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if HCI_TRACE_LEVEL_NONE + default 1 if HCI_TRACE_LEVEL_ERROR + default 2 if HCI_TRACE_LEVEL_WARNING + default 3 if HCI_TRACE_LEVEL_API + default 4 if HCI_TRACE_LEVEL_EVENT + default 5 if HCI_TRACE_LEVEL_DEBUG + default 6 if HCI_TRACE_LEVEL_VERBOSE + default 2 + + choice BTM_INITIAL_TRACE_LEVEL + prompt "BTM layer" + default BTM_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for BTM layer + + config BTM_TRACE_LEVEL_NONE + bool "NONE" + config BTM_TRACE_LEVEL_ERROR + bool "ERROR" + config BTM_TRACE_LEVEL_WARNING + bool "WARNING" + config BTM_TRACE_LEVEL_API + bool "API" + config BTM_TRACE_LEVEL_EVENT + bool "EVENT" + config BTM_TRACE_LEVEL_DEBUG + bool "DEBUG" + config BTM_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config BTM_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if BTM_TRACE_LEVEL_NONE + default 1 if BTM_TRACE_LEVEL_ERROR + default 2 if BTM_TRACE_LEVEL_WARNING + default 3 if BTM_TRACE_LEVEL_API + default 4 if BTM_TRACE_LEVEL_EVENT + default 5 if BTM_TRACE_LEVEL_DEBUG + default 6 if BTM_TRACE_LEVEL_VERBOSE + default 2 + + choice L2CAP_INITIAL_TRACE_LEVEL + prompt "L2CAP layer" + default L2CAP_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for L2CAP layer + + config L2CAP_TRACE_LEVEL_NONE + bool "NONE" + config L2CAP_TRACE_LEVEL_ERROR + bool "ERROR" + config L2CAP_TRACE_LEVEL_WARNING + bool "WARNING" + config L2CAP_TRACE_LEVEL_API + bool "API" + config L2CAP_TRACE_LEVEL_EVENT + bool "EVENT" + config L2CAP_TRACE_LEVEL_DEBUG + bool "DEBUG" + config L2CAP_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config L2CAP_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if L2CAP_TRACE_LEVEL_NONE + default 1 if L2CAP_TRACE_LEVEL_ERROR + default 2 if L2CAP_TRACE_LEVEL_WARNING + default 3 if L2CAP_TRACE_LEVEL_API + default 4 if L2CAP_TRACE_LEVEL_EVENT + default 5 if L2CAP_TRACE_LEVEL_DEBUG + default 6 if L2CAP_TRACE_LEVEL_VERBOSE + default 2 + + choice RFCOMM_INITIAL_TRACE_LEVEL + prompt "RFCOMM layer" + default RFCOMM_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for RFCOMM layer + + config RFCOMM_TRACE_LEVEL_NONE + bool "NONE" + config RFCOMM_TRACE_LEVEL_ERROR + bool "ERROR" + config RFCOMM_TRACE_LEVEL_WARNING + bool "WARNING" + config RFCOMM_TRACE_LEVEL_API + bool "API" + config RFCOMM_TRACE_LEVEL_EVENT + bool "EVENT" + config RFCOMM_TRACE_LEVEL_DEBUG + bool "DEBUG" + config RFCOMM_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config RFCOMM_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if RFCOMM_TRACE_LEVEL_NONE + default 1 if RFCOMM_TRACE_LEVEL_ERROR + default 2 if RFCOMM_TRACE_LEVEL_WARNING + default 3 if RFCOMM_TRACE_LEVEL_API + default 4 if RFCOMM_TRACE_LEVEL_EVENT + default 5 if RFCOMM_TRACE_LEVEL_DEBUG + default 6 if RFCOMM_TRACE_LEVEL_VERBOSE + default 2 + + choice SDP_INITIAL_TRACE_LEVEL + prompt "SDP layer" + default SDP_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for SDP layer + + config SDP_TRACE_LEVEL_NONE + bool "NONE" + config SDP_TRACE_LEVEL_ERROR + bool "ERROR" + config SDP_TRACE_LEVEL_WARNING + bool "WARNING" + config SDP_TRACE_LEVEL_API + bool "API" + config SDP_TRACE_LEVEL_EVENT + bool "EVENT" + config SDP_TRACE_LEVEL_DEBUG + bool "DEBUG" + config SDP_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config SDP_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if SDP_TRACE_LEVEL_NONE + default 1 if SDP_TRACE_LEVEL_ERROR + default 2 if SDP_TRACE_LEVEL_WARNING + default 3 if SDP_TRACE_LEVEL_API + default 4 if SDP_TRACE_LEVEL_EVENT + default 5 if SDP_TRACE_LEVEL_DEBUG + default 6 if SDP_TRACE_LEVEL_VERBOSE + default 2 + + choice GAP_INITIAL_TRACE_LEVEL + prompt "GAP layer" + default GAP_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for GAP layer + + config GAP_TRACE_LEVEL_NONE + bool "NONE" + config GAP_TRACE_LEVEL_ERROR + bool "ERROR" + config GAP_TRACE_LEVEL_WARNING + bool "WARNING" + config GAP_TRACE_LEVEL_API + bool "API" + config GAP_TRACE_LEVEL_EVENT + bool "EVENT" + config GAP_TRACE_LEVEL_DEBUG + bool "DEBUG" + config GAP_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config GAP_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if GAP_TRACE_LEVEL_NONE + default 1 if GAP_TRACE_LEVEL_ERROR + default 2 if GAP_TRACE_LEVEL_WARNING + default 3 if GAP_TRACE_LEVEL_API + default 4 if GAP_TRACE_LEVEL_EVENT + default 5 if GAP_TRACE_LEVEL_DEBUG + default 6 if GAP_TRACE_LEVEL_VERBOSE + default 2 + + choice BNEP_INITIAL_TRACE_LEVEL + prompt "BNEP layer" + default BNEP_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for BNEP layer + + config BNEP_TRACE_LEVEL_NONE + bool "NONE" + config BNEP_TRACE_LEVEL_ERROR + bool "ERROR" + config BNEP_TRACE_LEVEL_WARNING + bool "WARNING" + config BNEP_TRACE_LEVEL_API + bool "API" + config BNEP_TRACE_LEVEL_EVENT + bool "EVENT" + config BNEP_TRACE_LEVEL_DEBUG + bool "DEBUG" + config BNEP_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config BNEP_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if BNEP_TRACE_LEVEL_NONE + default 1 if BNEP_TRACE_LEVEL_ERROR + default 2 if BNEP_TRACE_LEVEL_WARNING + default 3 if BNEP_TRACE_LEVEL_API + default 4 if BNEP_TRACE_LEVEL_EVENT + default 5 if BNEP_TRACE_LEVEL_DEBUG + default 6 if BNEP_TRACE_LEVEL_VERBOSE + default 2 + + choice PAN_INITIAL_TRACE_LEVEL + prompt "PAN layer" + default PAN_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for PAN layer + + config PAN_TRACE_LEVEL_NONE + bool "NONE" + config PAN_TRACE_LEVEL_ERROR + bool "ERROR" + config PAN_TRACE_LEVEL_WARNING + bool "WARNING" + config PAN_TRACE_LEVEL_API + bool "API" + config PAN_TRACE_LEVEL_EVENT + bool "EVENT" + config PAN_TRACE_LEVEL_DEBUG + bool "DEBUG" + config PAN_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config PAN_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if PAN_TRACE_LEVEL_NONE + default 1 if PAN_TRACE_LEVEL_ERROR + default 2 if PAN_TRACE_LEVEL_WARNING + default 3 if PAN_TRACE_LEVEL_API + default 4 if PAN_TRACE_LEVEL_EVENT + default 5 if PAN_TRACE_LEVEL_DEBUG + default 6 if PAN_TRACE_LEVEL_VERBOSE + default 2 + + choice A2D_INITIAL_TRACE_LEVEL + prompt "A2D layer" + default A2D_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for A2D layer + + config A2D_TRACE_LEVEL_NONE + bool "NONE" + config A2D_TRACE_LEVEL_ERROR + bool "ERROR" + config A2D_TRACE_LEVEL_WARNING + bool "WARNING" + config A2D_TRACE_LEVEL_API + bool "API" + config A2D_TRACE_LEVEL_EVENT + bool "EVENT" + config A2D_TRACE_LEVEL_DEBUG + bool "DEBUG" + config A2D_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config A2D_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if A2D_TRACE_LEVEL_NONE + default 1 if A2D_TRACE_LEVEL_ERROR + default 2 if A2D_TRACE_LEVEL_WARNING + default 3 if A2D_TRACE_LEVEL_API + default 4 if A2D_TRACE_LEVEL_EVENT + default 5 if A2D_TRACE_LEVEL_DEBUG + default 6 if A2D_TRACE_LEVEL_VERBOSE + default 2 + + choice AVDT_INITIAL_TRACE_LEVEL + prompt "AVDT layer" + default AVDT_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for AVDT layer + + config AVDT_TRACE_LEVEL_NONE + bool "NONE" + config AVDT_TRACE_LEVEL_ERROR + bool "ERROR" + config AVDT_TRACE_LEVEL_WARNING + bool "WARNING" + config AVDT_TRACE_LEVEL_API + bool "API" + config AVDT_TRACE_LEVEL_EVENT + bool "EVENT" + config AVDT_TRACE_LEVEL_DEBUG + bool "DEBUG" + config AVDT_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config AVDT_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if AVDT_TRACE_LEVEL_NONE + default 1 if AVDT_TRACE_LEVEL_ERROR + default 2 if AVDT_TRACE_LEVEL_WARNING + default 3 if AVDT_TRACE_LEVEL_API + default 4 if AVDT_TRACE_LEVEL_EVENT + default 5 if AVDT_TRACE_LEVEL_DEBUG + default 6 if AVDT_TRACE_LEVEL_VERBOSE + default 2 + + choice AVCT_INITIAL_TRACE_LEVEL + prompt "AVCT layer" + default AVCT_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for AVCT layer + + config AVCT_TRACE_LEVEL_NONE + bool "NONE" + config AVCT_TRACE_LEVEL_ERROR + bool "ERROR" + config AVCT_TRACE_LEVEL_WARNING + bool "WARNING" + config AVCT_TRACE_LEVEL_API + bool "API" + config AVCT_TRACE_LEVEL_EVENT + bool "EVENT" + config AVCT_TRACE_LEVEL_DEBUG + bool "DEBUG" + config AVCT_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config AVCT_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if AVCT_TRACE_LEVEL_NONE + default 1 if AVCT_TRACE_LEVEL_ERROR + default 2 if AVCT_TRACE_LEVEL_WARNING + default 3 if AVCT_TRACE_LEVEL_API + default 4 if AVCT_TRACE_LEVEL_EVENT + default 5 if AVCT_TRACE_LEVEL_DEBUG + default 6 if AVCT_TRACE_LEVEL_VERBOSE + default 2 + + choice AVRC_INITIAL_TRACE_LEVEL + prompt "AVRC layer" + default AVRC_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for AVRC layer + + config AVRC_TRACE_LEVEL_NONE + bool "NONE" + config AVRC_TRACE_LEVEL_ERROR + bool "ERROR" + config AVRC_TRACE_LEVEL_WARNING + bool "WARNING" + config AVRC_TRACE_LEVEL_API + bool "API" + config AVRC_TRACE_LEVEL_EVENT + bool "EVENT" + config AVRC_TRACE_LEVEL_DEBUG + bool "DEBUG" + config AVRC_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config AVRC_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if AVRC_TRACE_LEVEL_NONE + default 1 if AVRC_TRACE_LEVEL_ERROR + default 2 if AVRC_TRACE_LEVEL_WARNING + default 3 if AVRC_TRACE_LEVEL_API + default 4 if AVRC_TRACE_LEVEL_EVENT + default 5 if AVRC_TRACE_LEVEL_DEBUG + default 6 if AVRC_TRACE_LEVEL_VERBOSE + default 2 + + choice MCA_INITIAL_TRACE_LEVEL + prompt "MCA layer" + default MCA_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for MCA layer + + config MCA_TRACE_LEVEL_NONE + bool "NONE" + config MCA_TRACE_LEVEL_ERROR + bool "ERROR" + config MCA_TRACE_LEVEL_WARNING + bool "WARNING" + config MCA_TRACE_LEVEL_API + bool "API" + config MCA_TRACE_LEVEL_EVENT + bool "EVENT" + config MCA_TRACE_LEVEL_DEBUG + bool "DEBUG" + config MCA_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config MCA_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if MCA_TRACE_LEVEL_NONE + default 1 if MCA_TRACE_LEVEL_ERROR + default 2 if MCA_TRACE_LEVEL_WARNING + default 3 if MCA_TRACE_LEVEL_API + default 4 if MCA_TRACE_LEVEL_EVENT + default 5 if MCA_TRACE_LEVEL_DEBUG + default 6 if MCA_TRACE_LEVEL_VERBOSE + default 2 + + choice HID_INITIAL_TRACE_LEVEL + prompt "HID layer" + default HID_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for HID layer + + config HID_TRACE_LEVEL_NONE + bool "NONE" + config HID_TRACE_LEVEL_ERROR + bool "ERROR" + config HID_TRACE_LEVEL_WARNING + bool "WARNING" + config HID_TRACE_LEVEL_API + bool "API" + config HID_TRACE_LEVEL_EVENT + bool "EVENT" + config HID_TRACE_LEVEL_DEBUG + bool "DEBUG" + config HID_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config HID_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if HID_TRACE_LEVEL_NONE + default 1 if HID_TRACE_LEVEL_ERROR + default 2 if HID_TRACE_LEVEL_WARNING + default 3 if HID_TRACE_LEVEL_API + default 4 if HID_TRACE_LEVEL_EVENT + default 5 if HID_TRACE_LEVEL_DEBUG + default 6 if HID_TRACE_LEVEL_VERBOSE + default 2 + + choice APPL_INITIAL_TRACE_LEVEL + prompt "APPL layer" + default APPL_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for APPL layer + + config APPL_TRACE_LEVEL_NONE + bool "NONE" + config APPL_TRACE_LEVEL_ERROR + bool "ERROR" + config APPL_TRACE_LEVEL_WARNING + bool "WARNING" + config APPL_TRACE_LEVEL_API + bool "API" + config APPL_TRACE_LEVEL_EVENT + bool "EVENT" + config APPL_TRACE_LEVEL_DEBUG + bool "DEBUG" + config APPL_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config APPL_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if APPL_TRACE_LEVEL_NONE + default 1 if APPL_TRACE_LEVEL_ERROR + default 2 if APPL_TRACE_LEVEL_WARNING + default 3 if APPL_TRACE_LEVEL_API + default 4 if APPL_TRACE_LEVEL_EVENT + default 5 if APPL_TRACE_LEVEL_DEBUG + default 6 if APPL_TRACE_LEVEL_VERBOSE + default 2 + + choice GATT_INITIAL_TRACE_LEVEL + prompt "GATT layer" + default GATT_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for GATT layer + + config GATT_TRACE_LEVEL_NONE + bool "NONE" + config GATT_TRACE_LEVEL_ERROR + bool "ERROR" + config GATT_TRACE_LEVEL_WARNING + bool "WARNING" + config GATT_TRACE_LEVEL_API + bool "API" + config GATT_TRACE_LEVEL_EVENT + bool "EVENT" + config GATT_TRACE_LEVEL_DEBUG + bool "DEBUG" + config GATT_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config GATT_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if GATT_TRACE_LEVEL_NONE + default 1 if GATT_TRACE_LEVEL_ERROR + default 2 if GATT_TRACE_LEVEL_WARNING + default 3 if GATT_TRACE_LEVEL_API + default 4 if GATT_TRACE_LEVEL_EVENT + default 5 if GATT_TRACE_LEVEL_DEBUG + default 6 if GATT_TRACE_LEVEL_VERBOSE + default 2 + + choice SMP_INITIAL_TRACE_LEVEL + prompt "SMP layer" + default SMP_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for SMP layer + + config SMP_TRACE_LEVEL_NONE + bool "NONE" + config SMP_TRACE_LEVEL_ERROR + bool "ERROR" + config SMP_TRACE_LEVEL_WARNING + bool "WARNING" + config SMP_TRACE_LEVEL_API + bool "API" + config SMP_TRACE_LEVEL_EVENT + bool "EVENT" + config SMP_TRACE_LEVEL_DEBUG + bool "DEBUG" + config SMP_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config SMP_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if SMP_TRACE_LEVEL_NONE + default 1 if SMP_TRACE_LEVEL_ERROR + default 2 if SMP_TRACE_LEVEL_WARNING + default 3 if SMP_TRACE_LEVEL_API + default 4 if SMP_TRACE_LEVEL_EVENT + default 5 if SMP_TRACE_LEVEL_DEBUG + default 6 if SMP_TRACE_LEVEL_VERBOSE + default 2 + + choice BTIF_INITIAL_TRACE_LEVEL + prompt "BTIF layer" + default BTIF_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for BTIF layer + + config BTIF_TRACE_LEVEL_NONE + bool "NONE" + config BTIF_TRACE_LEVEL_ERROR + bool "ERROR" + config BTIF_TRACE_LEVEL_WARNING + bool "WARNING" + config BTIF_TRACE_LEVEL_API + bool "API" + config BTIF_TRACE_LEVEL_EVENT + bool "EVENT" + config BTIF_TRACE_LEVEL_DEBUG + bool "DEBUG" + config BTIF_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config BTIF_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if BTIF_TRACE_LEVEL_NONE + default 1 if BTIF_TRACE_LEVEL_ERROR + default 2 if BTIF_TRACE_LEVEL_WARNING + default 3 if BTIF_TRACE_LEVEL_API + default 4 if BTIF_TRACE_LEVEL_EVENT + default 5 if BTIF_TRACE_LEVEL_DEBUG + default 6 if BTIF_TRACE_LEVEL_VERBOSE + default 2 + + choice BTC_INITIAL_TRACE_LEVEL + prompt "BTC layer" + default BTC_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for BTC layer + + config BTC_TRACE_LEVEL_NONE + bool "NONE" + config BTC_TRACE_LEVEL_ERROR + bool "ERROR" + config BTC_TRACE_LEVEL_WARNING + bool "WARNING" + config BTC_TRACE_LEVEL_API + bool "API" + config BTC_TRACE_LEVEL_EVENT + bool "EVENT" + config BTC_TRACE_LEVEL_DEBUG + bool "DEBUG" + config BTC_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config BTC_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if BTC_TRACE_LEVEL_NONE + default 1 if BTC_TRACE_LEVEL_ERROR + default 2 if BTC_TRACE_LEVEL_WARNING + default 3 if BTC_TRACE_LEVEL_API + default 4 if BTC_TRACE_LEVEL_EVENT + default 5 if BTC_TRACE_LEVEL_DEBUG + default 6 if BTC_TRACE_LEVEL_VERBOSE + default 2 + + choice OSI_INITIAL_TRACE_LEVEL + prompt "OSI layer" + default OSI_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for OSI layer + + config OSI_TRACE_LEVEL_NONE + bool "NONE" + config OSI_TRACE_LEVEL_ERROR + bool "ERROR" + config OSI_TRACE_LEVEL_WARNING + bool "WARNING" + config OSI_TRACE_LEVEL_API + bool "API" + config OSI_TRACE_LEVEL_EVENT + bool "EVENT" + config OSI_TRACE_LEVEL_DEBUG + bool "DEBUG" + config OSI_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config OSI_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if OSI_TRACE_LEVEL_NONE + default 1 if OSI_TRACE_LEVEL_ERROR + default 2 if OSI_TRACE_LEVEL_WARNING + default 3 if OSI_TRACE_LEVEL_API + default 4 if OSI_TRACE_LEVEL_EVENT + default 5 if OSI_TRACE_LEVEL_DEBUG + default 6 if OSI_TRACE_LEVEL_VERBOSE + default 2 + + choice BLUFI_INITIAL_TRACE_LEVEL + prompt "BLUFI layer" + default BLUFI_TRACE_LEVEL_WARNING + depends on BLUEDROID_ENABLED && !BT_STACK_NO_LOG + help + Define BT trace level for BLUFI layer + + config BLUFI_TRACE_LEVEL_NONE + bool "NONE" + config BLUFI_TRACE_LEVEL_ERROR + bool "ERROR" + config BLUFI_TRACE_LEVEL_WARNING + bool "WARNING" + config BLUFI_TRACE_LEVEL_API + bool "API" + config BLUFI_TRACE_LEVEL_EVENT + bool "EVENT" + config BLUFI_TRACE_LEVEL_DEBUG + bool "DEBUG" + config BLUFI_TRACE_LEVEL_VERBOSE + bool "VERBOSE" + endchoice + + config BLUFI_INITIAL_TRACE_LEVEL + int + depends on BLUEDROID_ENABLED + default 0 if BLUFI_TRACE_LEVEL_NONE + default 1 if BLUFI_TRACE_LEVEL_ERROR + default 2 if BLUFI_TRACE_LEVEL_WARNING + default 3 if BLUFI_TRACE_LEVEL_API + default 4 if BLUFI_TRACE_LEVEL_EVENT + default 5 if BLUFI_TRACE_LEVEL_DEBUG + default 6 if BLUFI_TRACE_LEVEL_VERBOSE + default 2 + + endmenu #BT DEBUG LOG LEVEL + + + config BT_ACL_CONNECTIONS + int "BT/BLE MAX ACL CONNECTIONS(1~7)" + depends on BLUEDROID_ENABLED + range 1 7 + default 4 + help + Maximum BT/BLE connection count + + config BT_ALLOCATION_FROM_SPIRAM_FIRST + bool "BT/BLE will first malloc the memory from the PSRAM" + depends on BLUEDROID_ENABLED + default n + help + This select can save the internal RAM if there have the PSRAM + + config BT_BLE_DYNAMIC_ENV_MEMORY + bool "Use dynamic memory allocation in BT/BLE stack" + depends on BLUEDROID_ENABLED + default n + help + This select can make the allocation of memory will become more flexible + + config BLE_HOST_QUEUE_CONGESTION_CHECK + bool "BLE queue congestion check" + depends on BLUEDROID_ENABLED + default n + help + When scanning and scan duplicate is not enabled, if there are a lot of adv packets around or application + layer handling adv packets is slow, it will cause the controller memory to run out. if enabled, adv + packets will be lost when host queue is congested. + + config SMP_ENABLE + bool + depends on BLUEDROID_ENABLED + default CLASSIC_BT_ENABLED || BLE_SMP_ENABLE + + config BLE_ACTIVE_SCAN_REPORT_ADV_SCAN_RSP_INDIVIDUALLY + bool "Report adv data and scan response individually when BLE active scan" + depends on BLUEDROID_ENABLED && (BTDM_CONTROLLER_MODE_BTDM || BTDM_CONTROLLER_MODE_BLE_ONLY) + default n + help + Originally, when doing BLE active scan, Bluedroid will not report adv to application layer + until receive scan response. This option is used to disable the behavior. When enable this option, + Bluedroid will report adv data or scan response to application layer immediately. + + # Memory reserved at start of DRAM for Bluetooth stack + config BT_RESERVE_DRAM + hex + default 0xdb5c if BT_ENABLED + default 0 endmenu diff --git a/components/driver/Kconfig b/components/driver/Kconfig index d32f922b77..f00d7e8099 100644 --- a/components/driver/Kconfig +++ b/components/driver/Kconfig @@ -1,73 +1,74 @@ menu "Driver configurations" -menu "ADC configuration" + menu "ADC configuration" -config ADC_FORCE_XPD_FSM - bool "Use the FSM to control ADC power" - default n - help - ADC power can be controlled by the FSM instead of software. This allows the ADC to - be shut off when it is not working leading to lower power consumption. However - using the FSM control ADC power will increase the noise of ADC. + config ADC_FORCE_XPD_FSM + bool "Use the FSM to control ADC power" + default n + help + ADC power can be controlled by the FSM instead of software. This allows the ADC to + be shut off when it is not working leading to lower power consumption. However + using the FSM control ADC power will increase the noise of ADC. -config ADC2_DISABLE_DAC - bool "Disable DAC when ADC2 is used on GPIO 25 and 26" - default y - help - If this is set, the ADC2 driver will disables the output of the DAC corresponding to the specified channel. This is the default value. + config ADC2_DISABLE_DAC + bool "Disable DAC when ADC2 is used on GPIO 25 and 26" + default y + help + If this is set, the ADC2 driver will disables the output of the DAC corresponding to the specified + channel. This is the default value. - For testing, disable this option so that we can measure the output of DAC by internal ADC. + For testing, disable this option so that we can measure the output of DAC by internal ADC. -endmenu # ADC Configuration + endmenu # ADC Configuration -menu "SPI configuration" + menu "SPI configuration" -config SPI_MASTER_IN_IRAM - bool "Place transmitting functions of SPI master into IRAM" - default n - select SPI_MASTER_ISR_IN_IRAM - help - Normally only the ISR of SPI master is placed in the IRAM, so that it - can work without the flash when interrupt is triggered. - For other functions, there's some possibility that the flash cache - miss when running inside and out of SPI functions, which may increase - the interval of SPI transactions. - Enable this to put ``queue_trans``, ``get_trans_result`` and - ``transmit`` functions into the IRAM to avoid possible cache miss. + config SPI_MASTER_IN_IRAM + bool "Place transmitting functions of SPI master into IRAM" + default n + select SPI_MASTER_ISR_IN_IRAM + help + Normally only the ISR of SPI master is placed in the IRAM, so that it + can work without the flash when interrupt is triggered. + For other functions, there's some possibility that the flash cache + miss when running inside and out of SPI functions, which may increase + the interval of SPI transactions. + Enable this to put ``queue_trans``, ``get_trans_result`` and + ``transmit`` functions into the IRAM to avoid possible cache miss. - During unit test, this is enabled to measure the ideal case of api. + During unit test, this is enabled to measure the ideal case of api. -config SPI_MASTER_ISR_IN_IRAM - bool "Place SPI master ISR function into IRAM" - default y - help - Place the SPI master ISR in to IRAM to avoid possible cache miss. + config SPI_MASTER_ISR_IN_IRAM + bool "Place SPI master ISR function into IRAM" + default y + help + Place the SPI master ISR in to IRAM to avoid possible cache miss. - Also you can forbid the ISR being disabled during flash writing - access, by add ESP_INTR_FLAG_IRAM when initializing the driver. + Also you can forbid the ISR being disabled during flash writing + access, by add ESP_INTR_FLAG_IRAM when initializing the driver. -config SPI_SLAVE_IN_IRAM - bool "Place transmitting functions of SPI slave into IRAM" - default n - select SPI_SLAVE_ISR_IN_IRAM - help - Normally only the ISR of SPI slave is placed in the IRAM, so that it - can work without the flash when interrupt is triggered. - For other functions, there's some possibility that the flash cache - miss when running inside and out of SPI functions, which may increase - the interval of SPI transactions. - Enable this to put ``queue_trans``, ``get_trans_result`` and - ``transmit`` functions into the IRAM to avoid possible cache miss. + config SPI_SLAVE_IN_IRAM + bool "Place transmitting functions of SPI slave into IRAM" + default n + select SPI_SLAVE_ISR_IN_IRAM + help + Normally only the ISR of SPI slave is placed in the IRAM, so that it + can work without the flash when interrupt is triggered. + For other functions, there's some possibility that the flash cache + miss when running inside and out of SPI functions, which may increase + the interval of SPI transactions. + Enable this to put ``queue_trans``, ``get_trans_result`` and + ``transmit`` functions into the IRAM to avoid possible cache miss. -config SPI_SLAVE_ISR_IN_IRAM - bool "Place SPI slave ISR function into IRAM" - default y - help - Place the SPI slave ISR in to IRAM to avoid possible cache miss. + config SPI_SLAVE_ISR_IN_IRAM + bool "Place SPI slave ISR function into IRAM" + default y + help + Place the SPI slave ISR in to IRAM to avoid possible cache miss. - Also you can forbid the ISR being disabled during flash writing - access, by add ESP_INTR_FLAG_IRAM when initializing the driver. + Also you can forbid the ISR being disabled during flash writing + access, by add ESP_INTR_FLAG_IRAM when initializing the driver. -endmenu # SPI Configuration + endmenu # SPI Configuration endmenu # Driver configurations diff --git a/components/esp32/Kconfig b/components/esp32/Kconfig index 71a78e26b9..be7792655f 100644 --- a/components/esp32/Kconfig +++ b/components/esp32/Kconfig @@ -1,1354 +1,1365 @@ menu "ESP32-specific" -# Hidden option to support checking for this specific target in C code and Kconfig files -config IDF_TARGET_ESP32 - bool - default "y" if IDF_TARGET="esp32" - default "n" - -choice ESP32_DEFAULT_CPU_FREQ_MHZ - prompt "CPU frequency" - default ESP32_DEFAULT_CPU_FREQ_160 - help - CPU frequency to be set on application startup. - -config ESP32_DEFAULT_CPU_FREQ_80 - bool "80 MHz" -config ESP32_DEFAULT_CPU_FREQ_160 - bool "160 MHz" -config ESP32_DEFAULT_CPU_FREQ_240 - bool "240 MHz" -endchoice - -config ESP32_DEFAULT_CPU_FREQ_MHZ - int - default 80 if ESP32_DEFAULT_CPU_FREQ_80 - default 160 if ESP32_DEFAULT_CPU_FREQ_160 - default 240 if ESP32_DEFAULT_CPU_FREQ_240 - -config SPIRAM_SUPPORT - bool "Support for external, SPI-connected RAM" - default "n" - help - This enables support for an external SPI RAM chip, connected in parallel with the - main SPI flash chip. - -menu "SPI RAM config" - depends on SPIRAM_SUPPORT - -config SPIRAM_BOOT_INIT - bool "Initialize SPI RAM when booting the ESP32" - default "y" - help - If this is enabled, the SPI RAM will be enabled during initial boot. Unless you - have specific requirements, you'll want to leave this enabled so memory allocated - during boot-up can also be placed in SPI RAM. - -config SPIRAM_IGNORE_NOTFOUND - bool "Ignore PSRAM when not found" - default "n" - depends on SPIRAM_BOOT_INIT && !SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY - help - Normally, if psram initialization is enabled during compile time but not found at runtime, it - is seen as an error making the ESP32 panic. If this is enabled, the ESP32 will keep on - running but will not add the (non-existing) RAM to any allocator. - -choice SPIRAM_USE - prompt "SPI RAM access method" - default SPIRAM_USE_MALLOC - help - The SPI RAM can be accessed in multiple methods: by just having it available as an unmanaged - memory region in the ESP32 memory map, by integrating it in the ESP32s heap as 'special' memory - needing heap_caps_malloc to allocate, or by fully integrating it making malloc() also able to - return SPI RAM pointers. - -config SPIRAM_USE_MEMMAP - bool "Integrate RAM into ESP32 memory map" -config SPIRAM_USE_CAPS_ALLOC - bool "Make RAM allocatable using heap_caps_malloc(..., MALLOC_CAP_SPIRAM)" -config SPIRAM_USE_MALLOC - bool "Make RAM allocatable using malloc() as well" - select SUPPORT_STATIC_ALLOCATION -endchoice - -choice SPIRAM_TYPE - prompt "Type of SPI RAM chip in use" - default SPIRAM_TYPE_AUTO - -config SPIRAM_TYPE_AUTO - bool "Auto-detect" - -config SPIRAM_TYPE_ESPPSRAM32 - bool "ESP-PSRAM32 or IS25WP032" - -config SPIRAM_TYPE_ESPPSRAM64 - bool "ESP-PSRAM64 or LY68L6400" - -endchoice - -config SPIRAM_SIZE - int - default -1 if SPIRAM_TYPE_AUTO - default 4194304 if SPIRAM_TYPE_ESPPSRAM32 - default 8388608 if SPIRAM_TYPE_ESPPSRAM64 - default 0 - -choice SPIRAM_SPEED - prompt "Set RAM clock speed" - default SPIRAM_CACHE_SPEED_40M - help - Select the speed for the SPI RAM chip. - If SPI RAM is enabled, we only support three combinations of SPI speed mode we supported now: - - 1. Flash SPI running at 40Mhz and RAM SPI running at 40Mhz - 2. Flash SPI running at 80Mhz and RAM SPI running at 40Mhz - 3. Flash SPI running at 80Mhz and RAM SPI running at 80Mhz - - Note: If the third mode(80Mhz+80Mhz) is enabled for SPI RAM of type 32MBit, one of the HSPI/VSPI host will - be occupied by the system. Which SPI host to use can be selected by the config item SPIRAM_OCCUPY_SPI_HOST. - Application code should never touch HSPI/VSPI hardware in this case. The option to select - 80MHz will only be visible if the flash SPI speed is also 80MHz. (ESPTOOLPY_FLASHFREQ_80M is true) - -config SPIRAM_SPEED_40M - bool "40MHz clock speed" -config SPIRAM_SPEED_80M - depends on ESPTOOLPY_FLASHFREQ_80M - bool "80MHz clock speed" -endchoice - -config SPIRAM_MEMTEST - bool "Run memory test on SPI RAM initialization" - default "y" - depends on SPIRAM_BOOT_INIT - help - Runs a rudimentary memory test on initialization. Aborts when memory test fails. Disable this for - slightly faster startop. - -config SPIRAM_CACHE_WORKAROUND - bool "Enable workaround for bug in SPI RAM cache for Rev1 ESP32s" - depends on SPIRAM_USE_MEMMAP || SPIRAM_USE_CAPS_ALLOC || SPIRAM_USE_MALLOC - default "y" - help - Revision 1 of the ESP32 has a bug that can cause a write to PSRAM not to take place in some situations - when the cache line needs to be fetched from external RAM and an interrupt occurs. This enables a - fix in the compiler that makes sure the specific code that is vulnerable to this will not be emitted. - - This will also not use any bits of newlib that are located in ROM, opting for a version that is compiled - with the workaround and located in flash instead. - -config SPIRAM_BANKSWITCH_ENABLE - bool "Enable bank switching for >4MiB external RAM" - default y - depends on SPIRAM_USE_MEMMAP || SPIRAM_USE_CAPS_ALLOC || SPIRAM_USE_MALLOC - help - The ESP32 only supports 4MiB of external RAM in its address space. The hardware does support larger - memories, but these have to be bank-switched in and out of this address space. Enabling this allows you - to reserve some MMU pages for this, which allows the use of the esp_himem api to manage these banks. - -#Note that this is limited to 62 banks, as esp_spiram_writeback_cache needs some kind of mapping of some banks -#below that mark to work. We cannot at this moment guarantee this to exist when himem is enabled. -config SPIRAM_BANKSWITCH_RESERVE - int "Amount of 32K pages to reserve for bank switching" - depends on SPIRAM_BANKSWITCH_ENABLE - default 8 - range 1 62 - help - Select the amount of banks reserved for bank switching. Note that the amount of RAM allocatable with - malloc/esp_heap_alloc_caps will decrease by 32K for each page reserved here. - - Note that this reservation is only actually done if your program actually uses the himem API. Without - any himem calls, the reservation is not done and the original amount of memory will be available - to malloc/esp_heap_alloc_caps. - -config SPIRAM_MALLOC_ALWAYSINTERNAL - int "Maximum malloc() size, in bytes, to always put in internal memory" - depends on SPIRAM_USE_MALLOC - default 16384 - range 0 131072 - help - If malloc() is capable of also allocating SPI-connected ram, its allocation strategy will prefer to allocate chunks less - than this size in internal memory, while allocations larger than this will be done from external RAM. - If allocation from the preferred region fails, an attempt is made to allocate from the non-preferred - region instead, so malloc() will not suddenly fail when either internal or external memory is full. - -config WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST - bool "Try to allocate memories of WiFi and LWIP in SPIRAM firstly. If failed, allocate internal memory" - depends on SPIRAM_USE_CAPS_ALLOC || SPIRAM_USE_MALLOC - default "n" - help - Try to allocate memories of WiFi and LWIP in SPIRAM firstly. If failed, try to allocate internal memory then. - -config SPIRAM_MALLOC_RESERVE_INTERNAL - int "Reserve this amount of bytes for data that specifically needs to be in DMA or internal memory" - depends on SPIRAM_USE_MALLOC - default 32768 - range 0 262144 - help - Because the external/internal RAM allocation strategy is not always perfect, it sometimes may happen - that the internal memory is entirely filled up. This causes allocations that are specifically done in - internal memory, for example the stack for new tasks or memory to service DMA or have memory that's - also available when SPI cache is down, to fail. This option reserves a pool specifically for requests - like that; the memory in this pool is not given out when a normal malloc() is called. - - Set this to 0 to disable this feature. - - Note that because FreeRTOS stacks are forced to internal memory, they will also use this memory pool; - be sure to keep this in mind when adjusting this value. - - Note also that the DMA reserved pool may not be one single contiguous memory region, depending on the - configured size and the static memory usage of the app. - - -config SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY - bool "Allow external memory as an argument to xTaskCreateStatic" - default n - depends on SPIRAM_USE_MALLOC - help - Because some bits of the ESP32 code environment cannot be recompiled with the cache workaround, normally - tasks cannot be safely run with their stack residing in external memory; for this reason xTaskCreate and - friends always allocate stack in internal memory and xTaskCreateStatic will check if the memory passed - to it is in internal memory. If you have a task that needs a large amount of stack and does not call on - ROM code in any way (no direct calls, but also no Bluetooth/WiFi), you can try to disable this and use - xTaskCreateStatic to create the tasks stack in external memory. - -config SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY - bool "Allow .bss segment placed in external memory" - default n - depends on SPIRAM_SUPPORT - help - If enabled the option,and add EXT_RAM_ATTR defined your variable,then your variable will be placed - in PSRAM instead of internal memory, and placed most of variables of lwip,net802.11,pp,bluedroid library - to external memory defaultly. - -choice SPIRAM_OCCUPY_SPI_HOST - prompt "SPI host to use for 32MBit PSRAM" - default SPIRAM_OCCUPY_VSPI_HOST - depends on SPIRAM_SPEED_80M - help - When both flash and PSRAM is working under 80MHz, and the PSRAM is of type 32MBit, one of the HSPI/VSPI - host will be used to output the clock. Select which one to use here. - -config SPIRAM_OCCUPY_HSPI_HOST - bool "HSPI host (SPI2)" -config SPIRAM_OCCUPY_VSPI_HOST - bool "VSPI host (SPI3)" -endchoice - -config PICO_PSRAM_CS_IO - int "PSRAM CS IO for ESP32-PICO chip" - depends on SPIRAM_SUPPORT - range 0 33 - default 10 - help - When ESP32-PICO chip connect a external psram, the clock IO and data IO is fixed, but the CS IO can be - any unused GPIO, user can config it based on hardware design. - -endmenu - -config MEMMAP_TRACEMEM - bool - default "n" - -config MEMMAP_TRACEMEM_TWOBANKS - bool - default "n" - -config ESP32_TRAX - bool "Use TRAX tracing feature" - default "n" - select MEMMAP_TRACEMEM - help - The ESP32 contains a feature which allows you to trace the execution path the processor - has taken through the program. This is stored in a chunk of 32K (16K for single-processor) - of memory that can't be used for general purposes anymore. Disable this if you do not know - what this is. - -config ESP32_TRAX_TWOBANKS - bool "Reserve memory for tracing both pro as well as app cpu execution" - default "n" - depends on ESP32_TRAX && !FREERTOS_UNICORE - select MEMMAP_TRACEMEM_TWOBANKS - help - The ESP32 contains a feature which allows you to trace the execution path the processor - has taken through the program. This is stored in a chunk of 32K (16K for single-processor) - of memory that can't be used for general purposes anymore. Disable this if you do not know - what this is. - -# Memory to reverse for trace, used in linker script -config TRACEMEM_RESERVE_DRAM - hex - default 0x8000 if MEMMAP_TRACEMEM && MEMMAP_TRACEMEM_TWOBANKS - default 0x4000 if MEMMAP_TRACEMEM && !MEMMAP_TRACEMEM_TWOBANKS - default 0x0 - -menu "Core dump" - -choice ESP32_COREDUMP_TO_FLASH_OR_UART - prompt "Data destination" - default ESP32_ENABLE_COREDUMP_TO_NONE - help - Select place to store core dump: flash, uart or none (to disable core dumps generation). - - If core dump is configured to be stored in flash and custom partition table is used add - corresponding entry to your CSV. For examples, please see predefined partition table CSV descriptions - in the components/partition_table directory. - -config ESP32_ENABLE_COREDUMP_TO_FLASH - bool "Flash" - select ESP32_ENABLE_COREDUMP -config ESP32_ENABLE_COREDUMP_TO_UART - bool "UART" - select ESP32_ENABLE_COREDUMP -config ESP32_ENABLE_COREDUMP_TO_NONE - bool "None" -endchoice - -config ESP32_ENABLE_COREDUMP - bool - default F - help - Enables/disable core dump module. - -config ESP32_CORE_DUMP_MAX_TASKS_NUM - int "Maximum number of tasks" - depends on ESP32_ENABLE_COREDUMP - default 64 - help - Maximum number of tasks snapshots in core dump. - -config ESP32_CORE_DUMP_UART_DELAY - int "Delay before print to UART" - depends on ESP32_ENABLE_COREDUMP_TO_UART - default 0 - help - Config delay (in ms) before printing core dump to UART. - Delay can be interrupted by pressing Enter key. - -endmenu - -choice NUMBER_OF_UNIVERSAL_MAC_ADDRESS - bool "Number of universally administered (by IEEE) MAC address" - default FOUR_UNIVERSAL_MAC_ADDRESS - help - Configure the number of universally administered (by IEEE) MAC addresses. - During initialisation, MAC addresses for each network interface are generated or derived from a - single base MAC address. - If the number of universal MAC addresses is four, all four interfaces (WiFi station, WiFi softap, - Bluetooth and Ethernet) receive a universally administered MAC address. These are generated - sequentially by adding 0, 1, 2 and 3 (respectively) to the final octet of the base MAC address. - If the number of universal MAC addresses is two, only two interfaces (WiFi station and Bluetooth) - receive a universally administered MAC address. These are generated sequentially by adding 0 - and 1 (respectively) to the base MAC address. The remaining two interfaces (WiFi softap and Ethernet) - receive local MAC addresses. These are derived from the universal WiFi station and Bluetooth MAC - addresses, respectively. - When using the default (Espressif-assigned) base MAC address, either setting can be used. When using - a custom universal MAC address range, the correct setting will depend on the allocation of MAC - addresses in this range (either 2 or 4 per device.) - -config TWO_UNIVERSAL_MAC_ADDRESS - bool "Two" -config FOUR_UNIVERSAL_MAC_ADDRESS - bool "Four" -endchoice - -config NUMBER_OF_UNIVERSAL_MAC_ADDRESS - int - default 2 if TWO_UNIVERSAL_MAC_ADDRESS - default 4 if FOUR_UNIVERSAL_MAC_ADDRESS - -config SYSTEM_EVENT_QUEUE_SIZE - int "System event queue size" - default 32 - help - Config system event queue size in different application. - -config SYSTEM_EVENT_TASK_STACK_SIZE - int "Event loop task stack size" - default 2304 - help - Config system event task stack size in different application. - -config MAIN_TASK_STACK_SIZE - int "Main task stack size" - default 3584 - help - Configure the "main task" stack size. This is the stack of the task - which calls app_main(). If app_main() returns then this task is deleted - and its stack memory is freed. - -config IPC_TASK_STACK_SIZE - int "Inter-Processor Call (IPC) task stack size" - default 1024 - range 512 65536 if !ESP32_APPTRACE_ENABLE - range 2048 65536 if ESP32_APPTRACE_ENABLE - help - Configure the IPC tasks stack size. One IPC task runs on each core - (in dual core mode), and allows for cross-core function calls. - - See IPC documentation for more details. - - The default stack size should be enough for most common use cases. - It can be shrunk if you are sure that you do not use any custom - IPC functionality. - -config TIMER_TASK_STACK_SIZE - int "High-resolution timer task stack size" - default 3584 - range 2048 65536 - help - Configure the stack size of esp_timer/ets_timer task. This task is used - to dispatch callbacks of timers created using ets_timer and esp_timer - APIs. If you are seing stack overflow errors in timer task, increase - this value. - - Note that this is not the same as FreeRTOS timer task. To configure - FreeRTOS timer task size, see "FreeRTOS timer task stack size" option - in "FreeRTOS" menu. - -choice NEWLIB_STDOUT_LINE_ENDING - prompt "Line ending for UART output" - default NEWLIB_STDOUT_LINE_ENDING_CRLF - help - This option allows configuring the desired line endings sent to UART - when a newline ('\n', LF) appears on stdout. - Three options are possible: - - CRLF: whenever LF is encountered, prepend it with CR - - LF: no modification is applied, stdout is sent as is - - CR: each occurence of LF is replaced with CR - - This option doesn't affect behavior of the UART driver (drivers/uart.h). - -config NEWLIB_STDOUT_LINE_ENDING_CRLF - bool "CRLF" -config NEWLIB_STDOUT_LINE_ENDING_LF - bool "LF" -config NEWLIB_STDOUT_LINE_ENDING_CR - bool "CR" -endchoice - -choice NEWLIB_STDIN_LINE_ENDING - prompt "Line ending for UART input" - default NEWLIB_STDIN_LINE_ENDING_CR - help - This option allows configuring which input sequence on UART produces - a newline ('\n', LF) on stdin. - Three options are possible: - - CRLF: CRLF is converted to LF - - LF: no modification is applied, input is sent to stdin as is - - CR: each occurence of CR is replaced with LF - - This option doesn't affect behavior of the UART driver (drivers/uart.h). - -config NEWLIB_STDIN_LINE_ENDING_CRLF - bool "CRLF" -config NEWLIB_STDIN_LINE_ENDING_LF - bool "LF" -config NEWLIB_STDIN_LINE_ENDING_CR - bool "CR" -endchoice - -config NEWLIB_NANO_FORMAT - bool "Enable 'nano' formatting options for printf/scanf family" - default n - help - ESP32 ROM contains parts of newlib C library, including printf/scanf family - of functions. These functions have been compiled with so-called "nano" - formatting option. This option doesn't support 64-bit integer formats and C99 - features, such as positional arguments. - - For more details about "nano" formatting option, please see newlib readme file, - search for '--enable-newlib-nano-formatted-io': - https://sourceware.org/newlib/README - - If this option is enabled, build system will use functions available in - ROM, reducing the application binary size. Functions available in ROM run - faster than functions which run from flash. Functions available in ROM can - also run when flash instruction cache is disabled. - - If you need 64-bit integer formatting support or C99 features, keep this - option disabled. - -choice CONSOLE_UART - prompt "UART for console output" - default CONSOLE_UART_DEFAULT - help - Select whether to use UART for console output (through stdout and stderr). - - - Default is to use UART0 on pins GPIO1(TX) and GPIO3(RX). - - If "Custom" is selected, UART0 or UART1 can be chosen, - and any pins can be selected. - - If "None" is selected, there will be no console output on any UART, except - for initial output from ROM bootloader. This output can be further suppressed by - bootstrapping GPIO13 pin to low logic level. - -config CONSOLE_UART_DEFAULT - bool "Default: UART0, TX=GPIO1, RX=GPIO3" -config CONSOLE_UART_CUSTOM - bool "Custom" -config CONSOLE_UART_NONE - bool "None" -endchoice - -choice CONSOLE_UART_NUM - prompt "UART peripheral to use for console output (0-1)" - depends on CONSOLE_UART_CUSTOM - default CONSOLE_UART_CUSTOM_NUM_0 - help - Due of a ROM bug, UART2 is not supported for console output - via ets_printf. - -config CONSOLE_UART_CUSTOM_NUM_0 - bool "UART0" -config CONSOLE_UART_CUSTOM_NUM_1 - bool "UART1" -endchoice - -config CONSOLE_UART_NUM - int - default 0 if CONSOLE_UART_DEFAULT || CONSOLE_UART_NONE - default 0 if CONSOLE_UART_CUSTOM_NUM_0 - default 1 if CONSOLE_UART_CUSTOM_NUM_1 - -config CONSOLE_UART_TX_GPIO - int "UART TX on GPIO#" - depends on CONSOLE_UART_CUSTOM - range 0 33 - default 19 - -config CONSOLE_UART_RX_GPIO - int "UART RX on GPIO#" - depends on CONSOLE_UART_CUSTOM - range 0 39 - default 21 - -config CONSOLE_UART_BAUDRATE - int "UART console baud rate" - depends on !CONSOLE_UART_NONE - default 115200 - range 1200 4000000 - -config ULP_COPROC_ENABLED - bool "Enable Ultra Low Power (ULP) Coprocessor" - default "n" - help - Set to 'y' if you plan to load a firmware for the coprocessor. - - If this option is enabled, further coprocessor configuration will appear in the Components menu. - -config ULP_COPROC_RESERVE_MEM - int - prompt "RTC slow memory reserved for coprocessor" if ULP_COPROC_ENABLED - default 512 if ULP_COPROC_ENABLED - range 32 8192 if ULP_COPROC_ENABLED - default 0 if !ULP_COPROC_ENABLED - range 0 0 if !ULP_COPROC_ENABLED - help - Bytes of memory to reserve for ULP coprocessor firmware & data. - - Data is reserved at the beginning of RTC slow memory. - -choice ESP32_PANIC - prompt "Panic handler behaviour" - default ESP32_PANIC_PRINT_REBOOT - help - If FreeRTOS detects unexpected behaviour or an unhandled exception, the panic handler is - invoked. Configure the panic handlers action here. - -config ESP32_PANIC_PRINT_HALT - bool "Print registers and halt" - help - Outputs the relevant registers over the serial port and halt the - processor. Needs a manual reset to restart. - -config ESP32_PANIC_PRINT_REBOOT - bool "Print registers and reboot" - help - Outputs the relevant registers over the serial port and immediately - reset the processor. - -config ESP32_PANIC_SILENT_REBOOT - bool "Silent reboot" - help - Just resets the processor without outputting anything - -config ESP32_PANIC_GDBSTUB - bool "Invoke GDBStub" - help - Invoke gdbstub on the serial port, allowing for gdb to attach to it to do a postmortem - of the crash. -endchoice - -config ESP32_DEBUG_OCDAWARE - bool "Make exception and panic handlers JTAG/OCD aware" - default y - help - The FreeRTOS panic and unhandled exception handers can detect a JTAG OCD debugger and - instead of panicking, have the debugger stop on the offending instruction. - -config ESP32_DEBUG_STUBS_ENABLE - bool "OpenOCD debug stubs" - default OPTIMIZATION_LEVEL_DEBUG - depends on !ESP32_TRAX - help - Debug stubs are used by OpenOCD to execute pre-compiled onboard code which does some useful debugging, - e.g. GCOV data dump. - -config INT_WDT - bool "Interrupt watchdog" - default y - help - This watchdog timer can detect if the FreeRTOS tick interrupt has not been called for a certain time, - either because a task turned off interrupts and did not turn them on for a long time, or because an - interrupt handler did not return. It will try to invoke the panic handler first and failing that - reset the SoC. - -config INT_WDT_TIMEOUT_MS - int "Interrupt watchdog timeout (ms)" - depends on INT_WDT - default 300 if !SPIRAM_SUPPORT - default 800 if SPIRAM_SUPPORT - range 10 10000 - help - The timeout of the watchdog, in miliseconds. Make this higher than the FreeRTOS tick rate. - -config INT_WDT_CHECK_CPU1 - bool "Also watch CPU1 tick interrupt" - depends on INT_WDT && !FREERTOS_UNICORE - default y - help - Also detect if interrupts on CPU 1 are disabled for too long. - -config TASK_WDT - bool "Initialize Task Watchdog Timer on startup" - default y - help - The Task Watchdog Timer can be used to make sure individual tasks are still - running. Enabling this option will cause the Task Watchdog Timer to be - initialized automatically at startup. The Task Watchdog timer can be - initialized after startup as well (see Task Watchdog Timer API Reference) - -config TASK_WDT_PANIC - bool "Invoke panic handler on Task Watchdog timeout" - depends on TASK_WDT - default n - help - If this option is enabled, the Task Watchdog Timer will be configured to - trigger the panic handler when it times out. This can also be configured - at run time (see Task Watchdog Timer API Reference) - -config TASK_WDT_TIMEOUT_S - int "Task Watchdog timeout period (seconds)" - depends on TASK_WDT - range 1 60 - default 5 - help - Timeout period configuration for the Task Watchdog Timer in seconds. - This is also configurable at run time (see Task Watchdog Timer API Reference) - -config TASK_WDT_CHECK_IDLE_TASK_CPU0 - bool "Watch CPU0 Idle Task" - depends on TASK_WDT - default y - help - If this option is enabled, the Task Watchdog Timer will watch the CPU0 - Idle Task. Having the Task Watchdog watch the Idle Task allows for detection - of CPU starvation as the Idle Task not being called is usually a symptom of - CPU starvation. Starvation of the Idle Task is detrimental as FreeRTOS household - tasks depend on the Idle Task getting some runtime every now and then. - -config TASK_WDT_CHECK_IDLE_TASK_CPU1 - bool "Watch CPU1 Idle Task" - depends on TASK_WDT && !FREERTOS_UNICORE - default y - help - If this option is enabled, the Task Wtachdog Timer will wach the CPU1 - Idle Task. - -#The brownout detector code is disabled (by making it depend on a nonexisting symbol) because the current revision of ESP32 -#silicon has a bug in the brown-out detector, rendering it unusable for resetting the CPU. -config BROWNOUT_DET - bool "Hardware brownout detect & reset" - default y - help - The ESP32 has a built-in brownout detector which can detect if the voltage is lower than - a specific value. If this happens, it will reset the chip in order to prevent unintended - behaviour. - -choice BROWNOUT_DET_LVL_SEL - prompt "Brownout voltage level" - depends on BROWNOUT_DET - default BROWNOUT_DET_LVL_SEL_25 - help - The brownout detector will reset the chip when the supply voltage is approximately - below this level. Note that there may be some variation of brownout voltage level - between each ESP32 chip. - -#The voltage levels here are estimates, more work needs to be done to figure out the exact voltages -#of the brownout threshold levels. -config BROWNOUT_DET_LVL_SEL_0 - bool "2.43V +/- 0.05" -config BROWNOUT_DET_LVL_SEL_1 - bool "2.48V +/- 0.05" -config BROWNOUT_DET_LVL_SEL_2 - bool "2.58V +/- 0.05" -config BROWNOUT_DET_LVL_SEL_3 - bool "2.62V +/- 0.05" -config BROWNOUT_DET_LVL_SEL_4 - bool "2.67V +/- 0.05" -config BROWNOUT_DET_LVL_SEL_5 - bool "2.70V +/- 0.05" -config BROWNOUT_DET_LVL_SEL_6 - bool "2.77V +/- 0.05" -config BROWNOUT_DET_LVL_SEL_7 - bool "2.80V +/- 0.05" -endchoice - -config BROWNOUT_DET_LVL - int - default 0 if BROWNOUT_DET_LVL_SEL_0 - default 1 if BROWNOUT_DET_LVL_SEL_1 - default 2 if BROWNOUT_DET_LVL_SEL_2 - default 3 if BROWNOUT_DET_LVL_SEL_3 - default 4 if BROWNOUT_DET_LVL_SEL_4 - default 5 if BROWNOUT_DET_LVL_SEL_5 - default 6 if BROWNOUT_DET_LVL_SEL_6 - default 7 if BROWNOUT_DET_LVL_SEL_7 - - -#Reduce PHY TX power when brownout reset -config REDUCE_PHY_TX_POWER - bool "Reduce PHY TX power when brownout reset" - depends on BROWNOUT_DET - default y - help - When brownout reset occurs, reduce PHY TX power to keep the code running - -# Note about the use of "FRC1" name: currently FRC1 timer is not used for -# high resolution timekeeping anymore. Instead the esp_timer API, implemented -# using FRC2 timer, is used. -# FRC1 name in the option name is kept for compatibility. -choice ESP32_TIME_SYSCALL - prompt "Timers used for gettimeofday function" - default ESP32_TIME_SYSCALL_USE_RTC_FRC1 - help - This setting defines which hardware timers are used to - implement 'gettimeofday' and 'time' functions in C library. - - - If both high-resolution and RTC timers are used, timekeeping will - continue in deep sleep. Time will be reported at 1 microsecond - resolution. This is the default, and the recommended option. - - If only high-resolution timer is used, gettimeofday will - provide time at microsecond resolution. - Time will not be preserved when going into deep sleep mode. - - If only RTC timer is used, timekeeping will continue in - deep sleep, but time will be measured at 6.(6) microsecond - resolution. Also the gettimeofday function itself may take - longer to run. - - If no timers are used, gettimeofday and time functions - return -1 and set errno to ENOSYS. - - When RTC is used for timekeeping, two RTC_STORE registers are - used to keep time in deep sleep mode. - -config ESP32_TIME_SYSCALL_USE_RTC_FRC1 - bool "RTC and high-resolution timer" -config ESP32_TIME_SYSCALL_USE_RTC - bool "RTC" -config ESP32_TIME_SYSCALL_USE_FRC1 - bool "High-resolution timer" -config ESP32_TIME_SYSCALL_USE_NONE - bool "None" -endchoice - -choice ESP32_RTC_CLOCK_SOURCE - prompt "RTC clock source" - default ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC - help - Choose which clock is used as RTC clock source. - - - "Internal 150kHz oscillator" option provides lowest deep sleep current - consumption, and does not require extra external components. However - frequency stability with respect to temperature is poor, so time may - drift in deep/light sleep modes. - - "External 32kHz crystal" provides better frequency stability, at the - expense of slightly higher (1uA) deep sleep current consumption. - - "External 32kHz oscillator" allows using 32kHz clock generated by an - external circuit. In this case, external clock signal must be connected - to 32K_XP pin. Amplitude should be <1.2V in case of sine wave signal, - and <1V in case of square wave signal. Common mode voltage should be - 0.1 < Vcm < 0.5Vamp, where Vamp is the signal amplitude. - Additionally, 1nF capacitor must be connected between 32K_XN pin and - ground. 32K_XN pin can not be used as a GPIO in this case. - - "Internal 8.5MHz oscillator divided by 256" option results in higher - deep sleep current (by 5uA) but has better frequency stability than - the internal 150kHz oscillator. It does not require external components. - -config ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC - bool "Internal 150kHz RC oscillator" -config ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL - bool "External 32kHz crystal" -config ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC - bool "External 32kHz oscillator at 32K_XP pin" -config ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 - bool "Internal 8.5MHz oscillator, divided by 256 (~33kHz)" -endchoice - -config ESP32_RTC_CLK_CAL_CYCLES - int "Number of cycles for RTC_SLOW_CLK calibration" - default 3000 if ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL - default 1024 if ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC - range 0 27000 if ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL || ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC || ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 - range 0 32766 if ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC - help - When the startup code initializes RTC_SLOW_CLK, it can perform - calibration by comparing the RTC_SLOW_CLK frequency with main XTAL - frequency. This option sets the number of RTC_SLOW_CLK cycles measured - by the calibration routine. Higher numbers increase calibration - precision, which may be important for applications which spend a lot of - time in deep sleep. Lower numbers reduce startup time. - - When this option is set to 0, clock calibration will not be performed at - startup, and approximate clock frequencies will be assumed: - - - 150000 Hz if internal RC oscillator is used as clock source. For this use value 1024. - - 32768 Hz if the 32k crystal oscillator is used. For this use value 3000 or more. - In case more value will help improve the definition of the launch of the crystal. - If the crystal could not start, it will be switched to internal RC. - -config ESP32_RTC_XTAL_BOOTSTRAP_CYCLES - int "Bootstrap cycles for external 32kHz crystal" - depends on ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL - default 5 - range 0 32768 - help - To reduce the startup time of an external RTC crystal, - we bootstrap it with a 32kHz square wave for a fixed number of cycles. - Setting 0 will disable bootstrapping (if disabled, the crystal may take - longer to start up or fail to oscillate under some conditions). - - If this value is too high, a faulty crystal may initially start and then fail. - If this value is too low, an otherwise good crystal may not start. - - To accurately determine if the crystal has started, - set a larger "Number of cycles for RTC_SLOW_CLK calibration" (about 3000). - -config ESP32_DEEP_SLEEP_WAKEUP_DELAY - int "Extra delay in deep sleep wake stub (in us)" - default 2000 - range 0 5000 - help - When ESP32 exits deep sleep, the CPU and the flash chip are powered on - at the same time. CPU will run deep sleep stub first, and then - proceed to load code from flash. Some flash chips need sufficient - time to pass between power on and first read operation. By default, - without any extra delay, this time is approximately 900us, although - some flash chip types need more than that. - - By default extra delay is set to 2000us. When optimizing startup time - for applications which require it, this value may be reduced. - - If you are seeing "flash read err, 1000" message printed to the - console after deep sleep reset, try increasing this value. - -choice ESP32_XTAL_FREQ_SEL - prompt "Main XTAL frequency" - default ESP32_XTAL_FREQ_40 - help - ESP32 currently supports the following XTAL frequencies: - - - 26 MHz - - 40 MHz - - Startup code can automatically estimate XTAL frequency. This feature - uses the internal 8MHz oscillator as a reference. Because the internal - oscillator frequency is temperature dependent, it is not recommended - to use automatic XTAL frequency detection in applications which need - to work at high ambient temperatures and use high-temperature - qualified chips and modules. -config ESP32_XTAL_FREQ_40 - bool "40 MHz" -config ESP32_XTAL_FREQ_26 - bool "26 MHz" -config ESP32_XTAL_FREQ_AUTO - bool "Autodetect" -endchoice - -# Keep these values in sync with rtc_xtal_freq_t enum in soc/rtc.h -config ESP32_XTAL_FREQ - int - default 0 if ESP32_XTAL_FREQ_AUTO - default 40 if ESP32_XTAL_FREQ_40 - default 26 if ESP32_XTAL_FREQ_26 - -config DISABLE_BASIC_ROM_CONSOLE - bool "Permanently disable BASIC ROM Console" - default n - help - If set, the first time the app boots it will disable the BASIC ROM Console - permanently (by burning an efuse). - - Otherwise, the BASIC ROM Console starts on reset if no valid bootloader is - read from the flash. - - (Enabling secure boot also disables the BASIC ROM Console by default.) - -config NO_BLOBS - bool "No Binary Blobs" - depends on !BT_ENABLED - default n - help - If enabled, this disables the linking of binary libraries in the application build. Note - that after enabling this Wi-Fi/Bluetooth will not work. - -config ESP_TIMER_PROFILING - bool "Enable esp_timer profiling features" - default n - help - If enabled, esp_timer_dump will dump information such as number of times - the timer was started, number of times the timer has triggered, and the - total time it took for the callback to run. - This option has some effect on timer performance and the amount of memory - used for timer storage, and should only be used for debugging/testing - purposes. - -config COMPATIBLE_PRE_V2_1_BOOTLOADERS - bool "App compatible with bootloaders before IDF v2.1" - default n - help - Bootloaders before IDF v2.1 did less initialisation of the - system clock. This setting needs to be enabled to build an app - which can be booted by these older bootloaders. - - If this setting is enabled, the app can be booted by any bootloader - from IDF v1.0 up to the current version. - - If this setting is disabled, the app can only be booted by bootloaders - from IDF v2.1 or newer. - - Enabling this setting adds approximately 1KB to the app's IRAM usage. - -config ESP_ERR_TO_NAME_LOOKUP - bool "Enable lookup of error code strings" - default "y" - help - Functions esp_err_to_name() and esp_err_to_name_r() return string - representations of error codes from a pre-generated lookup table. - This option can be used to turn off the use of the look-up table in - order to save memory but this comes at the price of sacrificing - distinguishable (meaningful) output string representations. - -config ESP32_RTCDATA_IN_FAST_MEM - bool "Place RTC_DATA_ATTR and RTC_RODATA_ATTR variables into RTC fast memory segment" - default n - depends on FREERTOS_UNICORE - help - This option allows to place .rtc_data and .rtc_rodata sections into - RTC fast memory segment to free the slow memory region for ULP programs. - This option depends on the CONFIG_FREERTOS_UNICORE option because RTC fast memory - can be accessed only by PRO_CPU core. + # Hidden option to support checking for this specific target in C code and Kconfig files + config IDF_TARGET_ESP32 + bool + default "y" if IDF_TARGET="esp32" + default "n" + + choice ESP32_DEFAULT_CPU_FREQ_MHZ + prompt "CPU frequency" + default ESP32_DEFAULT_CPU_FREQ_160 + help + CPU frequency to be set on application startup. + + config ESP32_DEFAULT_CPU_FREQ_80 + bool "80 MHz" + config ESP32_DEFAULT_CPU_FREQ_160 + bool "160 MHz" + config ESP32_DEFAULT_CPU_FREQ_240 + bool "240 MHz" + endchoice + + config ESP32_DEFAULT_CPU_FREQ_MHZ + int + default 80 if ESP32_DEFAULT_CPU_FREQ_80 + default 160 if ESP32_DEFAULT_CPU_FREQ_160 + default 240 if ESP32_DEFAULT_CPU_FREQ_240 + + config SPIRAM_SUPPORT + bool "Support for external, SPI-connected RAM" + default "n" + help + This enables support for an external SPI RAM chip, connected in parallel with the + main SPI flash chip. + + menu "SPI RAM config" + depends on SPIRAM_SUPPORT + + config SPIRAM_BOOT_INIT + bool "Initialize SPI RAM when booting the ESP32" + default "y" + help + If this is enabled, the SPI RAM will be enabled during initial boot. Unless you + have specific requirements, you'll want to leave this enabled so memory allocated + during boot-up can also be placed in SPI RAM. + + config SPIRAM_IGNORE_NOTFOUND + bool "Ignore PSRAM when not found" + default "n" + depends on SPIRAM_BOOT_INIT && !SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY + help + Normally, if psram initialization is enabled during compile time but not found at runtime, it + is seen as an error making the ESP32 panic. If this is enabled, the ESP32 will keep on + running but will not add the (non-existing) RAM to any allocator. + + choice SPIRAM_USE + prompt "SPI RAM access method" + default SPIRAM_USE_MALLOC + help + The SPI RAM can be accessed in multiple methods: by just having it available as an unmanaged + memory region in the ESP32 memory map, by integrating it in the ESP32s heap as 'special' memory + needing heap_caps_malloc to allocate, or by fully integrating it making malloc() also able to + return SPI RAM pointers. + + config SPIRAM_USE_MEMMAP + bool "Integrate RAM into ESP32 memory map" + config SPIRAM_USE_CAPS_ALLOC + bool "Make RAM allocatable using heap_caps_malloc(..., MALLOC_CAP_SPIRAM)" + config SPIRAM_USE_MALLOC + bool "Make RAM allocatable using malloc() as well" + select SUPPORT_STATIC_ALLOCATION + endchoice + + choice SPIRAM_TYPE + prompt "Type of SPI RAM chip in use" + default SPIRAM_TYPE_AUTO + + config SPIRAM_TYPE_AUTO + bool "Auto-detect" + + config SPIRAM_TYPE_ESPPSRAM32 + bool "ESP-PSRAM32 or IS25WP032" + + config SPIRAM_TYPE_ESPPSRAM64 + bool "ESP-PSRAM64 or LY68L6400" + + endchoice + + config SPIRAM_SIZE + int + default -1 if SPIRAM_TYPE_AUTO + default 4194304 if SPIRAM_TYPE_ESPPSRAM32 + default 8388608 if SPIRAM_TYPE_ESPPSRAM64 + default 0 + + choice SPIRAM_SPEED + prompt "Set RAM clock speed" + default SPIRAM_CACHE_SPEED_40M + help + Select the speed for the SPI RAM chip. + If SPI RAM is enabled, we only support three combinations of SPI speed mode we supported now: + + 1. Flash SPI running at 40Mhz and RAM SPI running at 40Mhz + 2. Flash SPI running at 80Mhz and RAM SPI running at 40Mhz + 3. Flash SPI running at 80Mhz and RAM SPI running at 80Mhz + + Note: If the third mode(80Mhz+80Mhz) is enabled for SPI RAM of type 32MBit, one of the HSPI/VSPI host + will be occupied by the system. Which SPI host to use can be selected by the config item + SPIRAM_OCCUPY_SPI_HOST. Application code should never touch HSPI/VSPI hardware in this case. The + option to select 80MHz will only be visible if the flash SPI speed is also 80MHz. + (ESPTOOLPY_FLASHFREQ_80M is true) + + config SPIRAM_SPEED_40M + bool "40MHz clock speed" + config SPIRAM_SPEED_80M + depends on ESPTOOLPY_FLASHFREQ_80M + bool "80MHz clock speed" + endchoice + + config SPIRAM_MEMTEST + bool "Run memory test on SPI RAM initialization" + default "y" + depends on SPIRAM_BOOT_INIT + help + Runs a rudimentary memory test on initialization. Aborts when memory test fails. Disable this for + slightly faster startop. + + config SPIRAM_CACHE_WORKAROUND + bool "Enable workaround for bug in SPI RAM cache for Rev1 ESP32s" + depends on SPIRAM_USE_MEMMAP || SPIRAM_USE_CAPS_ALLOC || SPIRAM_USE_MALLOC + default "y" + help + Revision 1 of the ESP32 has a bug that can cause a write to PSRAM not to take place in some situations + when the cache line needs to be fetched from external RAM and an interrupt occurs. This enables a + fix in the compiler that makes sure the specific code that is vulnerable to this will not be emitted. + + This will also not use any bits of newlib that are located in ROM, opting for a version that is + compiled with the workaround and located in flash instead. + + config SPIRAM_BANKSWITCH_ENABLE + bool "Enable bank switching for >4MiB external RAM" + default y + depends on SPIRAM_USE_MEMMAP || SPIRAM_USE_CAPS_ALLOC || SPIRAM_USE_MALLOC + help + The ESP32 only supports 4MiB of external RAM in its address space. The hardware does support larger + memories, but these have to be bank-switched in and out of this address space. Enabling this allows you + to reserve some MMU pages for this, which allows the use of the esp_himem api to manage these banks. + + #Note that this is limited to 62 banks, as esp_spiram_writeback_cache needs some kind of mapping of + #some banks below that mark to work. We cannot at this moment guarantee this to exist when himem is + #enabled. + config SPIRAM_BANKSWITCH_RESERVE + int "Amount of 32K pages to reserve for bank switching" + depends on SPIRAM_BANKSWITCH_ENABLE + default 8 + range 1 62 + help + Select the amount of banks reserved for bank switching. Note that the amount of RAM allocatable with + malloc/esp_heap_alloc_caps will decrease by 32K for each page reserved here. + + Note that this reservation is only actually done if your program actually uses the himem API. Without + any himem calls, the reservation is not done and the original amount of memory will be available + to malloc/esp_heap_alloc_caps. + + config SPIRAM_MALLOC_ALWAYSINTERNAL + int "Maximum malloc() size, in bytes, to always put in internal memory" + depends on SPIRAM_USE_MALLOC + default 16384 + range 0 131072 + help + If malloc() is capable of also allocating SPI-connected ram, its allocation strategy will prefer to + allocate chunks less than this size in internal memory, while allocations larger than this will be + done from external RAM. If allocation from the preferred region fails, an attempt is made to allocate + from the non-preferred region instead, so malloc() will not suddenly fail when either internal or + external memory is full. + + config WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST + bool "Try to allocate memories of WiFi and LWIP in SPIRAM firstly. If failed, allocate internal memory" + depends on SPIRAM_USE_CAPS_ALLOC || SPIRAM_USE_MALLOC + default "n" + help + Try to allocate memories of WiFi and LWIP in SPIRAM firstly. If failed, try to allocate internal + memory then. + + config SPIRAM_MALLOC_RESERVE_INTERNAL + int "Reserve this amount of bytes for data that specifically needs to be in DMA or internal memory" + depends on SPIRAM_USE_MALLOC + default 32768 + range 0 262144 + help + Because the external/internal RAM allocation strategy is not always perfect, it sometimes may happen + that the internal memory is entirely filled up. This causes allocations that are specifically done in + internal memory, for example the stack for new tasks or memory to service DMA or have memory that's + also available when SPI cache is down, to fail. This option reserves a pool specifically for requests + like that; the memory in this pool is not given out when a normal malloc() is called. + + Set this to 0 to disable this feature. + + Note that because FreeRTOS stacks are forced to internal memory, they will also use this memory pool; + be sure to keep this in mind when adjusting this value. + + Note also that the DMA reserved pool may not be one single contiguous memory region, depending on the + configured size and the static memory usage of the app. + + + config SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY + bool "Allow external memory as an argument to xTaskCreateStatic" + default n + depends on SPIRAM_USE_MALLOC + help + Because some bits of the ESP32 code environment cannot be recompiled with the cache workaround, + normally tasks cannot be safely run with their stack residing in external memory; for this reason + xTaskCreate and friends always allocate stack in internal memory and xTaskCreateStatic will check if + the memory passed to it is in internal memory. If you have a task that needs a large amount of stack + and does not call on ROM code in any way (no direct calls, but also no Bluetooth/WiFi), you can try to + disable this and use xTaskCreateStatic to create the tasks stack in external memory. + + config SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY + bool "Allow .bss segment placed in external memory" + default n + depends on SPIRAM_SUPPORT + help + If enabled the option,and add EXT_RAM_ATTR defined your variable,then your variable will be placed in + PSRAM instead of internal memory, and placed most of variables of lwip,net802.11,pp,bluedroid library + to external memory defaultly. + + choice SPIRAM_OCCUPY_SPI_HOST + prompt "SPI host to use for 32MBit PSRAM" + default SPIRAM_OCCUPY_VSPI_HOST + depends on SPIRAM_SPEED_80M + help + When both flash and PSRAM is working under 80MHz, and the PSRAM is of type 32MBit, one of the HSPI/VSPI + host will be used to output the clock. Select which one to use here. + + config SPIRAM_OCCUPY_HSPI_HOST + bool "HSPI host (SPI2)" + config SPIRAM_OCCUPY_VSPI_HOST + bool "VSPI host (SPI3)" + endchoice + + config PICO_PSRAM_CS_IO + int "PSRAM CS IO for ESP32-PICO chip" + depends on SPIRAM_SUPPORT + range 0 33 + default 10 + help + When ESP32-PICO chip connect a external psram, the clock IO and data IO is fixed, but the CS IO can be + any unused GPIO, user can config it based on hardware design. + + endmenu + + config MEMMAP_TRACEMEM + bool + default "n" + + config MEMMAP_TRACEMEM_TWOBANKS + bool + default "n" + + config ESP32_TRAX + bool "Use TRAX tracing feature" + default "n" + select MEMMAP_TRACEMEM + help + The ESP32 contains a feature which allows you to trace the execution path the processor + has taken through the program. This is stored in a chunk of 32K (16K for single-processor) + of memory that can't be used for general purposes anymore. Disable this if you do not know + what this is. + + config ESP32_TRAX_TWOBANKS + bool "Reserve memory for tracing both pro as well as app cpu execution" + default "n" + depends on ESP32_TRAX && !FREERTOS_UNICORE + select MEMMAP_TRACEMEM_TWOBANKS + help + The ESP32 contains a feature which allows you to trace the execution path the processor + has taken through the program. This is stored in a chunk of 32K (16K for single-processor) + of memory that can't be used for general purposes anymore. Disable this if you do not know + what this is. + + # Memory to reverse for trace, used in linker script + config TRACEMEM_RESERVE_DRAM + hex + default 0x8000 if MEMMAP_TRACEMEM && MEMMAP_TRACEMEM_TWOBANKS + default 0x4000 if MEMMAP_TRACEMEM && !MEMMAP_TRACEMEM_TWOBANKS + default 0x0 + + menu "Core dump" + + choice ESP32_COREDUMP_TO_FLASH_OR_UART + prompt "Data destination" + default ESP32_ENABLE_COREDUMP_TO_NONE + help + Select place to store core dump: flash, uart or none (to disable core dumps generation). + + If core dump is configured to be stored in flash and custom partition table is used add + corresponding entry to your CSV. For examples, please see predefined partition table CSV descriptions + in the components/partition_table directory. + + config ESP32_ENABLE_COREDUMP_TO_FLASH + bool "Flash" + select ESP32_ENABLE_COREDUMP + config ESP32_ENABLE_COREDUMP_TO_UART + bool "UART" + select ESP32_ENABLE_COREDUMP + config ESP32_ENABLE_COREDUMP_TO_NONE + bool "None" + endchoice + + config ESP32_ENABLE_COREDUMP + bool + default F + help + Enables/disable core dump module. + + config ESP32_CORE_DUMP_MAX_TASKS_NUM + int "Maximum number of tasks" + depends on ESP32_ENABLE_COREDUMP + default 64 + help + Maximum number of tasks snapshots in core dump. + + config ESP32_CORE_DUMP_UART_DELAY + int "Delay before print to UART" + depends on ESP32_ENABLE_COREDUMP_TO_UART + default 0 + help + Config delay (in ms) before printing core dump to UART. + Delay can be interrupted by pressing Enter key. + + endmenu + + choice NUMBER_OF_UNIVERSAL_MAC_ADDRESS + bool "Number of universally administered (by IEEE) MAC address" + default FOUR_UNIVERSAL_MAC_ADDRESS + help + Configure the number of universally administered (by IEEE) MAC addresses. + During initialisation, MAC addresses for each network interface are generated or derived from a + single base MAC address. + If the number of universal MAC addresses is four, all four interfaces (WiFi station, WiFi softap, + Bluetooth and Ethernet) receive a universally administered MAC address. These are generated + sequentially by adding 0, 1, 2 and 3 (respectively) to the final octet of the base MAC address. + If the number of universal MAC addresses is two, only two interfaces (WiFi station and Bluetooth) + receive a universally administered MAC address. These are generated sequentially by adding 0 + and 1 (respectively) to the base MAC address. The remaining two interfaces (WiFi softap and Ethernet) + receive local MAC addresses. These are derived from the universal WiFi station and Bluetooth MAC + addresses, respectively. + When using the default (Espressif-assigned) base MAC address, either setting can be used. When using + a custom universal MAC address range, the correct setting will depend on the allocation of MAC + addresses in this range (either 2 or 4 per device.) + + config TWO_UNIVERSAL_MAC_ADDRESS + bool "Two" + config FOUR_UNIVERSAL_MAC_ADDRESS + bool "Four" + endchoice + + config NUMBER_OF_UNIVERSAL_MAC_ADDRESS + int + default 2 if TWO_UNIVERSAL_MAC_ADDRESS + default 4 if FOUR_UNIVERSAL_MAC_ADDRESS + + config SYSTEM_EVENT_QUEUE_SIZE + int "System event queue size" + default 32 + help + Config system event queue size in different application. + + config SYSTEM_EVENT_TASK_STACK_SIZE + int "Event loop task stack size" + default 2304 + help + Config system event task stack size in different application. + + config MAIN_TASK_STACK_SIZE + int "Main task stack size" + default 3584 + help + Configure the "main task" stack size. This is the stack of the task + which calls app_main(). If app_main() returns then this task is deleted + and its stack memory is freed. + + config IPC_TASK_STACK_SIZE + int "Inter-Processor Call (IPC) task stack size" + default 1024 + range 512 65536 if !ESP32_APPTRACE_ENABLE + range 2048 65536 if ESP32_APPTRACE_ENABLE + help + Configure the IPC tasks stack size. One IPC task runs on each core + (in dual core mode), and allows for cross-core function calls. + + See IPC documentation for more details. + + The default stack size should be enough for most common use cases. + It can be shrunk if you are sure that you do not use any custom + IPC functionality. + + config TIMER_TASK_STACK_SIZE + int "High-resolution timer task stack size" + default 3584 + range 2048 65536 + help + Configure the stack size of esp_timer/ets_timer task. This task is used + to dispatch callbacks of timers created using ets_timer and esp_timer + APIs. If you are seing stack overflow errors in timer task, increase + this value. + + Note that this is not the same as FreeRTOS timer task. To configure + FreeRTOS timer task size, see "FreeRTOS timer task stack size" option + in "FreeRTOS" menu. + + choice NEWLIB_STDOUT_LINE_ENDING + prompt "Line ending for UART output" + default NEWLIB_STDOUT_LINE_ENDING_CRLF + help + This option allows configuring the desired line endings sent to UART + when a newline ('\n', LF) appears on stdout. + Three options are possible: + + CRLF: whenever LF is encountered, prepend it with CR + + LF: no modification is applied, stdout is sent as is + + CR: each occurence of LF is replaced with CR + + This option doesn't affect behavior of the UART driver (drivers/uart.h). + + config NEWLIB_STDOUT_LINE_ENDING_CRLF + bool "CRLF" + config NEWLIB_STDOUT_LINE_ENDING_LF + bool "LF" + config NEWLIB_STDOUT_LINE_ENDING_CR + bool "CR" + endchoice + + choice NEWLIB_STDIN_LINE_ENDING + prompt "Line ending for UART input" + default NEWLIB_STDIN_LINE_ENDING_CR + help + This option allows configuring which input sequence on UART produces + a newline ('\n', LF) on stdin. + Three options are possible: + + CRLF: CRLF is converted to LF + + LF: no modification is applied, input is sent to stdin as is + + CR: each occurence of CR is replaced with LF + + This option doesn't affect behavior of the UART driver (drivers/uart.h). + + config NEWLIB_STDIN_LINE_ENDING_CRLF + bool "CRLF" + config NEWLIB_STDIN_LINE_ENDING_LF + bool "LF" + config NEWLIB_STDIN_LINE_ENDING_CR + bool "CR" + endchoice + + config NEWLIB_NANO_FORMAT + bool "Enable 'nano' formatting options for printf/scanf family" + default n + help + ESP32 ROM contains parts of newlib C library, including printf/scanf family + of functions. These functions have been compiled with so-called "nano" + formatting option. This option doesn't support 64-bit integer formats and C99 + features, such as positional arguments. + + For more details about "nano" formatting option, please see newlib readme file, + search for '--enable-newlib-nano-formatted-io': + https://sourceware.org/newlib/README + + If this option is enabled, build system will use functions available in + ROM, reducing the application binary size. Functions available in ROM run + faster than functions which run from flash. Functions available in ROM can + also run when flash instruction cache is disabled. + + If you need 64-bit integer formatting support or C99 features, keep this + option disabled. + + choice CONSOLE_UART + prompt "UART for console output" + default CONSOLE_UART_DEFAULT + help + Select whether to use UART for console output (through stdout and stderr). + + - Default is to use UART0 on pins GPIO1(TX) and GPIO3(RX). + - If "Custom" is selected, UART0 or UART1 can be chosen, + and any pins can be selected. + - If "None" is selected, there will be no console output on any UART, except + for initial output from ROM bootloader. This output can be further suppressed by + bootstrapping GPIO13 pin to low logic level. + + config CONSOLE_UART_DEFAULT + bool "Default: UART0, TX=GPIO1, RX=GPIO3" + config CONSOLE_UART_CUSTOM + bool "Custom" + config CONSOLE_UART_NONE + bool "None" + endchoice + + choice CONSOLE_UART_NUM + prompt "UART peripheral to use for console output (0-1)" + depends on CONSOLE_UART_CUSTOM + default CONSOLE_UART_CUSTOM_NUM_0 + help + Due of a ROM bug, UART2 is not supported for console output + via ets_printf. + + config CONSOLE_UART_CUSTOM_NUM_0 + bool "UART0" + config CONSOLE_UART_CUSTOM_NUM_1 + bool "UART1" + endchoice + + config CONSOLE_UART_NUM + int + default 0 if CONSOLE_UART_DEFAULT || CONSOLE_UART_NONE + default 0 if CONSOLE_UART_CUSTOM_NUM_0 + default 1 if CONSOLE_UART_CUSTOM_NUM_1 + + config CONSOLE_UART_TX_GPIO + int "UART TX on GPIO#" + depends on CONSOLE_UART_CUSTOM + range 0 33 + default 19 + + config CONSOLE_UART_RX_GPIO + int "UART RX on GPIO#" + depends on CONSOLE_UART_CUSTOM + range 0 39 + default 21 + + config CONSOLE_UART_BAUDRATE + int "UART console baud rate" + depends on !CONSOLE_UART_NONE + default 115200 + range 1200 4000000 + + config ULP_COPROC_ENABLED + bool "Enable Ultra Low Power (ULP) Coprocessor" + default "n" + help + Set to 'y' if you plan to load a firmware for the coprocessor. + + If this option is enabled, further coprocessor configuration will appear in the Components menu. + + config ULP_COPROC_RESERVE_MEM + int + prompt "RTC slow memory reserved for coprocessor" if ULP_COPROC_ENABLED + default 512 if ULP_COPROC_ENABLED + range 32 8192 if ULP_COPROC_ENABLED + default 0 if !ULP_COPROC_ENABLED + range 0 0 if !ULP_COPROC_ENABLED + help + Bytes of memory to reserve for ULP coprocessor firmware & data. + + Data is reserved at the beginning of RTC slow memory. + + choice ESP32_PANIC + prompt "Panic handler behaviour" + default ESP32_PANIC_PRINT_REBOOT + help + If FreeRTOS detects unexpected behaviour or an unhandled exception, the panic handler is + invoked. Configure the panic handlers action here. + + config ESP32_PANIC_PRINT_HALT + bool "Print registers and halt" + help + Outputs the relevant registers over the serial port and halt the + processor. Needs a manual reset to restart. + + config ESP32_PANIC_PRINT_REBOOT + bool "Print registers and reboot" + help + Outputs the relevant registers over the serial port and immediately + reset the processor. + + config ESP32_PANIC_SILENT_REBOOT + bool "Silent reboot" + help + Just resets the processor without outputting anything + + config ESP32_PANIC_GDBSTUB + bool "Invoke GDBStub" + help + Invoke gdbstub on the serial port, allowing for gdb to attach to it to do a postmortem + of the crash. + endchoice + + config ESP32_DEBUG_OCDAWARE + bool "Make exception and panic handlers JTAG/OCD aware" + default y + help + The FreeRTOS panic and unhandled exception handers can detect a JTAG OCD debugger and + instead of panicking, have the debugger stop on the offending instruction. + + config ESP32_DEBUG_STUBS_ENABLE + bool "OpenOCD debug stubs" + default OPTIMIZATION_LEVEL_DEBUG + depends on !ESP32_TRAX + help + Debug stubs are used by OpenOCD to execute pre-compiled onboard code which does some useful debugging, + e.g. GCOV data dump. + + config INT_WDT + bool "Interrupt watchdog" + default y + help + This watchdog timer can detect if the FreeRTOS tick interrupt has not been called for a certain time, + either because a task turned off interrupts and did not turn them on for a long time, or because an + interrupt handler did not return. It will try to invoke the panic handler first and failing that + reset the SoC. + + config INT_WDT_TIMEOUT_MS + int "Interrupt watchdog timeout (ms)" + depends on INT_WDT + default 300 if !SPIRAM_SUPPORT + default 800 if SPIRAM_SUPPORT + range 10 10000 + help + The timeout of the watchdog, in miliseconds. Make this higher than the FreeRTOS tick rate. + + config INT_WDT_CHECK_CPU1 + bool "Also watch CPU1 tick interrupt" + depends on INT_WDT && !FREERTOS_UNICORE + default y + help + Also detect if interrupts on CPU 1 are disabled for too long. + + config TASK_WDT + bool "Initialize Task Watchdog Timer on startup" + default y + help + The Task Watchdog Timer can be used to make sure individual tasks are still + running. Enabling this option will cause the Task Watchdog Timer to be + initialized automatically at startup. The Task Watchdog timer can be + initialized after startup as well (see Task Watchdog Timer API Reference) + + config TASK_WDT_PANIC + bool "Invoke panic handler on Task Watchdog timeout" + depends on TASK_WDT + default n + help + If this option is enabled, the Task Watchdog Timer will be configured to + trigger the panic handler when it times out. This can also be configured + at run time (see Task Watchdog Timer API Reference) + + config TASK_WDT_TIMEOUT_S + int "Task Watchdog timeout period (seconds)" + depends on TASK_WDT + range 1 60 + default 5 + help + Timeout period configuration for the Task Watchdog Timer in seconds. + This is also configurable at run time (see Task Watchdog Timer API Reference) + + config TASK_WDT_CHECK_IDLE_TASK_CPU0 + bool "Watch CPU0 Idle Task" + depends on TASK_WDT + default y + help + If this option is enabled, the Task Watchdog Timer will watch the CPU0 + Idle Task. Having the Task Watchdog watch the Idle Task allows for detection + of CPU starvation as the Idle Task not being called is usually a symptom of + CPU starvation. Starvation of the Idle Task is detrimental as FreeRTOS household + tasks depend on the Idle Task getting some runtime every now and then. + + config TASK_WDT_CHECK_IDLE_TASK_CPU1 + bool "Watch CPU1 Idle Task" + depends on TASK_WDT && !FREERTOS_UNICORE + default y + help + If this option is enabled, the Task Wtachdog Timer will wach the CPU1 + Idle Task. + + config BROWNOUT_DET + #The brownout detector code is disabled (by making it depend on a nonexisting symbol) because the current + #revision of ESP32 silicon has a bug in the brown-out detector, rendering it unusable for resetting the CPU. + bool "Hardware brownout detect & reset" + default y + help + The ESP32 has a built-in brownout detector which can detect if the voltage is lower than + a specific value. If this happens, it will reset the chip in order to prevent unintended + behaviour. + + choice BROWNOUT_DET_LVL_SEL + prompt "Brownout voltage level" + depends on BROWNOUT_DET + default BROWNOUT_DET_LVL_SEL_25 + help + The brownout detector will reset the chip when the supply voltage is approximately + below this level. Note that there may be some variation of brownout voltage level + between each ESP32 chip. + + #The voltage levels here are estimates, more work needs to be done to figure out the exact voltages + #of the brownout threshold levels. + config BROWNOUT_DET_LVL_SEL_0 + bool "2.43V +/- 0.05" + config BROWNOUT_DET_LVL_SEL_1 + bool "2.48V +/- 0.05" + config BROWNOUT_DET_LVL_SEL_2 + bool "2.58V +/- 0.05" + config BROWNOUT_DET_LVL_SEL_3 + bool "2.62V +/- 0.05" + config BROWNOUT_DET_LVL_SEL_4 + bool "2.67V +/- 0.05" + config BROWNOUT_DET_LVL_SEL_5 + bool "2.70V +/- 0.05" + config BROWNOUT_DET_LVL_SEL_6 + bool "2.77V +/- 0.05" + config BROWNOUT_DET_LVL_SEL_7 + bool "2.80V +/- 0.05" + endchoice + + config BROWNOUT_DET_LVL + int + default 0 if BROWNOUT_DET_LVL_SEL_0 + default 1 if BROWNOUT_DET_LVL_SEL_1 + default 2 if BROWNOUT_DET_LVL_SEL_2 + default 3 if BROWNOUT_DET_LVL_SEL_3 + default 4 if BROWNOUT_DET_LVL_SEL_4 + default 5 if BROWNOUT_DET_LVL_SEL_5 + default 6 if BROWNOUT_DET_LVL_SEL_6 + default 7 if BROWNOUT_DET_LVL_SEL_7 + + + #Reduce PHY TX power when brownout reset + config REDUCE_PHY_TX_POWER + bool "Reduce PHY TX power when brownout reset" + depends on BROWNOUT_DET + default y + help + When brownout reset occurs, reduce PHY TX power to keep the code running + + # Note about the use of "FRC1" name: currently FRC1 timer is not used for + # high resolution timekeeping anymore. Instead the esp_timer API, implemented + # using FRC2 timer, is used. + # FRC1 name in the option name is kept for compatibility. + choice ESP32_TIME_SYSCALL + prompt "Timers used for gettimeofday function" + default ESP32_TIME_SYSCALL_USE_RTC_FRC1 + help + This setting defines which hardware timers are used to + implement 'gettimeofday' and 'time' functions in C library. + + - If both high-resolution and RTC timers are used, timekeeping will + continue in deep sleep. Time will be reported at 1 microsecond + resolution. This is the default, and the recommended option. + - If only high-resolution timer is used, gettimeofday will + provide time at microsecond resolution. + Time will not be preserved when going into deep sleep mode. + - If only RTC timer is used, timekeeping will continue in + deep sleep, but time will be measured at 6.(6) microsecond + resolution. Also the gettimeofday function itself may take + longer to run. + - If no timers are used, gettimeofday and time functions + return -1 and set errno to ENOSYS. + - When RTC is used for timekeeping, two RTC_STORE registers are + used to keep time in deep sleep mode. + + config ESP32_TIME_SYSCALL_USE_RTC_FRC1 + bool "RTC and high-resolution timer" + config ESP32_TIME_SYSCALL_USE_RTC + bool "RTC" + config ESP32_TIME_SYSCALL_USE_FRC1 + bool "High-resolution timer" + config ESP32_TIME_SYSCALL_USE_NONE + bool "None" + endchoice + + choice ESP32_RTC_CLOCK_SOURCE + prompt "RTC clock source" + default ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC + help + Choose which clock is used as RTC clock source. + + - "Internal 150kHz oscillator" option provides lowest deep sleep current + consumption, and does not require extra external components. However + frequency stability with respect to temperature is poor, so time may + drift in deep/light sleep modes. + - "External 32kHz crystal" provides better frequency stability, at the + expense of slightly higher (1uA) deep sleep current consumption. + - "External 32kHz oscillator" allows using 32kHz clock generated by an + external circuit. In this case, external clock signal must be connected + to 32K_XP pin. Amplitude should be <1.2V in case of sine wave signal, + and <1V in case of square wave signal. Common mode voltage should be + 0.1 < Vcm < 0.5Vamp, where Vamp is the signal amplitude. + Additionally, 1nF capacitor must be connected between 32K_XN pin and + ground. 32K_XN pin can not be used as a GPIO in this case. + - "Internal 8.5MHz oscillator divided by 256" option results in higher + deep sleep current (by 5uA) but has better frequency stability than + the internal 150kHz oscillator. It does not require external components. + + config ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC + bool "Internal 150kHz RC oscillator" + config ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL + bool "External 32kHz crystal" + config ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC + bool "External 32kHz oscillator at 32K_XP pin" + config ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 + bool "Internal 8.5MHz oscillator, divided by 256 (~33kHz)" + endchoice + + config ESP32_RTC_CLK_CAL_CYCLES + int "Number of cycles for RTC_SLOW_CLK calibration" + default 3000 if ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL + default 1024 if ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC + range 0 27000 if ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL || ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC \ + || ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 + range 0 32766 if ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC + help + When the startup code initializes RTC_SLOW_CLK, it can perform + calibration by comparing the RTC_SLOW_CLK frequency with main XTAL + frequency. This option sets the number of RTC_SLOW_CLK cycles measured + by the calibration routine. Higher numbers increase calibration + precision, which may be important for applications which spend a lot of + time in deep sleep. Lower numbers reduce startup time. + + When this option is set to 0, clock calibration will not be performed at + startup, and approximate clock frequencies will be assumed: + + - 150000 Hz if internal RC oscillator is used as clock source. For this use value 1024. + - 32768 Hz if the 32k crystal oscillator is used. For this use value 3000 or more. + In case more value will help improve the definition of the launch of the crystal. + If the crystal could not start, it will be switched to internal RC. + + config ESP32_RTC_XTAL_BOOTSTRAP_CYCLES + int "Bootstrap cycles for external 32kHz crystal" + depends on ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL + default 5 + range 0 32768 + help + To reduce the startup time of an external RTC crystal, + we bootstrap it with a 32kHz square wave for a fixed number of cycles. + Setting 0 will disable bootstrapping (if disabled, the crystal may take + longer to start up or fail to oscillate under some conditions). + + If this value is too high, a faulty crystal may initially start and then fail. + If this value is too low, an otherwise good crystal may not start. + + To accurately determine if the crystal has started, + set a larger "Number of cycles for RTC_SLOW_CLK calibration" (about 3000). + + config ESP32_DEEP_SLEEP_WAKEUP_DELAY + int "Extra delay in deep sleep wake stub (in us)" + default 2000 + range 0 5000 + help + When ESP32 exits deep sleep, the CPU and the flash chip are powered on + at the same time. CPU will run deep sleep stub first, and then + proceed to load code from flash. Some flash chips need sufficient + time to pass between power on and first read operation. By default, + without any extra delay, this time is approximately 900us, although + some flash chip types need more than that. + + By default extra delay is set to 2000us. When optimizing startup time + for applications which require it, this value may be reduced. + + If you are seeing "flash read err, 1000" message printed to the + console after deep sleep reset, try increasing this value. + + choice ESP32_XTAL_FREQ_SEL + prompt "Main XTAL frequency" + default ESP32_XTAL_FREQ_40 + help + ESP32 currently supports the following XTAL frequencies: + + - 26 MHz + - 40 MHz + + Startup code can automatically estimate XTAL frequency. This feature + uses the internal 8MHz oscillator as a reference. Because the internal + oscillator frequency is temperature dependent, it is not recommended + to use automatic XTAL frequency detection in applications which need + to work at high ambient temperatures and use high-temperature + qualified chips and modules. + config ESP32_XTAL_FREQ_40 + bool "40 MHz" + config ESP32_XTAL_FREQ_26 + bool "26 MHz" + config ESP32_XTAL_FREQ_AUTO + bool "Autodetect" + endchoice + + # Keep these values in sync with rtc_xtal_freq_t enum in soc/rtc.h + config ESP32_XTAL_FREQ + int + default 0 if ESP32_XTAL_FREQ_AUTO + default 40 if ESP32_XTAL_FREQ_40 + default 26 if ESP32_XTAL_FREQ_26 + + config DISABLE_BASIC_ROM_CONSOLE + bool "Permanently disable BASIC ROM Console" + default n + help + If set, the first time the app boots it will disable the BASIC ROM Console + permanently (by burning an eFuse). + + Otherwise, the BASIC ROM Console starts on reset if no valid bootloader is + read from the flash. + + (Enabling secure boot also disables the BASIC ROM Console by default.) + + config NO_BLOBS + bool "No Binary Blobs" + depends on !BT_ENABLED + default n + help + If enabled, this disables the linking of binary libraries in the application build. Note + that after enabling this Wi-Fi/Bluetooth will not work. + + config ESP_TIMER_PROFILING + bool "Enable esp_timer profiling features" + default n + help + If enabled, esp_timer_dump will dump information such as number of times + the timer was started, number of times the timer has triggered, and the + total time it took for the callback to run. + This option has some effect on timer performance and the amount of memory + used for timer storage, and should only be used for debugging/testing + purposes. + + config COMPATIBLE_PRE_V2_1_BOOTLOADERS + bool "App compatible with bootloaders before IDF v2.1" + default n + help + Bootloaders before IDF v2.1 did less initialisation of the + system clock. This setting needs to be enabled to build an app + which can be booted by these older bootloaders. + + If this setting is enabled, the app can be booted by any bootloader + from IDF v1.0 up to the current version. + + If this setting is disabled, the app can only be booted by bootloaders + from IDF v2.1 or newer. + + Enabling this setting adds approximately 1KB to the app's IRAM usage. + + config ESP_ERR_TO_NAME_LOOKUP + bool "Enable lookup of error code strings" + default "y" + help + Functions esp_err_to_name() and esp_err_to_name_r() return string + representations of error codes from a pre-generated lookup table. + This option can be used to turn off the use of the look-up table in + order to save memory but this comes at the price of sacrificing + distinguishable (meaningful) output string representations. + + config ESP32_RTCDATA_IN_FAST_MEM + bool "Place RTC_DATA_ATTR and RTC_RODATA_ATTR variables into RTC fast memory segment" + default n + depends on FREERTOS_UNICORE + help + This option allows to place .rtc_data and .rtc_rodata sections into + RTC fast memory segment to free the slow memory region for ULP programs. + This option depends on the CONFIG_FREERTOS_UNICORE option because RTC fast memory + can be accessed only by PRO_CPU core. endmenu # ESP32-Specific menu Wi-Fi -config SW_COEXIST_ENABLE - bool "Software controls WiFi/Bluetooth coexistence" - depends on BT_ENABLED - default y - help - If enabled, WiFi & Bluetooth coexistence is controlled by software rather than hardware. - Recommended for heavy traffic scenarios. Both coexistence configuration options are - automatically managed, no user intervention is required. + config SW_COEXIST_ENABLE + bool "Software controls WiFi/Bluetooth coexistence" + depends on BT_ENABLED + default y + help + If enabled, WiFi & Bluetooth coexistence is controlled by software rather than hardware. + Recommended for heavy traffic scenarios. Both coexistence configuration options are + automatically managed, no user intervention is required. -choice SW_COEXIST_PREFERENCE - prompt "WiFi/Bluetooth coexistence performance preference" - depends on SW_COEXIST_ENABLE - default SW_COEXIST_PREFERENCE_BALANCE - help - Choose Bluetooth/WiFi/Balance for different preference. - If choose WiFi, it will make WiFi performance better. Such, keep WiFi Audio more fluent. - If choose Bluetooth, it will make Bluetooth performance better. Such, keep Bluetooth(A2DP) Audio more fluent. - If choose Balance, the performance of WiFi and bluetooth will be balance. It's default. Normally, just choose balance, the A2DP audio can play fluently, too. - Except config preference in menuconfig, you can also call esp_coex_preference_set() dynamically. + choice SW_COEXIST_PREFERENCE + prompt "WiFi/Bluetooth coexistence performance preference" + depends on SW_COEXIST_ENABLE + default SW_COEXIST_PREFERENCE_BALANCE + help + Choose Bluetooth/WiFi/Balance for different preference. + If choose WiFi, it will make WiFi performance better. Such, keep WiFi Audio more fluent. + If choose Bluetooth, it will make Bluetooth performance better. Such, keep Bluetooth(A2DP) Audio more + fluent. + If choose Balance, the performance of WiFi and bluetooth will be balance. It's default. Normally, just + choose balance, the A2DP audio can play fluently, too. + Except config preference in menuconfig, you can also call esp_coex_preference_set() dynamically. -config SW_COEXIST_PREFERENCE_WIFI - bool "WiFi" + config SW_COEXIST_PREFERENCE_WIFI + bool "WiFi" -config SW_COEXIST_PREFERENCE_BT - bool "Bluetooth(include BR/EDR and BLE)" + config SW_COEXIST_PREFERENCE_BT + bool "Bluetooth(include BR/EDR and BLE)" -config SW_COEXIST_PREFERENCE_BALANCE - bool "Balance" + config SW_COEXIST_PREFERENCE_BALANCE + bool "Balance" -endchoice + endchoice -config SW_COEXIST_PREFERENCE_VALUE - int - depends on SW_COEXIST_ENABLE - default 0 if SW_COEXIST_PREFERENCE_WIFI - default 1 if SW_COEXIST_PREFERENCE_BT - default 2 if SW_COEXIST_PREFERENCE_BALANCE + config SW_COEXIST_PREFERENCE_VALUE + int + depends on SW_COEXIST_ENABLE + default 0 if SW_COEXIST_PREFERENCE_WIFI + default 1 if SW_COEXIST_PREFERENCE_BT + default 2 if SW_COEXIST_PREFERENCE_BALANCE -config ESP32_WIFI_STATIC_RX_BUFFER_NUM - int "Max number of WiFi static RX buffers" - range 2 25 - default 10 - help - Set the number of WiFi static RX buffers. Each buffer takes approximately 1.6KB of RAM. - The static rx buffers are allocated when esp_wifi_init is called, they are not freed - until esp_wifi_deinit is called. + config ESP32_WIFI_STATIC_RX_BUFFER_NUM + int "Max number of WiFi static RX buffers" + range 2 25 + default 10 + help + Set the number of WiFi static RX buffers. Each buffer takes approximately 1.6KB of RAM. + The static rx buffers are allocated when esp_wifi_init is called, they are not freed + until esp_wifi_deinit is called. - WiFi hardware use these buffers to receive all 802.11 frames. - A higher number may allow higher throughput but increases memory use. + WiFi hardware use these buffers to receive all 802.11 frames. + A higher number may allow higher throughput but increases memory use. -config ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM - int "Max number of WiFi dynamic RX buffers" - range 0 128 - default 32 - help - Set the number of WiFi dynamic RX buffers, 0 means unlimited RX buffers will be allocated - (provided sufficient free RAM). The size of each dynamic RX buffer depends on the size of - the received data frame. + config ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM + int "Max number of WiFi dynamic RX buffers" + range 0 128 + default 32 + help + Set the number of WiFi dynamic RX buffers, 0 means unlimited RX buffers will be allocated + (provided sufficient free RAM). The size of each dynamic RX buffer depends on the size of + the received data frame. - For each received data frame, the WiFi driver makes a copy to an RX buffer and then delivers - it to the high layer TCP/IP stack. The dynamic RX buffer is freed after the higher layer has - successfully received the data frame. + For each received data frame, the WiFi driver makes a copy to an RX buffer and then delivers + it to the high layer TCP/IP stack. The dynamic RX buffer is freed after the higher layer has + successfully received the data frame. - For some applications, WiFi data frames may be received faster than the application can - process them. In these cases we may run out of memory if RX buffer number is unlimited (0). + For some applications, WiFi data frames may be received faster than the application can + process them. In these cases we may run out of memory if RX buffer number is unlimited (0). - If a dynamic RX buffer limit is set, it should be at least the number of static RX buffers. + If a dynamic RX buffer limit is set, it should be at least the number of static RX buffers. -choice ESP32_WIFI_TX_BUFFER - prompt "Type of WiFi TX buffers" - default ESP32_WIFI_DYNAMIC_TX_BUFFER - help - Select type of WiFi TX buffers: + choice ESP32_WIFI_TX_BUFFER + prompt "Type of WiFi TX buffers" + default ESP32_WIFI_DYNAMIC_TX_BUFFER + help + Select type of WiFi TX buffers: - If "Static" is selected, WiFi TX buffers are allocated when WiFi is initialized and released - when WiFi is de-initialized. The size of each static TX buffer is fixed to about 1.6KB. + If "Static" is selected, WiFi TX buffers are allocated when WiFi is initialized and released + when WiFi is de-initialized. The size of each static TX buffer is fixed to about 1.6KB. - If "Dynamic" is selected, each WiFi TX buffer is allocated as needed when a data frame is - delivered to the Wifi driver from the TCP/IP stack. The buffer is freed after the data frame - has been sent by the WiFi driver. The size of each dynamic TX buffer depends on the length - of each data frame sent by the TCP/IP layer. + If "Dynamic" is selected, each WiFi TX buffer is allocated as needed when a data frame is + delivered to the Wifi driver from the TCP/IP stack. The buffer is freed after the data frame + has been sent by the WiFi driver. The size of each dynamic TX buffer depends on the length + of each data frame sent by the TCP/IP layer. - If PSRAM is enabled, "Static" should be selected to guarantee enough WiFi TX buffers. - If PSRAM is disabled, "Dynamic" should be selected to improve the utilization of RAM. + If PSRAM is enabled, "Static" should be selected to guarantee enough WiFi TX buffers. + If PSRAM is disabled, "Dynamic" should be selected to improve the utilization of RAM. -config ESP32_WIFI_STATIC_TX_BUFFER - bool "Static" -config ESP32_WIFI_DYNAMIC_TX_BUFFER - bool "Dynamic" - depends on !SPIRAM_USE_MALLOC -endchoice + config ESP32_WIFI_STATIC_TX_BUFFER + bool "Static" + config ESP32_WIFI_DYNAMIC_TX_BUFFER + bool "Dynamic" + depends on !SPIRAM_USE_MALLOC + endchoice -config ESP32_WIFI_TX_BUFFER_TYPE - int - default 0 if ESP32_WIFI_STATIC_TX_BUFFER - default 1 if ESP32_WIFI_DYNAMIC_TX_BUFFER + config ESP32_WIFI_TX_BUFFER_TYPE + int + default 0 if ESP32_WIFI_STATIC_TX_BUFFER + default 1 if ESP32_WIFI_DYNAMIC_TX_BUFFER -config ESP32_WIFI_STATIC_TX_BUFFER_NUM - int "Max number of WiFi static TX buffers" - depends on ESP32_WIFI_STATIC_TX_BUFFER - range 6 64 - default 16 - help - Set the number of WiFi static TX buffers. Each buffer takes approximately 1.6KB of RAM. - The static RX buffers are allocated when esp_wifi_init() is called, they are not released - until esp_wifi_deinit() is called. + config ESP32_WIFI_STATIC_TX_BUFFER_NUM + int "Max number of WiFi static TX buffers" + depends on ESP32_WIFI_STATIC_TX_BUFFER + range 6 64 + default 16 + help + Set the number of WiFi static TX buffers. Each buffer takes approximately 1.6KB of RAM. + The static RX buffers are allocated when esp_wifi_init() is called, they are not released + until esp_wifi_deinit() is called. - For each transmitted data frame from the higher layer TCP/IP stack, the WiFi driver makes a - copy of it in a TX buffer. For some applications especially UDP applications, the upper - layer can deliver frames faster than WiFi layer can transmit. In these cases, we may run out - of TX buffers. + For each transmitted data frame from the higher layer TCP/IP stack, the WiFi driver makes a + copy of it in a TX buffer. For some applications especially UDP applications, the upper + layer can deliver frames faster than WiFi layer can transmit. In these cases, we may run out + of TX buffers. -config ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM - int "Max number of WiFi dynamic TX buffers" - depends on ESP32_WIFI_DYNAMIC_TX_BUFFER - range 16 128 - default 32 - help - Set the number of WiFi dynamic TX buffers. The size of each dynamic TX buffer is not fixed, - it depends on the size of each transmitted data frame. + config ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM + int "Max number of WiFi dynamic TX buffers" + depends on ESP32_WIFI_DYNAMIC_TX_BUFFER + range 16 128 + default 32 + help + Set the number of WiFi dynamic TX buffers. The size of each dynamic TX buffer is not fixed, + it depends on the size of each transmitted data frame. - For each transmitted frame from the higher layer TCP/IP stack, the WiFi driver makes a copy - of it in a TX buffer. For some applications, especially UDP applications, the upper layer - can deliver frames faster than WiFi layer can transmit. In these cases, we may run out of TX - buffers. + For each transmitted frame from the higher layer TCP/IP stack, the WiFi driver makes a copy + of it in a TX buffer. For some applications, especially UDP applications, the upper layer + can deliver frames faster than WiFi layer can transmit. In these cases, we may run out of TX + buffers. -config ESP32_WIFI_CSI_ENABLED - bool "WiFi CSI(Channel State Information)" - default n - help - Select this option to enable CSI(Channel State Information) feature. CSI takes about - CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM KB of RAM. If CSI is not used, it is better to disable - this feature in order to save memory. + config ESP32_WIFI_CSI_ENABLED + bool "WiFi CSI(Channel State Information)" + default n + help + Select this option to enable CSI(Channel State Information) feature. CSI takes about + CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM KB of RAM. If CSI is not used, it is better to disable + this feature in order to save memory. -config ESP32_WIFI_AMPDU_TX_ENABLED - bool "WiFi AMPDU TX" - default y - help - Select this option to enable AMPDU TX feature + config ESP32_WIFI_AMPDU_TX_ENABLED + bool "WiFi AMPDU TX" + default y + help + Select this option to enable AMPDU TX feature -config ESP32_WIFI_TX_BA_WIN - int "WiFi AMPDU TX BA window size" - depends on ESP32_WIFI_AMPDU_TX_ENABLED - range 2 32 - default 6 - help - Set the size of WiFi Block Ack TX window. Generally a bigger value means higher throughput but - more memory. Most of time we should NOT change the default value unless special reason, e.g. - test the maximum UDP TX throughput with iperf etc. For iperf test in shieldbox, the recommended - value is 9~12. + config ESP32_WIFI_TX_BA_WIN + int "WiFi AMPDU TX BA window size" + depends on ESP32_WIFI_AMPDU_TX_ENABLED + range 2 32 + default 6 + help + Set the size of WiFi Block Ack TX window. Generally a bigger value means higher throughput but + more memory. Most of time we should NOT change the default value unless special reason, e.g. + test the maximum UDP TX throughput with iperf etc. For iperf test in shieldbox, the recommended + value is 9~12. -config ESP32_WIFI_AMPDU_RX_ENABLED - bool "WiFi AMPDU RX" - default y - help - Select this option to enable AMPDU RX feature + config ESP32_WIFI_AMPDU_RX_ENABLED + bool "WiFi AMPDU RX" + default y + help + Select this option to enable AMPDU RX feature -config ESP32_WIFI_RX_BA_WIN - int "WiFi AMPDU RX BA window size" - depends on ESP32_WIFI_AMPDU_RX_ENABLED - range 2 32 - default 6 - help - Set the size of WiFi Block Ack RX window. Generally a bigger value means higher throughput but - more memory. Most of time we should NOT change the default value unless special reason, e.g. - test the maximum UDP RX throughput with iperf etc. For iperf test in shieldbox, the recommended - value is 9~12. + config ESP32_WIFI_RX_BA_WIN + int "WiFi AMPDU RX BA window size" + depends on ESP32_WIFI_AMPDU_RX_ENABLED + range 2 32 + default 6 + help + Set the size of WiFi Block Ack RX window. Generally a bigger value means higher throughput but + more memory. Most of time we should NOT change the default value unless special reason, e.g. + test the maximum UDP RX throughput with iperf etc. For iperf test in shieldbox, the recommended + value is 9~12. -config ESP32_WIFI_NVS_ENABLED - bool "WiFi NVS flash" - default y - help - Select this option to enable WiFi NVS flash + config ESP32_WIFI_NVS_ENABLED + bool "WiFi NVS flash" + default y + help + Select this option to enable WiFi NVS flash -choice ESP32_WIFI_TASK_CORE_ID - depends on !FREERTOS_UNICORE - prompt "WiFi Task Core ID" - default ESP32_WIFI_TASK_PINNED_TO_CORE_0 - help - Pinned WiFi task to core 0 or core 1. + choice ESP32_WIFI_TASK_CORE_ID + depends on !FREERTOS_UNICORE + prompt "WiFi Task Core ID" + default ESP32_WIFI_TASK_PINNED_TO_CORE_0 + help + Pinned WiFi task to core 0 or core 1. -config ESP32_WIFI_TASK_PINNED_TO_CORE_0 - bool "Core 0" -config ESP32_WIFI_TASK_PINNED_TO_CORE_1 - bool "Core 1" -endchoice + config ESP32_WIFI_TASK_PINNED_TO_CORE_0 + bool "Core 0" + config ESP32_WIFI_TASK_PINNED_TO_CORE_1 + bool "Core 1" + endchoice -config ESP32_WIFI_SOFTAP_BEACON_MAX_LEN - int "Max length of WiFi SoftAP Beacon" - range 752 1256 - default 752 - help - ESP-MESH utilizes beacon frames to detect and resolve root node conflicts (see documentation). However the default - length of a beacon frame can simultaneously hold only five root node identifier structures, meaning that a root node - conflict of up to five nodes can be detected at one time. In the occurence of more root nodes conflict involving more - than five root nodes, the conflict resolution process will detect five of the root nodes, resolve the conflict, and - re-detect more root nodes. This process will repeat until all root node conflicts are resolved. However this process - can generally take a very long time. + config ESP32_WIFI_SOFTAP_BEACON_MAX_LEN + int "Max length of WiFi SoftAP Beacon" + range 752 1256 + default 752 + help + ESP-MESH utilizes beacon frames to detect and resolve root node conflicts (see documentation). However the + default length of a beacon frame can simultaneously hold only five root node identifier structures, + meaning that a root node conflict of up to five nodes can be detected at one time. In the occurence of + more root nodes conflict involving more than five root nodes, the conflict resolution process will detect + five of the root nodes, resolve the conflict, and re-detect more root nodes. This process will repeat + until all root node conflicts are resolved. However this process can generally take a very long time. - To counter this situation, the beacon frame length can be increased such that more root nodes can be detected simultaneously. - Each additional root node will require 36 bytes and should be added ontop of the default beacon frame length of - 752 bytes. For example, if you want to detect 10 root nodes simultaneously, you need to set the beacon frame length as - 932 (752+36*5). + To counter this situation, the beacon frame length can be increased such that more root nodes can be + detected simultaneously. Each additional root node will require 36 bytes and should be added ontop of the + default beacon frame length of + 752 bytes. For example, if you want to detect 10 root nodes simultaneously, you need to set the beacon + frame length as + 932 (752+36*5). - Setting a longer beacon length also assists with debugging as the conflicting root nodes can be identified more quickly. + Setting a longer beacon length also assists with debugging as the conflicting root nodes can be identified + more quickly. -config ESP32_WIFI_DEBUG_LOG_ENABLE - bool "Enable WiFi debug log" - default n - help - Select this option to enable WiFi debug log - -choice ESP32_WIFI_DEBUG_LOG_LEVEL - depends on ESP32_WIFI_DEBUG_LOG_ENABLE - prompt "WiFi debug log level" - default ESP32_WIFI_LOG_DEBUG - help - The WiFi log is divided into the following levels: ERROR,WARNING,INFO,DEBUG,VERBOSE. - The ERROR,WARNING,INFO levels are enabled by default, and the DEBUG,VERBOSE levels can be enabled here. + config ESP32_WIFI_DEBUG_LOG_ENABLE + bool "Enable WiFi debug log" + default n + help + Select this option to enable WiFi debug log -config ESP32_WIFI_DEBUG_LOG_DEBUG - bool "WiFi Debug Log Debug" -config ESP32_WIFI_DEBUG_LOG_VERBOSE - bool "WiFi Debug Log Verbose" -endchoice + choice ESP32_WIFI_DEBUG_LOG_LEVEL + depends on ESP32_WIFI_DEBUG_LOG_ENABLE + prompt "WiFi debug log level" + default ESP32_WIFI_LOG_DEBUG + help + The WiFi log is divided into the following levels: ERROR,WARNING,INFO,DEBUG,VERBOSE. + The ERROR,WARNING,INFO levels are enabled by default, and the DEBUG,VERBOSE levels can be enabled here. -choice ESP32_WIFI_DEBUG_LOG_MODULE - depends on ESP32_WIFI_DEBUG_LOG_ENABLE - prompt "WiFi debug log module" - default ESP32_WIFI_DEBUG_LOG_MODULE_WIFI - help - The WiFi log module contains three parts: WIFI,COEX,MESH. - The WIFI module indicates the logs related to WiFi, the COEX module indicates the logs related to WiFi and BT(or BLE) coexist, - the MESH module indicates the logs related to Mesh. When ESP32_WIFI_LOG_MODULE_ALL is enabled, all modules are selected. + config ESP32_WIFI_DEBUG_LOG_DEBUG + bool "WiFi Debug Log Debug" + config ESP32_WIFI_DEBUG_LOG_VERBOSE + bool "WiFi Debug Log Verbose" + endchoice -config ESP32_WIFI_DEBUG_LOG_MODULE_ALL - bool "WiFi Debug Log Module All" -config ESP32_WIFI_DEBUG_LOG_MODULE_WIFI - bool "WiFi Debug Log Module WiFi" -config ESP32_WIFI_DEBUG_LOG_MODULE_COEX - bool "WiFi Debug Log Module Coex" -config ESP32_WIFI_DEBUG_LOG_MODULE_MESH - bool "WiFi Debug Log Module Mesh" -endchoice + choice ESP32_WIFI_DEBUG_LOG_MODULE + depends on ESP32_WIFI_DEBUG_LOG_ENABLE + prompt "WiFi debug log module" + default ESP32_WIFI_DEBUG_LOG_MODULE_WIFI + help + The WiFi log module contains three parts: WIFI,COEX,MESH. The WIFI module indicates the logs related to + WiFi, the COEX module indicates the logs related to WiFi and BT(or BLE) coexist, the MESH module indicates + the logs related to Mesh. When ESP32_WIFI_LOG_MODULE_ALL is enabled, all modules are selected. -config ESP32_WIFI_DEBUG_LOG_SUBMODULE - depends on ESP32_WIFI_DEBUG_LOG_ENABLE - bool "WiFi debug log submodule" - default n - help - Enable this option to set the WiFi debug log submodule. - Currently the log submodule contains the following parts: INIT,IOCTL,CONN,SCAN. - The INIT submodule indicates the initialization process.The IOCTL submodule indicates the API calling process. - The CONN submodule indicates the connecting process.The SCAN submodule indicates the scaning process. + config ESP32_WIFI_DEBUG_LOG_MODULE_ALL + bool "WiFi Debug Log Module All" + config ESP32_WIFI_DEBUG_LOG_MODULE_WIFI + bool "WiFi Debug Log Module WiFi" + config ESP32_WIFI_DEBUG_LOG_MODULE_COEX + bool "WiFi Debug Log Module Coex" + config ESP32_WIFI_DEBUG_LOG_MODULE_MESH + bool "WiFi Debug Log Module Mesh" + endchoice -config ESP32_WIFI_DEBUG_LOG_SUBMODULE_ALL - depends on ESP32_WIFI_DEBUG_LOG_SUBMODULE - bool "WiFi Debug Log Submodule All" - default n - help - When this option is enabled, all debug submodules are selected. + config ESP32_WIFI_DEBUG_LOG_SUBMODULE + depends on ESP32_WIFI_DEBUG_LOG_ENABLE + bool "WiFi debug log submodule" + default n + help + Enable this option to set the WiFi debug log submodule. + Currently the log submodule contains the following parts: INIT,IOCTL,CONN,SCAN. + The INIT submodule indicates the initialization process.The IOCTL submodule indicates the API calling + process. + The CONN submodule indicates the connecting process.The SCAN submodule indicates the scaning process. -config ESP32_WIFI_DEBUG_LOG_SUBMODULE_INIT - depends on ESP32_WIFI_DEBUG_LOG_SUBMODULE && (!ESP32_WIFI_DEBUG_LOG_SUBMODULE_ALL) - bool "WiFi Debug Log Submodule Init" - default n + config ESP32_WIFI_DEBUG_LOG_SUBMODULE_ALL + depends on ESP32_WIFI_DEBUG_LOG_SUBMODULE + bool "WiFi Debug Log Submodule All" + default n + help + When this option is enabled, all debug submodules are selected. -config ESP32_WIFI_DEBUG_LOG_SUBMODULE_IOCTL - depends on ESP32_WIFI_DEBUG_LOG_SUBMODULE && (!ESP32_WIFI_DEBUG_LOG_SUBMODULE_ALL) - bool "WiFi Debug Log Submodule Ioctl" - default n + config ESP32_WIFI_DEBUG_LOG_SUBMODULE_INIT + depends on ESP32_WIFI_DEBUG_LOG_SUBMODULE && (!ESP32_WIFI_DEBUG_LOG_SUBMODULE_ALL) + bool "WiFi Debug Log Submodule Init" + default n -config ESP32_WIFI_DEBUG_LOG_SUBMODULE_CONN - depends on ESP32_WIFI_DEBUG_LOG_SUBMODULE && (!ESP32_WIFI_DEBUG_LOG_SUBMODULE_ALL) - bool "WiFi Debug Log Submodule Conn" - default n + config ESP32_WIFI_DEBUG_LOG_SUBMODULE_IOCTL + depends on ESP32_WIFI_DEBUG_LOG_SUBMODULE && (!ESP32_WIFI_DEBUG_LOG_SUBMODULE_ALL) + bool "WiFi Debug Log Submodule Ioctl" + default n -config ESP32_WIFI_DEBUG_LOG_SUBMODULE_SCAN - depends on ESP32_WIFI_DEBUG_LOG_SUBMODULE && (!ESP32_WIFI_DEBUG_LOG_SUBMODULE_ALL) - bool "WiFi Debug Log Submodule Scan" - default n + config ESP32_WIFI_DEBUG_LOG_SUBMODULE_CONN + depends on ESP32_WIFI_DEBUG_LOG_SUBMODULE && (!ESP32_WIFI_DEBUG_LOG_SUBMODULE_ALL) + bool "WiFi Debug Log Submodule Conn" + default n + + config ESP32_WIFI_DEBUG_LOG_SUBMODULE_SCAN + depends on ESP32_WIFI_DEBUG_LOG_SUBMODULE && (!ESP32_WIFI_DEBUG_LOG_SUBMODULE_ALL) + bool "WiFi Debug Log Submodule Scan" + default n endmenu # Wi-Fi menu PHY -config ESP32_PHY_CALIBRATION_AND_DATA_STORAGE - bool "Store phy calibration data in NVS" - default y - help - If this option is enabled, NVS will be initialized and calibration data will be loaded from there. - PHY calibration will be skipped on deep sleep wakeup. If calibration data is not found, full calibration - will be performed and stored in NVS. Normally, only partial calibration will be performed. - If this option is disabled, full calibration will be performed. + config ESP32_PHY_CALIBRATION_AND_DATA_STORAGE + bool "Store phy calibration data in NVS" + default y + help + If this option is enabled, NVS will be initialized and calibration data will be loaded from there. + PHY calibration will be skipped on deep sleep wakeup. If calibration data is not found, full calibration + will be performed and stored in NVS. Normally, only partial calibration will be performed. + If this option is disabled, full calibration will be performed. - If it's easy that your board calibrate bad data, choose 'n'. - Two cases for example, you should choose 'n': - 1.If your board is easy to be booted up with antenna disconnected. - 2.Because of your board design, each time when you do calibration, the result are too unstable. - If unsure, choose 'y'. + If it's easy that your board calibrate bad data, choose 'n'. + Two cases for example, you should choose 'n': + 1.If your board is easy to be booted up with antenna disconnected. + 2.Because of your board design, each time when you do calibration, the result are too unstable. + If unsure, choose 'y'. -config ESP32_PHY_INIT_DATA_IN_PARTITION - bool "Use a partition to store PHY init data" - default n - help - If enabled, PHY init data will be loaded from a partition. - When using a custom partition table, make sure that PHY data - partition is included (type: 'data', subtype: 'phy'). - With default partition tables, this is done automatically. - If PHY init data is stored in a partition, it has to be flashed there, - otherwise runtime error will occur. + config ESP32_PHY_INIT_DATA_IN_PARTITION + bool "Use a partition to store PHY init data" + default n + help + If enabled, PHY init data will be loaded from a partition. + When using a custom partition table, make sure that PHY data + partition is included (type: 'data', subtype: 'phy'). + With default partition tables, this is done automatically. + If PHY init data is stored in a partition, it has to be flashed there, + otherwise runtime error will occur. - If this option is not enabled, PHY init data will be embedded - into the application binary. + If this option is not enabled, PHY init data will be embedded + into the application binary. - If unsure, choose 'n'. + If unsure, choose 'n'. -config ESP32_PHY_MAX_WIFI_TX_POWER - int "Max WiFi TX power (dBm)" - range 0 20 - default 20 - help - Set maximum transmit power for WiFi radio. Actual transmit power for high - data rates may be lower than this setting. + config ESP32_PHY_MAX_WIFI_TX_POWER + int "Max WiFi TX power (dBm)" + range 0 20 + default 20 + help + Set maximum transmit power for WiFi radio. Actual transmit power for high + data rates may be lower than this setting. -config ESP32_PHY_MAX_TX_POWER - int - default ESP32_PHY_MAX_WIFI_TX_POWER + config ESP32_PHY_MAX_TX_POWER + int + default ESP32_PHY_MAX_WIFI_TX_POWER endmenu # PHY menu "Power Management" -config PM_ENABLE - bool "Support for power management" - default n - help - If enabled, application is compiled with support for power management. - This option has run-time overhead (increased interrupt latency, - longer time to enter idle state), and it also reduces accuracy of - RTOS ticks and timers used for timekeeping. - Enable this option if application uses power management APIs. + config PM_ENABLE + bool "Support for power management" + default n + help + If enabled, application is compiled with support for power management. + This option has run-time overhead (increased interrupt latency, + longer time to enter idle state), and it also reduces accuracy of + RTOS ticks and timers used for timekeeping. + Enable this option if application uses power management APIs. -config PM_DFS_INIT_AUTO - bool "Enable dynamic frequency scaling (DFS) at startup" - depends on PM_ENABLE - default n - help - If enabled, startup code configures dynamic frequency scaling. - Max CPU frequency is set to CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ setting, - min frequency is set to XTAL frequency. - If disabled, DFS will not be active until the application - configures it using esp_pm_configure function. + config PM_DFS_INIT_AUTO + bool "Enable dynamic frequency scaling (DFS) at startup" + depends on PM_ENABLE + default n + help + If enabled, startup code configures dynamic frequency scaling. + Max CPU frequency is set to CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ setting, + min frequency is set to XTAL frequency. + If disabled, DFS will not be active until the application + configures it using esp_pm_configure function. -config PM_USE_RTC_TIMER_REF - bool "Use RTC timer to prevent time drift (EXPERIMENTAL)" - depends on PM_ENABLE && (ESP32_TIME_SYSCALL_USE_RTC || ESP32_TIME_SYSCALL_USE_RTC_FRC1) - default n - help - When APB clock frequency changes, high-resolution timer (esp_timer) - scale and base value need to be adjusted. Each adjustment may cause - small error, and over time such small errors may cause time drift. - If this option is enabled, RTC timer will be used as a reference to - compensate for the drift. - It is recommended that this option is only used if 32k XTAL is selected - as RTC clock source. + config PM_USE_RTC_TIMER_REF + bool "Use RTC timer to prevent time drift (EXPERIMENTAL)" + depends on PM_ENABLE && (ESP32_TIME_SYSCALL_USE_RTC || ESP32_TIME_SYSCALL_USE_RTC_FRC1) + default n + help + When APB clock frequency changes, high-resolution timer (esp_timer) + scale and base value need to be adjusted. Each adjustment may cause + small error, and over time such small errors may cause time drift. + If this option is enabled, RTC timer will be used as a reference to + compensate for the drift. + It is recommended that this option is only used if 32k XTAL is selected + as RTC clock source. -config PM_PROFILING - bool "Enable profiling counters for PM locks" - depends on PM_ENABLE - default n - help - If enabled, esp_pm_* functions will keep track of the amount of time - each of the power management locks has been held, and esp_pm_dump_locks - function will print this information. - This feature can be used to analyze which locks are preventing the chip - from going into a lower power state, and see what time the chip spends - in each power saving mode. This feature does incur some run-time - overhead, so should typically be disabled in production builds. + config PM_PROFILING + bool "Enable profiling counters for PM locks" + depends on PM_ENABLE + default n + help + If enabled, esp_pm_* functions will keep track of the amount of time + each of the power management locks has been held, and esp_pm_dump_locks + function will print this information. + This feature can be used to analyze which locks are preventing the chip + from going into a lower power state, and see what time the chip spends + in each power saving mode. This feature does incur some run-time + overhead, so should typically be disabled in production builds. -config PM_TRACE - bool "Enable debug tracing of PM using GPIOs" - depends on PM_ENABLE - default n - help - If enabled, some GPIOs will be used to signal events such as RTOS ticks, - frequency switching, entry/exit from idle state. Refer to pm_trace.c - file for the list of GPIOs. - This feature is intended to be used when analyzing/debugging behavior - of power management implementation, and should be kept disabled in - applications. + config PM_TRACE + bool "Enable debug tracing of PM using GPIOs" + depends on PM_ENABLE + default n + help + If enabled, some GPIOs will be used to signal events such as RTOS ticks, + frequency switching, entry/exit from idle state. Refer to pm_trace.c + file for the list of GPIOs. + This feature is intended to be used when analyzing/debugging behavior + of power management implementation, and should be kept disabled in + applications. endmenu # "Power Management" diff --git a/components/esp_adc_cal/Kconfig b/components/esp_adc_cal/Kconfig index fd7c93e564..6c794be0fc 100644 --- a/components/esp_adc_cal/Kconfig +++ b/components/esp_adc_cal/Kconfig @@ -1,27 +1,27 @@ menu "ADC-Calibration" -config ADC_CAL_EFUSE_TP_ENABLE - bool "Use Two Point Values" - default "y" - help - Some ESP32s have Two Point calibration values burned into eFuse BLOCK3. - This option will allow the ADC calibration component to characterize the - ADC-Voltage curve using Two Point values if they are available. + config ADC_CAL_EFUSE_TP_ENABLE + bool "Use Two Point Values" + default "y" + help + Some ESP32s have Two Point calibration values burned into eFuse BLOCK3. + This option will allow the ADC calibration component to characterize the + ADC-Voltage curve using Two Point values if they are available. -config ADC_CAL_EFUSE_VREF_ENABLE - bool "Use eFuse Vref" - default "y" - help - Some ESP32s have Vref burned into eFuse BLOCK0. This option will allow - the ADC calibration component to characterize the ADC-Voltage curve using - eFuse Vref if it is available. + config ADC_CAL_EFUSE_VREF_ENABLE + bool "Use eFuse Vref" + default "y" + help + Some ESP32s have Vref burned into eFuse BLOCK0. This option will allow + the ADC calibration component to characterize the ADC-Voltage curve using + eFuse Vref if it is available. -config ADC_CAL_LUT_ENABLE - bool "Use Lookup Tables" - default "y" - help - This option will allow the ADC calibration component to use Lookup Tables - to correct for non-linear behavior in 11db attenuation. Other attenuations - do not exhibit non-linear behavior hence will not be affected by this option. + config ADC_CAL_LUT_ENABLE + bool "Use Lookup Tables" + default "y" + help + This option will allow the ADC calibration component to use Lookup Tables + to correct for non-linear behavior in 11db attenuation. Other attenuations + do not exhibit non-linear behavior hence will not be affected by this option. endmenu # ADC-Calibration diff --git a/components/esp_event/Kconfig b/components/esp_event/Kconfig index 2ae4889885..e14e1e732c 100644 --- a/components/esp_event/Kconfig +++ b/components/esp_event/Kconfig @@ -1,11 +1,11 @@ menu "Event Loop Library" -config EVENT_LOOP_PROFILING - bool "Enable event loop profiling" - default n - help - Enables collections of statistics in the event loop library such as the number of events posted to/recieved by an event loop, number of - callbacks involved, number of events dropped to to a full event loop queue, run time of event handlers, and number of times/run - time of each event handler. + config EVENT_LOOP_PROFILING + bool "Enable event loop profiling" + default n + help + Enables collections of statistics in the event loop library such as the number of events posted + to/recieved by an event loop, number of callbacks involved, number of events dropped to to a full event + loop queue, run time of event handlers, and number of times/run time of each event handler. -endmenu \ No newline at end of file +endmenu diff --git a/components/esp_http_client/Kconfig b/components/esp_http_client/Kconfig index f4e1d1b0a3..c362d1e895 100644 --- a/components/esp_http_client/Kconfig +++ b/components/esp_http_client/Kconfig @@ -1,10 +1,10 @@ menu "ESP HTTP client" -config ESP_HTTP_CLIENT_ENABLE_HTTPS - bool "Enable https" - default y - help - This option will enable https protocol by linking mbedtls library and initializing SSL transport + config ESP_HTTP_CLIENT_ENABLE_HTTPS + bool "Enable https" + default y + help + This option will enable https protocol by linking mbedtls library and initializing SSL transport endmenu diff --git a/components/esp_http_server/Kconfig b/components/esp_http_server/Kconfig index 323961ad5a..c8e4cc115d 100644 --- a/components/esp_http_server/Kconfig +++ b/components/esp_http_server/Kconfig @@ -1,15 +1,16 @@ menu "HTTP Server" -config HTTPD_MAX_REQ_HDR_LEN - int "Max HTTP Request Header Length" - default 512 - help - This sets the maximum supported size of headers section in HTTP request packet to be processed by the server + config HTTPD_MAX_REQ_HDR_LEN + int "Max HTTP Request Header Length" + default 512 + help + This sets the maximum supported size of headers section in HTTP request packet to be processed by the + server -config HTTPD_MAX_URI_LEN - int "Max HTTP URI Length" - default 512 - help - This sets the maximum supported size of HTTP request URI to be processed by the server + config HTTPD_MAX_URI_LEN + int "Max HTTP URI Length" + default 512 + help + This sets the maximum supported size of HTTP request URI to be processed by the server endmenu diff --git a/components/esptool_py/Kconfig.projbuild b/components/esptool_py/Kconfig.projbuild index 799b576a08..037b800fd4 100644 --- a/components/esptool_py/Kconfig.projbuild +++ b/components/esptool_py/Kconfig.projbuild @@ -1,223 +1,223 @@ menu "Serial flasher config" -config ESPTOOLPY_PORT - string "Default serial port" - depends on !IDF_CMAKE - default "/dev/ttyUSB0" - help - The serial port that's connected to the ESP chip. This can be overridden by setting the ESPPORT - environment variable. + config ESPTOOLPY_PORT + string "Default serial port" + depends on !IDF_CMAKE + default "/dev/ttyUSB0" + help + The serial port that's connected to the ESP chip. This can be overridden by setting the ESPPORT + environment variable. - This value is ignored when using the CMake-based build system or idf.py. + This value is ignored when using the CMake-based build system or idf.py. -choice ESPTOOLPY_BAUD - prompt "Default baud rate" - depends on !IDF_CMAKE - default ESPTOOLPY_BAUD_115200B - help - Default baud rate to use while communicating with the ESP chip. Can be overridden by - setting the ESPBAUD variable. + choice ESPTOOLPY_BAUD + prompt "Default baud rate" + depends on !IDF_CMAKE + default ESPTOOLPY_BAUD_115200B + help + Default baud rate to use while communicating with the ESP chip. Can be overridden by + setting the ESPBAUD variable. - This value is ignored when using the CMake-based build system or idf.py. + This value is ignored when using the CMake-based build system or idf.py. -config ESPTOOLPY_BAUD_115200B - bool "115200 baud" -config ESPTOOLPY_BAUD_230400B - bool "230400 baud" -config ESPTOOLPY_BAUD_921600B - bool "921600 baud" -config ESPTOOLPY_BAUD_2MB - bool "2Mbaud" -config ESPTOOLPY_BAUD_OTHER - bool "Other baud rate" -endchoice + config ESPTOOLPY_BAUD_115200B + bool "115200 baud" + config ESPTOOLPY_BAUD_230400B + bool "230400 baud" + config ESPTOOLPY_BAUD_921600B + bool "921600 baud" + config ESPTOOLPY_BAUD_2MB + bool "2Mbaud" + config ESPTOOLPY_BAUD_OTHER + bool "Other baud rate" + endchoice -config ESPTOOLPY_BAUD_OTHER_VAL - int "Other baud rate value" if ESPTOOLPY_BAUD_OTHER - default 115200 + config ESPTOOLPY_BAUD_OTHER_VAL + int "Other baud rate value" if ESPTOOLPY_BAUD_OTHER + default 115200 -config ESPTOOLPY_BAUD - int - depends on !IDF_CMAKE - default 115200 if ESPTOOLPY_BAUD_115200B - default 230400 if ESPTOOLPY_BAUD_230400B - default 921600 if ESPTOOLPY_BAUD_921600B - default 2000000 if ESPTOOLPY_BAUD_2MB - default ESPTOOLPY_BAUD_OTHER_VAL if ESPTOOLPY_BAUD_OTHER + config ESPTOOLPY_BAUD + int + depends on !IDF_CMAKE + default 115200 if ESPTOOLPY_BAUD_115200B + default 230400 if ESPTOOLPY_BAUD_230400B + default 921600 if ESPTOOLPY_BAUD_921600B + default 2000000 if ESPTOOLPY_BAUD_2MB + default ESPTOOLPY_BAUD_OTHER_VAL if ESPTOOLPY_BAUD_OTHER -config ESPTOOLPY_COMPRESSED - bool "Use compressed upload" - depends on !IDF_CMAKE - default "y" - help - The flasher tool can send data compressed using zlib, letting the ROM on the ESP chip - decompress it on the fly before flashing it. For most payloads, this should result in a - speed increase. + config ESPTOOLPY_COMPRESSED + bool "Use compressed upload" + depends on !IDF_CMAKE + default "y" + help + The flasher tool can send data compressed using zlib, letting the ROM on the ESP chip + decompress it on the fly before flashing it. For most payloads, this should result in a + speed increase. -choice FLASHMODE - prompt "Flash SPI mode" - default FLASHMODE_DIO - help - Mode the flash chip is flashed in, as well as the default mode for the - binary to run in. + choice FLASHMODE + prompt "Flash SPI mode" + default FLASHMODE_DIO + help + Mode the flash chip is flashed in, as well as the default mode for the + binary to run in. -config FLASHMODE_QIO - bool "QIO" -config FLASHMODE_QOUT - bool "QOUT" -config FLASHMODE_DIO - bool "DIO" -config FLASHMODE_DOUT - bool "DOUT" -endchoice + config FLASHMODE_QIO + bool "QIO" + config FLASHMODE_QOUT + bool "QOUT" + config FLASHMODE_DIO + bool "DIO" + config FLASHMODE_DOUT + bool "DOUT" + endchoice -# Note: we use esptool.py to flash bootloader in -# dio mode for QIO/QOUT, bootloader then upgrades -# itself to quad mode during initialisation -config ESPTOOLPY_FLASHMODE - string - default "dio" if FLASHMODE_QIO - default "dio" if FLASHMODE_QOUT - default "dio" if FLASHMODE_DIO - default "dout" if FLASHMODE_DOUT + # Note: we use esptool.py to flash bootloader in + # dio mode for QIO/QOUT, bootloader then upgrades + # itself to quad mode during initialisation + config ESPTOOLPY_FLASHMODE + string + default "dio" if FLASHMODE_QIO + default "dio" if FLASHMODE_QOUT + default "dio" if FLASHMODE_DIO + default "dout" if FLASHMODE_DOUT -choice ESPTOOLPY_FLASHFREQ - prompt "Flash SPI speed" - default ESPTOOLPY_FLASHFREQ_40M - help - The SPI flash frequency to be used. + choice ESPTOOLPY_FLASHFREQ + prompt "Flash SPI speed" + default ESPTOOLPY_FLASHFREQ_40M + help + The SPI flash frequency to be used. -config ESPTOOLPY_FLASHFREQ_80M - bool "80 MHz" -config ESPTOOLPY_FLASHFREQ_40M - bool "40 MHz" -config ESPTOOLPY_FLASHFREQ_26M - bool "26 MHz" -config ESPTOOLPY_FLASHFREQ_20M - bool "20 MHz" -endchoice + config ESPTOOLPY_FLASHFREQ_80M + bool "80 MHz" + config ESPTOOLPY_FLASHFREQ_40M + bool "40 MHz" + config ESPTOOLPY_FLASHFREQ_26M + bool "26 MHz" + config ESPTOOLPY_FLASHFREQ_20M + bool "20 MHz" + endchoice -config ESPTOOLPY_FLASHFREQ - string - default "80m" if ESPTOOLPY_FLASHFREQ_80M - default "40m" if ESPTOOLPY_FLASHFREQ_40M - default "26m" if ESPTOOLPY_FLASHFREQ_26M - default "20m" if ESPTOOLPY_FLASHFREQ_20M + config ESPTOOLPY_FLASHFREQ + string + default "80m" if ESPTOOLPY_FLASHFREQ_80M + default "40m" if ESPTOOLPY_FLASHFREQ_40M + default "26m" if ESPTOOLPY_FLASHFREQ_26M + default "20m" if ESPTOOLPY_FLASHFREQ_20M -choice ESPTOOLPY_FLASHSIZE - prompt "Flash size" - default ESPTOOLPY_FLASHSIZE_2MB - help - SPI flash size, in megabytes + choice ESPTOOLPY_FLASHSIZE + prompt "Flash size" + default ESPTOOLPY_FLASHSIZE_2MB + help + SPI flash size, in megabytes -config ESPTOOLPY_FLASHSIZE_1MB - bool "1 MB" -config ESPTOOLPY_FLASHSIZE_2MB - bool "2 MB" -config ESPTOOLPY_FLASHSIZE_4MB - bool "4 MB" -config ESPTOOLPY_FLASHSIZE_8MB - bool "8 MB" -config ESPTOOLPY_FLASHSIZE_16MB - bool "16 MB" -endchoice + config ESPTOOLPY_FLASHSIZE_1MB + bool "1 MB" + config ESPTOOLPY_FLASHSIZE_2MB + bool "2 MB" + config ESPTOOLPY_FLASHSIZE_4MB + bool "4 MB" + config ESPTOOLPY_FLASHSIZE_8MB + bool "8 MB" + config ESPTOOLPY_FLASHSIZE_16MB + bool "16 MB" + endchoice -config ESPTOOLPY_FLASHSIZE - string - default "1MB" if ESPTOOLPY_FLASHSIZE_1MB - default "2MB" if ESPTOOLPY_FLASHSIZE_2MB - default "4MB" if ESPTOOLPY_FLASHSIZE_4MB - default "8MB" if ESPTOOLPY_FLASHSIZE_8MB - default "16MB" if ESPTOOLPY_FLASHSIZE_16MB + config ESPTOOLPY_FLASHSIZE + string + default "1MB" if ESPTOOLPY_FLASHSIZE_1MB + default "2MB" if ESPTOOLPY_FLASHSIZE_2MB + default "4MB" if ESPTOOLPY_FLASHSIZE_4MB + default "8MB" if ESPTOOLPY_FLASHSIZE_8MB + default "16MB" if ESPTOOLPY_FLASHSIZE_16MB -config ESPTOOLPY_FLASHSIZE_DETECT - bool "Detect flash size when flashing bootloader" - default y - help - If this option is set, 'make flash' targets will automatically detect - the flash size and update the bootloader image when flashing. + config ESPTOOLPY_FLASHSIZE_DETECT + bool "Detect flash size when flashing bootloader" + default y + help + If this option is set, 'make flash' targets will automatically detect + the flash size and update the bootloader image when flashing. -choice ESPTOOLPY_BEFORE - prompt "Before flashing" - default ESPTOOLPY_BEFORE_RESET - help - Configure whether esptool.py should reset the ESP32 before flashing. + choice ESPTOOLPY_BEFORE + prompt "Before flashing" + default ESPTOOLPY_BEFORE_RESET + help + Configure whether esptool.py should reset the ESP32 before flashing. - Automatic resetting depends on the RTS & DTR signals being - wired from the serial port to the ESP32. Most USB development - boards do this internally. + Automatic resetting depends on the RTS & DTR signals being + wired from the serial port to the ESP32. Most USB development + boards do this internally. -config ESPTOOLPY_BEFORE_RESET - bool "Reset to bootloader" -config ESPTOOLPY_BEFORE_NORESET - bool "No reset" -endchoice + config ESPTOOLPY_BEFORE_RESET + bool "Reset to bootloader" + config ESPTOOLPY_BEFORE_NORESET + bool "No reset" + endchoice -config ESPTOOLPY_BEFORE - string - default "default_reset" if ESPTOOLPY_BEFORE_RESET - default "no_reset" if ESPTOOLPY_BEFORE_NORESET + config ESPTOOLPY_BEFORE + string + default "default_reset" if ESPTOOLPY_BEFORE_RESET + default "no_reset" if ESPTOOLPY_BEFORE_NORESET -choice ESPTOOLPY_AFTER - prompt "After flashing" - default ESPTOOLPY_AFTER_RESET - help - Configure whether esptool.py should reset the ESP32 after flashing. + choice ESPTOOLPY_AFTER + prompt "After flashing" + default ESPTOOLPY_AFTER_RESET + help + Configure whether esptool.py should reset the ESP32 after flashing. - Automatic resetting depends on the RTS & DTR signals being - wired from the serial port to the ESP32. Most USB development - boards do this internally. + Automatic resetting depends on the RTS & DTR signals being + wired from the serial port to the ESP32. Most USB development + boards do this internally. -config ESPTOOLPY_AFTER_RESET - bool "Reset after flashing" -config ESPTOOLPY_AFTER_NORESET - bool "Stay in bootloader" -endchoice + config ESPTOOLPY_AFTER_RESET + bool "Reset after flashing" + config ESPTOOLPY_AFTER_NORESET + bool "Stay in bootloader" + endchoice -config ESPTOOLPY_AFTER - string - default "hard_reset" if ESPTOOLPY_AFTER_RESET - default "no_reset" if ESPTOOLPY_AFTER_NORESET + config ESPTOOLPY_AFTER + string + default "hard_reset" if ESPTOOLPY_AFTER_RESET + default "no_reset" if ESPTOOLPY_AFTER_NORESET -choice MONITOR_BAUD - prompt "'make monitor' baud rate" - default MONITOR_BAUD_115200B - help - Baud rate to use when running 'make monitor' to view serial output - from a running chip. + choice MONITOR_BAUD + prompt "'make monitor' baud rate" + default MONITOR_BAUD_115200B + help + Baud rate to use when running 'make monitor' to view serial output + from a running chip. - Can override by setting the MONITORBAUD environment variable. + Can override by setting the MONITORBAUD environment variable. -config MONITOR_BAUD_9600B - bool "9600 bps" -config MONITOR_BAUD_57600B - bool "57600 bps" -config MONITOR_BAUD_115200B - bool "115200 bps" -config MONITOR_BAUD_230400B - bool "230400 bps" -config MONITOR_BAUD_921600B - bool "921600 bps" -config MONITOR_BAUD_2MB - bool "2 Mbps" -config MONITOR_BAUD_OTHER - bool "Custom baud rate" + config MONITOR_BAUD_9600B + bool "9600 bps" + config MONITOR_BAUD_57600B + bool "57600 bps" + config MONITOR_BAUD_115200B + bool "115200 bps" + config MONITOR_BAUD_230400B + bool "230400 bps" + config MONITOR_BAUD_921600B + bool "921600 bps" + config MONITOR_BAUD_2MB + bool "2 Mbps" + config MONITOR_BAUD_OTHER + bool "Custom baud rate" -endchoice + endchoice -config MONITOR_BAUD_OTHER_VAL - int "Custom baud rate value" if MONITOR_BAUD_OTHER - default 115200 + config MONITOR_BAUD_OTHER_VAL + int "Custom baud rate value" if MONITOR_BAUD_OTHER + default 115200 -config MONITOR_BAUD - int - default 9600 if MONITOR_BAUD_9600B - default 57600 if MONITOR_BAUD_57600B - default 115200 if MONITOR_BAUD_115200B - default 230400 if MONITOR_BAUD_230400B - default 921600 if MONITOR_BAUD_921600B - default 2000000 if MONITOR_BAUD_2MB - default MONITOR_BAUD_OTHER_VAL if MONITOR_BAUD_OTHER + config MONITOR_BAUD + int + default 9600 if MONITOR_BAUD_9600B + default 57600 if MONITOR_BAUD_57600B + default 115200 if MONITOR_BAUD_115200B + default 230400 if MONITOR_BAUD_230400B + default 921600 if MONITOR_BAUD_921600B + default 2000000 if MONITOR_BAUD_2MB + default MONITOR_BAUD_OTHER_VAL if MONITOR_BAUD_OTHER endmenu diff --git a/components/fatfs/Kconfig b/components/fatfs/Kconfig index 81e16019ad..31dd4f2783 100644 --- a/components/fatfs/Kconfig +++ b/components/fatfs/Kconfig @@ -1,183 +1,183 @@ menu "FAT Filesystem support" -choice FATFS_CHOOSE_CODEPAGE - prompt "OEM Code Page" - default FATFS_CODEPAGE_437 - help - OEM code page used for file name encodings. - - If "Dynamic" is selected, code page can be chosen at runtime using - f_setcp function. Note that choosing this option will increase - application size by ~480kB. + choice FATFS_CHOOSE_CODEPAGE + prompt "OEM Code Page" + default FATFS_CODEPAGE_437 + help + OEM code page used for file name encodings. -config FATFS_CODEPAGE_DYNAMIC - bool "Dynamic (all code pages supported)" -config FATFS_CODEPAGE_437 - bool "US (CP437)" -config FATFS_CODEPAGE_720 - bool "Arabic (CP720)" -config FATFS_CODEPAGE_737 - bool "Greek (CP737)" -config FATFS_CODEPAGE_771 - bool "KBL (CP771)" -config FATFS_CODEPAGE_775 - bool "Baltic (CP775)" -config FATFS_CODEPAGE_850 - bool "Latin 1 (CP850)" -config FATFS_CODEPAGE_852 - bool "Latin 2 (CP852)" -config FATFS_CODEPAGE_855 - bool "Cyrillic (CP855)" -config FATFS_CODEPAGE_857 - bool "Turkish (CP857)" -config FATFS_CODEPAGE_860 - bool "Portugese (CP860)" -config FATFS_CODEPAGE_861 - bool "Icelandic (CP861)" -config FATFS_CODEPAGE_862 - bool "Hebrew (CP862)" -config FATFS_CODEPAGE_863 - bool "Canadian French (CP863)" -config FATFS_CODEPAGE_864 - bool "Arabic (CP864)" -config FATFS_CODEPAGE_865 - bool "Nordic (CP865)" -config FATFS_CODEPAGE_866 - bool "Russian (CP866)" -config FATFS_CODEPAGE_869 - bool "Greek 2 (CP869)" -config FATFS_CODEPAGE_932 - bool "Japanese (DBCS) (CP932)" -config FATFS_CODEPAGE_936 - bool "Simplified Chinese (DBCS) (CP936)" -config FATFS_CODEPAGE_949 - bool "Korean (DBCS) (CP949)" -config FATFS_CODEPAGE_950 - bool "Traditional Chinese (DBCS) (CP950)" + If "Dynamic" is selected, code page can be chosen at runtime using + f_setcp function. Note that choosing this option will increase + application size by ~480kB. -endchoice + config FATFS_CODEPAGE_DYNAMIC + bool "Dynamic (all code pages supported)" + config FATFS_CODEPAGE_437 + bool "US (CP437)" + config FATFS_CODEPAGE_720 + bool "Arabic (CP720)" + config FATFS_CODEPAGE_737 + bool "Greek (CP737)" + config FATFS_CODEPAGE_771 + bool "KBL (CP771)" + config FATFS_CODEPAGE_775 + bool "Baltic (CP775)" + config FATFS_CODEPAGE_850 + bool "Latin 1 (CP850)" + config FATFS_CODEPAGE_852 + bool "Latin 2 (CP852)" + config FATFS_CODEPAGE_855 + bool "Cyrillic (CP855)" + config FATFS_CODEPAGE_857 + bool "Turkish (CP857)" + config FATFS_CODEPAGE_860 + bool "Portugese (CP860)" + config FATFS_CODEPAGE_861 + bool "Icelandic (CP861)" + config FATFS_CODEPAGE_862 + bool "Hebrew (CP862)" + config FATFS_CODEPAGE_863 + bool "Canadian French (CP863)" + config FATFS_CODEPAGE_864 + bool "Arabic (CP864)" + config FATFS_CODEPAGE_865 + bool "Nordic (CP865)" + config FATFS_CODEPAGE_866 + bool "Russian (CP866)" + config FATFS_CODEPAGE_869 + bool "Greek 2 (CP869)" + config FATFS_CODEPAGE_932 + bool "Japanese (DBCS) (CP932)" + config FATFS_CODEPAGE_936 + bool "Simplified Chinese (DBCS) (CP936)" + config FATFS_CODEPAGE_949 + bool "Korean (DBCS) (CP949)" + config FATFS_CODEPAGE_950 + bool "Traditional Chinese (DBCS) (CP950)" -config FATFS_CODEPAGE - int - default 0 if FATFS_CODEPAGE_DYNAMIC - default 437 if FATFS_CODEPAGE_437 - default 720 if FATFS_CODEPAGE_720 - default 737 if FATFS_CODEPAGE_737 - default 771 if FATFS_CODEPAGE_771 - default 775 if FATFS_CODEPAGE_775 - default 850 if FATFS_CODEPAGE_850 - default 852 if FATFS_CODEPAGE_852 - default 855 if FATFS_CODEPAGE_855 - default 857 if FATFS_CODEPAGE_857 - default 860 if FATFS_CODEPAGE_860 - default 861 if FATFS_CODEPAGE_861 - default 862 if FATFS_CODEPAGE_862 - default 863 if FATFS_CODEPAGE_863 - default 864 if FATFS_CODEPAGE_864 - default 865 if FATFS_CODEPAGE_865 - default 866 if FATFS_CODEPAGE_866 - default 869 if FATFS_CODEPAGE_869 - default 932 if FATFS_CODEPAGE_932 - default 936 if FATFS_CODEPAGE_936 - default 949 if FATFS_CODEPAGE_949 - default 950 if FATFS_CODEPAGE_950 - default 437 + endchoice -choice FATFS_LONG_FILENAMES - prompt "Long filename support" - default FATFS_LFN_NONE - help - Support long filenames in FAT. Long filename data increases - memory usage. FATFS can be configured to store the buffer for - long filename data in stack or heap. + config FATFS_CODEPAGE + int + default 0 if FATFS_CODEPAGE_DYNAMIC + default 437 if FATFS_CODEPAGE_437 + default 720 if FATFS_CODEPAGE_720 + default 737 if FATFS_CODEPAGE_737 + default 771 if FATFS_CODEPAGE_771 + default 775 if FATFS_CODEPAGE_775 + default 850 if FATFS_CODEPAGE_850 + default 852 if FATFS_CODEPAGE_852 + default 855 if FATFS_CODEPAGE_855 + default 857 if FATFS_CODEPAGE_857 + default 860 if FATFS_CODEPAGE_860 + default 861 if FATFS_CODEPAGE_861 + default 862 if FATFS_CODEPAGE_862 + default 863 if FATFS_CODEPAGE_863 + default 864 if FATFS_CODEPAGE_864 + default 865 if FATFS_CODEPAGE_865 + default 866 if FATFS_CODEPAGE_866 + default 869 if FATFS_CODEPAGE_869 + default 932 if FATFS_CODEPAGE_932 + default 936 if FATFS_CODEPAGE_936 + default 949 if FATFS_CODEPAGE_949 + default 950 if FATFS_CODEPAGE_950 + default 437 -config FATFS_LFN_NONE - bool "No long filenames" -config FATFS_LFN_HEAP - bool "Long filename buffer in heap" -config FATFS_LFN_STACK - bool "Long filename buffer on stack" -endchoice + choice FATFS_LONG_FILENAMES + prompt "Long filename support" + default FATFS_LFN_NONE + help + Support long filenames in FAT. Long filename data increases + memory usage. FATFS can be configured to store the buffer for + long filename data in stack or heap. -config FATFS_MAX_LFN - int "Max long filename length" - depends on !FATFS_LFN_NONE - default 255 - range 12 255 - help - Maximum long filename length. Can be reduced to save RAM. + config FATFS_LFN_NONE + bool "No long filenames" + config FATFS_LFN_HEAP + bool "Long filename buffer in heap" + config FATFS_LFN_STACK + bool "Long filename buffer on stack" + endchoice -choice FATFS_API_ENCODING - prompt "API character encoding" - depends on !FATFS_LFN_NONE - default FATFS_API_ENCODING_ANSI_OEM - help - Choose encoding for character and string arguments/returns when using - FATFS APIs. The encoding of arguments will usually depend on text - editor settings. + config FATFS_MAX_LFN + int "Max long filename length" + depends on !FATFS_LFN_NONE + default 255 + range 12 255 + help + Maximum long filename length. Can be reduced to save RAM. -config FATFS_API_ENCODING_ANSI_OEM - bool "API uses ANSI/OEM encoding" -config FATFS_API_ENCODING_UTF_16 - bool "API uses UTF-16 encoding" -config FATFS_API_ENCODING_UTF_8 - bool "API uses UTF-8 encoding" -endchoice + choice FATFS_API_ENCODING + prompt "API character encoding" + depends on !FATFS_LFN_NONE + default FATFS_API_ENCODING_ANSI_OEM + help + Choose encoding for character and string arguments/returns when using + FATFS APIs. The encoding of arguments will usually depend on text + editor settings. -config FATFS_FS_LOCK - int "Number of simultaneously open files protected by lock function" - default 0 - range 0 65535 - help - This option sets the FATFS configuration value _FS_LOCK. - The option _FS_LOCK switches file lock function to control duplicated file open - and illegal operation to open objects. - - * 0: Disable file lock function. To avoid volume corruption, application - should avoid illegal open, remove and rename to the open objects. - - * >0: Enable file lock function. The value defines how many files/sub-directories - can be opened simultaneously under file lock control. - - Note that the file lock control is independent of re-entrancy. + config FATFS_API_ENCODING_ANSI_OEM + bool "API uses ANSI/OEM encoding" + config FATFS_API_ENCODING_UTF_16 + bool "API uses UTF-16 encoding" + config FATFS_API_ENCODING_UTF_8 + bool "API uses UTF-8 encoding" + endchoice -config FATFS_TIMEOUT_MS - int "Timeout for acquiring a file lock, ms" - default 10000 - help - This option sets FATFS configuration value _FS_TIMEOUT, scaled to milliseconds. - Sets the number of milliseconds FATFS will wait to acquire a mutex when - operating on an open file. For example, if one task is performing a lenghty - operation, another task will wait for the first task to release the lock, - and time out after amount of time set by this option. - + config FATFS_FS_LOCK + int "Number of simultaneously open files protected by lock function" + default 0 + range 0 65535 + help + This option sets the FATFS configuration value _FS_LOCK. + The option _FS_LOCK switches file lock function to control duplicated file open + and illegal operation to open objects. -config FATFS_PER_FILE_CACHE - bool "Use separate cache for each file" - default y - help - This option affects FATFS configuration value _FS_TINY. - - If this option is set, _FS_TINY is 0, and each open file has its own cache, - size of the cache is equal to the _MAX_SS variable (512 or 4096 bytes). - This option uses more RAM if more than 1 file is open, but needs less reads - and writes to the storage for some operations. - - If this option is not set, _FS_TINY is 1, and single cache is used for - all open files, size is also equal to _MAX_SS variable. This reduces the - amount of heap used when multiple files are open, but increases the number - of read and write operations which FATFS needs to make. + * 0: Disable file lock function. To avoid volume corruption, application + should avoid illegal open, remove and rename to the open objects. + + * >0: Enable file lock function. The value defines how many files/sub-directories + can be opened simultaneously under file lock control. + + Note that the file lock control is independent of re-entrancy. + + config FATFS_TIMEOUT_MS + int "Timeout for acquiring a file lock, ms" + default 10000 + help + This option sets FATFS configuration value _FS_TIMEOUT, scaled to milliseconds. + Sets the number of milliseconds FATFS will wait to acquire a mutex when + operating on an open file. For example, if one task is performing a lenghty + operation, another task will wait for the first task to release the lock, + and time out after amount of time set by this option. -config FATFS_ALLOC_PREFER_EXTRAM - bool "Perfer external RAM when allocating FATFS buffers" - default y - depends on SPIRAM_USE_CAPS_ALLOC || SPIRAM_USE_MALLOC - help - When the option is enabled, internal buffers used by FATFS will be allocated - from external RAM. If the allocation from external RAM fails, the buffer will - be allocated from the internal RAM. - Disable this option if optimizing for performance. Enable this option if - optimizing for internal memory size. + config FATFS_PER_FILE_CACHE + bool "Use separate cache for each file" + default y + help + This option affects FATFS configuration value _FS_TINY. + + If this option is set, _FS_TINY is 0, and each open file has its own cache, + size of the cache is equal to the _MAX_SS variable (512 or 4096 bytes). + This option uses more RAM if more than 1 file is open, but needs less reads + and writes to the storage for some operations. + + If this option is not set, _FS_TINY is 1, and single cache is used for + all open files, size is also equal to _MAX_SS variable. This reduces the + amount of heap used when multiple files are open, but increases the number + of read and write operations which FATFS needs to make. + + + config FATFS_ALLOC_PREFER_EXTRAM + bool "Perfer external RAM when allocating FATFS buffers" + default y + depends on SPIRAM_USE_CAPS_ALLOC || SPIRAM_USE_MALLOC + help + When the option is enabled, internal buffers used by FATFS will be allocated + from external RAM. If the allocation from external RAM fails, the buffer will + be allocated from the internal RAM. + Disable this option if optimizing for performance. Enable this option if + optimizing for internal memory size. endmenu diff --git a/components/freemodbus/Kconfig b/components/freemodbus/Kconfig index 2ed7ee3e0f..44c3f9c1a0 100644 --- a/components/freemodbus/Kconfig +++ b/components/freemodbus/Kconfig @@ -1,109 +1,109 @@ menu "Modbus configuration" -config MB_QUEUE_LENGTH - int "Modbus serial task queue length" - range 0 200 - default 20 - help - Modbus serial driver queue length. It is used by event queue task. - See the serial driver API for more information. - -config MB_SERIAL_TASK_STACK_SIZE - int "Modbus serial task stack size" - range 768 8192 - default 2048 - help - Modbus serial task stack size for event queue task. - It may be adjusted when debugging is enabled (for example). + config MB_QUEUE_LENGTH + int "Modbus serial task queue length" + range 0 200 + default 20 + help + Modbus serial driver queue length. It is used by event queue task. + See the serial driver API for more information. -config MB_SERIAL_BUF_SIZE - int "Modbus serial task RX/TX buffer size" - range 0 2048 - default 256 - help - Modbus serial task RX and TX buffer size for UART driver initialization. - This buffer is used for Modbus frame transfer. The Modbus protocol maximum - frame size is 256 bytes. Bigger size can be used for non standard implementations. - -config MB_SERIAL_TASK_PRIO - int "Modbus serial task priority" - range 3 10 - default 10 - help - Modbus UART driver event task priority. - The priority of Modbus controller task is equal to (CONFIG_MB_SERIAL_TASK_PRIO - 1). + config MB_SERIAL_TASK_STACK_SIZE + int "Modbus serial task stack size" + range 768 8192 + default 2048 + help + Modbus serial task stack size for event queue task. + It may be adjusted when debugging is enabled (for example). -config MB_CONTROLLER_SLAVE_ID_SUPPORT - bool "Modbus controller slave ID support" - default n - help - Modbus slave ID support enable. - When enabled the Modbus command is supported by stack. + config MB_SERIAL_BUF_SIZE + int "Modbus serial task RX/TX buffer size" + range 0 2048 + default 256 + help + Modbus serial task RX and TX buffer size for UART driver initialization. + This buffer is used for Modbus frame transfer. The Modbus protocol maximum + frame size is 256 bytes. Bigger size can be used for non standard implementations. -config MB_CONTROLLER_SLAVE_ID - hex "Modbus controller slave ID" - range 0 4294967295 - default 0x00112233 - depends on MB_CONTROLLER_SLAVE_ID_SUPPORT - help - Modbus slave ID value to identify modbus device - in the network using command. - Most significant byte of ID is used as short device ID and - other three bytes used as long ID. + config MB_SERIAL_TASK_PRIO + int "Modbus serial task priority" + range 3 10 + default 10 + help + Modbus UART driver event task priority. + The priority of Modbus controller task is equal to (CONFIG_MB_SERIAL_TASK_PRIO - 1). -config MB_CONTROLLER_NOTIFY_TIMEOUT - int "Modbus controller notification timeout (ms)" - range 0 200 - default 20 - help - Modbus controller notification timeout in milliseconds. - This timeout is used to send notification about accessed parameters. + config MB_CONTROLLER_SLAVE_ID_SUPPORT + bool "Modbus controller slave ID support" + default n + help + Modbus slave ID support enable. + When enabled the Modbus command is supported by stack. -config MB_CONTROLLER_NOTIFY_QUEUE_SIZE - int "Modbus controller notification queue size" - range 0 200 - default 20 - help - Modbus controller notification queue size. - The notification queue is used to get information about accessed parameters. + config MB_CONTROLLER_SLAVE_ID + hex "Modbus controller slave ID" + range 0 4294967295 + default 0x00112233 + depends on MB_CONTROLLER_SLAVE_ID_SUPPORT + help + Modbus slave ID value to identify modbus device + in the network using command. + Most significant byte of ID is used as short device ID and + other three bytes used as long ID. -config MB_CONTROLLER_STACK_SIZE - int "Modbus controller stack size" - range 0 8192 - default 4096 - help - Modbus controller task stack size. The Stack size may be adjusted when - debug mode is used which requires more stack size (for example). + config MB_CONTROLLER_NOTIFY_TIMEOUT + int "Modbus controller notification timeout (ms)" + range 0 200 + default 20 + help + Modbus controller notification timeout in milliseconds. + This timeout is used to send notification about accessed parameters. -config MB_EVENT_QUEUE_TIMEOUT - int "Modbus stack event queue timeout (ms)" - range 0 500 - default 20 - help - Modbus stack event queue timeout in milliseconds. This may help to optimize - Modbus stack event processing time. - -config MB_TIMER_PORT_ENABLED - bool "Modbus stack use timer for 3.5T symbol time measurement" - default y - help - If this option is set the Modbus stack uses timer for T3.5 time measurement. - Else the internal UART TOUT timeout is used for 3.5T symbol time measurement. + config MB_CONTROLLER_NOTIFY_QUEUE_SIZE + int "Modbus controller notification queue size" + range 0 200 + default 20 + help + Modbus controller notification queue size. + The notification queue is used to get information about accessed parameters. -config MB_TIMER_GROUP - int "Modbus Timer group number" - range 0 1 - depends on MB_TIMER_PORT_ENABLED - default 0 - help - Modbus Timer group number that is used for timeout measurement. + config MB_CONTROLLER_STACK_SIZE + int "Modbus controller stack size" + range 0 8192 + default 4096 + help + Modbus controller task stack size. The Stack size may be adjusted when + debug mode is used which requires more stack size (for example). -config MB_TIMER_INDEX - int "Modbus Timer index in the group" - range 0 1 - depends on MB_TIMER_PORT_ENABLED - default 0 - help - Modbus Timer Index in the group that is used for timeout measurement. + config MB_EVENT_QUEUE_TIMEOUT + int "Modbus stack event queue timeout (ms)" + range 0 500 + default 20 + help + Modbus stack event queue timeout in milliseconds. This may help to optimize + Modbus stack event processing time. + + config MB_TIMER_PORT_ENABLED + bool "Modbus stack use timer for 3.5T symbol time measurement" + default y + help + If this option is set the Modbus stack uses timer for T3.5 time measurement. + Else the internal UART TOUT timeout is used for 3.5T symbol time measurement. + + config MB_TIMER_GROUP + int "Modbus Timer group number" + range 0 1 + depends on MB_TIMER_PORT_ENABLED + default 0 + help + Modbus Timer group number that is used for timeout measurement. + + config MB_TIMER_INDEX + int "Modbus Timer index in the group" + range 0 1 + depends on MB_TIMER_PORT_ENABLED + default 0 + help + Modbus Timer Index in the group that is used for timeout measurement. endmenu diff --git a/components/freertos/Kconfig b/components/freertos/Kconfig index 72a0fe55c1..8ec085e140 100644 --- a/components/freertos/Kconfig +++ b/components/freertos/Kconfig @@ -1,203 +1,204 @@ menu "FreeRTOS" -# This is actually also handled in the ESP32 startup code, not only in FreeRTOS. -config FREERTOS_UNICORE - bool "Run FreeRTOS only on first core" - default n - help - This version of FreeRTOS normally takes control of all cores of - the CPU. Select this if you only want to start it on the first core. - This is needed when e.g. another process needs complete control - over the second core. + # This is actually also handled in the ESP32 startup code, not only in FreeRTOS. + config FREERTOS_UNICORE + bool "Run FreeRTOS only on first core" + default n + help + This version of FreeRTOS normally takes control of all cores of + the CPU. Select this if you only want to start it on the first core. + This is needed when e.g. another process needs complete control + over the second core. -# This invisible config value sets the value of tskNO_AFFINITY in task.h. -# Intended to be used as a constant from other Kconfig files. -# Value is (32-bit) INT_MAX. -config FREERTOS_NO_AFFINITY - hex - default 0x7FFFFFFF + # This invisible config value sets the value of tskNO_AFFINITY in task.h. + # Intended to be used as a constant from other Kconfig files. + # Value is (32-bit) INT_MAX. + config FREERTOS_NO_AFFINITY + hex + default 0x7FFFFFFF -choice FREERTOS_CORETIMER - prompt "Xtensa timer to use as the FreeRTOS tick source" - default CONFIG_FREERTOS_CORETIMER_0 - help - FreeRTOS needs a timer with an associated interrupt to use as - the main tick source to increase counters, run timers and do - pre-emptive multitasking with. There are multiple timers available - to do this, with different interrupt priorities. Check + choice FREERTOS_CORETIMER + prompt "Xtensa timer to use as the FreeRTOS tick source" + default CONFIG_FREERTOS_CORETIMER_0 + help + FreeRTOS needs a timer with an associated interrupt to use as + the main tick source to increase counters, run timers and do + pre-emptive multitasking with. There are multiple timers available + to do this, with different interrupt priorities. Check -config FREERTOS_CORETIMER_0 - bool "Timer 0 (int 6, level 1)" - help - Select this to use timer 0 + config FREERTOS_CORETIMER_0 + bool "Timer 0 (int 6, level 1)" + help + Select this to use timer 0 -config FREERTOS_CORETIMER_1 - bool "Timer 1 (int 15, level 3)" - help - Select this to use timer 1 + config FREERTOS_CORETIMER_1 + bool "Timer 1 (int 15, level 3)" + help + Select this to use timer 1 -endchoice + endchoice -config FREERTOS_HZ - int "Tick rate (Hz)" - range 1 1000 - default 100 - help - Select the tick rate at which FreeRTOS does pre-emptive context switching. + config FREERTOS_HZ + int "Tick rate (Hz)" + range 1 1000 + default 100 + help + Select the tick rate at which FreeRTOS does pre-emptive context switching. -config FREERTOS_ASSERT_ON_UNTESTED_FUNCTION - bool "Halt when an SMP-untested function is called" - default y - help - Some functions in FreeRTOS have not been thoroughly tested yet when moving to - the SMP implementation of FreeRTOS. When this option is enabled, these fuctions - will throw an assert(). + config FREERTOS_ASSERT_ON_UNTESTED_FUNCTION + bool "Halt when an SMP-untested function is called" + default y + help + Some functions in FreeRTOS have not been thoroughly tested yet when moving to + the SMP implementation of FreeRTOS. When this option is enabled, these fuctions + will throw an assert(). -choice FREERTOS_CHECK_STACKOVERFLOW - prompt "Check for stack overflow" - default FREERTOS_CHECK_STACKOVERFLOW_CANARY - help - FreeRTOS can check for stack overflows in threads and trigger an user function - called vApplicationStackOverflowHook when this happens. + choice FREERTOS_CHECK_STACKOVERFLOW + prompt "Check for stack overflow" + default FREERTOS_CHECK_STACKOVERFLOW_CANARY + help + FreeRTOS can check for stack overflows in threads and trigger an user function + called vApplicationStackOverflowHook when this happens. -config FREERTOS_CHECK_STACKOVERFLOW_NONE - bool "No checking" - help - Do not check for stack overflows (configCHECK_FOR_STACK_OVERFLOW=0) + config FREERTOS_CHECK_STACKOVERFLOW_NONE + bool "No checking" + help + Do not check for stack overflows (configCHECK_FOR_STACK_OVERFLOW=0) -config FREERTOS_CHECK_STACKOVERFLOW_PTRVAL - bool "Check by stack pointer value" - help - Check for stack overflows on each context switch by checking if - the stack pointer is in a valid range. Quick but does not detect - stack overflows that happened between context switches - (configCHECK_FOR_STACK_OVERFLOW=1) + config FREERTOS_CHECK_STACKOVERFLOW_PTRVAL + bool "Check by stack pointer value" + help + Check for stack overflows on each context switch by checking if + the stack pointer is in a valid range. Quick but does not detect + stack overflows that happened between context switches + (configCHECK_FOR_STACK_OVERFLOW=1) -config FREERTOS_CHECK_STACKOVERFLOW_CANARY - bool "Check using canary bytes" - help - Places some magic bytes at the end of the stack area and on each - context switch, check if these bytes are still intact. More thorough - than just checking the pointer, but also slightly slower. - (configCHECK_FOR_STACK_OVERFLOW=2) -endchoice + config FREERTOS_CHECK_STACKOVERFLOW_CANARY + bool "Check using canary bytes" + help + Places some magic bytes at the end of the stack area and on each + context switch, check if these bytes are still intact. More thorough + than just checking the pointer, but also slightly slower. + (configCHECK_FOR_STACK_OVERFLOW=2) + endchoice -config FREERTOS_WATCHPOINT_END_OF_STACK - bool "Set a debug watchpoint as a stack overflow check" - default n - help - FreeRTOS can check if a stack has overflown its bounds by checking either the value of - the stack pointer or by checking the integrity of canary bytes. (See FREERTOS_CHECK_STACKOVERFLOW - for more information.) These checks only happen on a context switch, and the situation that caused - the stack overflow may already be long gone by then. This option will use the debug memory - watchpoint 1 (the second one) to allow breaking into the debugger (or panic'ing) as soon as any - of the last 32 bytes on the stack of a task are overwritten. The side effect is that using gdb, you - effectively only have one watchpoint; the 2nd one is overwritten as soon as a task switch happens. + config FREERTOS_WATCHPOINT_END_OF_STACK + bool "Set a debug watchpoint as a stack overflow check" + default n + help + FreeRTOS can check if a stack has overflown its bounds by checking either the value of + the stack pointer or by checking the integrity of canary bytes. (See FREERTOS_CHECK_STACKOVERFLOW + for more information.) These checks only happen on a context switch, and the situation that caused + the stack overflow may already be long gone by then. This option will use the debug memory + watchpoint 1 (the second one) to allow breaking into the debugger (or panic'ing) as soon as any + of the last 32 bytes on the stack of a task are overwritten. The side effect is that using gdb, you + effectively only have one watchpoint; the 2nd one is overwritten as soon as a task switch happens. - This check only triggers if the stack overflow writes within 4 bytes of the end of the stack, rather than - overshooting further, so it is worth combining this approach with one of the other stack overflow check methods. + This check only triggers if the stack overflow writes within 4 bytes of the end of the stack, rather than + overshooting further, so it is worth combining this approach with one of the other stack overflow check + methods. - When this watchpoint is hit, gdb will stop with a SIGTRAP message. When no JTAG OCD is attached, esp-idf - will panic on an unhandled debug exception. + When this watchpoint is hit, gdb will stop with a SIGTRAP message. When no JTAG OCD is attached, esp-idf + will panic on an unhandled debug exception. -config FREERTOS_INTERRUPT_BACKTRACE - bool "Enable backtrace from interrupt to task context" - default y - help - If this option is enabled, interrupt stack frame will be modified to - point to the code of the interrupted task as its return address. - This helps the debugger (or the panic handler) show a backtrace from - the interrupt to the task which was interrupted. This also works for - nested interrupts: higer level interrupt stack can be traced back to the - lower level interrupt. - This option adds 4 instructions to the interrupt dispatching code. + config FREERTOS_INTERRUPT_BACKTRACE + bool "Enable backtrace from interrupt to task context" + default y + help + If this option is enabled, interrupt stack frame will be modified to + point to the code of the interrupted task as its return address. + This helps the debugger (or the panic handler) show a backtrace from + the interrupt to the task which was interrupted. This also works for + nested interrupts: higer level interrupt stack can be traced back to the + lower level interrupt. + This option adds 4 instructions to the interrupt dispatching code. -config FREERTOS_THREAD_LOCAL_STORAGE_POINTERS - int "Number of thread local storage pointers" - range 1 256 - default 1 - help - FreeRTOS has the ability to store per-thread pointers in the task - control block. This controls the number of pointers available. + config FREERTOS_THREAD_LOCAL_STORAGE_POINTERS + int "Number of thread local storage pointers" + range 1 256 + default 1 + help + FreeRTOS has the ability to store per-thread pointers in the task + control block. This controls the number of pointers available. - This value must be at least 1. Index 0 is reserved for use by the pthreads API - thread-local-storage. Other indexes can be used for any desired purpose. + This value must be at least 1. Index 0 is reserved for use by the pthreads API + thread-local-storage. Other indexes can be used for any desired purpose. -choice FREERTOS_ASSERT - prompt "FreeRTOS assertions" - default FREERTOS_ASSERT_FAIL_ABORT - help - Failed FreeRTOS configASSERT() assertions can be configured to - behave in different ways. + choice FREERTOS_ASSERT + prompt "FreeRTOS assertions" + default FREERTOS_ASSERT_FAIL_ABORT + help + Failed FreeRTOS configASSERT() assertions can be configured to + behave in different ways. -config FREERTOS_ASSERT_FAIL_ABORT - bool "abort() on failed assertions" - help - If a FreeRTOS configASSERT() fails, FreeRTOS will abort() and - halt execution. The panic handler can be configured to handle - the outcome of an abort() in different ways. + config FREERTOS_ASSERT_FAIL_ABORT + bool "abort() on failed assertions" + help + If a FreeRTOS configASSERT() fails, FreeRTOS will abort() and + halt execution. The panic handler can be configured to handle + the outcome of an abort() in different ways. -config FREERTOS_ASSERT_FAIL_PRINT_CONTINUE - bool "Print and continue failed assertions" - help - If a FreeRTOS assertion fails, print it out and continue. + config FREERTOS_ASSERT_FAIL_PRINT_CONTINUE + bool "Print and continue failed assertions" + help + If a FreeRTOS assertion fails, print it out and continue. -config FREERTOS_ASSERT_DISABLE - bool "Disable FreeRTOS assertions" - help - FreeRTOS configASSERT() will not be compiled into the binary. + config FREERTOS_ASSERT_DISABLE + bool "Disable FreeRTOS assertions" + help + FreeRTOS configASSERT() will not be compiled into the binary. -endchoice + endchoice -config FREERTOS_IDLE_TASK_STACKSIZE - int "Idle Task stack size" - range 768 32768 - default 1536 - help - The idle task has its own stack, sized in bytes. The default size is enough for most uses. Size can be reduced - to 768 bytes if no (or simple) FreeRTOS idle hooks are used and pthread local storage or FreeRTOS local storage - cleanup callbacks are not used. + config FREERTOS_IDLE_TASK_STACKSIZE + int "Idle Task stack size" + range 768 32768 + default 1536 + help + The idle task has its own stack, sized in bytes. The default size is enough for most uses. Size can be + reduced to 768 bytes if no (or simple) FreeRTOS idle hooks are used and pthread local storage or FreeRTOS + local storage cleanup callbacks are not used. - The stack size may need to be increased above the default if the app installs idle or thread local storage - cleanup hooks that use a lot of stack memory. + The stack size may need to be increased above the default if the app installs idle or thread local storage + cleanup hooks that use a lot of stack memory. -config FREERTOS_ISR_STACKSIZE - int "ISR stack size" - range 1536 32768 - default 1536 - help - The interrupt handlers have their own stack. The size of the stack can be defined here. - Each processor has its own stack, so the total size occupied will be twice this. + config FREERTOS_ISR_STACKSIZE + int "ISR stack size" + range 1536 32768 + default 1536 + help + The interrupt handlers have their own stack. The size of the stack can be defined here. + Each processor has its own stack, so the total size occupied will be twice this. -config FREERTOS_LEGACY_HOOKS - bool "Use FreeRTOS legacy hooks" - default n - help - FreeRTOS offers a number of hooks/callback functions that are called when a timer - tick happens, the idle thread runs etc. esp-idf replaces these by runtime registerable - hooks using the esp_register_freertos_xxx_hook system, but for legacy reasons the old - hooks can also still be enabled. Please enable this only if you have code that for some - reason can't be migrated to the esp_register_freertos_xxx_hook system. + config FREERTOS_LEGACY_HOOKS + bool "Use FreeRTOS legacy hooks" + default n + help + FreeRTOS offers a number of hooks/callback functions that are called when a timer + tick happens, the idle thread runs etc. esp-idf replaces these by runtime registerable + hooks using the esp_register_freertos_xxx_hook system, but for legacy reasons the old + hooks can also still be enabled. Please enable this only if you have code that for some + reason can't be migrated to the esp_register_freertos_xxx_hook system. -config FREERTOS_MAX_TASK_NAME_LEN - int "Maximum task name length" - range 1 256 - default 16 - help - Changes the maximum task name length. Each task allocated will - include this many bytes for a task name. Using a shorter value - saves a small amount of RAM, a longer value allows more complex - names. + config FREERTOS_MAX_TASK_NAME_LEN + int "Maximum task name length" + range 1 256 + default 16 + help + Changes the maximum task name length. Each task allocated will + include this many bytes for a task name. Using a shorter value + saves a small amount of RAM, a longer value allows more complex + names. - For most uses, the default of 16 is OK. + For most uses, the default of 16 is OK. -config SUPPORT_STATIC_ALLOCATION - bool "Enable FreeRTOS static allocation API" - default n - help - FreeRTOS gives the application writer the ability to instead provide the memory - themselves, allowing the following objects to optionally be created without any - memory being allocated dynamically: + config SUPPORT_STATIC_ALLOCATION + bool "Enable FreeRTOS static allocation API" + default n + help + FreeRTOS gives the application writer the ability to instead provide the memory + themselves, allowing the following objects to optionally be created without any + memory being allocated dynamically: - Tasks - Software Timers (Daemon task is still dynamic. See documentation) @@ -208,214 +209,214 @@ config SUPPORT_STATIC_ALLOCATION - Recursive Semaphores - Mutexes - Whether it is preferable to use static or dynamic memory allocation is dependent on - the application, and the preference of the application writer. Both methods have pros - and cons, and both methods can be used within the same RTOS application. + Whether it is preferable to use static or dynamic memory allocation is dependent on + the application, and the preference of the application writer. Both methods have pros + and cons, and both methods can be used within the same RTOS application. - Creating RTOS objects using statically allocated RAM has the benefit of providing the - application writer with more control: RTOS objects can be placed at specific memory locations. - The maximum RAM footprint can be determined at link time, rather than run time. - The application writer does not need to concern themselves with graceful handling of memory allocation failures. - It allows the RTOS to be used in applications that simply don't allow any dynamic memory allocation - (although FreeRTOS includes allocation schemes that can overcome most objections). + Creating RTOS objects using statically allocated RAM has the benefit of providing the application writer + with more control: RTOS objects can be placed at specific memory locations. The maximum RAM footprint can + be determined at link time, rather than run time. The application writer does not need to concern + themselves with graceful handling of memory allocation failures. It allows the RTOS to be used in + applications that simply don't allow any dynamic memory allocation (although FreeRTOS includes allocation + schemes that can overcome most objections). -config ENABLE_STATIC_TASK_CLEAN_UP_HOOK - bool "Enable static task clean up hook" - depends on SUPPORT_STATIC_ALLOCATION - default n - help - Enable this option to make FreeRTOS call the static task clean up hook when a task is deleted. + config ENABLE_STATIC_TASK_CLEAN_UP_HOOK + bool "Enable static task clean up hook" + depends on SUPPORT_STATIC_ALLOCATION + default n + help + Enable this option to make FreeRTOS call the static task clean up hook when a task is deleted. - Bear in mind that if this option is enabled you will need to implement the following function:: + Bear in mind that if this option is enabled you will need to implement the following function:: - void vPortCleanUpTCB ( void *pxTCB ) { - // place clean up code here - } + void vPortCleanUpTCB ( void *pxTCB ) { + // place clean up code here + } -config TIMER_TASK_PRIORITY - int "FreeRTOS timer task priority" - range 1 25 - default 1 - help - The timer service task (primarily) makes use of existing FreeRTOS features, allowing timer - functionality to be added to an application with minimal impact on the size of the application's - executable binary. + config TIMER_TASK_PRIORITY + int "FreeRTOS timer task priority" + range 1 25 + default 1 + help + The timer service task (primarily) makes use of existing FreeRTOS features, allowing timer + functionality to be added to an application with minimal impact on the size of the application's + executable binary. - Use this constant to define the priority that the timer task will run at. + Use this constant to define the priority that the timer task will run at. -config TIMER_TASK_STACK_DEPTH - int "FreeRTOS timer task stack size" - range 1536 32768 - default 2048 - help - The timer service task (primarily) makes use of existing FreeRTOS features, allowing timer - functionality to be added to an application with minimal impact on the size of the application's - executable binary. + config TIMER_TASK_STACK_DEPTH + int "FreeRTOS timer task stack size" + range 1536 32768 + default 2048 + help + The timer service task (primarily) makes use of existing FreeRTOS features, allowing timer + functionality to be added to an application with minimal impact on the size of the application's + executable binary. - Use this constant to define the size (in bytes) of the stack allocated for the timer task. + Use this constant to define the size (in bytes) of the stack allocated for the timer task. -config TIMER_QUEUE_LENGTH - int "FreeRTOS timer queue length" - range 5 20 - default 10 - help - FreeRTOS provides a set of timer related API functions. Many of these functions use a standard - FreeRTOS queue to send commands to the timer service task. The queue used for this purpose is - called the 'timer command queue'. The 'timer command queue' is private to the FreeRTOS timer - implementation, and cannot be accessed directly. + config TIMER_QUEUE_LENGTH + int "FreeRTOS timer queue length" + range 5 20 + default 10 + help + FreeRTOS provides a set of timer related API functions. Many of these functions use a standard + FreeRTOS queue to send commands to the timer service task. The queue used for this purpose is + called the 'timer command queue'. The 'timer command queue' is private to the FreeRTOS timer + implementation, and cannot be accessed directly. - For most uses the default value of 10 is OK. + For most uses the default value of 10 is OK. -config FREERTOS_QUEUE_REGISTRY_SIZE - int "FreeRTOS queue registry size" - range 0 20 - default 0 - help - FreeRTOS uses the queue registry as a means for kernel aware debuggers to locate queues, semaphores, - and mutexes. The registry allows for a textual name to be associated with a queue for easy identification - within a debugging GUI. A value of 0 will disable queue registry functionality, and a value larger than 0 - will specify the number of queues/semaphores/mutexes that the registry can hold. + config FREERTOS_QUEUE_REGISTRY_SIZE + int "FreeRTOS queue registry size" + range 0 20 + default 0 + help + FreeRTOS uses the queue registry as a means for kernel aware debuggers to locate queues, semaphores, + and mutexes. The registry allows for a textual name to be associated with a queue for easy identification + within a debugging GUI. A value of 0 will disable queue registry functionality, and a value larger than 0 + will specify the number of queues/semaphores/mutexes that the registry can hold. -config FREERTOS_USE_TRACE_FACILITY - bool "Enable FreeRTOS trace facility" - default n - help - If enabled, configUSE_TRACE_FACILITY will be defined as 1 in FreeRTOS. - This will allow the usage of trace facility functions such as - uxTaskGetSystemState(). + config FREERTOS_USE_TRACE_FACILITY + bool "Enable FreeRTOS trace facility" + default n + help + If enabled, configUSE_TRACE_FACILITY will be defined as 1 in FreeRTOS. + This will allow the usage of trace facility functions such as + uxTaskGetSystemState(). -config FREERTOS_USE_STATS_FORMATTING_FUNCTIONS - bool "Enable FreeRTOS stats formatting functions" - depends on FREERTOS_USE_TRACE_FACILITY - default n - help - If enabled, configUSE_STATS_FORMATTING_FUNCTIONS will be defined as 1 in - FreeRTOS. This will allow the usage of stats formatting functions such - as vTaskList(). + config FREERTOS_USE_STATS_FORMATTING_FUNCTIONS + bool "Enable FreeRTOS stats formatting functions" + depends on FREERTOS_USE_TRACE_FACILITY + default n + help + If enabled, configUSE_STATS_FORMATTING_FUNCTIONS will be defined as 1 in + FreeRTOS. This will allow the usage of stats formatting functions such + as vTaskList(). -config FREERTOS_VTASKLIST_INCLUDE_COREID - bool "Enable display of xCoreID in vTaskList" - depends on FREERTOS_USE_STATS_FORMATTING_FUNCTIONS - default n - help - If enabled, this will include an extra column when vTaskList is called - to display the CoreID the task is pinned to (0,1) or -1 if not pinned. + config FREERTOS_VTASKLIST_INCLUDE_COREID + bool "Enable display of xCoreID in vTaskList" + depends on FREERTOS_USE_STATS_FORMATTING_FUNCTIONS + default n + help + If enabled, this will include an extra column when vTaskList is called + to display the CoreID the task is pinned to (0,1) or -1 if not pinned. -config FREERTOS_GENERATE_RUN_TIME_STATS - bool "Enable FreeRTOS to collect run time stats" - default n - select FREERTOS_USE_TRACE_FACILITY - select FREERTOS_USE_STATS_FORMATTING_FUNCTIONS - help - If enabled, configGENERATE_RUN_TIME_STATS will be defined as 1 in - FreeRTOS. This will allow FreeRTOS to collect information regarding the - usage of processor time amongst FreeRTOS tasks. Run time stats are - generated using either the ESP Timer or the CPU Clock as the clock - source (Note that run time stats are only valid until the clock source - overflows). The function vTaskGetRunTimeStats() will also be available - if FREERTOS_USE_STATS_FORMATTING_FUNCTIONS and - FREERTOS_USE_TRACE_FACILITY are enabled. vTaskGetRunTimeStats() will - display the run time of each task as a % of the total run time of all - CPUs (task run time / no of CPUs) / (total run time / 100 ) - - -choice FREERTOS_RUN_TIME_STATS_CLK - prompt "Choose the clock source for run time stats" - depends on FREERTOS_GENERATE_RUN_TIME_STATS - default FREERTOS_RUN_TIME_STATS_USING_ESP_TIMER - help - Choose the clock source for FreeRTOS run time stats. Options are CPU0's - CPU Clock or the ESP Timer. Both clock sources are 32 bits. The CPU - Clock can run at a higher frequency hence provide a finer resolution - but will overflow much quicker. Note that run time stats are only valid - until the clock source overflows. - -config FREERTOS_RUN_TIME_STATS_USING_ESP_TIMER - bool "Use ESP TIMER for run time stats" - help - ESP Timer will be used as the clock source for FreeRTOS run time stats. - The ESP Timer runs at a frequency of 1MHz regardless of Dynamic - Frequency Scaling. Therefore the ESP Timer will overflow in - approximately 4290 seconds. + config FREERTOS_GENERATE_RUN_TIME_STATS + bool "Enable FreeRTOS to collect run time stats" + default n + select FREERTOS_USE_TRACE_FACILITY + select FREERTOS_USE_STATS_FORMATTING_FUNCTIONS + help + If enabled, configGENERATE_RUN_TIME_STATS will be defined as 1 in + FreeRTOS. This will allow FreeRTOS to collect information regarding the + usage of processor time amongst FreeRTOS tasks. Run time stats are + generated using either the ESP Timer or the CPU Clock as the clock + source (Note that run time stats are only valid until the clock source + overflows). The function vTaskGetRunTimeStats() will also be available + if FREERTOS_USE_STATS_FORMATTING_FUNCTIONS and + FREERTOS_USE_TRACE_FACILITY are enabled. vTaskGetRunTimeStats() will + display the run time of each task as a % of the total run time of all + CPUs (task run time / no of CPUs) / (total run time / 100 ) -config FREERTOS_RUN_TIME_STATS_USING_CPU_CLK - bool "Use CPU Clock for run time stats" - help - CPU Clock will be used as the clock source for the generation of run - time stats. The CPU Clock has a frequency dependent on - ESP32_DEFAULT_CPU_FREQ_MHZ and Dynamic Frequency Scaling (DFS). - Therefore the CPU Clock frequency can fluctuate between 80 to 240MHz. - Run time stats generated using the CPU Clock represents the number of - CPU cycles each task is allocated and DOES NOT reflect the amount of - time each task runs for (as CPU clock frequency can change). If the CPU - clock consistently runs at the maximum frequency of 240MHz, it will - overflow in approximately 17 seconds. -endchoice + choice FREERTOS_RUN_TIME_STATS_CLK + prompt "Choose the clock source for run time stats" + depends on FREERTOS_GENERATE_RUN_TIME_STATS + default FREERTOS_RUN_TIME_STATS_USING_ESP_TIMER + help + Choose the clock source for FreeRTOS run time stats. Options are CPU0's + CPU Clock or the ESP Timer. Both clock sources are 32 bits. The CPU + Clock can run at a higher frequency hence provide a finer resolution + but will overflow much quicker. Note that run time stats are only valid + until the clock source overflows. -config FREERTOS_USE_TICKLESS_IDLE - bool "Tickless idle support" - depends on PM_ENABLE - default n - help - If power management support is enabled, FreeRTOS will be able to put - the system into light sleep mode when no tasks need to run for a number - of ticks. This number can be set using FREERTOS_IDLE_TIME_BEFORE_SLEEP option. - This feature is also known as "automatic light sleep". + config FREERTOS_RUN_TIME_STATS_USING_ESP_TIMER + bool "Use ESP TIMER for run time stats" + help + ESP Timer will be used as the clock source for FreeRTOS run time stats. + The ESP Timer runs at a frequency of 1MHz regardless of Dynamic + Frequency Scaling. Therefore the ESP Timer will overflow in + approximately 4290 seconds. - Note that timers created using esp_timer APIs may prevent the system from - entering sleep mode, even when no tasks need to run. + config FREERTOS_RUN_TIME_STATS_USING_CPU_CLK + bool "Use CPU Clock for run time stats" + help + CPU Clock will be used as the clock source for the generation of run + time stats. The CPU Clock has a frequency dependent on + ESP32_DEFAULT_CPU_FREQ_MHZ and Dynamic Frequency Scaling (DFS). + Therefore the CPU Clock frequency can fluctuate between 80 to 240MHz. + Run time stats generated using the CPU Clock represents the number of + CPU cycles each task is allocated and DOES NOT reflect the amount of + time each task runs for (as CPU clock frequency can change). If the CPU + clock consistently runs at the maximum frequency of 240MHz, it will + overflow in approximately 17 seconds. - If disabled, automatic light sleep support will be disabled. + endchoice -config FREERTOS_IDLE_TIME_BEFORE_SLEEP - int "Minimum number of ticks to enter sleep mode for" - depends on FREERTOS_USE_TICKLESS_IDLE - default 3 - range 2 4294967295 - # Minimal value is 2 because of a check in FreeRTOS.h (search configEXPECTED_IDLE_TIME_BEFORE_SLEEP) - help - FreeRTOS will enter light sleep mode if no tasks need to run for this number - of ticks. + config FREERTOS_USE_TICKLESS_IDLE + bool "Tickless idle support" + depends on PM_ENABLE + default n + help + If power management support is enabled, FreeRTOS will be able to put + the system into light sleep mode when no tasks need to run for a number + of ticks. This number can be set using FREERTOS_IDLE_TIME_BEFORE_SLEEP option. + This feature is also known as "automatic light sleep". -menuconfig FREERTOS_DEBUG_INTERNALS - bool "Debug FreeRTOS internals" - default n - help - Enable this option to show the menu with internal FreeRTOS debugging features. - This option does not change any code by itself, it just shows/hides some options. + Note that timers created using esp_timer APIs may prevent the system from + entering sleep mode, even when no tasks need to run. -if FREERTOS_DEBUG_INTERNALS + If disabled, automatic light sleep support will be disabled. -config FREERTOS_PORTMUX_DEBUG - bool "Debug portMUX portENTER_CRITICAL/portEXIT_CRITICAL" - depends on FREERTOS_DEBUG_INTERNALS - default n - help - If enabled, debug information (including integrity checks) will be printed - to UART for the port-specific MUX implementation. + config FREERTOS_IDLE_TIME_BEFORE_SLEEP + int "Minimum number of ticks to enter sleep mode for" + depends on FREERTOS_USE_TICKLESS_IDLE + default 3 + range 2 4294967295 + # Minimal value is 2 because of a check in FreeRTOS.h (search configEXPECTED_IDLE_TIME_BEFORE_SLEEP) + help + FreeRTOS will enter light sleep mode if no tasks need to run for this number + of ticks. -if !FREERTOS_UNICORE -config FREERTOS_PORTMUX_DEBUG_RECURSIVE - bool "Debug portMUX Recursion" - depends on FREERTOS_PORTMUX_DEBUG - default n - help - If enabled, additional debug information will be printed for recursive - portMUX usage. -endif #FREERTOS_UNICORE + menuconfig FREERTOS_DEBUG_INTERNALS + bool "Debug FreeRTOS internals" + default n + help + Enable this option to show the menu with internal FreeRTOS debugging features. + This option does not change any code by itself, it just shows/hides some options. -endif # FREERTOS_DEBUG_INTERNALS + if FREERTOS_DEBUG_INTERNALS -config FREERTOS_TASK_FUNCTION_WRAPPER - bool "Enclose all task functions in a wrapper function" - depends on OPTIMIZATION_LEVEL_DEBUG - default y - help - If enabled, all FreeRTOS task functions will be enclosed in a wrapper function. - If a task function mistakenly returns (i.e. does not delete), the call flow will - return to the wrapper function. The wrapper function will then log an error and - abort the application. This option is also required for GDB backtraces and C++ - exceptions to work correctly inside top-level task functions. + config FREERTOS_PORTMUX_DEBUG + bool "Debug portMUX portENTER_CRITICAL/portEXIT_CRITICAL" + depends on FREERTOS_DEBUG_INTERNALS + default n + help + If enabled, debug information (including integrity checks) will be printed + to UART for the port-specific MUX implementation. + + if !FREERTOS_UNICORE + config FREERTOS_PORTMUX_DEBUG_RECURSIVE + bool "Debug portMUX Recursion" + depends on FREERTOS_PORTMUX_DEBUG + default n + help + If enabled, additional debug information will be printed for recursive + portMUX usage. + endif #FREERTOS_UNICORE + + endif # FREERTOS_DEBUG_INTERNALS + + config FREERTOS_TASK_FUNCTION_WRAPPER + bool "Enclose all task functions in a wrapper function" + depends on OPTIMIZATION_LEVEL_DEBUG + default y + help + If enabled, all FreeRTOS task functions will be enclosed in a wrapper function. + If a task function mistakenly returns (i.e. does not delete), the call flow will + return to the wrapper function. The wrapper function will then log an error and + abort the application. This option is also required for GDB backtraces and C++ + exceptions to work correctly inside top-level task functions. endmenu diff --git a/components/heap/Kconfig b/components/heap/Kconfig index 8745561ed8..b2e00ab3a0 100644 --- a/components/heap/Kconfig +++ b/components/heap/Kconfig @@ -1,49 +1,49 @@ menu "Heap memory debugging" -choice HEAP_CORRUPTION_DETECTION - prompt "Heap corruption detection" - default HEAP_POISONING_DISABLED - help - Enable heap poisoning features to detect heap corruption caused by out-of-bounds access to heap memory. + choice HEAP_CORRUPTION_DETECTION + prompt "Heap corruption detection" + default HEAP_POISONING_DISABLED + help + Enable heap poisoning features to detect heap corruption caused by out-of-bounds access to heap memory. - See the "Heap Memory Debugging" page of the IDF documentation - for a description of each level of heap corruption detection. + See the "Heap Memory Debugging" page of the IDF documentation + for a description of each level of heap corruption detection. -config HEAP_POISONING_DISABLED - bool "Basic (no poisoning)" -config HEAP_POISONING_LIGHT - bool "Light impact" -config HEAP_POISONING_COMPREHENSIVE - bool "Comprehensive" -endchoice + config HEAP_POISONING_DISABLED + bool "Basic (no poisoning)" + config HEAP_POISONING_LIGHT + bool "Light impact" + config HEAP_POISONING_COMPREHENSIVE + bool "Comprehensive" + endchoice -config HEAP_TRACING - bool "Enable heap tracing" - help - Enables the heap tracing API defined in esp_heap_trace.h. + config HEAP_TRACING + bool "Enable heap tracing" + help + Enables the heap tracing API defined in esp_heap_trace.h. - This function causes a moderate increase in IRAM code side and a minor increase in heap function - (malloc/free/realloc) CPU overhead, even when the tracing feature is not used. So it's best to keep it disabled - unless tracing is being used. + This function causes a moderate increase in IRAM code side and a minor increase in heap function + (malloc/free/realloc) CPU overhead, even when the tracing feature is not used. So it's best to keep it + disabled unless tracing is being used. -config HEAP_TRACING_STACK_DEPTH - int "Heap tracing stack depth" - range 0 10 - default 2 - depends on HEAP_TRACING - help - Number of stack frames to save when tracing heap operation callers. + config HEAP_TRACING_STACK_DEPTH + int "Heap tracing stack depth" + range 0 10 + default 2 + depends on HEAP_TRACING + help + Number of stack frames to save when tracing heap operation callers. - More stack frames uses more memory in the heap trace buffer (and slows down allocation), but - can provide useful information. + More stack frames uses more memory in the heap trace buffer (and slows down allocation), but + can provide useful information. -config HEAP_TASK_TRACKING - bool "Enable heap task tracking" - depends on !HEAP_POISONING_DISABLED - help - Enables tracking the task responsible for each heap allocation. + config HEAP_TASK_TRACKING + bool "Enable heap task tracking" + depends on !HEAP_POISONING_DISABLED + help + Enables tracking the task responsible for each heap allocation. - This function depends on heap poisoning being enabled and adds four more bytes of overhead for each block - allocated. + This function depends on heap poisoning being enabled and adds four more bytes of overhead for each block + allocated. endmenu diff --git a/components/libsodium/Kconfig b/components/libsodium/Kconfig index 045538c102..4d500f2b26 100644 --- a/components/libsodium/Kconfig +++ b/components/libsodium/Kconfig @@ -1,15 +1,15 @@ menu "libsodium" -config LIBSODIUM_USE_MBEDTLS_SHA - bool "Use mbedTLS SHA256 & SHA512 implementations" - default y - depends on !MBEDTLS_HARDWARE_SHA - help - If this option is enabled, libsodium will use thin wrappers - around mbedTLS for SHA256 & SHA512 operations. + config LIBSODIUM_USE_MBEDTLS_SHA + bool "Use mbedTLS SHA256 & SHA512 implementations" + default y + depends on !MBEDTLS_HARDWARE_SHA + help + If this option is enabled, libsodium will use thin wrappers + around mbedTLS for SHA256 & SHA512 operations. - This saves some code size if mbedTLS is also used. However it - is incompatible with hardware SHA acceleration (due to the - way libsodium's API manages SHA state). + This saves some code size if mbedTLS is also used. However it + is incompatible with hardware SHA acceleration (due to the + way libsodium's API manages SHA state). endmenu # libsodium diff --git a/components/log/Kconfig b/components/log/Kconfig index 43e3a523ff..9266ccfa32 100644 --- a/components/log/Kconfig +++ b/components/log/Kconfig @@ -1,48 +1,48 @@ menu "Log output" -choice LOG_DEFAULT_LEVEL - bool "Default log verbosity" - default LOG_DEFAULT_LEVEL_INFO - help - Specify how much output to see in logs by default. - You can set lower verbosity level at runtime using - esp_log_level_set function. - - Note that this setting limits which log statements - are compiled into the program. So setting this to, say, - "Warning" would mean that changing log level to "Debug" - at runtime will not be possible. + choice LOG_DEFAULT_LEVEL + bool "Default log verbosity" + default LOG_DEFAULT_LEVEL_INFO + help + Specify how much output to see in logs by default. + You can set lower verbosity level at runtime using + esp_log_level_set function. -config LOG_DEFAULT_LEVEL_NONE - bool "No output" -config LOG_DEFAULT_LEVEL_ERROR - bool "Error" -config LOG_DEFAULT_LEVEL_WARN - bool "Warning" -config LOG_DEFAULT_LEVEL_INFO - bool "Info" -config LOG_DEFAULT_LEVEL_DEBUG - bool "Debug" -config LOG_DEFAULT_LEVEL_VERBOSE - bool "Verbose" -endchoice + Note that this setting limits which log statements + are compiled into the program. So setting this to, say, + "Warning" would mean that changing log level to "Debug" + at runtime will not be possible. -config LOG_DEFAULT_LEVEL - int - default 0 if LOG_DEFAULT_LEVEL_NONE - default 1 if LOG_DEFAULT_LEVEL_ERROR - default 2 if LOG_DEFAULT_LEVEL_WARN - default 3 if LOG_DEFAULT_LEVEL_INFO - default 4 if LOG_DEFAULT_LEVEL_DEBUG - default 5 if LOG_DEFAULT_LEVEL_VERBOSE + config LOG_DEFAULT_LEVEL_NONE + bool "No output" + config LOG_DEFAULT_LEVEL_ERROR + bool "Error" + config LOG_DEFAULT_LEVEL_WARN + bool "Warning" + config LOG_DEFAULT_LEVEL_INFO + bool "Info" + config LOG_DEFAULT_LEVEL_DEBUG + bool "Debug" + config LOG_DEFAULT_LEVEL_VERBOSE + bool "Verbose" + endchoice -config LOG_COLORS - bool "Use ANSI terminal colors in log output" - default "y" - help - Enable ANSI terminal color codes in bootloader output. + config LOG_DEFAULT_LEVEL + int + default 0 if LOG_DEFAULT_LEVEL_NONE + default 1 if LOG_DEFAULT_LEVEL_ERROR + default 2 if LOG_DEFAULT_LEVEL_WARN + default 3 if LOG_DEFAULT_LEVEL_INFO + default 4 if LOG_DEFAULT_LEVEL_DEBUG + default 5 if LOG_DEFAULT_LEVEL_VERBOSE - In order to view these, your terminal program must support ANSI color codes. + config LOG_COLORS + bool "Use ANSI terminal colors in log output" + default "y" + help + Enable ANSI terminal color codes in bootloader output. + + In order to view these, your terminal program must support ANSI color codes. endmenu diff --git a/components/lwip/Kconfig b/components/lwip/Kconfig index 9e2e77c34a..2d7c5731ec 100644 --- a/components/lwip/Kconfig +++ b/components/lwip/Kconfig @@ -1,546 +1,546 @@ menu "LWIP" -config L2_TO_L3_COPY - bool "Enable copy between Layer2 and Layer3 packets" - default n - help - If this feature is enabled, all traffic from layer2(WIFI Driver) will be - copied to a new buffer before sending it to layer3(LWIP stack), freeing - the layer2 buffer. - Please be notified that the total layer2 receiving buffer is fixed and - ESP32 currently supports 25 layer2 receiving buffer, when layer2 buffer - runs out of memory, then the incoming packets will be dropped in hardware. - The layer3 buffer is allocated from the heap, so the total layer3 receiving - buffer depends on the available heap size, when heap runs out of memory, - no copy will be sent to layer3 and packet will be dropped in layer2. - Please make sure you fully understand the impact of this feature before - enabling it. - -config LWIP_IRAM_OPTIMIZATION - bool "Enable LWIP IRAM optimization" - default n - help - If this feature is enabled, some functions relating to RX/TX in LWIP will be - put into IRAM, it can improve UDP/TCP throughput by >10% for single core mode, - it doesn't help too much for dual core mode. On the other hand, it needs about - 10KB IRAM for these optimizations. - - If this feature is disabled, all lwip functions will be put into FLASH. - -config LWIP_MAX_SOCKETS - int "Max number of open sockets" - range 1 16 - default 10 - help - Sockets take up a certain amount of memory, and allowing fewer - sockets to be open at the same time conserves memory. Specify - the maximum amount of sockets here. The valid value is from 1 - to 16. - -config USE_ONLY_LWIP_SELECT - bool "Support LWIP socket select() only" - default n - help - The virtual filesystem layer of select() redirects sockets to - lwip_select() and non-socket file descriptors to their respective driver - implementations. If this option is enabled then all calls of select() - will be redirected to lwip_select(), therefore, select can be used - for sockets only. - -config LWIP_SO_REUSE - bool "Enable SO_REUSEADDR option" - default y - help - Enabling this option allows binding to a port which remains in - TIME_WAIT. - -config LWIP_SO_REUSE_RXTOALL - bool "SO_REUSEADDR copies broadcast/multicast to all matches" - depends on LWIP_SO_REUSE - default y - help - Enabling this option means that any incoming broadcast or multicast - packet will be copied to all of the local sockets that it matches - (may be more than one if SO_REUSEADDR is set on the socket.) - - This increases memory overhead as the packets need to be copied, - however they are only copied per matching socket. You can safely - disable it if you don't plan to receive broadcast or multicast - traffic on more than one socket at a time. - -config LWIP_SO_RCVBUF - bool "Enable SO_RCVBUF option" - default n - help - Enabling this option allows checking for available data on a netconn. - -config LWIP_DHCP_MAX_NTP_SERVERS - int "Maximum number of NTP servers" - default 1 - range 1 16 - help - Set maximum number of NTP servers used by LwIP SNTP module. - First argument of sntp_setserver/sntp_setservername functions - is limited to this value. - -config LWIP_IP_FRAG - bool "Enable fragment outgoing IP packets" - default n - help - Enabling this option allows fragmenting outgoing IP packets if their size - exceeds MTU. - -config LWIP_IP_REASSEMBLY - bool "Enable reassembly incoming fragmented IP packets" - default n - help - Enabling this option allows reassemblying incoming fragmented IP packets. - -config LWIP_STATS - bool "Enable LWIP statistics" - default n - help - Enabling this option allows LWIP statistics - -config LWIP_ETHARP_TRUST_IP_MAC - bool "Enable LWIP ARP trust" - default n - help - Enabling this option allows ARP table to be updated. - - If this option is enabled, the incoming IP packets cause the ARP table to be - updated with the source MAC and IP addresses supplied in the packet. - You may want to disable this if you do not trust LAN peers to have the - correct addresses, or as a limited approach to attempt to handle - spoofing. If disabled, lwIP will need to make a new ARP request if - the peer is not already in the ARP table, adding a little latency. - The peer *is* in the ARP table if it requested our address before. - Also notice that this slows down input processing of every IP packet! - - There are two known issues in real application if this feature is enabled: - - The LAN peer may have bug to update the ARP table after the ARP entry is aged out. - If the ARP entry on the LAN peer is aged out but failed to be updated, all IP packets - sent from LWIP to the LAN peer will be dropped by LAN peer. - - The LAN peer may not be trustful, the LAN peer may send IP packets to LWIP with - two different MACs, but the same IP address. If this happens, the LWIP has problem - to receive IP packets from LAN peer. - - So the recommendation is to disable this option. - Here the LAN peer means the other side to which the ESP station or soft-AP is connected. - -config ESP_GRATUITOUS_ARP - bool "Send gratuitous ARP periodically" - default y - help - Enable this option allows to send gratuitous ARP periodically. - - This option solve the compatibility issues.If the ARP table of the AP is old, and the AP - doesn't send ARP request to update it's ARP table, this will lead to the STA sending IP packet fail. - Thus we send gratuitous ARP periodically to let AP update it's ARP table. - -config GARP_TMR_INTERVAL - int "GARP timer interval(seconds)" - default 60 - depends on ESP_GRATUITOUS_ARP - help - Set the timer interval for gratuitous ARP. The default value is 60s - -config TCPIP_RECVMBOX_SIZE - int "TCPIP task receive mail box size" - default 32 - range 6 64 - help - Set TCPIP task receive mail box size. Generally bigger value means higher throughput - but more memory. The value should be bigger than UDP/TCP mail box size. - -config LWIP_DHCP_DOES_ARP_CHECK - bool "DHCP: Perform ARP check on any offered address" - default y - help - Enabling this option performs a check (via ARP request) if the offered IP address - is not already in use by another host on the network. - -config LWIP_DHCP_RESTORE_LAST_IP - bool "DHCP: Restore last IP obtained from DHCP server" - default n - help - When this option is enabled, DHCP client tries to re-obtain last valid IP address obtained from DHCP server. - Last valid DHCP configuration is stored in nvs and restored after reset/power-up. If IP is still available, - there is no need for sending discovery message to DHCP server and save some time. - -menu "DHCP server" - -config LWIP_DHCPS_LEASE_UNIT - int "Multiplier for lease time, in seconds" - range 1 3600 - default 60 - help - The DHCP server is calculating lease time multiplying the sent - and received times by this number of seconds per unit. - The default is 60, that equals one minute. - -config LWIP_DHCPS_MAX_STATION_NUM - int "Maximum number of stations" - range 1 64 - default 8 - help - The maximum number of DHCP clients that are connected to the server. - After this number is exceeded, DHCP server removes of the oldest device - from it's address pool, without notification. - -endmenu # DHCPS - -menuconfig LWIP_AUTOIP - bool "Enable IPV4 Link-Local Addressing (AUTOIP)" - default n - help - Enabling this option allows the device to self-assign an address - in the 169.256/16 range if none is assigned statically or via DHCP. - - See RFC 3927. - -config LWIP_AUTOIP_TRIES - int "DHCP Probes before self-assigning IPv4 LL address" - range 1 100 - default 2 - depends on LWIP_AUTOIP - help - DHCP client will send this many probes before self-assigning a - link local address. - - From LWIP help: "This can be set as low as 1 to get an AutoIP - address very quickly, but you should be prepared to handle a - changing IP address when DHCP overrides AutoIP." (In the case of - ESP-IDF, this means multiple SYSTEM_EVENT_STA_GOT_IP events.) - -config LWIP_AUTOIP_MAX_CONFLICTS - int "Max IP conflicts before rate limiting" - range 1 100 - default 9 - depends on LWIP_AUTOIP - help - If the AUTOIP functionality detects this many IP conflicts while - self-assigning an address, it will go into a rate limited mode. - -config LWIP_AUTOIP_RATE_LIMIT_INTERVAL - int "Rate limited interval (seconds)" - range 5 120 - default 20 - depends on LWIP_AUTOIP - help - If rate limiting self-assignment requests, wait this long between - each request. - -menuconfig LWIP_NETIF_LOOPBACK - bool "Support per-interface loopback" - default y - help - Enabling this option means that if a packet is sent with a destination - address equal to the interface's own IP address, it will "loop back" and - be received by this interface. - -config LWIP_LOOPBACK_MAX_PBUFS - int "Max queued loopback packets per interface" - range 0 16 - default 8 - depends on LWIP_NETIF_LOOPBACK - help - Configure the maximum number of packets which can be queued for - loopback on a given interface. Reducing this number may cause packets - to be dropped, but will avoid filling memory with queued packet data. - -menu "TCP" - -config LWIP_MAX_ACTIVE_TCP - int "Maximum active TCP Connections" - range 1 1024 - default 16 - help - The maximum number of simultaneously active TCP - connections. The practical maximum limit is - determined by available heap memory at runtime. - - Changing this value by itself does not substantially - change the memory usage of LWIP, except for preventing - new TCP connections after the limit is reached. - -config LWIP_MAX_LISTENING_TCP - int "Maximum listening TCP Connections" - range 1 1024 - default 16 - help - The maximum number of simultaneously listening TCP - connections. The practical maximum limit is - determined by available heap memory at runtime. - - Changing this value by itself does not substantially - change the memory usage of LWIP, except for preventing - new listening TCP connections after the limit is reached. - - -config TCP_MAXRTX - int "Maximum number of retransmissions of data segments" - default 12 - range 3 12 - help - Set maximum number of retransmissions of data segments. - -config TCP_SYNMAXRTX - int "Maximum number of retransmissions of SYN segments" - default 6 - range 3 12 - help - Set maximum number of retransmissions of SYN segments. - -config TCP_MSS - int "Maximum Segment Size (MSS)" - default 1436 - range 1220 1436 - help - Set maximum segment size for TCP transmission. - - Can be set lower to save RAM, the default value 1436 will give best throughput. - -config TCP_MSL - int "Maximum segment lifetime (MSL)" - default 60000 - help - Set maximum segment lifetime in in milliseconds. - -config TCP_SND_BUF_DEFAULT - int "Default send buffer size" - default 5744 # 4 * default MSS - range 2440 65535 - help - Set default send buffer size for new TCP sockets. - - Per-socket send buffer size can be changed at runtime - with lwip_setsockopt(s, TCP_SNDBUF, ...). - - This value must be at least 2x the MSS size, and the default - is 4x the default MSS size. - - Setting a smaller default SNDBUF size can save some RAM, but - will decrease performance. - -config TCP_WND_DEFAULT - int "Default receive window size" - default 5744 # 4 * default MSS - range 2440 65535 - help - Set default TCP receive window size for new TCP sockets. - - Per-socket receive window size can be changed at runtime - with lwip_setsockopt(s, TCP_WINDOW, ...). - - Setting a smaller default receive window size can save some RAM, - but will significantly decrease performance. - -config TCP_RECVMBOX_SIZE - int "Default TCP receive mail box size" - default 6 - range 6 64 - help - Set TCP receive mail box size. Generally bigger value means higher throughput - but more memory. The recommended value is: TCP_WND_DEFAULT/TCP_MSS + 2, e.g. if - TCP_WND_DEFAULT=14360, TCP_MSS=1436, then the recommended receive mail box size is - (14360/1436 + 2) = 12. - - TCP receive mail box is a per socket mail box, when the application receives packets - from TCP socket, LWIP core firstly posts the packets to TCP receive mail box and the - application then fetches the packets from mail box. It means LWIP can caches maximum - TCP_RECCVMBOX_SIZE packets for each TCP socket, so the maximum possible cached TCP packets - for all TCP sockets is TCP_RECCVMBOX_SIZE multiples the maximum TCP socket number. In other - words, the bigger TCP_RECVMBOX_SIZE means more memory. - On the other hand, if the receiv mail box is too small, the mail box may be full. If the - mail box is full, the LWIP drops the packets. So generally we need to make sure the TCP - receive mail box is big enough to avoid packet drop between LWIP core and application. - -config TCP_QUEUE_OOSEQ - bool "Queue incoming out-of-order segments" - default y - help - Queue incoming out-of-order segments for later use. - - Disable this option to save some RAM during TCP sessions, at the expense - of increased retransmissions if segments arrive out of order. - -config ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES - bool "Keep TCP connections when IP changed" - default n - help - This option is enabled when the following scenario happen: - network dropped and reconnected, IP changes is like: 192.168.0.2->0.0.0.0->192.168.0.2 - - Disable this option to keep consistent with the original LWIP code behavior. - - -choice TCP_OVERSIZE - prompt "Pre-allocate transmit PBUF size" - default TCP_OVERSIZE_MSS - help - Allows enabling "oversize" allocation of TCP transmission pbufs ahead of time, - which can reduce the length of pbuf chains used for transmission. - - This will not make a difference to sockets where Nagle's algorithm - is disabled. - - Default value of MSS is fine for most applications, 25% MSS may save - some RAM when only transmitting small amounts of data. Disabled will - have worst performance and fragmentation characteristics, but uses - least RAM overall. - -config TCP_OVERSIZE_MSS - bool "MSS" -config TCP_OVERSIZE_QUARTER_MSS - bool "25% MSS" -config TCP_OVERSIZE_DISABLE - bool "Disabled" - -endchoice - -endmenu # TCP - -menu "UDP" - -config LWIP_MAX_UDP_PCBS - int "Maximum active UDP control blocks" - range 1 1024 - default 16 - help - The maximum number of active UDP "connections" (ie - UDP sockets sending/receiving data). - The practical maximum limit is determined by available - heap memory at runtime. - -config UDP_RECVMBOX_SIZE - int "Default UDP receive mail box size" - default 6 - range 6 64 - help - Set UDP receive mail box size. The recommended value is 6. - - UDP receive mail box is a per socket mail box, when the application receives packets - from UDP socket, LWIP core firstly posts the packets to UDP receive mail box and the - application then fetches the packets from mail box. It means LWIP can caches maximum - UDP_RECCVMBOX_SIZE packets for each UDP socket, so the maximum possible cached UDP packets - for all UDP sockets is UDP_RECCVMBOX_SIZE multiples the maximum UDP socket number. In other - words, the bigger UDP_RECVMBOX_SIZE means more memory. - On the other hand, if the receiv mail box is too small, the mail box may be full. If the - mail box is full, the LWIP drops the packets. So generally we need to make sure the UDP - receive mail box is big enough to avoid packet drop between LWIP core and application. - -endmenu # UDP - -config TCPIP_TASK_STACK_SIZE - int "TCP/IP Task Stack Size" - default 3072 - # for high log levels, tcpip_adapter API calls can end up - # a few calls deep and logging there can trigger a stack overflow - range 2048 65536 if LOG_DEFAULT_LEVEL < 4 - range 2560 65536 if LOG_DEFAULT_LEVEL >= 4 - help - Configure TCP/IP task stack size, used by LWIP to process multi-threaded TCP/IP operations. - Setting this stack too small will result in stack overflow crashes. - -choice TCPIP_TASK_AFFINITY - prompt "TCP/IP task affinity" - default TCPIP_TASK_AFFINITY_NO_AFFINITY - help - Allows setting LwIP tasks affinity, i.e. whether the task is pinned to - CPU0, pinned to CPU1, or allowed to run on any CPU. - Currently this applies to "TCP/IP" task and "Ping" task. - -config TCPIP_TASK_AFFINITY_NO_AFFINITY - bool "No affinity" -config TCPIP_TASK_AFFINITY_CPU0 - bool "CPU0" -config TCPIP_TASK_AFFINITY_CPU1 - bool "CPU1" - depends on !FREERTOS_UNICORE - -endchoice - -config TCPIP_TASK_AFFINITY - hex - default FREERTOS_NO_AFFINITY if TCPIP_TASK_AFFINITY_NO_AFFINITY - default 0x0 if TCPIP_TASK_AFFINITY_CPU0 - default 0x1 if TCPIP_TASK_AFFINITY_CPU1 - - -menuconfig PPP_SUPPORT - bool "Enable PPP support (new/experimental)" - default n - help - Enable PPP stack. Now only PPP over serial is possible. - - PPP over serial support is experimental and unsupported. - -config PPP_NOTIFY_PHASE_SUPPORT - bool "Enable Notify Phase Callback" - depends on PPP_SUPPORT - default n - help - Enable to set a callback which is called on change of the internal PPP state machine. - -config PPP_PAP_SUPPORT - bool "Enable PAP support" - depends on PPP_SUPPORT - default n - help - Enable Password Authentication Protocol (PAP) support - -config PPP_CHAP_SUPPORT - bool "Enable CHAP support" - depends on PPP_SUPPORT - default n - help - Enable Challenge Handshake Authentication Protocol (CHAP) support - -config PPP_MSCHAP_SUPPORT - bool "Enable MSCHAP support" - depends on PPP_SUPPORT - default n - help - Enable Microsoft version of the Challenge-Handshake Authentication Protocol (MSCHAP) support - -config PPP_MPPE_SUPPORT - bool "Enable MPPE support" - depends on PPP_SUPPORT - default n - help - Enable Microsoft Point-to-Point Encryption (MPPE) support - -config PPP_DEBUG_ON - bool "Enable PPP debug log output" - depends on PPP_SUPPORT - default n - help - Enable PPP debug log output - -menu "ICMP" - -config LWIP_MULTICAST_PING - bool "Respond to multicast pings" - default n - -config LWIP_BROADCAST_PING - bool "Respond to broadcast pings" - default n - -endmenu # ICMP - -menu "LWIP RAW API" - -config LWIP_MAX_RAW_PCBS - int "Maximum LWIP RAW PCBs" - range 1 1024 - default 16 - help - The maximum number of simultaneously active LWIP - RAW protocol control blocks. The practical maximum - limit is determined by available heap memory at runtime. - -endmenu # LWIP RAW API + config L2_TO_L3_COPY + bool "Enable copy between Layer2 and Layer3 packets" + default n + help + If this feature is enabled, all traffic from layer2(WIFI Driver) will be + copied to a new buffer before sending it to layer3(LWIP stack), freeing + the layer2 buffer. + Please be notified that the total layer2 receiving buffer is fixed and + ESP32 currently supports 25 layer2 receiving buffer, when layer2 buffer + runs out of memory, then the incoming packets will be dropped in hardware. + The layer3 buffer is allocated from the heap, so the total layer3 receiving + buffer depends on the available heap size, when heap runs out of memory, + no copy will be sent to layer3 and packet will be dropped in layer2. + Please make sure you fully understand the impact of this feature before + enabling it. + + config LWIP_IRAM_OPTIMIZATION + bool "Enable LWIP IRAM optimization" + default n + help + If this feature is enabled, some functions relating to RX/TX in LWIP will be + put into IRAM, it can improve UDP/TCP throughput by >10% for single core mode, + it doesn't help too much for dual core mode. On the other hand, it needs about + 10KB IRAM for these optimizations. + + If this feature is disabled, all lwip functions will be put into FLASH. + + config LWIP_MAX_SOCKETS + int "Max number of open sockets" + range 1 16 + default 10 + help + Sockets take up a certain amount of memory, and allowing fewer + sockets to be open at the same time conserves memory. Specify + the maximum amount of sockets here. The valid value is from 1 + to 16. + + config USE_ONLY_LWIP_SELECT + bool "Support LWIP socket select() only" + default n + help + The virtual filesystem layer of select() redirects sockets to + lwip_select() and non-socket file descriptors to their respective driver + implementations. If this option is enabled then all calls of select() + will be redirected to lwip_select(), therefore, select can be used + for sockets only. + + config LWIP_SO_REUSE + bool "Enable SO_REUSEADDR option" + default y + help + Enabling this option allows binding to a port which remains in + TIME_WAIT. + + config LWIP_SO_REUSE_RXTOALL + bool "SO_REUSEADDR copies broadcast/multicast to all matches" + depends on LWIP_SO_REUSE + default y + help + Enabling this option means that any incoming broadcast or multicast + packet will be copied to all of the local sockets that it matches + (may be more than one if SO_REUSEADDR is set on the socket.) + + This increases memory overhead as the packets need to be copied, + however they are only copied per matching socket. You can safely + disable it if you don't plan to receive broadcast or multicast + traffic on more than one socket at a time. + + config LWIP_SO_RCVBUF + bool "Enable SO_RCVBUF option" + default n + help + Enabling this option allows checking for available data on a netconn. + + config LWIP_DHCP_MAX_NTP_SERVERS + int "Maximum number of NTP servers" + default 1 + range 1 16 + help + Set maximum number of NTP servers used by LwIP SNTP module. + First argument of sntp_setserver/sntp_setservername functions + is limited to this value. + + config LWIP_IP_FRAG + bool "Enable fragment outgoing IP packets" + default n + help + Enabling this option allows fragmenting outgoing IP packets if their size + exceeds MTU. + + config LWIP_IP_REASSEMBLY + bool "Enable reassembly incoming fragmented IP packets" + default n + help + Enabling this option allows reassemblying incoming fragmented IP packets. + + config LWIP_STATS + bool "Enable LWIP statistics" + default n + help + Enabling this option allows LWIP statistics + + config LWIP_ETHARP_TRUST_IP_MAC + bool "Enable LWIP ARP trust" + default n + help + Enabling this option allows ARP table to be updated. + + If this option is enabled, the incoming IP packets cause the ARP table to be + updated with the source MAC and IP addresses supplied in the packet. + You may want to disable this if you do not trust LAN peers to have the + correct addresses, or as a limited approach to attempt to handle + spoofing. If disabled, lwIP will need to make a new ARP request if + the peer is not already in the ARP table, adding a little latency. + The peer *is* in the ARP table if it requested our address before. + Also notice that this slows down input processing of every IP packet! + + There are two known issues in real application if this feature is enabled: + - The LAN peer may have bug to update the ARP table after the ARP entry is aged out. + If the ARP entry on the LAN peer is aged out but failed to be updated, all IP packets + sent from LWIP to the LAN peer will be dropped by LAN peer. + - The LAN peer may not be trustful, the LAN peer may send IP packets to LWIP with + two different MACs, but the same IP address. If this happens, the LWIP has problem + to receive IP packets from LAN peer. + + So the recommendation is to disable this option. + Here the LAN peer means the other side to which the ESP station or soft-AP is connected. + + config ESP_GRATUITOUS_ARP + bool "Send gratuitous ARP periodically" + default y + help + Enable this option allows to send gratuitous ARP periodically. + + This option solve the compatibility issues.If the ARP table of the AP is old, and the AP + doesn't send ARP request to update it's ARP table, this will lead to the STA sending IP packet fail. + Thus we send gratuitous ARP periodically to let AP update it's ARP table. + + config GARP_TMR_INTERVAL + int "GARP timer interval(seconds)" + default 60 + depends on ESP_GRATUITOUS_ARP + help + Set the timer interval for gratuitous ARP. The default value is 60s + + config TCPIP_RECVMBOX_SIZE + int "TCPIP task receive mail box size" + default 32 + range 6 64 + help + Set TCPIP task receive mail box size. Generally bigger value means higher throughput + but more memory. The value should be bigger than UDP/TCP mail box size. + + config LWIP_DHCP_DOES_ARP_CHECK + bool "DHCP: Perform ARP check on any offered address" + default y + help + Enabling this option performs a check (via ARP request) if the offered IP address + is not already in use by another host on the network. + + config LWIP_DHCP_RESTORE_LAST_IP + bool "DHCP: Restore last IP obtained from DHCP server" + default n + help + When this option is enabled, DHCP client tries to re-obtain last valid IP address obtained from DHCP + server. Last valid DHCP configuration is stored in nvs and restored after reset/power-up. If IP is still + available, there is no need for sending discovery message to DHCP server and save some time. + + menu "DHCP server" + + config LWIP_DHCPS_LEASE_UNIT + int "Multiplier for lease time, in seconds" + range 1 3600 + default 60 + help + The DHCP server is calculating lease time multiplying the sent + and received times by this number of seconds per unit. + The default is 60, that equals one minute. + + config LWIP_DHCPS_MAX_STATION_NUM + int "Maximum number of stations" + range 1 64 + default 8 + help + The maximum number of DHCP clients that are connected to the server. + After this number is exceeded, DHCP server removes of the oldest device + from it's address pool, without notification. + + endmenu # DHCPS + + menuconfig LWIP_AUTOIP + bool "Enable IPV4 Link-Local Addressing (AUTOIP)" + default n + help + Enabling this option allows the device to self-assign an address + in the 169.256/16 range if none is assigned statically or via DHCP. + + See RFC 3927. + + config LWIP_AUTOIP_TRIES + int "DHCP Probes before self-assigning IPv4 LL address" + range 1 100 + default 2 + depends on LWIP_AUTOIP + help + DHCP client will send this many probes before self-assigning a + link local address. + + From LWIP help: "This can be set as low as 1 to get an AutoIP + address very quickly, but you should be prepared to handle a + changing IP address when DHCP overrides AutoIP." (In the case of + ESP-IDF, this means multiple SYSTEM_EVENT_STA_GOT_IP events.) + + config LWIP_AUTOIP_MAX_CONFLICTS + int "Max IP conflicts before rate limiting" + range 1 100 + default 9 + depends on LWIP_AUTOIP + help + If the AUTOIP functionality detects this many IP conflicts while + self-assigning an address, it will go into a rate limited mode. + + config LWIP_AUTOIP_RATE_LIMIT_INTERVAL + int "Rate limited interval (seconds)" + range 5 120 + default 20 + depends on LWIP_AUTOIP + help + If rate limiting self-assignment requests, wait this long between + each request. + + menuconfig LWIP_NETIF_LOOPBACK + bool "Support per-interface loopback" + default y + help + Enabling this option means that if a packet is sent with a destination + address equal to the interface's own IP address, it will "loop back" and + be received by this interface. + + config LWIP_LOOPBACK_MAX_PBUFS + int "Max queued loopback packets per interface" + range 0 16 + default 8 + depends on LWIP_NETIF_LOOPBACK + help + Configure the maximum number of packets which can be queued for + loopback on a given interface. Reducing this number may cause packets + to be dropped, but will avoid filling memory with queued packet data. + + menu "TCP" + + config LWIP_MAX_ACTIVE_TCP + int "Maximum active TCP Connections" + range 1 1024 + default 16 + help + The maximum number of simultaneously active TCP + connections. The practical maximum limit is + determined by available heap memory at runtime. + + Changing this value by itself does not substantially + change the memory usage of LWIP, except for preventing + new TCP connections after the limit is reached. + + config LWIP_MAX_LISTENING_TCP + int "Maximum listening TCP Connections" + range 1 1024 + default 16 + help + The maximum number of simultaneously listening TCP + connections. The practical maximum limit is + determined by available heap memory at runtime. + + Changing this value by itself does not substantially + change the memory usage of LWIP, except for preventing + new listening TCP connections after the limit is reached. + + + config TCP_MAXRTX + int "Maximum number of retransmissions of data segments" + default 12 + range 3 12 + help + Set maximum number of retransmissions of data segments. + + config TCP_SYNMAXRTX + int "Maximum number of retransmissions of SYN segments" + default 6 + range 3 12 + help + Set maximum number of retransmissions of SYN segments. + + config TCP_MSS + int "Maximum Segment Size (MSS)" + default 1436 + range 1220 1436 + help + Set maximum segment size for TCP transmission. + + Can be set lower to save RAM, the default value 1436 will give best throughput. + + config TCP_MSL + int "Maximum segment lifetime (MSL)" + default 60000 + help + Set maximum segment lifetime in in milliseconds. + + config TCP_SND_BUF_DEFAULT + int "Default send buffer size" + default 5744 # 4 * default MSS + range 2440 65535 + help + Set default send buffer size for new TCP sockets. + + Per-socket send buffer size can be changed at runtime + with lwip_setsockopt(s, TCP_SNDBUF, ...). + + This value must be at least 2x the MSS size, and the default + is 4x the default MSS size. + + Setting a smaller default SNDBUF size can save some RAM, but + will decrease performance. + + config TCP_WND_DEFAULT + int "Default receive window size" + default 5744 # 4 * default MSS + range 2440 65535 + help + Set default TCP receive window size for new TCP sockets. + + Per-socket receive window size can be changed at runtime + with lwip_setsockopt(s, TCP_WINDOW, ...). + + Setting a smaller default receive window size can save some RAM, + but will significantly decrease performance. + + config TCP_RECVMBOX_SIZE + int "Default TCP receive mail box size" + default 6 + range 6 64 + help + Set TCP receive mail box size. Generally bigger value means higher throughput + but more memory. The recommended value is: TCP_WND_DEFAULT/TCP_MSS + 2, e.g. if + TCP_WND_DEFAULT=14360, TCP_MSS=1436, then the recommended receive mail box size is + (14360/1436 + 2) = 12. + + TCP receive mail box is a per socket mail box, when the application receives packets + from TCP socket, LWIP core firstly posts the packets to TCP receive mail box and the + application then fetches the packets from mail box. It means LWIP can caches maximum + TCP_RECCVMBOX_SIZE packets for each TCP socket, so the maximum possible cached TCP packets + for all TCP sockets is TCP_RECCVMBOX_SIZE multiples the maximum TCP socket number. In other + words, the bigger TCP_RECVMBOX_SIZE means more memory. + On the other hand, if the receiv mail box is too small, the mail box may be full. If the + mail box is full, the LWIP drops the packets. So generally we need to make sure the TCP + receive mail box is big enough to avoid packet drop between LWIP core and application. + + config TCP_QUEUE_OOSEQ + bool "Queue incoming out-of-order segments" + default y + help + Queue incoming out-of-order segments for later use. + + Disable this option to save some RAM during TCP sessions, at the expense + of increased retransmissions if segments arrive out of order. + + config ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES + bool "Keep TCP connections when IP changed" + default n + help + This option is enabled when the following scenario happen: + network dropped and reconnected, IP changes is like: 192.168.0.2->0.0.0.0->192.168.0.2 + + Disable this option to keep consistent with the original LWIP code behavior. + + + choice TCP_OVERSIZE + prompt "Pre-allocate transmit PBUF size" + default TCP_OVERSIZE_MSS + help + Allows enabling "oversize" allocation of TCP transmission pbufs ahead of time, + which can reduce the length of pbuf chains used for transmission. + + This will not make a difference to sockets where Nagle's algorithm + is disabled. + + Default value of MSS is fine for most applications, 25% MSS may save + some RAM when only transmitting small amounts of data. Disabled will + have worst performance and fragmentation characteristics, but uses + least RAM overall. + + config TCP_OVERSIZE_MSS + bool "MSS" + config TCP_OVERSIZE_QUARTER_MSS + bool "25% MSS" + config TCP_OVERSIZE_DISABLE + bool "Disabled" + + endchoice + + endmenu # TCP + + menu "UDP" + + config LWIP_MAX_UDP_PCBS + int "Maximum active UDP control blocks" + range 1 1024 + default 16 + help + The maximum number of active UDP "connections" (ie + UDP sockets sending/receiving data). + The practical maximum limit is determined by available + heap memory at runtime. + + config UDP_RECVMBOX_SIZE + int "Default UDP receive mail box size" + default 6 + range 6 64 + help + Set UDP receive mail box size. The recommended value is 6. + + UDP receive mail box is a per socket mail box, when the application receives packets + from UDP socket, LWIP core firstly posts the packets to UDP receive mail box and the + application then fetches the packets from mail box. It means LWIP can caches maximum + UDP_RECCVMBOX_SIZE packets for each UDP socket, so the maximum possible cached UDP packets + for all UDP sockets is UDP_RECCVMBOX_SIZE multiples the maximum UDP socket number. In other + words, the bigger UDP_RECVMBOX_SIZE means more memory. + On the other hand, if the receiv mail box is too small, the mail box may be full. If the + mail box is full, the LWIP drops the packets. So generally we need to make sure the UDP + receive mail box is big enough to avoid packet drop between LWIP core and application. + + endmenu # UDP + + config TCPIP_TASK_STACK_SIZE + int "TCP/IP Task Stack Size" + default 3072 + # for high log levels, tcpip_adapter API calls can end up + # a few calls deep and logging there can trigger a stack overflow + range 2048 65536 if LOG_DEFAULT_LEVEL < 4 + range 2560 65536 if LOG_DEFAULT_LEVEL >= 4 + help + Configure TCP/IP task stack size, used by LWIP to process multi-threaded TCP/IP operations. + Setting this stack too small will result in stack overflow crashes. + + choice TCPIP_TASK_AFFINITY + prompt "TCP/IP task affinity" + default TCPIP_TASK_AFFINITY_NO_AFFINITY + help + Allows setting LwIP tasks affinity, i.e. whether the task is pinned to + CPU0, pinned to CPU1, or allowed to run on any CPU. + Currently this applies to "TCP/IP" task and "Ping" task. + + config TCPIP_TASK_AFFINITY_NO_AFFINITY + bool "No affinity" + config TCPIP_TASK_AFFINITY_CPU0 + bool "CPU0" + config TCPIP_TASK_AFFINITY_CPU1 + bool "CPU1" + depends on !FREERTOS_UNICORE + + endchoice + + config TCPIP_TASK_AFFINITY + hex + default FREERTOS_NO_AFFINITY if TCPIP_TASK_AFFINITY_NO_AFFINITY + default 0x0 if TCPIP_TASK_AFFINITY_CPU0 + default 0x1 if TCPIP_TASK_AFFINITY_CPU1 + + + menuconfig PPP_SUPPORT + bool "Enable PPP support (new/experimental)" + default n + help + Enable PPP stack. Now only PPP over serial is possible. + + PPP over serial support is experimental and unsupported. + + config PPP_NOTIFY_PHASE_SUPPORT + bool "Enable Notify Phase Callback" + depends on PPP_SUPPORT + default n + help + Enable to set a callback which is called on change of the internal PPP state machine. + + config PPP_PAP_SUPPORT + bool "Enable PAP support" + depends on PPP_SUPPORT + default n + help + Enable Password Authentication Protocol (PAP) support + + config PPP_CHAP_SUPPORT + bool "Enable CHAP support" + depends on PPP_SUPPORT + default n + help + Enable Challenge Handshake Authentication Protocol (CHAP) support + + config PPP_MSCHAP_SUPPORT + bool "Enable MSCHAP support" + depends on PPP_SUPPORT + default n + help + Enable Microsoft version of the Challenge-Handshake Authentication Protocol (MSCHAP) support + + config PPP_MPPE_SUPPORT + bool "Enable MPPE support" + depends on PPP_SUPPORT + default n + help + Enable Microsoft Point-to-Point Encryption (MPPE) support + + config PPP_DEBUG_ON + bool "Enable PPP debug log output" + depends on PPP_SUPPORT + default n + help + Enable PPP debug log output + + menu "ICMP" + + config LWIP_MULTICAST_PING + bool "Respond to multicast pings" + default n + + config LWIP_BROADCAST_PING + bool "Respond to broadcast pings" + default n + + endmenu # ICMP + + menu "LWIP RAW API" + + config LWIP_MAX_RAW_PCBS + int "Maximum LWIP RAW PCBs" + range 1 1024 + default 16 + help + The maximum number of simultaneously active LWIP + RAW protocol control blocks. The practical maximum + limit is determined by available heap memory at runtime. + + endmenu # LWIP RAW API endmenu diff --git a/components/mbedtls/Kconfig b/components/mbedtls/Kconfig index b17a3edd7b..4ba0180223 100644 --- a/components/mbedtls/Kconfig +++ b/components/mbedtls/Kconfig @@ -1,11 +1,11 @@ menu "mbedTLS" -choice MBEDTLS_MEM_ALLOC_MODE - prompt "Memory allocation strategy" - default MBEDTLS_INTERNAL_MEM_ALLOC - help - Allocation strategy for mbedTLS, essentially provides ability to - allocate all required dynamic allocations from, + choice MBEDTLS_MEM_ALLOC_MODE + prompt "Memory allocation strategy" + default MBEDTLS_INTERNAL_MEM_ALLOC + help + Allocation strategy for mbedTLS, essentially provides ability to + allocate all required dynamic allocations from, - Internal DRAM memory only - External SPIRAM memory only @@ -14,555 +14,555 @@ choice MBEDTLS_MEM_ALLOC_MODE - Custom allocation mode, by overwriting calloc()/free() using mbedtls_platform_set_calloc_free() function - Recommended mode here is always internal, since that is most preferred - from security perspective. But if application requirement does not - allow sufficient free internal memory then alternate mode can be - selected. - -config MBEDTLS_INTERNAL_MEM_ALLOC - bool "Internal memory" - -config MBEDTLS_EXTERNAL_MEM_ALLOC - bool "External SPIRAM" - depends on SPIRAM_SUPPORT - -config MBEDTLS_DEFAULT_MEM_ALLOC - bool "Default alloc mode" - -config MBEDTLS_CUSTOM_MEM_ALLOC - bool "Custom alloc mode" - -endchoice #MBEDTLS_MEM_ALLOC_MODE - -config MBEDTLS_SSL_MAX_CONTENT_LEN - int "TLS maximum message content length" - default 16384 - range 512 16384 - depends on !MBEDTLS_ASYMMETRIC_CONTENT_LEN - help - Maximum TLS message length (in bytes) supported by mbedTLS. - - 16384 is the default and this value is required to comply - fully with TLS standards. - - However you can set a lower value in order to save RAM. This - is safe if the other end of the connection supports Maximum - Fragment Length Negotiation Extension (max_fragment_length, - see RFC6066) or you know for certain that it will never send a - message longer than a certain number of bytes. - - If the value is set too low, symptoms are a failed TLS - handshake or a return value of MBEDTLS_ERR_SSL_INVALID_RECORD - (-0x7200). - -config MBEDTLS_ASYMMETRIC_CONTENT_LEN - bool "Asymmetric in/out fragment length" - default n - help - If enabled, this option allows customizing TLS in/out fragment length - in asymmetric way. Please note that enabling this with default values - saves 12KB of dynamic memory per TLS connection. - -config MBEDTLS_SSL_IN_CONTENT_LEN - int "TLS maximum incoming fragment length" - default 16384 - range 512 16384 - depends on MBEDTLS_ASYMMETRIC_CONTENT_LEN - help - This defines maximum incoming fragment length, overriding default - maximum content length (MBEDTLS_SSL_MAX_CONTENT_LEN). - -config MBEDTLS_SSL_OUT_CONTENT_LEN - int "TLS maximum outgoing fragment length" - default 4096 - range 512 16384 - depends on MBEDTLS_ASYMMETRIC_CONTENT_LEN - help - This defines maximum outgoing fragment length, overriding default - maximum content length (MBEDTLS_SSL_MAX_CONTENT_LEN). - -config MBEDTLS_DEBUG - bool "Enable mbedTLS debugging" - default n - help - Enable mbedTLS debugging functions at compile time. - - If this option is enabled, you can include - "mbedtls/esp_debug.h" and call mbedtls_esp_enable_debug_log() - at runtime in order to enable mbedTLS debug output via the ESP - log mechanism. - -config MBEDTLS_HARDWARE_AES - bool "Enable hardware AES acceleration" - default y - help - Enable hardware accelerated AES encryption & decryption. - - Note that if the ESP32 CPU is running at 240MHz, hardware AES does not - offer any speed boost over software AES. - -config MBEDTLS_HARDWARE_MPI - bool "Enable hardware MPI (bignum) acceleration" - default n - help - Enable hardware accelerated multiple precision integer operations. - - Hardware accelerated multiplication, modulo multiplication, - and modular exponentiation for up to 4096 bit results. - - These operations are used by RSA. - -config MBEDTLS_MPI_USE_INTERRUPT - bool "Use interrupt for MPI operations" - depends on MBEDTLS_HARDWARE_MPI - default n - help - Use an interrupt to coordinate MPI operations. - - This allows other code to run on the CPU while an MPI operation is pending. - Otherwise the CPU busy-waits. - -config MBEDTLS_HARDWARE_SHA - bool "Enable hardware SHA acceleration" - default n - help - Enable hardware accelerated SHA1, SHA256, SHA384 & SHA512 in mbedTLS. - - Due to a hardware limitation, hardware acceleration is only - guaranteed if SHA digests are calculated one at a time. If more - than one SHA digest is calculated at the same time, one will - be calculated fully in hardware and the rest will be calculated - (at least partially calculated) in software. This happens automatically. - - SHA hardware acceleration is faster than software in some situations but - slower in others. You should benchmark to find the best setting for you. - -config MBEDTLS_HAVE_TIME - bool "Enable mbedtls time" - depends on !ESP32_TIME_SYSCALL_USE_NONE - default y - help - System has time.h and time(). - The time does not need to be correct, only time differences are used. - -config MBEDTLS_HAVE_TIME_DATE - bool "Enable mbedtls certificate expiry check" - depends on MBEDTLS_HAVE_TIME - default n - help - System has time.h and time(), gmtime() and the clock is correct. - The time needs to be correct (not necesarily very accurate, but at least - the date should be correct). This is used to verify the validity period of - X.509 certificates. - - It is suggested that you should get the real time by "SNTP". - -choice MBEDTLS_TLS_MODE - bool "TLS Protocol Role" - default MBEDTLS_TLS_SERVER_AND_CLIENT - help - mbedTLS can be compiled with protocol support for the TLS - server, TLS client, or both server and client. - - Reducing the number of TLS roles supported saves code size. - -config MBEDTLS_TLS_SERVER_AND_CLIENT - bool "Server & Client" - select MBEDTLS_TLS_SERVER - select MBEDTLS_TLS_CLIENT -config MBEDTLS_TLS_SERVER_ONLY - bool "Server" - select MBEDTLS_TLS_SERVER -config MBEDTLS_TLS_CLIENT_ONLY - bool "Client" - select MBEDTLS_TLS_CLIENT -config MBEDTLS_TLS_DISABLED - bool "None" - -endchoice - -config MBEDTLS_TLS_SERVER - bool - select MBEDTLS_TLS_ENABLED -config MBEDTLS_TLS_CLIENT - bool - select MBEDTLS_TLS_ENABLED -config MBEDTLS_TLS_ENABLED - bool - -menu "TLS Key Exchange Methods" - depends on MBEDTLS_TLS_ENABLED - -config MBEDTLS_PSK_MODES - bool "Enable pre-shared-key ciphersuites" - default n - help - Enable to show configuration for different types of pre-shared-key TLS authentatication methods. - - Leaving this options disabled will save code size if they are not used. - -config MBEDTLS_KEY_EXCHANGE_PSK - bool "Enable PSK based ciphersuite modes" - depends on MBEDTLS_PSK_MODES - default n - help - Enable to support symmetric key PSK (pre-shared-key) TLS key exchange modes. - -config MBEDTLS_KEY_EXCHANGE_DHE_PSK - bool "Enable DHE-PSK based ciphersuite modes" - depends on MBEDTLS_PSK_MODES - default y - help - Enable to support Diffie-Hellman PSK (pre-shared-key) TLS authentication modes. - -config MBEDTLS_KEY_EXCHANGE_ECDHE_PSK - bool "Enable ECDHE-PSK based ciphersuite modes" - depends on MBEDTLS_PSK_MODES - default y - help - Enable to support Elliptic-Curve-Diffie-Hellman PSK (pre-shared-key) TLS authentication modes. - -config MBEDTLS_KEY_EXCHANGE_RSA_PSK - bool "Enable RSA-PSK based ciphersuite modes" - depends on MBEDTLS_PSK_MODES - default y - help - Enable to support RSA PSK (pre-shared-key) TLS authentication modes. - -config MBEDTLS_KEY_EXCHANGE_RSA - bool "Enable RSA-only based ciphersuite modes" - default y - help - Enable to support ciphersuites with prefix TLS-RSA-WITH- - -config MBEDTLS_KEY_EXCHANGE_DHE_RSA - bool "Enable DHE-RSA based ciphersuite modes" - default y - help - Enable to support ciphersuites with prefix TLS-DHE-RSA-WITH- - -config MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE - bool "Support Elliptic Curve based ciphersuites" - depends on MBEDTLS_ECP_C - default y - help - Enable to show Elliptic Curve based ciphersuite mode options. - - Disabling all Elliptic Curve ciphersuites saves code size and - can give slightly faster TLS handshakes, provided the server supports - RSA-only ciphersuite modes. - -config MBEDTLS_KEY_EXCHANGE_ECDHE_RSA - bool "Enable ECDHE-RSA based ciphersuite modes" - depends on MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE && MBEDTLS_ECDH_C - default y - help - Enable to support ciphersuites with prefix TLS-ECDHE-RSA-WITH- - -config MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA - bool "Enable ECDHE-ECDSA based ciphersuite modes" - depends on MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE && MBEDTLS_ECDH_C && MBEDTLS_ECDSA_C - default y - help - Enable to support ciphersuites with prefix TLS-ECDHE-RSA-WITH- - -config MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA - bool "Enable ECDH-ECDSA based ciphersuite modes" - depends on MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE && MBEDTLS_ECDH_C && MBEDTLS_ECDSA_C - default y - help - Enable to support ciphersuites with prefix TLS-ECDHE-RSA-WITH- - -config MBEDTLS_KEY_EXCHANGE_ECDH_RSA - bool "Enable ECDH-RSA based ciphersuite modes" - depends on MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE && MBEDTLS_ECDH_C - default y - help - Enable to support ciphersuites with prefix TLS-ECDHE-RSA-WITH- - -endmenu # TLS key exchange modes - -config MBEDTLS_SSL_RENEGOTIATION - bool "Support TLS renegotiation" - depends on MBEDTLS_TLS_ENABLED - default y - help - The two main uses of renegotiation are (1) refresh keys on long-lived - connections and (2) client authentication after the initial handshake. - If you don't need renegotiation, disabling it will save code size and - reduce the possibility of abuse/vulnerability. - -config MBEDTLS_SSL_PROTO_SSL3 - bool "Legacy SSL 3.0 support" - depends on MBEDTLS_TLS_ENABLED - default n - help - Support the legacy SSL 3.0 protocol. Most servers will speak a newer - TLS protocol these days. - -config MBEDTLS_SSL_PROTO_TLS1 - bool "Support TLS 1.0 protocol" - depends on MBEDTLS_TLS_ENABLED - default y - -config MBEDTLS_SSL_PROTO_TLS1_1 - bool "Support TLS 1.1 protocol" - depends on MBEDTLS_TLS_ENABLED - default y - -config MBEDTLS_SSL_PROTO_TLS1_2 - bool "Support TLS 1.2 protocol" - depends on MBEDTLS_TLS_ENABLED - default y - -config MBEDTLS_SSL_PROTO_DTLS - bool "Support DTLS protocol (all versions)" - default n - depends on MBEDTLS_SSL_PROTO_TLS1_1 || MBEDTLS_SSL_PROTO_TLS1_2 - help - Requires TLS 1.1 to be enabled for DTLS 1.0 - Requires TLS 1.2 to be enabled for DTLS 1.2 - -config MBEDTLS_SSL_ALPN - bool "Support ALPN (Application Layer Protocol Negotiation)" - depends on MBEDTLS_TLS_ENABLED - default y - help - Disabling this option will save some code size if it is not needed. - -config MBEDTLS_SSL_SESSION_TICKETS - bool "TLS: Support RFC 5077 SSL session tickets" - default y - depends on MBEDTLS_TLS_ENABLED - help - Support RFC 5077 session tickets. See mbedTLS documentation for more details. - - Disabling this option will save some code size. - -menu "Symmetric Ciphers" - -config MBEDTLS_AES_C - bool "AES block cipher" - default y - -config MBEDTLS_CAMELLIA_C - bool "Camellia block cipher" - default n - -config MBEDTLS_DES_C - bool "DES block cipher (legacy, insecure)" - default n - help - Enables the DES block cipher to support 3DES-based TLS ciphersuites. - - 3DES is vulnerable to the Sweet32 attack and should only be enabled - if absolutely necessary. - -choice MBEDTLS_RC4_MODE - prompt "RC4 Stream Cipher (legacy, insecure)" - default MBEDTLS_RC4_DISABLED - help - ARCFOUR (RC4) stream cipher can be disabled entirely, enabled but not - added to default ciphersuites, or enabled completely. - - Please consider the security implications before enabling RC4. - -config MBEDTLS_RC4_DISABLED - bool "Disabled" -config MBEDTLS_RC4_ENABLED_NO_DEFAULT - bool "Enabled, not in default ciphersuites" -config MBEDTLS_RC4_ENABLED - bool "Enabled" -endchoice - -config MBEDTLS_BLOWFISH_C - bool "Blowfish block cipher (read help)" - default n - help - Enables the Blowfish block cipher (not used for TLS sessions.) - - The Blowfish cipher is not used for mbedTLS TLS sessions but can be - used for other purposes. Read up on the limitations of Blowfish (including - Sweet32) before enabling. - -config MBEDTLS_XTEA_C - bool "XTEA block cipher" - default n - help - Enables the XTEA block cipher. - - -config MBEDTLS_CCM_C - bool "CCM (Counter with CBC-MAC) block cipher modes" - default y - depends on MBEDTLS_AES_C || MBEDTLS_CAMELLIA_C - help - Enable Counter with CBC-MAC (CCM) modes for AES and/or Camellia ciphers. - - Disabling this option saves some code size. - -config MBEDTLS_GCM_C - bool "GCM (Galois/Counter) block cipher modes" - default y - depends on MBEDTLS_AES_C || MBEDTLS_CAMELLIA_C - help - Enable Galois/Counter Mode for AES and/or Camellia ciphers. - - This option is generally faster than CCM. - -endmenu # Symmetric Ciphers - -config MBEDTLS_RIPEMD160_C - bool "Enable RIPEMD-160 hash algorithm" - default n - help - Enable the RIPEMD-160 hash algorithm. - -menu "Certificates" - -config MBEDTLS_PEM_PARSE_C - bool "Read & Parse PEM formatted certificates" - default y - help - Enable decoding/parsing of PEM formatted certificates. - - If your certificates are all in the simpler DER format, disabling - this option will save some code size. - -config MBEDTLS_PEM_WRITE_C - bool "Write PEM formatted certificates" - default y - help - Enable writing of PEM formatted certificates. - - If writing certificate data only in DER format, disabling this - option will save some code size. - -config MBEDTLS_X509_CRL_PARSE_C - bool "X.509 CRL parsing" - default y - help - Support for parsing X.509 Certifificate Revocation Lists. - -config MBEDTLS_X509_CSR_PARSE_C - bool "X.509 CSR parsing" - default y - help - Support for parsing X.509 Certifificate Signing Requests - -endmenu # Certificates - -menuconfig MBEDTLS_ECP_C - bool "Elliptic Curve Ciphers" - default y - -config MBEDTLS_ECDH_C - bool "Elliptic Curve Diffie-Hellman (ECDH)" - depends on MBEDTLS_ECP_C - default y - help - Enable ECDH. Needed to use ECDHE-xxx TLS ciphersuites. - -config MBEDTLS_ECDSA_C - bool "Elliptic Curve DSA" - depends on MBEDTLS_ECDH_C - default y - help - Enable ECDSA. Needed to use ECDSA-xxx TLS ciphersuites. - -config MBEDTLS_ECP_DP_SECP192R1_ENABLED - bool "Enable SECP192R1 curve" - depends on MBEDTLS_ECP_C - default y - help - Enable support for SECP192R1 Elliptic Curve. - -config MBEDTLS_ECP_DP_SECP224R1_ENABLED - bool "Enable SECP224R1 curve" - depends on MBEDTLS_ECP_C - default y - help - Enable support for SECP224R1 Elliptic Curve. - -config MBEDTLS_ECP_DP_SECP256R1_ENABLED - bool "Enable SECP256R1 curve" - depends on MBEDTLS_ECP_C - default y - help - Enable support for SECP256R1 Elliptic Curve. - -config MBEDTLS_ECP_DP_SECP384R1_ENABLED - bool "Enable SECP384R1 curve" - depends on MBEDTLS_ECP_C - default y - help - Enable support for SECP384R1 Elliptic Curve. - -config MBEDTLS_ECP_DP_SECP521R1_ENABLED - bool "Enable SECP521R1 curve" - depends on MBEDTLS_ECP_C - default y - help - Enable support for SECP521R1 Elliptic Curve. - -config MBEDTLS_ECP_DP_SECP192K1_ENABLED - bool "Enable SECP192K1 curve" - depends on MBEDTLS_ECP_C - default y - help - Enable support for SECP192K1 Elliptic Curve. - -config MBEDTLS_ECP_DP_SECP224K1_ENABLED - bool "Enable SECP224K1 curve" - depends on MBEDTLS_ECP_C - default y - help - Enable support for SECP224K1 Elliptic Curve. - -config MBEDTLS_ECP_DP_SECP256K1_ENABLED - bool "Enable SECP256K1 curve" - depends on MBEDTLS_ECP_C - default y - help - Enable support for SECP256K1 Elliptic Curve. - -config MBEDTLS_ECP_DP_BP256R1_ENABLED - bool "Enable BP256R1 curve" - depends on MBEDTLS_ECP_C - default y - help - support for DP Elliptic Curve. - -config MBEDTLS_ECP_DP_BP384R1_ENABLED - bool "Enable BP384R1 curve" - depends on MBEDTLS_ECP_C - default y - help - support for DP Elliptic Curve. - -config MBEDTLS_ECP_DP_BP512R1_ENABLED - bool "Enable BP512R1 curve" - depends on MBEDTLS_ECP_C - default y - help - support for DP Elliptic Curve. - -config MBEDTLS_ECP_DP_CURVE25519_ENABLED - bool "Enable CURVE25519 curve" - depends on MBEDTLS_ECP_C - default y - help - Enable support for CURVE25519 Elliptic Curve. - -config MBEDTLS_ECP_NIST_OPTIM - bool "NIST 'modulo p' optimisations" - depends on MBEDTLS_ECP_C - default y - help - NIST 'modulo p' optimisations increase Elliptic Curve operation performance. - - Disabling this option saves some code size. - -# end of Elliptic Curve options + Recommended mode here is always internal, since that is most preferred + from security perspective. But if application requirement does not + allow sufficient free internal memory then alternate mode can be + selected. + + config MBEDTLS_INTERNAL_MEM_ALLOC + bool "Internal memory" + + config MBEDTLS_EXTERNAL_MEM_ALLOC + bool "External SPIRAM" + depends on SPIRAM_SUPPORT + + config MBEDTLS_DEFAULT_MEM_ALLOC + bool "Default alloc mode" + + config MBEDTLS_CUSTOM_MEM_ALLOC + bool "Custom alloc mode" + + endchoice #MBEDTLS_MEM_ALLOC_MODE + + config MBEDTLS_SSL_MAX_CONTENT_LEN + int "TLS maximum message content length" + default 16384 + range 512 16384 + depends on !MBEDTLS_ASYMMETRIC_CONTENT_LEN + help + Maximum TLS message length (in bytes) supported by mbedTLS. + + 16384 is the default and this value is required to comply + fully with TLS standards. + + However you can set a lower value in order to save RAM. This + is safe if the other end of the connection supports Maximum + Fragment Length Negotiation Extension (max_fragment_length, + see RFC6066) or you know for certain that it will never send a + message longer than a certain number of bytes. + + If the value is set too low, symptoms are a failed TLS + handshake or a return value of MBEDTLS_ERR_SSL_INVALID_RECORD + (-0x7200). + + config MBEDTLS_ASYMMETRIC_CONTENT_LEN + bool "Asymmetric in/out fragment length" + default n + help + If enabled, this option allows customizing TLS in/out fragment length + in asymmetric way. Please note that enabling this with default values + saves 12KB of dynamic memory per TLS connection. + + config MBEDTLS_SSL_IN_CONTENT_LEN + int "TLS maximum incoming fragment length" + default 16384 + range 512 16384 + depends on MBEDTLS_ASYMMETRIC_CONTENT_LEN + help + This defines maximum incoming fragment length, overriding default + maximum content length (MBEDTLS_SSL_MAX_CONTENT_LEN). + + config MBEDTLS_SSL_OUT_CONTENT_LEN + int "TLS maximum outgoing fragment length" + default 4096 + range 512 16384 + depends on MBEDTLS_ASYMMETRIC_CONTENT_LEN + help + This defines maximum outgoing fragment length, overriding default + maximum content length (MBEDTLS_SSL_MAX_CONTENT_LEN). + + config MBEDTLS_DEBUG + bool "Enable mbedTLS debugging" + default n + help + Enable mbedTLS debugging functions at compile time. + + If this option is enabled, you can include + "mbedtls/esp_debug.h" and call mbedtls_esp_enable_debug_log() + at runtime in order to enable mbedTLS debug output via the ESP + log mechanism. + + config MBEDTLS_HARDWARE_AES + bool "Enable hardware AES acceleration" + default y + help + Enable hardware accelerated AES encryption & decryption. + + Note that if the ESP32 CPU is running at 240MHz, hardware AES does not + offer any speed boost over software AES. + + config MBEDTLS_HARDWARE_MPI + bool "Enable hardware MPI (bignum) acceleration" + default n + help + Enable hardware accelerated multiple precision integer operations. + + Hardware accelerated multiplication, modulo multiplication, + and modular exponentiation for up to 4096 bit results. + + These operations are used by RSA. + + config MBEDTLS_MPI_USE_INTERRUPT + bool "Use interrupt for MPI operations" + depends on MBEDTLS_HARDWARE_MPI + default n + help + Use an interrupt to coordinate MPI operations. + + This allows other code to run on the CPU while an MPI operation is pending. + Otherwise the CPU busy-waits. + + config MBEDTLS_HARDWARE_SHA + bool "Enable hardware SHA acceleration" + default n + help + Enable hardware accelerated SHA1, SHA256, SHA384 & SHA512 in mbedTLS. + + Due to a hardware limitation, hardware acceleration is only + guaranteed if SHA digests are calculated one at a time. If more + than one SHA digest is calculated at the same time, one will + be calculated fully in hardware and the rest will be calculated + (at least partially calculated) in software. This happens automatically. + + SHA hardware acceleration is faster than software in some situations but + slower in others. You should benchmark to find the best setting for you. + + config MBEDTLS_HAVE_TIME + bool "Enable mbedtls time" + depends on !ESP32_TIME_SYSCALL_USE_NONE + default y + help + System has time.h and time(). + The time does not need to be correct, only time differences are used. + + config MBEDTLS_HAVE_TIME_DATE + bool "Enable mbedtls certificate expiry check" + depends on MBEDTLS_HAVE_TIME + default n + help + System has time.h and time(), gmtime() and the clock is correct. + The time needs to be correct (not necesarily very accurate, but at least + the date should be correct). This is used to verify the validity period of + X.509 certificates. + + It is suggested that you should get the real time by "SNTP". + + choice MBEDTLS_TLS_MODE + bool "TLS Protocol Role" + default MBEDTLS_TLS_SERVER_AND_CLIENT + help + mbedTLS can be compiled with protocol support for the TLS + server, TLS client, or both server and client. + + Reducing the number of TLS roles supported saves code size. + + config MBEDTLS_TLS_SERVER_AND_CLIENT + bool "Server & Client" + select MBEDTLS_TLS_SERVER + select MBEDTLS_TLS_CLIENT + config MBEDTLS_TLS_SERVER_ONLY + bool "Server" + select MBEDTLS_TLS_SERVER + config MBEDTLS_TLS_CLIENT_ONLY + bool "Client" + select MBEDTLS_TLS_CLIENT + config MBEDTLS_TLS_DISABLED + bool "None" + + endchoice + + config MBEDTLS_TLS_SERVER + bool + select MBEDTLS_TLS_ENABLED + config MBEDTLS_TLS_CLIENT + bool + select MBEDTLS_TLS_ENABLED + config MBEDTLS_TLS_ENABLED + bool + + menu "TLS Key Exchange Methods" + depends on MBEDTLS_TLS_ENABLED + + config MBEDTLS_PSK_MODES + bool "Enable pre-shared-key ciphersuites" + default n + help + Enable to show configuration for different types of pre-shared-key TLS authentatication methods. + + Leaving this options disabled will save code size if they are not used. + + config MBEDTLS_KEY_EXCHANGE_PSK + bool "Enable PSK based ciphersuite modes" + depends on MBEDTLS_PSK_MODES + default n + help + Enable to support symmetric key PSK (pre-shared-key) TLS key exchange modes. + + config MBEDTLS_KEY_EXCHANGE_DHE_PSK + bool "Enable DHE-PSK based ciphersuite modes" + depends on MBEDTLS_PSK_MODES + default y + help + Enable to support Diffie-Hellman PSK (pre-shared-key) TLS authentication modes. + + config MBEDTLS_KEY_EXCHANGE_ECDHE_PSK + bool "Enable ECDHE-PSK based ciphersuite modes" + depends on MBEDTLS_PSK_MODES + default y + help + Enable to support Elliptic-Curve-Diffie-Hellman PSK (pre-shared-key) TLS authentication modes. + + config MBEDTLS_KEY_EXCHANGE_RSA_PSK + bool "Enable RSA-PSK based ciphersuite modes" + depends on MBEDTLS_PSK_MODES + default y + help + Enable to support RSA PSK (pre-shared-key) TLS authentication modes. + + config MBEDTLS_KEY_EXCHANGE_RSA + bool "Enable RSA-only based ciphersuite modes" + default y + help + Enable to support ciphersuites with prefix TLS-RSA-WITH- + + config MBEDTLS_KEY_EXCHANGE_DHE_RSA + bool "Enable DHE-RSA based ciphersuite modes" + default y + help + Enable to support ciphersuites with prefix TLS-DHE-RSA-WITH- + + config MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE + bool "Support Elliptic Curve based ciphersuites" + depends on MBEDTLS_ECP_C + default y + help + Enable to show Elliptic Curve based ciphersuite mode options. + + Disabling all Elliptic Curve ciphersuites saves code size and + can give slightly faster TLS handshakes, provided the server supports + RSA-only ciphersuite modes. + + config MBEDTLS_KEY_EXCHANGE_ECDHE_RSA + bool "Enable ECDHE-RSA based ciphersuite modes" + depends on MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE && MBEDTLS_ECDH_C + default y + help + Enable to support ciphersuites with prefix TLS-ECDHE-RSA-WITH- + + config MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA + bool "Enable ECDHE-ECDSA based ciphersuite modes" + depends on MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE && MBEDTLS_ECDH_C && MBEDTLS_ECDSA_C + default y + help + Enable to support ciphersuites with prefix TLS-ECDHE-RSA-WITH- + + config MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA + bool "Enable ECDH-ECDSA based ciphersuite modes" + depends on MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE && MBEDTLS_ECDH_C && MBEDTLS_ECDSA_C + default y + help + Enable to support ciphersuites with prefix TLS-ECDHE-RSA-WITH- + + config MBEDTLS_KEY_EXCHANGE_ECDH_RSA + bool "Enable ECDH-RSA based ciphersuite modes" + depends on MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE && MBEDTLS_ECDH_C + default y + help + Enable to support ciphersuites with prefix TLS-ECDHE-RSA-WITH- + + endmenu # TLS key exchange modes + + config MBEDTLS_SSL_RENEGOTIATION + bool "Support TLS renegotiation" + depends on MBEDTLS_TLS_ENABLED + default y + help + The two main uses of renegotiation are (1) refresh keys on long-lived + connections and (2) client authentication after the initial handshake. + If you don't need renegotiation, disabling it will save code size and + reduce the possibility of abuse/vulnerability. + + config MBEDTLS_SSL_PROTO_SSL3 + bool "Legacy SSL 3.0 support" + depends on MBEDTLS_TLS_ENABLED + default n + help + Support the legacy SSL 3.0 protocol. Most servers will speak a newer + TLS protocol these days. + + config MBEDTLS_SSL_PROTO_TLS1 + bool "Support TLS 1.0 protocol" + depends on MBEDTLS_TLS_ENABLED + default y + + config MBEDTLS_SSL_PROTO_TLS1_1 + bool "Support TLS 1.1 protocol" + depends on MBEDTLS_TLS_ENABLED + default y + + config MBEDTLS_SSL_PROTO_TLS1_2 + bool "Support TLS 1.2 protocol" + depends on MBEDTLS_TLS_ENABLED + default y + + config MBEDTLS_SSL_PROTO_DTLS + bool "Support DTLS protocol (all versions)" + default n + depends on MBEDTLS_SSL_PROTO_TLS1_1 || MBEDTLS_SSL_PROTO_TLS1_2 + help + Requires TLS 1.1 to be enabled for DTLS 1.0 + Requires TLS 1.2 to be enabled for DTLS 1.2 + + config MBEDTLS_SSL_ALPN + bool "Support ALPN (Application Layer Protocol Negotiation)" + depends on MBEDTLS_TLS_ENABLED + default y + help + Disabling this option will save some code size if it is not needed. + + config MBEDTLS_SSL_SESSION_TICKETS + bool "TLS: Support RFC 5077 SSL session tickets" + default y + depends on MBEDTLS_TLS_ENABLED + help + Support RFC 5077 session tickets. See mbedTLS documentation for more details. + + Disabling this option will save some code size. + + menu "Symmetric Ciphers" + + config MBEDTLS_AES_C + bool "AES block cipher" + default y + + config MBEDTLS_CAMELLIA_C + bool "Camellia block cipher" + default n + + config MBEDTLS_DES_C + bool "DES block cipher (legacy, insecure)" + default n + help + Enables the DES block cipher to support 3DES-based TLS ciphersuites. + + 3DES is vulnerable to the Sweet32 attack and should only be enabled + if absolutely necessary. + + choice MBEDTLS_RC4_MODE + prompt "RC4 Stream Cipher (legacy, insecure)" + default MBEDTLS_RC4_DISABLED + help + ARCFOUR (RC4) stream cipher can be disabled entirely, enabled but not + added to default ciphersuites, or enabled completely. + + Please consider the security implications before enabling RC4. + + config MBEDTLS_RC4_DISABLED + bool "Disabled" + config MBEDTLS_RC4_ENABLED_NO_DEFAULT + bool "Enabled, not in default ciphersuites" + config MBEDTLS_RC4_ENABLED + bool "Enabled" + endchoice + + config MBEDTLS_BLOWFISH_C + bool "Blowfish block cipher (read help)" + default n + help + Enables the Blowfish block cipher (not used for TLS sessions.) + + The Blowfish cipher is not used for mbedTLS TLS sessions but can be + used for other purposes. Read up on the limitations of Blowfish (including + Sweet32) before enabling. + + config MBEDTLS_XTEA_C + bool "XTEA block cipher" + default n + help + Enables the XTEA block cipher. + + + config MBEDTLS_CCM_C + bool "CCM (Counter with CBC-MAC) block cipher modes" + default y + depends on MBEDTLS_AES_C || MBEDTLS_CAMELLIA_C + help + Enable Counter with CBC-MAC (CCM) modes for AES and/or Camellia ciphers. + + Disabling this option saves some code size. + + config MBEDTLS_GCM_C + bool "GCM (Galois/Counter) block cipher modes" + default y + depends on MBEDTLS_AES_C || MBEDTLS_CAMELLIA_C + help + Enable Galois/Counter Mode for AES and/or Camellia ciphers. + + This option is generally faster than CCM. + + endmenu # Symmetric Ciphers + + config MBEDTLS_RIPEMD160_C + bool "Enable RIPEMD-160 hash algorithm" + default n + help + Enable the RIPEMD-160 hash algorithm. + + menu "Certificates" + + config MBEDTLS_PEM_PARSE_C + bool "Read & Parse PEM formatted certificates" + default y + help + Enable decoding/parsing of PEM formatted certificates. + + If your certificates are all in the simpler DER format, disabling + this option will save some code size. + + config MBEDTLS_PEM_WRITE_C + bool "Write PEM formatted certificates" + default y + help + Enable writing of PEM formatted certificates. + + If writing certificate data only in DER format, disabling this + option will save some code size. + + config MBEDTLS_X509_CRL_PARSE_C + bool "X.509 CRL parsing" + default y + help + Support for parsing X.509 Certifificate Revocation Lists. + + config MBEDTLS_X509_CSR_PARSE_C + bool "X.509 CSR parsing" + default y + help + Support for parsing X.509 Certifificate Signing Requests + + endmenu # Certificates + + menuconfig MBEDTLS_ECP_C + bool "Elliptic Curve Ciphers" + default y + + config MBEDTLS_ECDH_C + bool "Elliptic Curve Diffie-Hellman (ECDH)" + depends on MBEDTLS_ECP_C + default y + help + Enable ECDH. Needed to use ECDHE-xxx TLS ciphersuites. + + config MBEDTLS_ECDSA_C + bool "Elliptic Curve DSA" + depends on MBEDTLS_ECDH_C + default y + help + Enable ECDSA. Needed to use ECDSA-xxx TLS ciphersuites. + + config MBEDTLS_ECP_DP_SECP192R1_ENABLED + bool "Enable SECP192R1 curve" + depends on MBEDTLS_ECP_C + default y + help + Enable support for SECP192R1 Elliptic Curve. + + config MBEDTLS_ECP_DP_SECP224R1_ENABLED + bool "Enable SECP224R1 curve" + depends on MBEDTLS_ECP_C + default y + help + Enable support for SECP224R1 Elliptic Curve. + + config MBEDTLS_ECP_DP_SECP256R1_ENABLED + bool "Enable SECP256R1 curve" + depends on MBEDTLS_ECP_C + default y + help + Enable support for SECP256R1 Elliptic Curve. + + config MBEDTLS_ECP_DP_SECP384R1_ENABLED + bool "Enable SECP384R1 curve" + depends on MBEDTLS_ECP_C + default y + help + Enable support for SECP384R1 Elliptic Curve. + + config MBEDTLS_ECP_DP_SECP521R1_ENABLED + bool "Enable SECP521R1 curve" + depends on MBEDTLS_ECP_C + default y + help + Enable support for SECP521R1 Elliptic Curve. + + config MBEDTLS_ECP_DP_SECP192K1_ENABLED + bool "Enable SECP192K1 curve" + depends on MBEDTLS_ECP_C + default y + help + Enable support for SECP192K1 Elliptic Curve. + + config MBEDTLS_ECP_DP_SECP224K1_ENABLED + bool "Enable SECP224K1 curve" + depends on MBEDTLS_ECP_C + default y + help + Enable support for SECP224K1 Elliptic Curve. + + config MBEDTLS_ECP_DP_SECP256K1_ENABLED + bool "Enable SECP256K1 curve" + depends on MBEDTLS_ECP_C + default y + help + Enable support for SECP256K1 Elliptic Curve. + + config MBEDTLS_ECP_DP_BP256R1_ENABLED + bool "Enable BP256R1 curve" + depends on MBEDTLS_ECP_C + default y + help + support for DP Elliptic Curve. + + config MBEDTLS_ECP_DP_BP384R1_ENABLED + bool "Enable BP384R1 curve" + depends on MBEDTLS_ECP_C + default y + help + support for DP Elliptic Curve. + + config MBEDTLS_ECP_DP_BP512R1_ENABLED + bool "Enable BP512R1 curve" + depends on MBEDTLS_ECP_C + default y + help + support for DP Elliptic Curve. + + config MBEDTLS_ECP_DP_CURVE25519_ENABLED + bool "Enable CURVE25519 curve" + depends on MBEDTLS_ECP_C + default y + help + Enable support for CURVE25519 Elliptic Curve. + + config MBEDTLS_ECP_NIST_OPTIM + bool "NIST 'modulo p' optimisations" + depends on MBEDTLS_ECP_C + default y + help + NIST 'modulo p' optimisations increase Elliptic Curve operation performance. + + Disabling this option saves some code size. + + # end of Elliptic Curve options endmenu # mbedTLS diff --git a/components/mdns/Kconfig b/components/mdns/Kconfig index 321b0f652b..5c97d65f40 100644 --- a/components/mdns/Kconfig +++ b/components/mdns/Kconfig @@ -1,13 +1,13 @@ menu "mDNS" -config MDNS_MAX_SERVICES - int "Max number of services" - range 1 64 - default 10 - help - Services take up a certain amount of memory, and allowing fewer - services to be open at the same time conserves memory. Specify - the maximum amount of services here. The valid value is from 1 - to 64. - + config MDNS_MAX_SERVICES + int "Max number of services" + range 1 64 + default 10 + help + Services take up a certain amount of memory, and allowing fewer + services to be open at the same time conserves memory. Specify + the maximum amount of services here. The valid value is from 1 + to 64. + endmenu diff --git a/components/mqtt/Kconfig b/components/mqtt/Kconfig index 624b28673f..de79975aa8 100644 --- a/components/mqtt/Kconfig +++ b/components/mqtt/Kconfig @@ -1,102 +1,103 @@ menu "ESP-MQTT Configurations" -config MQTT_PROTOCOL_311 - bool "Enable MQTT protocol 3.1.1" - default y - help - If not, this library will use MQTT protocol 3.1 + config MQTT_PROTOCOL_311 + bool "Enable MQTT protocol 3.1.1" + default y + help + If not, this library will use MQTT protocol 3.1 -config MQTT_TRANSPORT_SSL - bool "Enable MQTT over SSL" - default y - help - Enable MQTT transport over SSL with mbedtls + config MQTT_TRANSPORT_SSL + bool "Enable MQTT over SSL" + default y + help + Enable MQTT transport over SSL with mbedtls -config MQTT_TRANSPORT_WEBSOCKET - bool "Enable MQTT over Websocket" - default y - help - Enable MQTT transport over Websocket. + config MQTT_TRANSPORT_WEBSOCKET + bool "Enable MQTT over Websocket" + default y + help + Enable MQTT transport over Websocket. -config MQTT_TRANSPORT_WEBSOCKET_SECURE - bool "Enable MQTT over Websocket Secure" - default y - depends on MQTT_TRANSPORT_WEBSOCKET - depends on MQTT_TRANSPORT_SSL - help - Enable MQTT transport over Websocket Secure. + config MQTT_TRANSPORT_WEBSOCKET_SECURE + bool "Enable MQTT over Websocket Secure" + default y + depends on MQTT_TRANSPORT_WEBSOCKET + depends on MQTT_TRANSPORT_SSL + help + Enable MQTT transport over Websocket Secure. -config MQTT_USE_CUSTOM_CONFIG - bool "MQTT Using custom configurations" - default n - help - Custom MQTT configurations. + config MQTT_USE_CUSTOM_CONFIG + bool "MQTT Using custom configurations" + default n + help + Custom MQTT configurations. -config MQTT_TCP_DEFAULT_PORT - int "Default MQTT over TCP port" - default 1883 - depends on MQTT_USE_CUSTOM_CONFIG - help - Default MQTT over TCP port + config MQTT_TCP_DEFAULT_PORT + int "Default MQTT over TCP port" + default 1883 + depends on MQTT_USE_CUSTOM_CONFIG + help + Default MQTT over TCP port -config MQTT_SSL_DEFAULT_PORT - int "Default MQTT over SSL port" - default 8883 - depends on MQTT_USE_CUSTOM_CONFIG - depends on MQTT_TRANSPORT_SSL - help - Default MQTT over SSL port - -config MQTT_WS_DEFAULT_PORT - int "Default MQTT over Websocket port" - default 80 - depends on MQTT_USE_CUSTOM_CONFIG - depends on MQTT_TRANSPORT_WEBSOCKET - help - Default MQTT over Websocket port + config MQTT_SSL_DEFAULT_PORT + int "Default MQTT over SSL port" + default 8883 + depends on MQTT_USE_CUSTOM_CONFIG + depends on MQTT_TRANSPORT_SSL + help + Default MQTT over SSL port -config MQTT_WSS_DEFAULT_PORT - int "Default MQTT over Websocket Secure port" - default 443 - depends on MQTT_USE_CUSTOM_CONFIG - depends on MQTT_TRANSPORT_WEBSOCKET - depends on MQTT_TRANSPORT_WEBSOCKET_SECURE - help - Default MQTT over Websocket Secure port + config MQTT_WS_DEFAULT_PORT + int "Default MQTT over Websocket port" + default 80 + depends on MQTT_USE_CUSTOM_CONFIG + depends on MQTT_TRANSPORT_WEBSOCKET + help + Default MQTT over Websocket port -config MQTT_BUFFER_SIZE - int "Default MQTT Buffer Size" - default 1024 - depends on MQTT_USE_CUSTOM_CONFIG - help - This buffer size using for both transmit and receive + config MQTT_WSS_DEFAULT_PORT + int "Default MQTT over Websocket Secure port" + default 443 + depends on MQTT_USE_CUSTOM_CONFIG + depends on MQTT_TRANSPORT_WEBSOCKET + depends on MQTT_TRANSPORT_WEBSOCKET_SECURE + help + Default MQTT over Websocket Secure port -config MQTT_TASK_STACK_SIZE - int "MQTT task stack size" - default 6144 - depends on MQTT_USE_CUSTOM_CONFIG - help - MQTT task stack size + config MQTT_BUFFER_SIZE + int "Default MQTT Buffer Size" + default 1024 + depends on MQTT_USE_CUSTOM_CONFIG + help + This buffer size using for both transmit and receive -config MQTT_TASK_CORE_SELECTION_ENABLED - bool "Enable MQTT task core selection" - default false - help - This will enable core selection + config MQTT_TASK_STACK_SIZE + int "MQTT task stack size" + default 6144 + depends on MQTT_USE_CUSTOM_CONFIG + help + MQTT task stack size -choice MQTT_TASK_CORE_SELECTION - depends on MQTT_TASK_CORE_SELECTION_ENABLED - prompt "Core to use ?" - config MQTT_USE_CORE_0 - bool "Core 0" - config MQTT_USE_CORE_1 - bool "Core 1" - endchoice + config MQTT_TASK_CORE_SELECTION_ENABLED + bool "Enable MQTT task core selection" + default false + help + This will enable core selection -config MQTT_CUSTOM_OUTBOX - bool "Enable custom outbox implementation" - default n - help - Set to true if a specific implementation of message outbox is needed (e.g. persistant outbox in NVM or similar). + choice MQTT_TASK_CORE_SELECTION + depends on MQTT_TASK_CORE_SELECTION_ENABLED + prompt "Core to use ?" + config MQTT_USE_CORE_0 + bool "Core 0" + config MQTT_USE_CORE_1 + bool "Core 1" + endchoice + + config MQTT_CUSTOM_OUTBOX + bool "Enable custom outbox implementation" + default n + help + Set to true if a specific implementation of message outbox is needed (e.g. persistant outbox in NVM or + similar). endmenu diff --git a/components/nvs_flash/Kconfig b/components/nvs_flash/Kconfig index bc10c64fb3..080c410cd7 100644 --- a/components/nvs_flash/Kconfig +++ b/components/nvs_flash/Kconfig @@ -1,12 +1,12 @@ menu NVS -config NVS_ENCRYPTION - bool "Enable NVS encryption" - default n - depends on FLASH_ENCRYPTION_ENABLED - help - This option enables encryption for NVS. When enabled, AES-XTS is used to encrypt - the complete NVS data, except the page headers. It requires XTS encryption keys - to be stored in an encrypted partition. This means enabling flash encryption is - a pre-requisite for this feature. + config NVS_ENCRYPTION + bool "Enable NVS encryption" + default n + depends on FLASH_ENCRYPTION_ENABLED + help + This option enables encryption for NVS. When enabled, AES-XTS is used to encrypt + the complete NVS data, except the page headers. It requires XTS encryption keys + to be stored in an encrypted partition. This means enabling flash encryption is + a pre-requisite for this feature. endmenu diff --git a/components/openssl/Kconfig b/components/openssl/Kconfig index 7ade98c459..0df49080c5 100644 --- a/components/openssl/Kconfig +++ b/components/openssl/Kconfig @@ -1,70 +1,72 @@ menu "OpenSSL" -config OPENSSL_DEBUG - bool "Enable OpenSSL debugging" - default n - help - Enable OpenSSL debugging function. + config OPENSSL_DEBUG + bool "Enable OpenSSL debugging" + default n + help + Enable OpenSSL debugging function. - If the option is enabled, "SSL_DEBUG" works. + If the option is enabled, "SSL_DEBUG" works. -config OPENSSL_DEBUG_LEVEL - int "OpenSSL debugging level" - default 0 - range 0 255 - depends on OPENSSL_DEBUG - help - OpenSSL debugging level. + config OPENSSL_DEBUG_LEVEL + int "OpenSSL debugging level" + default 0 + range 0 255 + depends on OPENSSL_DEBUG + help + OpenSSL debugging level. - Only function whose debugging level is higher than "OPENSSL_DEBUG_LEVEL" works. + Only function whose debugging level is higher than "OPENSSL_DEBUG_LEVEL" works. - For example: - If OPENSSL_DEBUG_LEVEL = 2, you use function "SSL_DEBUG(1, "malloc failed")". Because 1 < 2, it will not print. + For example: + If OPENSSL_DEBUG_LEVEL = 2, you use function "SSL_DEBUG(1, "malloc failed")". Because 1 < 2, it will not + print. -config OPENSSL_LOWLEVEL_DEBUG - bool "Enable OpenSSL low-level module debugging" - default n - depends on OPENSSL_DEBUG - select MBEDTLS_DEBUG - help - If the option is enabled, low-level module debugging function of OpenSSL is enabled, e.g. mbedtls internal debugging function. + config OPENSSL_LOWLEVEL_DEBUG + bool "Enable OpenSSL low-level module debugging" + default n + depends on OPENSSL_DEBUG + select MBEDTLS_DEBUG + help + If the option is enabled, low-level module debugging function of OpenSSL is enabled, e.g. mbedtls internal + debugging function. -choice OPENSSL_ASSERT - prompt "Select OpenSSL assert function" - default CONFIG_OPENSSL_ASSERT_EXIT - help - OpenSSL function needs "assert" function to check if input parameters are valid. + choice OPENSSL_ASSERT + prompt "Select OpenSSL assert function" + default CONFIG_OPENSSL_ASSERT_EXIT + help + OpenSSL function needs "assert" function to check if input parameters are valid. - If you want to use assert debugging function, "OPENSSL_DEBUG" should be enabled. + If you want to use assert debugging function, "OPENSSL_DEBUG" should be enabled. -config OPENSSL_ASSERT_DO_NOTHING - bool "Do nothing" - help - Do nothing and "SSL_ASSERT" does not work. + config OPENSSL_ASSERT_DO_NOTHING + bool "Do nothing" + help + Do nothing and "SSL_ASSERT" does not work. -config OPENSSL_ASSERT_EXIT - bool "Check and exit" - help - Enable assert exiting, it will check and return error code. + config OPENSSL_ASSERT_EXIT + bool "Check and exit" + help + Enable assert exiting, it will check and return error code. -config OPENSSL_ASSERT_DEBUG - bool "Show debugging message" - depends on OPENSSL_DEBUG - help - Enable assert debugging, it will check and show debugging message. + config OPENSSL_ASSERT_DEBUG + bool "Show debugging message" + depends on OPENSSL_DEBUG + help + Enable assert debugging, it will check and show debugging message. -config OPENSSL_ASSERT_DEBUG_EXIT - bool "Show debugging message and exit" - depends on OPENSSL_DEBUG - help - Enable assert debugging and exiting, it will check, show debugging message and return error code. + config OPENSSL_ASSERT_DEBUG_EXIT + bool "Show debugging message and exit" + depends on OPENSSL_DEBUG + help + Enable assert debugging and exiting, it will check, show debugging message and return error code. -config OPENSSL_ASSERT_DEBUG_BLOCK - bool "Show debugging message and block" - depends on OPENSSL_DEBUG - help - Enable assert debugging and blocking, it will check, show debugging message and block by "while (1);". + config OPENSSL_ASSERT_DEBUG_BLOCK + bool "Show debugging message and block" + depends on OPENSSL_DEBUG + help + Enable assert debugging and blocking, it will check, show debugging message and block by "while (1);". -endchoice + endchoice endmenu diff --git a/components/partition_table/Kconfig.projbuild b/components/partition_table/Kconfig.projbuild index 0d0351f26b..326f7fb7c6 100644 --- a/components/partition_table/Kconfig.projbuild +++ b/components/partition_table/Kconfig.projbuild @@ -1,62 +1,61 @@ menu "Partition Table" -choice PARTITION_TABLE_TYPE - prompt "Partition Table" - default PARTITION_TABLE_SINGLE_APP - help - The partition table to flash to the ESP32. The partition table - determines where apps, data and other resources are expected to - be found. + choice PARTITION_TABLE_TYPE + prompt "Partition Table" + default PARTITION_TABLE_SINGLE_APP + help + The partition table to flash to the ESP32. The partition table + determines where apps, data and other resources are expected to + be found. - The predefined partition table CSV descriptions can be found - in the components/partition_table directory. Otherwise it's - possible to create a new custom partition CSV for your application. + The predefined partition table CSV descriptions can be found + in the components/partition_table directory. Otherwise it's + possible to create a new custom partition CSV for your application. -config PARTITION_TABLE_SINGLE_APP - bool "Single factory app, no OTA" -config PARTITION_TABLE_TWO_OTA - bool "Factory app, two OTA definitions" -config PARTITION_TABLE_CUSTOM - bool "Custom partition table CSV" -endchoice + config PARTITION_TABLE_SINGLE_APP + bool "Single factory app, no OTA" + config PARTITION_TABLE_TWO_OTA + bool "Factory app, two OTA definitions" + config PARTITION_TABLE_CUSTOM + bool "Custom partition table CSV" + endchoice -config PARTITION_TABLE_CUSTOM_FILENAME - string "Custom partition CSV file" if PARTITION_TABLE_CUSTOM - default partitions.csv - help - Name of the custom partition CSV filename. This path is evaluated - relative to the project root directory. + config PARTITION_TABLE_CUSTOM_FILENAME + string "Custom partition CSV file" if PARTITION_TABLE_CUSTOM + default partitions.csv + help + Name of the custom partition CSV filename. This path is evaluated + relative to the project root directory. -config PARTITION_TABLE_FILENAME - string - default partitions_singleapp.csv if PARTITION_TABLE_SINGLE_APP && !ESP32_ENABLE_COREDUMP_TO_FLASH - default partitions_singleapp_coredump.csv if PARTITION_TABLE_SINGLE_APP && ESP32_ENABLE_COREDUMP_TO_FLASH - default partitions_two_ota.csv if PARTITION_TABLE_TWO_OTA && !ESP32_ENABLE_COREDUMP_TO_FLASH - default partitions_two_ota_coredump.csv if PARTITION_TABLE_TWO_OTA && ESP32_ENABLE_COREDUMP_TO_FLASH - default PARTITION_TABLE_CUSTOM_FILENAME if PARTITION_TABLE_CUSTOM + config PARTITION_TABLE_FILENAME + string + default partitions_singleapp.csv if PARTITION_TABLE_SINGLE_APP && !ESP32_ENABLE_COREDUMP_TO_FLASH + default partitions_singleapp_coredump.csv if PARTITION_TABLE_SINGLE_APP && ESP32_ENABLE_COREDUMP_TO_FLASH + default partitions_two_ota.csv if PARTITION_TABLE_TWO_OTA && !ESP32_ENABLE_COREDUMP_TO_FLASH + default partitions_two_ota_coredump.csv if PARTITION_TABLE_TWO_OTA && ESP32_ENABLE_COREDUMP_TO_FLASH + default PARTITION_TABLE_CUSTOM_FILENAME if PARTITION_TABLE_CUSTOM -config PARTITION_TABLE_OFFSET - hex "Offset of partition table" - default 0x8000 - help - The address of partition table (by default 0x8000). - Allows you to move the partition table, it gives more space for the bootloader. - Note that the bootloader and app will both need to be compiled with the same PARTITION_TABLE_OFFSET value. + config PARTITION_TABLE_OFFSET + hex "Offset of partition table" + default 0x8000 + help + The address of partition table (by default 0x8000). + Allows you to move the partition table, it gives more space for the bootloader. + Note that the bootloader and app will both need to be compiled with the same PARTITION_TABLE_OFFSET value. - This number should be a multiple of 0x1000. + This number should be a multiple of 0x1000. - Note that partition offsets in the partition table CSV file may need to be changed if this value is set to a higher value. To have - each partition offset adapt to the configured partition table offset, leave all partition offsets blank in the CSV file. + Note that partition offsets in the partition table CSV file may need to be changed if this value is set to + a higher value. To have each partition offset adapt to the configured partition table offset, leave all + partition offsets blank in the CSV file. -config PARTITION_TABLE_MD5 - bool "Generate an MD5 checksum for the partition table" - default y - help - Generate an MD5 checksum for the partition table for protecting the - integrity of the table. The generation should be turned off for legacy - bootloaders which cannot recognize the MD5 checksum in the partition - table. + config PARTITION_TABLE_MD5 + bool "Generate an MD5 checksum for the partition table" + default y + help + Generate an MD5 checksum for the partition table for protecting the + integrity of the table. The generation should be turned off for legacy + bootloaders which cannot recognize the MD5 checksum in the partition + table. endmenu - - diff --git a/components/pthread/Kconfig b/components/pthread/Kconfig index ed49dc5856..794f06bdb6 100644 --- a/components/pthread/Kconfig +++ b/components/pthread/Kconfig @@ -1,49 +1,49 @@ menu "PThreads" -config ESP32_PTHREAD_TASK_PRIO_DEFAULT - int "Default task priority" - range 0 255 - default 5 - help - Priority used to create new tasks with default pthread parameters. + config ESP32_PTHREAD_TASK_PRIO_DEFAULT + int "Default task priority" + range 0 255 + default 5 + help + Priority used to create new tasks with default pthread parameters. -config ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT - int "Default task stack size" - default 3072 - help - Stack size used to create new tasks with default pthread parameters. + config ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT + int "Default task stack size" + default 3072 + help + Stack size used to create new tasks with default pthread parameters. -config PTHREAD_STACK_MIN - int "Minimum allowed pthread stack size" - default 768 - help - Minimum allowed pthread stack size set in attributes passed to pthread_create + config PTHREAD_STACK_MIN + int "Minimum allowed pthread stack size" + default 768 + help + Minimum allowed pthread stack size set in attributes passed to pthread_create -choice ESP32_PTHREAD_TASK_CORE_DEFAULT - bool "Default pthread core affinity" - default ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY - depends on !FREERTOS_UNICORE - help - The default core to which pthreads are pinned. - -config ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY - bool "No affinity" -config ESP32_DEFAULT_PTHREAD_CORE_0 - bool "Core 0" -config ESP32_DEFAULT_PTHREAD_CORE_1 - bool "Core 1" -endchoice + choice ESP32_PTHREAD_TASK_CORE_DEFAULT + bool "Default pthread core affinity" + default ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY + depends on !FREERTOS_UNICORE + help + The default core to which pthreads are pinned. -config ESP32_PTHREAD_TASK_CORE_DEFAULT - int - default -1 if ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY || FREERTOS_UNICORE - default 0 if ESP32_DEFAULT_PTHREAD_CORE_0 - default 1 if ESP32_DEFAULT_PTHREAD_CORE_1 + config ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY + bool "No affinity" + config ESP32_DEFAULT_PTHREAD_CORE_0 + bool "Core 0" + config ESP32_DEFAULT_PTHREAD_CORE_1 + bool "Core 1" + endchoice -config ESP32_PTHREAD_TASK_NAME_DEFAULT - string "Default name of pthreads" - default "pthread" - help - The default name of pthreads. + config ESP32_PTHREAD_TASK_CORE_DEFAULT + int + default -1 if ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY || FREERTOS_UNICORE + default 0 if ESP32_DEFAULT_PTHREAD_CORE_0 + default 1 if ESP32_DEFAULT_PTHREAD_CORE_1 + + config ESP32_PTHREAD_TASK_NAME_DEFAULT + string "Default name of pthreads" + default "pthread" + help + The default name of pthreads. endmenu diff --git a/components/spi_flash/Kconfig b/components/spi_flash/Kconfig index f5e3c7ecd9..7ffb5660a3 100644 --- a/components/spi_flash/Kconfig +++ b/components/spi_flash/Kconfig @@ -1,81 +1,81 @@ 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_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_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. + 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. + 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 - help - This option enables the following APIs: - - - spi_flash_reset_counters - - spi_flash_dump_counters - - spi_flash_get_counters - - These APIs may be used to collect performance data for spi_flash APIs - and to help understand behaviour of libraries which use SPI flash. + config SPI_FLASH_ENABLE_COUNTERS + bool "Enable operation counters" + default 0 + help + This option enables the following APIs: -config SPI_FLASH_ROM_DRIVER_PATCH - bool "Enable SPI flash ROM driver patched functions" - default y - help - Enable this flag to use patched versions of SPI flash ROM driver functions. - This option is needed to write to flash on ESP32-D2WD, and any configuration - where external SPI flash is connected to non-default pins. + - spi_flash_reset_counters + - spi_flash_dump_counters + - spi_flash_get_counters -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. + These APIs may be used to collect performance data for spi_flash APIs + and to help understand behaviour of libraries which use SPI flash. - 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. + config SPI_FLASH_ROM_DRIVER_PATCH + bool "Enable SPI flash ROM driver patched functions" + default y + help + Enable this flag to use patched versions of SPI flash ROM driver functions. + This option is needed to write to flash on ESP32-D2WD, and any configuration + where external SPI flash is connected to non-default pins. - 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. + 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. -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 + 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 diff --git a/components/spiffs/Kconfig b/components/spiffs/Kconfig index 697f2b68bd..c533b819ac 100644 --- a/components/spiffs/Kconfig +++ b/components/spiffs/Kconfig @@ -1,161 +1,161 @@ menu "SPIFFS Configuration" -config SPIFFS_MAX_PARTITIONS - int "Maximum Number of Partitions" - default 3 - range 1 10 - help - Define maximum number of partitions that can be mounted. + config SPIFFS_MAX_PARTITIONS + int "Maximum Number of Partitions" + default 3 + range 1 10 + help + Define maximum number of partitions that can be mounted. -menu "SPIFFS Cache Configuration" -config SPIFFS_CACHE - bool "Enable SPIFFS Cache" - default "y" - help - Enables/disable memory read caching of nucleus file system - operations. + menu "SPIFFS Cache Configuration" + config SPIFFS_CACHE + bool "Enable SPIFFS Cache" + default "y" + help + Enables/disable memory read caching of nucleus file system + operations. -config SPIFFS_CACHE_WR - bool "Enable SPIFFS Write Caching" - default "y" - depends on SPIFFS_CACHE - help - Enables memory write caching for file descriptors in hydrogen. + config SPIFFS_CACHE_WR + bool "Enable SPIFFS Write Caching" + default "y" + depends on SPIFFS_CACHE + help + Enables memory write caching for file descriptors in hydrogen. -config SPIFFS_CACHE_STATS - bool "Enable SPIFFS Cache Statistics" - default "n" - depends on SPIFFS_CACHE - help - Enable/disable statistics on caching. Debug/test purpose only. - -endmenu - -config SPIFFS_PAGE_CHECK - bool "Enable SPIFFS Page Check" - default "y" - help - Always check header of each accessed page to ensure consistent state. - If enabled it will increase number of reads from flash, especially - if cache is disabled. - -config SPIFFS_GC_MAX_RUNS - int "Set Maximum GC Runs" - default 10 - range 1 255 - help - Define maximum number of GC runs to perform to reach desired free pages. - -config SPIFFS_GC_STATS - bool "Enable SPIFFS GC Statistics" - default "n" - help - Enable/disable statistics on gc. Debug/test purpose only. - -config SPIFFS_PAGE_SIZE - int "SPIFFS logical page size" - default 256 - range 256 1024 - help - Logical page size of SPIFFS partition, in bytes. Must be multiple - of flash page size (which is usually 256 bytes). - Larger page sizes reduce overhead when storing large files, and - improve filesystem performance when reading large files. - Smaller page sizes reduce overhead when storing small (< page size) - files. - -config SPIFFS_OBJ_NAME_LEN - int "Set SPIFFS Maximum Name Length" - default 32 - range 1 256 - help - Object name maximum length. Note that this length include the - zero-termination character, meaning maximum string of characters - can at most be SPIFFS_OBJ_NAME_LEN - 1. - - SPIFFS_OBJ_NAME_LEN + SPIFFS_META_LENGTH should not exceed - SPIFFS_PAGE_SIZE - 64. - -config SPIFFS_USE_MAGIC - bool "Enable SPIFFS Filesystem Magic" - default "y" - help - Enable this to have an identifiable spiffs filesystem. - This will look for a magic in all sectors to determine if this - is a valid spiffs system or not at mount time. - -config SPIFFS_USE_MAGIC_LENGTH - bool "Enable SPIFFS Filesystem Length Magic" - default "y" - depends on SPIFFS_USE_MAGIC - help - If this option is enabled, the magic will also be dependent - on the length of the filesystem. For example, a filesystem - configured and formatted for 4 megabytes will not be accepted - for mounting with a configuration defining the filesystem as 2 megabytes. - -config SPIFFS_META_LENGTH - int "Size of per-file metadata field" - default 4 - help - This option sets the number of extra bytes stored in the file header. - These bytes can be used in an application-specific manner. - Set this to at least 4 bytes to enable support for saving file - modification time. - - SPIFFS_OBJ_NAME_LEN + SPIFFS_META_LENGTH should not exceed - SPIFFS_PAGE_SIZE - 64. - -config SPIFFS_USE_MTIME - bool "Save file modification time" - default "y" - depends on SPIFFS_META_LENGTH >= 4 - help - If enabled, then the first 4 bytes of per-file metadata will be used - to store file modification time (mtime), accessible through - stat/fstat functions. - Modification time is updated when the file is opened. - -menu "Debug Configuration" - -config SPIFFS_DBG - bool "Enable general SPIFFS debug" - default "n" - help - Enabling this option will print general debug mesages to the console. - -config SPIFFS_API_DBG - bool "Enable SPIFFS API debug" - default "n" - help - Enabling this option will print API debug mesages to the console. - -config SPIFFS_GC_DBG - bool "Enable SPIFFS Garbage Cleaner debug" - default "n" - help - Enabling this option will print GC debug mesages to the console. - -config SPIFFS_CACHE_DBG - bool "Enable SPIFFS Cache debug" - default "n" - depends on SPIFFS_CACHE - help - Enabling this option will print cache debug mesages to the console. - -config SPIFFS_CHECK_DBG - bool "Enable SPIFFS Filesystem Check debug" - default "n" - help - Enabling this option will print Filesystem Check debug mesages - to the console. - -config SPIFFS_TEST_VISUALISATION - bool "Enable SPIFFS Filesystem Visualization" - default "n" - help - Enable this option to enable SPIFFS_vis function in the API. - -endmenu + config SPIFFS_CACHE_STATS + bool "Enable SPIFFS Cache Statistics" + default "n" + depends on SPIFFS_CACHE + help + Enable/disable statistics on caching. Debug/test purpose only. + + endmenu + + config SPIFFS_PAGE_CHECK + bool "Enable SPIFFS Page Check" + default "y" + help + Always check header of each accessed page to ensure consistent state. + If enabled it will increase number of reads from flash, especially + if cache is disabled. + + config SPIFFS_GC_MAX_RUNS + int "Set Maximum GC Runs" + default 10 + range 1 255 + help + Define maximum number of GC runs to perform to reach desired free pages. + + config SPIFFS_GC_STATS + bool "Enable SPIFFS GC Statistics" + default "n" + help + Enable/disable statistics on gc. Debug/test purpose only. + + config SPIFFS_PAGE_SIZE + int "SPIFFS logical page size" + default 256 + range 256 1024 + help + Logical page size of SPIFFS partition, in bytes. Must be multiple + of flash page size (which is usually 256 bytes). + Larger page sizes reduce overhead when storing large files, and + improve filesystem performance when reading large files. + Smaller page sizes reduce overhead when storing small (< page size) + files. + + config SPIFFS_OBJ_NAME_LEN + int "Set SPIFFS Maximum Name Length" + default 32 + range 1 256 + help + Object name maximum length. Note that this length include the + zero-termination character, meaning maximum string of characters + can at most be SPIFFS_OBJ_NAME_LEN - 1. + + SPIFFS_OBJ_NAME_LEN + SPIFFS_META_LENGTH should not exceed + SPIFFS_PAGE_SIZE - 64. + + config SPIFFS_USE_MAGIC + bool "Enable SPIFFS Filesystem Magic" + default "y" + help + Enable this to have an identifiable spiffs filesystem. + This will look for a magic in all sectors to determine if this + is a valid spiffs system or not at mount time. + + config SPIFFS_USE_MAGIC_LENGTH + bool "Enable SPIFFS Filesystem Length Magic" + default "y" + depends on SPIFFS_USE_MAGIC + help + If this option is enabled, the magic will also be dependent + on the length of the filesystem. For example, a filesystem + configured and formatted for 4 megabytes will not be accepted + for mounting with a configuration defining the filesystem as 2 megabytes. + + config SPIFFS_META_LENGTH + int "Size of per-file metadata field" + default 4 + help + This option sets the number of extra bytes stored in the file header. + These bytes can be used in an application-specific manner. + Set this to at least 4 bytes to enable support for saving file + modification time. + + SPIFFS_OBJ_NAME_LEN + SPIFFS_META_LENGTH should not exceed + SPIFFS_PAGE_SIZE - 64. + + config SPIFFS_USE_MTIME + bool "Save file modification time" + default "y" + depends on SPIFFS_META_LENGTH >= 4 + help + If enabled, then the first 4 bytes of per-file metadata will be used + to store file modification time (mtime), accessible through + stat/fstat functions. + Modification time is updated when the file is opened. + + menu "Debug Configuration" + + config SPIFFS_DBG + bool "Enable general SPIFFS debug" + default "n" + help + Enabling this option will print general debug mesages to the console. + + config SPIFFS_API_DBG + bool "Enable SPIFFS API debug" + default "n" + help + Enabling this option will print API debug mesages to the console. + + config SPIFFS_GC_DBG + bool "Enable SPIFFS Garbage Cleaner debug" + default "n" + help + Enabling this option will print GC debug mesages to the console. + + config SPIFFS_CACHE_DBG + bool "Enable SPIFFS Cache debug" + default "n" + depends on SPIFFS_CACHE + help + Enabling this option will print cache debug mesages to the console. + + config SPIFFS_CHECK_DBG + bool "Enable SPIFFS Filesystem Check debug" + default "n" + help + Enabling this option will print Filesystem Check debug mesages + to the console. + + config SPIFFS_TEST_VISUALISATION + bool "Enable SPIFFS Filesystem Visualization" + default "n" + help + Enable this option to enable SPIFFS_vis function in the API. + + endmenu endmenu diff --git a/components/tcpip_adapter/Kconfig b/components/tcpip_adapter/Kconfig index 5c76b66d13..20d91fcabe 100644 --- a/components/tcpip_adapter/Kconfig +++ b/components/tcpip_adapter/Kconfig @@ -1,27 +1,27 @@ menu "TCP/IP Adapter" -config IP_LOST_TIMER_INTERVAL - int "IP Address lost timer interval (seconds)" - range 0 65535 - default 120 - help - The value of 0 indicates the IP lost timer is disabled, otherwise the timer is enabled. - - The IP address may be lost because of some reasons, e.g. when the station disconnects - from soft-AP, or when DHCP IP renew fails etc. If the IP lost timer is enabled, it will - be started everytime the IP is lost. Event SYSTEM_EVENT_STA_LOST_IP will be raised if - the timer expires. The IP lost timer is stopped if the station get the IP again before - the timer expires. - -choice USE_TCPIP_STACK_LIB - prompt "TCP/IP Stack Library" - default TCPIP_LWIP - help - Choose the TCP/IP Stack to work, for example, LwIP, uIP, etc. -config TCPIP_LWIP - bool "LwIP" + config IP_LOST_TIMER_INTERVAL + int "IP Address lost timer interval (seconds)" + range 0 65535 + default 120 help - lwIP is a small independent implementation of the TCP/IP protocol suite. -endchoice + The value of 0 indicates the IP lost timer is disabled, otherwise the timer is enabled. + + The IP address may be lost because of some reasons, e.g. when the station disconnects + from soft-AP, or when DHCP IP renew fails etc. If the IP lost timer is enabled, it will + be started everytime the IP is lost. Event SYSTEM_EVENT_STA_LOST_IP will be raised if + the timer expires. The IP lost timer is stopped if the station get the IP again before + the timer expires. + + choice USE_TCPIP_STACK_LIB + prompt "TCP/IP Stack Library" + default TCPIP_LWIP + help + Choose the TCP/IP Stack to work, for example, LwIP, uIP, etc. + config TCPIP_LWIP + bool "LwIP" + help + lwIP is a small independent implementation of the TCP/IP protocol suite. + endchoice endmenu diff --git a/components/unity/Kconfig b/components/unity/Kconfig index 78e4944dd9..4cf2a30731 100644 --- a/components/unity/Kconfig +++ b/components/unity/Kconfig @@ -1,45 +1,45 @@ menu "Unity unit testing library" -config UNITY_ENABLE_FLOAT -bool "Support for float type" -default y -help - If not set, assertions on float arguments will not be available. + config UNITY_ENABLE_FLOAT + bool "Support for float type" + default y + help + If not set, assertions on float arguments will not be available. -config UNITY_ENABLE_DOUBLE -bool "Support for double type" -default y -help - If not set, assertions on double arguments will not be available. + config UNITY_ENABLE_DOUBLE + bool "Support for double type" + default y + help + If not set, assertions on double arguments will not be available. -config UNITY_ENABLE_COLOR -bool "Colorize test output" -default n -help - If set, Unity will colorize test results using console escape sequences. + config UNITY_ENABLE_COLOR + bool "Colorize test output" + default n + help + If set, Unity will colorize test results using console escape sequences. -config UNITY_ENABLE_IDF_TEST_RUNNER -bool "Include ESP-IDF test registration/running helpers" -default y -help - If set, then the following features will be available: - - - TEST_CASE macro which performs automatic registration of test functions - - Functions to run registered test functions: unity_run_all_tests, - unity_run_tests_with_filter, unity_run_single_test_by_name. - - Interactive menu which lists test cases and allows choosing the tests to - be run, available via unity_run_menu function. - - Disable if a different test registration mechanism is used. + config UNITY_ENABLE_IDF_TEST_RUNNER + bool "Include ESP-IDF test registration/running helpers" + default y + help + If set, then the following features will be available: -config UNITY_ENABLE_FIXTURE -bool "Include Unity test fixture" -default n -help - If set, unity_fixture.h header file and associated source files are part of - the build. These provide an optional set of macros and functions to - implement test groups. + - TEST_CASE macro which performs automatic registration of test functions + - Functions to run registered test functions: unity_run_all_tests, + unity_run_tests_with_filter, unity_run_single_test_by_name. + - Interactive menu which lists test cases and allows choosing the tests to + be run, available via unity_run_menu function. + + Disable if a different test registration mechanism is used. + + config UNITY_ENABLE_FIXTURE + bool "Include Unity test fixture" + default n + help + If set, unity_fixture.h header file and associated source files are part of + the build. These provide an optional set of macros and functions to + implement test groups. endmenu # "Unity unit testing library" diff --git a/components/vfs/Kconfig b/components/vfs/Kconfig index 19a565b2bc..c479a989e6 100644 --- a/components/vfs/Kconfig +++ b/components/vfs/Kconfig @@ -1,18 +1,18 @@ menu "Virtual file system" -config SUPPRESS_SELECT_DEBUG_OUTPUT - bool "Suppress select() related debug outputs" - default y - help - Select() related functions might produce an unconveniently lot of - debug outputs when one sets the default log level to DEBUG or higher. - It is possible to suppress these debug outputs by enabling this - option. + config SUPPRESS_SELECT_DEBUG_OUTPUT + bool "Suppress select() related debug outputs" + default y + help + Select() related functions might produce an unconveniently lot of + debug outputs when one sets the default log level to DEBUG or higher. + It is possible to suppress these debug outputs by enabling this + option. -config SUPPORT_TERMIOS - bool "Add support for termios.h" - default y - help - Disabling this option can save memory when the support for termios.h is not required. + config SUPPORT_TERMIOS + bool "Add support for termios.h" + default y + help + Disabling this option can save memory when the support for termios.h is not required. endmenu diff --git a/components/wear_levelling/Kconfig b/components/wear_levelling/Kconfig index a6e9c74610..a42ee4ef35 100644 --- a/components/wear_levelling/Kconfig +++ b/components/wear_levelling/Kconfig @@ -1,62 +1,62 @@ menu "Wear Levelling" -choice WL_SECTOR_SIZE - bool "Wear Levelling library sector size" - default WL_SECTOR_SIZE_4096 - help - Sector size used by wear levelling library. - You can set default sector size or size that will - fit to the flash device sector size. - - With sector size set to 4096 bytes, wear levelling library is more - efficient. However if FAT filesystem is used on top of wear levelling - library, it will need more temporary storage: 4096 bytes for each - mounted filesystem and 4096 bytes for each opened file. - - With sector size set to 512 bytes, wear levelling library will perform - more operations with flash memory, but less RAM will be used by FAT - filesystem library (512 bytes for the filesystem and 512 bytes for each - file opened). - -config WL_SECTOR_SIZE_512 - bool "512" -config WL_SECTOR_SIZE_4096 - bool "4096" -endchoice + choice WL_SECTOR_SIZE + bool "Wear Levelling library sector size" + default WL_SECTOR_SIZE_4096 + help + Sector size used by wear levelling library. + You can set default sector size or size that will + fit to the flash device sector size. -config WL_SECTOR_SIZE - int - default 512 if WL_SECTOR_SIZE_512 - default 4096 if WL_SECTOR_SIZE_4096 + With sector size set to 4096 bytes, wear levelling library is more + efficient. However if FAT filesystem is used on top of wear levelling + library, it will need more temporary storage: 4096 bytes for each + mounted filesystem and 4096 bytes for each opened file. -choice WL_SECTOR_MODE - bool "Sector store mode" - depends on WL_SECTOR_SIZE_512 - default WL_SECTOR_MODE_SAFE - help - Specify the mode to store data into flash: - - - In Performance mode a data will be stored to the RAM and then - stored back to the flash. Compared to the Safety mode, this operation is - faster, but if power will be lost when erase sector operation is in - progress, then the data from complete flash device sector will be lost. - - - In Safety mode data from complete flash device sector will be read from - flash, modified, and then stored back to flash. - Compared to the Performance mode, this operation is slower, but if - power is lost during erase sector operation, then the data from full - flash device sector will not be lost. - -config WL_SECTOR_MODE_PERF - bool "Perfomance" - -config WL_SECTOR_MODE_SAFE - bool "Safety" -endchoice + With sector size set to 512 bytes, wear levelling library will perform + more operations with flash memory, but less RAM will be used by FAT + filesystem library (512 bytes for the filesystem and 512 bytes for each + file opened). -config WL_SECTOR_MODE - int - default 0 if WL_SECTOR_MODE_PERF - default 1 if WL_SECTOR_MODE_SAFE + config WL_SECTOR_SIZE_512 + bool "512" + config WL_SECTOR_SIZE_4096 + bool "4096" + endchoice + + config WL_SECTOR_SIZE + int + default 512 if WL_SECTOR_SIZE_512 + default 4096 if WL_SECTOR_SIZE_4096 + + choice WL_SECTOR_MODE + bool "Sector store mode" + depends on WL_SECTOR_SIZE_512 + default WL_SECTOR_MODE_SAFE + help + Specify the mode to store data into flash: + + - In Performance mode a data will be stored to the RAM and then + stored back to the flash. Compared to the Safety mode, this operation is + faster, but if power will be lost when erase sector operation is in + progress, then the data from complete flash device sector will be lost. + + - In Safety mode data from complete flash device sector will be read from + flash, modified, and then stored back to flash. + Compared to the Performance mode, this operation is slower, but if + power is lost during erase sector operation, then the data from full + flash device sector will not be lost. + + config WL_SECTOR_MODE_PERF + bool "Perfomance" + + config WL_SECTOR_MODE_SAFE + bool "Safety" + endchoice + + config WL_SECTOR_MODE + int + default 0 if WL_SECTOR_MODE_PERF + default 1 if WL_SECTOR_MODE_SAFE endmenu diff --git a/examples/bluetooth/a2dp_gatts_coex/main/Kconfig.projbuild b/examples/bluetooth/a2dp_gatts_coex/main/Kconfig.projbuild index c984308d24..2f988267ac 100644 --- a/examples/bluetooth/a2dp_gatts_coex/main/Kconfig.projbuild +++ b/examples/bluetooth/a2dp_gatts_coex/main/Kconfig.projbuild @@ -1,43 +1,42 @@ menu "A2DP Example Configuration" -choice A2DP_SINK_OUTPUT - prompt "A2DP Sink Output" - default A2DP_SINK_OUTPUT_EXTERNAL_I2S - help - Select to use Internal DAC or external I2S driver + choice A2DP_SINK_OUTPUT + prompt "A2DP Sink Output" + default A2DP_SINK_OUTPUT_EXTERNAL_I2S + help + Select to use Internal DAC or external I2S driver -config A2DP_SINK_OUTPUT_INTERNAL_DAC - bool "Internal DAC" - help - Select this to use Internal DAC sink output + config A2DP_SINK_OUTPUT_INTERNAL_DAC + bool "Internal DAC" + help + Select this to use Internal DAC sink output -config A2DP_SINK_OUTPUT_EXTERNAL_I2S - bool "External I2S Codec" - help - Select this to use External I2S sink output + config A2DP_SINK_OUTPUT_EXTERNAL_I2S + bool "External I2S Codec" + help + Select this to use External I2S sink output -endchoice + endchoice -config I2S_LRCK_PIN - int "I2S LRCK (WS) GPIO" - default 22 - depends on A2DP_SINK_OUTPUT_EXTERNAL_I2S - help - GPIO number to use for I2S LRCK(WS) Driver. + config I2S_LRCK_PIN + int "I2S LRCK (WS) GPIO" + default 22 + depends on A2DP_SINK_OUTPUT_EXTERNAL_I2S + help + GPIO number to use for I2S LRCK(WS) Driver. -config I2S_BCK_PIN - int "I2S BCK GPIO" - default 26 - depends on A2DP_SINK_OUTPUT_EXTERNAL_I2S - help - GPIO number to use for I2S BCK Driver. - -config I2S_DATA_PIN - int "I2S DATA GPIO" - default 25 - depends on A2DP_SINK_OUTPUT_EXTERNAL_I2S - help - GPIO number to use for I2S Data Driver. + config I2S_BCK_PIN + int "I2S BCK GPIO" + default 26 + depends on A2DP_SINK_OUTPUT_EXTERNAL_I2S + help + GPIO number to use for I2S BCK Driver. + config I2S_DATA_PIN + int "I2S DATA GPIO" + default 25 + depends on A2DP_SINK_OUTPUT_EXTERNAL_I2S + help + GPIO number to use for I2S Data Driver. endmenu diff --git a/examples/bluetooth/a2dp_sink/main/Kconfig.projbuild b/examples/bluetooth/a2dp_sink/main/Kconfig.projbuild index c984308d24..2f988267ac 100644 --- a/examples/bluetooth/a2dp_sink/main/Kconfig.projbuild +++ b/examples/bluetooth/a2dp_sink/main/Kconfig.projbuild @@ -1,43 +1,42 @@ menu "A2DP Example Configuration" -choice A2DP_SINK_OUTPUT - prompt "A2DP Sink Output" - default A2DP_SINK_OUTPUT_EXTERNAL_I2S - help - Select to use Internal DAC or external I2S driver + choice A2DP_SINK_OUTPUT + prompt "A2DP Sink Output" + default A2DP_SINK_OUTPUT_EXTERNAL_I2S + help + Select to use Internal DAC or external I2S driver -config A2DP_SINK_OUTPUT_INTERNAL_DAC - bool "Internal DAC" - help - Select this to use Internal DAC sink output + config A2DP_SINK_OUTPUT_INTERNAL_DAC + bool "Internal DAC" + help + Select this to use Internal DAC sink output -config A2DP_SINK_OUTPUT_EXTERNAL_I2S - bool "External I2S Codec" - help - Select this to use External I2S sink output + config A2DP_SINK_OUTPUT_EXTERNAL_I2S + bool "External I2S Codec" + help + Select this to use External I2S sink output -endchoice + endchoice -config I2S_LRCK_PIN - int "I2S LRCK (WS) GPIO" - default 22 - depends on A2DP_SINK_OUTPUT_EXTERNAL_I2S - help - GPIO number to use for I2S LRCK(WS) Driver. + config I2S_LRCK_PIN + int "I2S LRCK (WS) GPIO" + default 22 + depends on A2DP_SINK_OUTPUT_EXTERNAL_I2S + help + GPIO number to use for I2S LRCK(WS) Driver. -config I2S_BCK_PIN - int "I2S BCK GPIO" - default 26 - depends on A2DP_SINK_OUTPUT_EXTERNAL_I2S - help - GPIO number to use for I2S BCK Driver. - -config I2S_DATA_PIN - int "I2S DATA GPIO" - default 25 - depends on A2DP_SINK_OUTPUT_EXTERNAL_I2S - help - GPIO number to use for I2S Data Driver. + config I2S_BCK_PIN + int "I2S BCK GPIO" + default 26 + depends on A2DP_SINK_OUTPUT_EXTERNAL_I2S + help + GPIO number to use for I2S BCK Driver. + config I2S_DATA_PIN + int "I2S DATA GPIO" + default 25 + depends on A2DP_SINK_OUTPUT_EXTERNAL_I2S + help + GPIO number to use for I2S Data Driver. endmenu diff --git a/examples/bluetooth/ble_ibeacon/main/Kconfig.projbuild b/examples/bluetooth/ble_ibeacon/main/Kconfig.projbuild index 7418a87f9e..fd9df0c12d 100644 --- a/examples/bluetooth/ble_ibeacon/main/Kconfig.projbuild +++ b/examples/bluetooth/ble_ibeacon/main/Kconfig.projbuild @@ -1,26 +1,26 @@ menu "iBeacon Example Configuration" -choice IBEACON_MODE - bool "iBeacon Mode" - default IBEACON_SENDER - help - Select the iBeacon Mode. + choice IBEACON_MODE + bool "iBeacon Mode" + default IBEACON_SENDER + help + Select the iBeacon Mode. -config IBEACON_SENDER - bool "iBeacon Sender Mode" - help - Select the iBeacon Sender Mode. + config IBEACON_SENDER + bool "iBeacon Sender Mode" + help + Select the iBeacon Sender Mode. -config IBEACON_RECEIVER - bool "iBeacon Receiver Mode" - help - Select the iBeacon Receiver Mode. + config IBEACON_RECEIVER + bool "iBeacon Receiver Mode" + help + Select the iBeacon Receiver Mode. -endchoice + endchoice -config IBEACON_MODE - int - default 0 if IBEACON_SENDER - default 1 if IBEACON_RECEIVER + config IBEACON_MODE + int + default 0 if IBEACON_SENDER + default 1 if IBEACON_RECEIVER endmenu diff --git a/examples/bluetooth/ble_throughput/throughput_client/main/Kconfig b/examples/bluetooth/ble_throughput/throughput_client/main/Kconfig index d1b44f5d3d..e3c97e084a 100644 --- a/examples/bluetooth/ble_throughput/throughput_client/main/Kconfig +++ b/examples/bluetooth/ble_throughput/throughput_client/main/Kconfig @@ -1,14 +1,14 @@ menu "Example 'GATT CLIENT THROUGHPUT' Config" -config GATTS_NOTIFY_THROUGHPUT - bool "test the gatts notify throughput" - help - If this config item is set, then the 'GATTC_WRITE_THROUGHPUT' config should be close, it can't test both write or notify at the same time at this demo + config GATTS_NOTIFY_THROUGHPUT + bool "test the gatts notify throughput" + help + If this config item is set, then the 'GATTC_WRITE_THROUGHPUT' config should be close, it can't test both + write or notify at the same time at this demo -config GATTC_WRITE_THROUGHPUT - bool "test the gattc write throughput" - help - If this config item is set, then the 'GATTS_NOTIFY_THROUGHPUT' config should be close, it can't test both write or notify at the same time at this demo + config GATTC_WRITE_THROUGHPUT + bool "test the gattc write throughput" + help + If this config item is set, then the 'GATTS_NOTIFY_THROUGHPUT' config should be close, it can't test both + write or notify at the same time at this demo endmenu - - diff --git a/examples/bluetooth/ble_throughput/throughput_server/main/Kconfig b/examples/bluetooth/ble_throughput/throughput_server/main/Kconfig index fa0098ab4a..b2824c6d72 100644 --- a/examples/bluetooth/ble_throughput/throughput_server/main/Kconfig +++ b/examples/bluetooth/ble_throughput/throughput_server/main/Kconfig @@ -1,23 +1,27 @@ menu "Example 'GATT SERVER THROUGHPUT' Config" -config SET_RAW_ADV_DATA - bool "Use raw data for advertising packets and scan response data" - help - If this config item is set, raw binary data will be used to generate advertising & scan response data. - This option uses the esp_ble_gap_config_adv_data_raw() and esp_ble_gap_config_scan_rsp_data_raw() functions. + config SET_RAW_ADV_DATA + bool "Use raw data for advertising packets and scan response data" + help + If this config item is set, raw binary data will be used to generate advertising & scan response data. + This option uses the esp_ble_gap_config_adv_data_raw() and esp_ble_gap_config_scan_rsp_data_raw() + functions. - If this config item is unset, advertising & scan response data is provided via a higher-level esp_ble_adv_data_t structure. - The lower layer will generate the BLE packets. This option has higher overhead at runtime. - -config GATTS_NOTIFY_THROUGHPUT - bool "test the gatts notify throughput" - help - If this config item is set, then the 'GATTC_WRITE_THROUGHPUT' config should be close, it can't test both write or notify at the same time at this demo + If this config item is unset, advertising & scan response data is provided via a higher-level + esp_ble_adv_data_t structure. The lower layer will generate the BLE packets. This option has higher + overhead at runtime. -config GATTC_WRITE_THROUGHPUT - bool "test the gattc write throughput" - help - If this config item is set, then the 'GATTS_NOTIFY_THROUGHPUT' config should be close, it can't test both write or notify at the same time at this demo + config GATTS_NOTIFY_THROUGHPUT + bool "test the gatts notify throughput" + help + If this config item is set, then the 'GATTC_WRITE_THROUGHPUT' config should be close, it can't test both + write or notify at the same time at this demo + + config GATTC_WRITE_THROUGHPUT + bool "test the gattc write throughput" + help + If this config item is set, then the 'GATTS_NOTIFY_THROUGHPUT' config should be close, it can't test both + write or notify at the same time at this demo endmenu diff --git a/examples/bluetooth/gatt_server/main/Kconfig b/examples/bluetooth/gatt_server/main/Kconfig index 7f01d57447..6ecc4bc742 100644 --- a/examples/bluetooth/gatt_server/main/Kconfig +++ b/examples/bluetooth/gatt_server/main/Kconfig @@ -1,12 +1,14 @@ menu "Example 'GATT SERVER' Config" -config SET_RAW_ADV_DATA - bool "Use raw data for advertising packets and scan response data" - help - If this config item is set, raw binary data will be used to generate advertising & scan response data. - This option uses the esp_ble_gap_config_adv_data_raw() and esp_ble_gap_config_scan_rsp_data_raw() functions. + config SET_RAW_ADV_DATA + bool "Use raw data for advertising packets and scan response data" + help + If this config item is set, raw binary data will be used to generate advertising & scan response data. + This option uses the esp_ble_gap_config_adv_data_raw() and esp_ble_gap_config_scan_rsp_data_raw() + functions. - If this config item is unset, advertising & scan response data is provided via a higher-level esp_ble_adv_data_t structure. - The lower layer will generate the BLE packets. This option has higher overhead at runtime. + If this config item is unset, advertising & scan response data is provided via a higher-level + esp_ble_adv_data_t structure. The lower layer will generate the BLE packets. This option has higher + overhead at runtime. endmenu diff --git a/examples/get-started/blink/main/Kconfig.projbuild b/examples/get-started/blink/main/Kconfig.projbuild index f44a3df7c3..09f282c826 100644 --- a/examples/get-started/blink/main/Kconfig.projbuild +++ b/examples/get-started/blink/main/Kconfig.projbuild @@ -1,14 +1,14 @@ menu "Example Configuration" -config BLINK_GPIO - int "Blink GPIO number" - range 0 34 - default 5 - help - GPIO number (IOxx) to blink on and off. + config BLINK_GPIO + int "Blink GPIO number" + range 0 34 + default 5 + help + GPIO number (IOxx) to blink on and off. - Some GPIOs are used for other purposes (flash connections, etc.) and cannot be used to blink. + Some GPIOs are used for other purposes (flash connections, etc.) and cannot be used to blink. - GPIOs 35-39 are input-only so cannot be used as outputs. + GPIOs 35-39 are input-only so cannot be used as outputs. endmenu diff --git a/examples/mesh/internal_communication/main/Kconfig.projbuild b/examples/mesh/internal_communication/main/Kconfig.projbuild index 50b649d930..377e9e6f96 100644 --- a/examples/mesh/internal_communication/main/Kconfig.projbuild +++ b/examples/mesh/internal_communication/main/Kconfig.projbuild @@ -1,42 +1,42 @@ menu "Example Configuration" -config MESH_CHANNEL - int "channel" - range 0 14 - default 0 - help - mesh network channel. + config MESH_CHANNEL + int "channel" + range 0 14 + default 0 + help + mesh network channel. -config MESH_ROUTER_SSID - string "Router SSID" + config MESH_ROUTER_SSID + string "Router SSID" default "ROUTER_SSID" help Router SSID. -config MESH_ROUTER_PASSWD - string "Router password" + config MESH_ROUTER_PASSWD + string "Router password" default "ROUTER_PASSWD" help Router password. -choice - bool "Mesh AP Authentication Mode" + choice + bool "Mesh AP Authentication Mode" default WIFI_AUTH_WPA2_PSK help Authentication mode. -config WIFI_AUTH_OPEN - bool "WIFI_AUTH_OPEN" -config WIFI_AUTH_WPA_PSK - bool "WIFI_AUTH_WPA_PSK" -config WIFI_AUTH_WPA2_PSK - bool "WIFI_AUTH_WPA2_PSK" -config WIFI_AUTH_WPA_WPA2_PSK - bool "WIFI_AUTH_WPA_WPA2_PSK" -endchoice + config WIFI_AUTH_OPEN + bool "WIFI_AUTH_OPEN" + config WIFI_AUTH_WPA_PSK + bool "WIFI_AUTH_WPA_PSK" + config WIFI_AUTH_WPA2_PSK + bool "WIFI_AUTH_WPA2_PSK" + config WIFI_AUTH_WPA_WPA2_PSK + bool "WIFI_AUTH_WPA_WPA2_PSK" + endchoice -config MESH_AP_AUTHMODE - int + config MESH_AP_AUTHMODE + int default 0 if WIFI_AUTH_OPEN default 2 if WIFI_AUTH_WPA_PSK default 3 if WIFI_AUTH_WPA2_PSK @@ -44,28 +44,28 @@ config MESH_AP_AUTHMODE help Mesh AP authentication mode. -config MESH_AP_PASSWD - string "Mesh AP Password" + config MESH_AP_PASSWD + string "Mesh AP Password" default "MAP_PASSWD" help Mesh AP password. -config MESH_AP_CONNECTIONS - int "Mesh AP Connections" + config MESH_AP_CONNECTIONS + int "Mesh AP Connections" range 1 10 default 6 help The number of stations allowed to connect in. -config MESH_MAX_LAYER - int "Mesh Max Layer" + config MESH_MAX_LAYER + int "Mesh Max Layer" range 1 25 default 6 help Max layer allowed in mesh network. -config MESH_ROUTE_TABLE_SIZE - int "Mesh Routing Table Size" + config MESH_ROUTE_TABLE_SIZE + int "Mesh Routing Table Size" range 1 300 default 50 help diff --git a/examples/mesh/manual_networking/main/Kconfig.projbuild b/examples/mesh/manual_networking/main/Kconfig.projbuild index fefc2a4532..a0486c45cf 100644 --- a/examples/mesh/manual_networking/main/Kconfig.projbuild +++ b/examples/mesh/manual_networking/main/Kconfig.projbuild @@ -1,42 +1,42 @@ menu "Example Configuration" -config MESH_CHANNEL - int "channel" - range 1 14 - default 1 - help - mesh network channel. + config MESH_CHANNEL + int "channel" + range 1 14 + default 1 + help + mesh network channel. -config MESH_ROUTER_SSID - string "Router SSID" + config MESH_ROUTER_SSID + string "Router SSID" default "ROUTER_SSID" help Router SSID. -config MESH_ROUTER_PASSWD - string "Router password" + config MESH_ROUTER_PASSWD + string "Router password" default "ROUTER_PASSWD" help Router password. -choice - bool "Mesh AP Authentication Mode" + choice + bool "Mesh AP Authentication Mode" default WIFI_AUTH_WPA2_PSK help Authentication mode. -config WIFI_AUTH_OPEN - bool "WIFI_AUTH_OPEN" -config WIFI_AUTH_WPA_PSK - bool "WIFI_AUTH_WPA_PSK" -config WIFI_AUTH_WPA2_PSK - bool "WIFI_AUTH_WPA2_PSK" -config WIFI_AUTH_WPA_WPA2_PSK - bool "WIFI_AUTH_WPA_WPA2_PSK" -endchoice + config WIFI_AUTH_OPEN + bool "WIFI_AUTH_OPEN" + config WIFI_AUTH_WPA_PSK + bool "WIFI_AUTH_WPA_PSK" + config WIFI_AUTH_WPA2_PSK + bool "WIFI_AUTH_WPA2_PSK" + config WIFI_AUTH_WPA_WPA2_PSK + bool "WIFI_AUTH_WPA_WPA2_PSK" + endchoice -config MESH_AP_AUTHMODE - int + config MESH_AP_AUTHMODE + int default 0 if WIFI_AUTH_OPEN default 2 if WIFI_AUTH_WPA_PSK default 3 if WIFI_AUTH_WPA2_PSK @@ -44,46 +44,46 @@ config MESH_AP_AUTHMODE help Mesh AP authentication mode. -config MESH_AP_PASSWD - string "Mesh AP Password" + config MESH_AP_PASSWD + string "Mesh AP Password" default "MAP_PASSWD" help Mesh AP password. -config MESH_AP_CONNECTIONS - int "Mesh AP Connections" + config MESH_AP_CONNECTIONS + int "Mesh AP Connections" range 1 10 default 6 help The number of stations allowed to connect in. -config MESH_MAX_LAYER - int "Mesh Max Layer" + config MESH_MAX_LAYER + int "Mesh Max Layer" range 1 25 default 6 help Max layer allowed in mesh network. -config MESH_IE_CRYPTO_KEY - string "Mesh IE Crypto Key" + config MESH_IE_CRYPTO_KEY + string "Mesh IE Crypto Key" default "hello, esp-mesh." help Mesh IE ASCII crypto key, length in bytes, range:8~64. -choice - bool "Mesh IE Crypto Funcs" + choice + bool "Mesh IE Crypto Funcs" default IE_CRYPTO_ENABLE help Mesh IE crypto funcs. -config IE_CRYPTO_ENABLE - bool "IE_CRYPTO_ENABLE" -config IE_CRYPTO_DISABLE - bool "IE_CRYPTO_DISABLE" -endchoice + config IE_CRYPTO_ENABLE + bool "IE_CRYPTO_ENABLE" + config IE_CRYPTO_DISABLE + bool "IE_CRYPTO_DISABLE" + endchoice -config MESH_IE_CRYPTO_FUNCS - int + config MESH_IE_CRYPTO_FUNCS + int default 1 if IE_CRYPTO_ENABLE default 0 if IE_CRYPTO_DISABLE help diff --git a/examples/peripherals/adc2/main/Kconfig.projbuild b/examples/peripherals/adc2/main/Kconfig.projbuild index 4478e272dd..d122b6f4e9 100644 --- a/examples/peripherals/adc2/main/Kconfig.projbuild +++ b/examples/peripherals/adc2/main/Kconfig.projbuild @@ -1,61 +1,61 @@ menu "Example Configuration" -choice ADC2_EXAMPLE_CHANNEL - bool "ADC2 Channel Num" - default ADC2_EXAMPLE_CHANNEL_7 - help - The channel of ADC2 used in this example. + choice ADC2_EXAMPLE_CHANNEL + bool "ADC2 Channel Num" + default ADC2_EXAMPLE_CHANNEL_7 + help + The channel of ADC2 used in this example. -config ADC2_EXAMPLE_CHANNEL_0 - bool "ADC2 Channel 0 (GPIO 4)" -config ADC2_EXAMPLE_CHANNEL_1 - bool "ADC2 Channel 1 (GPIO 0)" -config ADC2_EXAMPLE_CHANNEL_2 - bool "ADC2 Channel 2 (GPIO 2)" -config ADC2_EXAMPLE_CHANNEL_3 - bool "ADC2 Channel 3 (GPIO 15)" -config ADC2_EXAMPLE_CHANNEL_4 - bool "ADC2 Channel 4 (GPIO 13)" -config ADC2_EXAMPLE_CHANNEL_5 - bool "ADC2 Channel 5 (GPIO 12)" -config ADC2_EXAMPLE_CHANNEL_6 - bool "ADC2 Channel 6 (GPIO 14)" -config ADC2_EXAMPLE_CHANNEL_7 - bool "ADC2 Channel 7 (GPIO 27)" -config ADC2_EXAMPLE_CHANNEL_8 - bool "ADC2 Channel 8 (GPIO 25)" -config ADC2_EXAMPLE_CHANNEL_9 - bool "ADC2 Channel 9 (GPIO 26)" -endchoice + config ADC2_EXAMPLE_CHANNEL_0 + bool "ADC2 Channel 0 (GPIO 4)" + config ADC2_EXAMPLE_CHANNEL_1 + bool "ADC2 Channel 1 (GPIO 0)" + config ADC2_EXAMPLE_CHANNEL_2 + bool "ADC2 Channel 2 (GPIO 2)" + config ADC2_EXAMPLE_CHANNEL_3 + bool "ADC2 Channel 3 (GPIO 15)" + config ADC2_EXAMPLE_CHANNEL_4 + bool "ADC2 Channel 4 (GPIO 13)" + config ADC2_EXAMPLE_CHANNEL_5 + bool "ADC2 Channel 5 (GPIO 12)" + config ADC2_EXAMPLE_CHANNEL_6 + bool "ADC2 Channel 6 (GPIO 14)" + config ADC2_EXAMPLE_CHANNEL_7 + bool "ADC2 Channel 7 (GPIO 27)" + config ADC2_EXAMPLE_CHANNEL_8 + bool "ADC2 Channel 8 (GPIO 25)" + config ADC2_EXAMPLE_CHANNEL_9 + bool "ADC2 Channel 9 (GPIO 26)" + endchoice -config ADC2_EXAMPLE_CHANNEL - int - default 0 if ADC2_EXAMPLE_CHANNEL_0 - default 1 if ADC2_EXAMPLE_CHANNEL_1 - default 2 if ADC2_EXAMPLE_CHANNEL_2 - default 3 if ADC2_EXAMPLE_CHANNEL_3 - default 4 if ADC2_EXAMPLE_CHANNEL_4 - default 5 if ADC2_EXAMPLE_CHANNEL_5 - default 6 if ADC2_EXAMPLE_CHANNEL_6 - default 7 if ADC2_EXAMPLE_CHANNEL_7 - default 8 if ADC2_EXAMPLE_CHANNEL_8 - default 9 if ADC2_EXAMPLE_CHANNEL_9 + config ADC2_EXAMPLE_CHANNEL + int + default 0 if ADC2_EXAMPLE_CHANNEL_0 + default 1 if ADC2_EXAMPLE_CHANNEL_1 + default 2 if ADC2_EXAMPLE_CHANNEL_2 + default 3 if ADC2_EXAMPLE_CHANNEL_3 + default 4 if ADC2_EXAMPLE_CHANNEL_4 + default 5 if ADC2_EXAMPLE_CHANNEL_5 + default 6 if ADC2_EXAMPLE_CHANNEL_6 + default 7 if ADC2_EXAMPLE_CHANNEL_7 + default 8 if ADC2_EXAMPLE_CHANNEL_8 + default 9 if ADC2_EXAMPLE_CHANNEL_9 -choice DAC_EXAMPLE_CHANNEL - bool "DAC Channel Num" - default DAC_EXAMPLE_CHANNEL_1 - help - The channel of DAC used in this example. + choice DAC_EXAMPLE_CHANNEL + bool "DAC Channel Num" + default DAC_EXAMPLE_CHANNEL_1 + help + The channel of DAC used in this example. -config DAC_EXAMPLE_CHANNEL_1 - bool "DAC Channel 1 (GPIO25)" -config DAC_EXAMPLE_CHANNEL_2 - bool "DAC Channel 2 (GPIO26)" -endchoice + config DAC_EXAMPLE_CHANNEL_1 + bool "DAC Channel 1 (GPIO25)" + config DAC_EXAMPLE_CHANNEL_2 + bool "DAC Channel 2 (GPIO26)" + endchoice -config DAC_EXAMPLE_CHANNEL - int - default 1 if DAC_EXAMPLE_CHANNEL_1 - default 2 if DAC_EXAMPLE_CHANNEL_2 + config DAC_EXAMPLE_CHANNEL + int + default 1 if DAC_EXAMPLE_CHANNEL_1 + default 2 if DAC_EXAMPLE_CHANNEL_2 endmenu diff --git a/examples/peripherals/i2c/i2c_self_test/main/Kconfig.projbuild b/examples/peripherals/i2c/i2c_self_test/main/Kconfig.projbuild index 0266b3e60d..22cd216e93 100644 --- a/examples/peripherals/i2c/i2c_self_test/main/Kconfig.projbuild +++ b/examples/peripherals/i2c/i2c_self_test/main/Kconfig.projbuild @@ -1,124 +1,124 @@ menu "Example Configuration" -menu "I2C Master" - config I2C_MASTER_SCL - int "SCL GPIO Num" - default 19 - help - GPIO number for I2C Master clock line. + menu "I2C Master" + config I2C_MASTER_SCL + int "SCL GPIO Num" + default 19 + help + GPIO number for I2C Master clock line. -config I2C_MASTER_SDA - int "SDA GPIO Num" - default 18 - help - GPIO number for I2C Master data line. + config I2C_MASTER_SDA + int "SDA GPIO Num" + default 18 + help + GPIO number for I2C Master data line. -config I2C_MASTER_PORT_NUM - int "Port Number" - default 1 - help - Port number for I2C Master device. + config I2C_MASTER_PORT_NUM + int "Port Number" + default 1 + help + Port number for I2C Master device. -config I2C_MASTER_FREQUENCY - int "Master Frequency" - default 100000 - help - I2C Speed of Master device. -endmenu + config I2C_MASTER_FREQUENCY + int "Master Frequency" + default 100000 + help + I2C Speed of Master device. + endmenu -menu "I2C Slave" - config I2C_SLAVE_SCL - int "SCL GPIO Num" - default 26 - help - GPIO number for I2C Slave clock line. + menu "I2C Slave" + config I2C_SLAVE_SCL + int "SCL GPIO Num" + default 26 + help + GPIO number for I2C Slave clock line. -config I2C_SLAVE_SDA - int "SDA GPIO Num" - default 25 - help - GPIO number for I2C Slave data line. + config I2C_SLAVE_SDA + int "SDA GPIO Num" + default 25 + help + GPIO number for I2C Slave data line. -config I2C_SLAVE_PORT_NUM - int "Port Number" - default 0 - help - Port number for I2C Slave device. + config I2C_SLAVE_PORT_NUM + int "Port Number" + default 0 + help + Port number for I2C Slave device. -config I2C_SLAVE_ADDRESS - hex "ESP Slave Address" - default 0x28 - help - Hardware Address of I2C Slave Port. -endmenu + config I2C_SLAVE_ADDRESS + hex "ESP Slave Address" + default 0x28 + help + Hardware Address of I2C Slave Port. + endmenu -menu "BH1750 Sensor" -choice BH1750_ADDR - prompt "BH1750 I2C Address" - default BH1750_I2C_ADDRESS_LOW - help - Hardware address of BH1750, which is 2 types, and determined by ADDR terminal. + menu "BH1750 Sensor" + choice BH1750_ADDR + prompt "BH1750 I2C Address" + default BH1750_I2C_ADDRESS_LOW + help + Hardware address of BH1750, which is 2 types, and determined by ADDR terminal. -config BH1750_I2C_ADDRESS_LOW - bool "BH1750 I2C Address(ADDR=0)" - help - I2C Address of BH1750 Sensor according to your schemetic configuration. + config BH1750_I2C_ADDRESS_LOW + bool "BH1750 I2C Address(ADDR=0)" + help + I2C Address of BH1750 Sensor according to your schemetic configuration. -config BH1750_I2C_ADDRESS_High - bool "BH1750 I2C Address(ADDR=1)" - help - I2C Address of BH1750 Sensor according to your schemetic configuration. -endchoice + config BH1750_I2C_ADDRESS_High + bool "BH1750 I2C Address(ADDR=1)" + help + I2C Address of BH1750 Sensor according to your schemetic configuration. + endchoice -config BH1750_ADDR - hex - default 0x5C if BH1750_I2C_ADDRESS_High - default 0x23 if BH1750_I2C_ADDRESS_LOW + config BH1750_ADDR + hex + default 0x5C if BH1750_I2C_ADDRESS_High + default 0x23 if BH1750_I2C_ADDRESS_LOW -choice BH1750_MODE - prompt "BH1750 Operation Mode" - default BH1750_ONETIME_L_RESOLUTION - help - Operation Mode of BH1750. - Different mode means different resolution and measurement time. -config BH1750_CONTINU_H_RESOLUTION - bool "Continuously H-Resolution Mode" - help - Resolution is 1lx, measurement time is typically 120ms. -config BH1750_CONTINU_H_RESOLUTION2 - bool "Continuously H-Resolution Mode2" - help - Resolution is 0.5lx, measurement time is typically 120ms. -config BH1750_CONTINU_L_RESOLUTION - bool "Continuously L-Resolution Mode" - help - Resolution is 4lx, measurement time is typically 16ms. -config BH1750_ONETIME_H_RESOLUTION - bool "One Time H-Resolution Mode" - help - Resolution is 1lx, measurement time is typically 120ms. - It is automatically set to Power Down mode after measurement. -config BH1750_ONETIME_H_RESOLUTION2 - bool "One Time H-Resolution Mode2" - help - Resolution is 0.5lx, measurement time is typically 120ms. - It is automatically set to Power Down mode after measurement. -config BH1750_ONETIME_L_RESOLUTION - bool "One Time L-Resolution Mode" - help - Resolution is 4lx, measurement time is typically 16ms. - It is automatically set to Power Down mode after measurement. -endchoice + choice BH1750_MODE + prompt "BH1750 Operation Mode" + default BH1750_ONETIME_L_RESOLUTION + help + Operation Mode of BH1750. + Different mode means different resolution and measurement time. + config BH1750_CONTINU_H_RESOLUTION + bool "Continuously H-Resolution Mode" + help + Resolution is 1lx, measurement time is typically 120ms. + config BH1750_CONTINU_H_RESOLUTION2 + bool "Continuously H-Resolution Mode2" + help + Resolution is 0.5lx, measurement time is typically 120ms. + config BH1750_CONTINU_L_RESOLUTION + bool "Continuously L-Resolution Mode" + help + Resolution is 4lx, measurement time is typically 16ms. + config BH1750_ONETIME_H_RESOLUTION + bool "One Time H-Resolution Mode" + help + Resolution is 1lx, measurement time is typically 120ms. + It is automatically set to Power Down mode after measurement. + config BH1750_ONETIME_H_RESOLUTION2 + bool "One Time H-Resolution Mode2" + help + Resolution is 0.5lx, measurement time is typically 120ms. + It is automatically set to Power Down mode after measurement. + config BH1750_ONETIME_L_RESOLUTION + bool "One Time L-Resolution Mode" + help + Resolution is 4lx, measurement time is typically 16ms. + It is automatically set to Power Down mode after measurement. + endchoice -config BH1750_OPMODE - hex - default 0x10 if BH1750_CONTINU_H_RESOLUTION - default 0x11 if BH1750_CONTINU_H_RESOLUTION2 - default 0x13 if BH1750_CONTINU_L_RESOLUTION - default 0x20 if BH1750_ONETIME_H_RESOLUTION - default 0x21 if BH1750_ONETIME_H_RESOLUTION2 - default 0x23 if BH1750_ONETIME_L_RESOLUTION - -endmenu + config BH1750_OPMODE + hex + default 0x10 if BH1750_CONTINU_H_RESOLUTION + default 0x11 if BH1750_CONTINU_H_RESOLUTION2 + default 0x13 if BH1750_CONTINU_L_RESOLUTION + default 0x20 if BH1750_ONETIME_H_RESOLUTION + default 0x21 if BH1750_ONETIME_H_RESOLUTION2 + default 0x23 if BH1750_ONETIME_L_RESOLUTION + + endmenu endmenu diff --git a/examples/peripherals/i2c/i2c_tools/main/Kconfig.projbuild b/examples/peripherals/i2c/i2c_tools/main/Kconfig.projbuild index 3ff2662a78..52a6926f9e 100644 --- a/examples/peripherals/i2c/i2c_tools/main/Kconfig.projbuild +++ b/examples/peripherals/i2c/i2c_tools/main/Kconfig.projbuild @@ -1,25 +1,25 @@ menu "Example Configuration" -config STORE_HISTORY - bool "Store command history in flash" - default y - help - Linenoise line editing library provides functions to save and load - command history. If this option is enabled, initalizes a FAT filesystem - and uses it to store command history. + config STORE_HISTORY + bool "Store command history in flash" + default y + help + Linenoise line editing library provides functions to save and load + command history. If this option is enabled, initalizes a FAT filesystem + and uses it to store command history. -config MAX_CMD_ARGUMENTS - int "Maximum number of command line arguments" - default 16 - range 8 256 - help - maximum number of command line arguments to parse + config MAX_CMD_ARGUMENTS + int "Maximum number of command line arguments" + default 16 + range 8 256 + help + maximum number of command line arguments to parse -config MAX_CMD_LENGTH - int "Command line buffer length" - default 256 - range 256 512 - help - length of command line buffer, in bytes + config MAX_CMD_LENGTH + int "Command line buffer length" + default 256 + range 256 512 + help + length of command line buffer, in bytes endmenu diff --git a/examples/peripherals/sdio/host/main/Kconfig.projbuild b/examples/peripherals/sdio/host/main/Kconfig.projbuild index 093dd0b60b..6e77578a48 100644 --- a/examples/peripherals/sdio/host/main/Kconfig.projbuild +++ b/examples/peripherals/sdio/host/main/Kconfig.projbuild @@ -1,43 +1,43 @@ menu "Example Configuration" -config SDIO_EXAMPLE_4BIT - bool "Host tries using 4-bit mode to communicate with slave" - default n - help - If this is set, the host tries using 4-bit mode to communicate with - slave. If failed, the communication falls back to 1-bit mode. - - If this is not set, the host uses 1-bit mode. However, CMD1 is still - mandatory for interrupts. + config SDIO_EXAMPLE_4BIT + bool "Host tries using 4-bit mode to communicate with slave" + default n + help + If this is set, the host tries using 4-bit mode to communicate with + slave. If failed, the communication falls back to 1-bit mode. - Note that 4-bit mode is not compatible (by default) if the slave is - using 3.3V flash which requires a pull-down on the MTDI pin. + If this is not set, the host uses 1-bit mode. However, CMD1 is still + mandatory for interrupts. -config SDIO_EXAMPLE_HIGHSPEED - bool "Host tries using HS mode to communicate with slave" - default y - help - If this is set, the host tries using high-speed mode to communicate - with slave. If the slave doesn't support high-speed mode, the - communication falls back to default-speed mode. If this is not set, - the host uses DS mode. + Note that 4-bit mode is not compatible (by default) if the slave is + using 3.3V flash which requires a pull-down on the MTDI pin. - If the example does not work, please try disabling the HS mode. + config SDIO_EXAMPLE_HIGHSPEED + bool "Host tries using HS mode to communicate with slave" + default y + help + If this is set, the host tries using high-speed mode to communicate + with slave. If the slave doesn't support high-speed mode, the + communication falls back to default-speed mode. If this is not set, + the host uses DS mode. -choice EXAMPLE_SLAVE - prompt "Id of Slave used in Espressif master-slave board." - default EXAMPLE_SLAVE_NONE - help - If Espressif master-slave board is used, select which slave is used. + If the example does not work, please try disabling the HS mode. -config EXAMPLE_SLAVE_NONE - bool "Not using Espressif master-slave board." -config EXAMPLE_SLAVE_B1 - bool "Using slave B1" -config EXAMPLE_SLAVE_B2 - bool "Using slave B2" -config EXAMPLE_SLAVE_B3 - bool "Using slave B3" -endchoice + choice EXAMPLE_SLAVE + prompt "Id of Slave used in Espressif master-slave board." + default EXAMPLE_SLAVE_NONE + help + If Espressif master-slave board is used, select which slave is used. + + config EXAMPLE_SLAVE_NONE + bool "Not using Espressif master-slave board." + config EXAMPLE_SLAVE_B1 + bool "Using slave B1" + config EXAMPLE_SLAVE_B2 + bool "Using slave B2" + config EXAMPLE_SLAVE_B3 + bool "Using slave B3" + endchoice endmenu diff --git a/examples/peripherals/sdio/slave/main/Kconfig.projbuild b/examples/peripherals/sdio/slave/main/Kconfig.projbuild index ecc9cd4904..82a44877a6 100644 --- a/examples/peripherals/sdio/slave/main/Kconfig.projbuild +++ b/examples/peripherals/sdio/slave/main/Kconfig.projbuild @@ -1,16 +1,16 @@ menu "Example Configuration" -config SDIO_DAT2_DISABLED - bool "Disable the DAT2 in SDIO slave" - default y - help - SDIO slave DAT pin is unfortunately the same pin as MTDI, which - controls the flash power voltage. For 3.3v flash devkits / modules / - kits, it conflicts with the DAT2 pullups required by the - specification. - - This disables the peripheral input from the DAT2 so that we can work - in 1-bit mode when DAT2 is floating (pulled down). 4-bit mode is - therefore unavailable. + config SDIO_DAT2_DISABLED + bool "Disable the DAT2 in SDIO slave" + default y + help + SDIO slave DAT pin is unfortunately the same pin as MTDI, which + controls the flash power voltage. For 3.3v flash devkits / modules / + kits, it conflicts with the DAT2 pullups required by the + specification. + + This disables the peripheral input from the DAT2 so that we can work + in 1-bit mode when DAT2 is floating (pulled down). 4-bit mode is + therefore unavailable. endmenu diff --git a/examples/peripherals/spi_master/main/Kconfig.projbuild b/examples/peripherals/spi_master/main/Kconfig.projbuild index 2a278f4334..bab78fc6bf 100644 --- a/examples/peripherals/spi_master/main/Kconfig.projbuild +++ b/examples/peripherals/spi_master/main/Kconfig.projbuild @@ -1,26 +1,26 @@ menu "Example Configuration" -choice LCD_TYPE - prompt "LCD module type" - default LCD_TYPE_AUTO - help - The type of LCD on the evaluation board. + choice LCD_TYPE + prompt "LCD module type" + default LCD_TYPE_AUTO + help + The type of LCD on the evaluation board. -config LCD_TYPE_AUTO - bool "Auto detect" -config LCD_TYPE_ST7789V - bool "ST7789V (WROVER Kit v2 or v3)" -config LCD_TYPE_ILI9341 - bool "ILI9341 (WROVER Kit v1 or DevKitJ v1)" -endchoice + config LCD_TYPE_AUTO + bool "Auto detect" + config LCD_TYPE_ST7789V + bool "ST7789V (WROVER Kit v2 or v3)" + config LCD_TYPE_ILI9341 + bool "ILI9341 (WROVER Kit v1 or DevKitJ v1)" + endchoice -config LCD_OVERCLOCK - bool - prompt "Run LCD at higher clock speed than allowed" - default "n" - help - The ILI9341 and ST7789 specify that the maximum clock speed for the SPI interface is 10MHz. However, - in practice the driver chips work fine with a higher clock rate, and using that gives a better framerate. - Select this to try using the out-of-spec clock rate. + config LCD_OVERCLOCK + bool + prompt "Run LCD at higher clock speed than allowed" + default "n" + help + The ILI9341 and ST7789 specify that the maximum clock speed for the SPI interface is 10MHz. However, + in practice the driver chips work fine with a higher clock rate, and using that gives a better framerate. + Select this to try using the out-of-spec clock rate. endmenu diff --git a/examples/peripherals/uart/nmea0183_parser/main/Kconfig.projbuild b/examples/peripherals/uart/nmea0183_parser/main/Kconfig.projbuild index 5614034614..f4eb3f4e97 100644 --- a/examples/peripherals/uart/nmea0183_parser/main/Kconfig.projbuild +++ b/examples/peripherals/uart/nmea0183_parser/main/Kconfig.projbuild @@ -1,85 +1,85 @@ menu "Example Configuration" -config NMEA_PARSER_RING_BUFFER_SIZE -int "NMEA Parser Ring Buffer Size" -range 0 2048 -default 1024 -help - Size of the ring buffer used for UART Rx channel. + config NMEA_PARSER_RING_BUFFER_SIZE + int "NMEA Parser Ring Buffer Size" + range 0 2048 + default 1024 + help + Size of the ring buffer used for UART Rx channel. -config NMEA_PARSER_TASK_STACK_SIZE -int "NMEA Parser Task Stack Size" -range 0 4096 -default 2048 -help - Stack size of NMEA Parser task. + config NMEA_PARSER_TASK_STACK_SIZE + int "NMEA Parser Task Stack Size" + range 0 4096 + default 2048 + help + Stack size of NMEA Parser task. -config NMEA_PARSER_TASK_PRIORITY -int "NMEA Parser Task Priority" -range 0 24 -default 2 -help - Priority of NMEA Parser task. + config NMEA_PARSER_TASK_PRIORITY + int "NMEA Parser Task Priority" + range 0 24 + default 2 + help + Priority of NMEA Parser task. -menu "NMEA Statement Support" -comment "At least one statement must be selected" -config NMEA_STATEMENT_GGA - bool "GGA Statement" - default y - help - Enabling this option will parse the following parameter from GGA statement: + menu "NMEA Statement Support" + comment "At least one statement must be selected" + config NMEA_STATEMENT_GGA + bool "GGA Statement" + default y + help + Enabling this option will parse the following parameter from GGA statement: - - Latitude, Longitude, Altitude; - - Number of satellites in use, fix status (no fix, GPS, DGPS), UTC time; + - Latitude, Longitude, Altitude; + - Number of satellites in use, fix status (no fix, GPS, DGPS), UTC time; -config NMEA_STATEMENT_GSA - bool "GSA Statement" - default y - help - Enabling this option will parse the following parameter from GSA statement: + config NMEA_STATEMENT_GSA + bool "GSA Statement" + default y + help + Enabling this option will parse the following parameter from GSA statement: - - Position/Vertical/Horizontal dilution of precision; - - Fix mode (no fix, 2D, 3D fix); - - IDs of satellites in use; + - Position/Vertical/Horizontal dilution of precision; + - Fix mode (no fix, 2D, 3D fix); + - IDs of satellites in use; -config NMEA_STATEMENT_GSV - bool "GSV Statement" - default y - help - Enabling this option will parse the following parameter from GSV statement: + config NMEA_STATEMENT_GSV + bool "GSV Statement" + default y + help + Enabling this option will parse the following parameter from GSV statement: - - Number of satellites in view; - - Optional details of each satellite in view; + - Number of satellites in view; + - Optional details of each satellite in view; -config NMEA_STATEMENT_RMC - bool "RMC Statement" - default y - help - Enabling this option will parse the following parameter from RMC statement: + config NMEA_STATEMENT_RMC + bool "RMC Statement" + default y + help + Enabling this option will parse the following parameter from RMC statement: - - Validity of GPS signal; - - Ground speed (knots) and course over ground (degrees); - - Magnetic variation; - - UTC date; + - Validity of GPS signal; + - Ground speed (knots) and course over ground (degrees); + - Magnetic variation; + - UTC date; -config NMEA_STATEMENT_GLL - bool "GLL Statement" - default y - help - Enabling this option will parse the following parameter from GLL statement: + config NMEA_STATEMENT_GLL + bool "GLL Statement" + default y + help + Enabling this option will parse the following parameter from GLL statement: - - Latitude, Longitude; - - UTC time; + - Latitude, Longitude; + - UTC time; -config NMEA_STATEMENT_VTG - bool "VTG Statement" - default y - help - Enabling this option will parse the following parameter from VTG statement: + config NMEA_STATEMENT_VTG + bool "VTG Statement" + default y + help + Enabling this option will parse the following parameter from VTG statement: - - Ground speed (knots, km/h) and course over ground (degrees); - - Magnetic variation; - -endmenu + - Ground speed (knots, km/h) and course over ground (degrees); + - Magnetic variation; + + endmenu endmenu diff --git a/examples/protocols/asio/chat_client/main/Kconfig.projbuild b/examples/protocols/asio/chat_client/main/Kconfig.projbuild index 32e5f3fcb4..4185e24246 100644 --- a/examples/protocols/asio/chat_client/main/Kconfig.projbuild +++ b/examples/protocols/asio/chat_client/main/Kconfig.projbuild @@ -1,27 +1,28 @@ menu "Example Configuration" -config ESP_WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config ESP_WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config ESP_WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config ESP_WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. -config EXAMPLE_PORT - string "asio example port number" - default "2222" - help - Port number used by ASIO example + config EXAMPLE_PORT + string "asio example port number" + default "2222" + help + Port number used by ASIO example -config EXAMPLE_SERVER_IP - string "asio example server ip for this client to connect to (leave defalut=FROM_STDIN to enter the server address via serial terminal)" - default "FROM_STDIN" - help - Please set the host name or ip address of corespondant server running + config EXAMPLE_SERVER_IP + string "asio example server ip" + default "FROM_STDIN" + help + asio example server ip for this client to connect to (leave default=FROM_STDIN to enter the server address + via serial terminal). endmenu diff --git a/examples/protocols/asio/chat_server/main/Kconfig.projbuild b/examples/protocols/asio/chat_server/main/Kconfig.projbuild index c0d6fd9cd5..ecbbf8ae91 100644 --- a/examples/protocols/asio/chat_server/main/Kconfig.projbuild +++ b/examples/protocols/asio/chat_server/main/Kconfig.projbuild @@ -1,21 +1,21 @@ menu "Example Configuration" -config ESP_WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config ESP_WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config ESP_WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config ESP_WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. -config EXAMPLE_PORT - string "asio example port number" - default "80" - help - Port number used by ASIO example + config EXAMPLE_PORT + string "asio example port number" + default "80" + help + Port number used by ASIO example endmenu diff --git a/examples/protocols/asio/tcp_echo_server/main/Kconfig.projbuild b/examples/protocols/asio/tcp_echo_server/main/Kconfig.projbuild index c0d6fd9cd5..ecbbf8ae91 100644 --- a/examples/protocols/asio/tcp_echo_server/main/Kconfig.projbuild +++ b/examples/protocols/asio/tcp_echo_server/main/Kconfig.projbuild @@ -1,21 +1,21 @@ menu "Example Configuration" -config ESP_WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config ESP_WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config ESP_WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config ESP_WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. -config EXAMPLE_PORT - string "asio example port number" - default "80" - help - Port number used by ASIO example + config EXAMPLE_PORT + string "asio example port number" + default "80" + help + Port number used by ASIO example endmenu diff --git a/examples/protocols/asio/udp_echo_server/main/Kconfig.projbuild b/examples/protocols/asio/udp_echo_server/main/Kconfig.projbuild index c0d6fd9cd5..ecbbf8ae91 100644 --- a/examples/protocols/asio/udp_echo_server/main/Kconfig.projbuild +++ b/examples/protocols/asio/udp_echo_server/main/Kconfig.projbuild @@ -1,21 +1,21 @@ menu "Example Configuration" -config ESP_WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config ESP_WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config ESP_WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config ESP_WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. -config EXAMPLE_PORT - string "asio example port number" - default "80" - help - Port number used by ASIO example + config EXAMPLE_PORT + string "asio example port number" + default "80" + help + Port number used by ASIO example endmenu diff --git a/examples/protocols/aws_iot/subscribe_publish/main/Kconfig.projbuild b/examples/protocols/aws_iot/subscribe_publish/main/Kconfig.projbuild index 5f81a81c9f..96a022a5c1 100644 --- a/examples/protocols/aws_iot/subscribe_publish/main/Kconfig.projbuild +++ b/examples/protocols/aws_iot/subscribe_publish/main/Kconfig.projbuild @@ -1,60 +1,60 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + Can be left blank if the network has no security set. -config AWS_EXAMPLE_CLIENT_ID - string "AWS IoT Client ID" - default "myesp32" - help - AWS IoT Client ID for the example. Should be unique for every device. + config AWS_EXAMPLE_CLIENT_ID + string "AWS IoT Client ID" + default "myesp32" + help + AWS IoT Client ID for the example. Should be unique for every device. -choice EXAMPLE_CERT_SOURCE - prompt "AWS IoT Certificate Source" - default EXAMPLE_EMBEDDED_CERTS - help - AWS IoT requires loading of a device-specific certificate and private key, - and a common Root CA Certificate. These can be compiled into the example - app, or they can be loaded via the filesystem from an SD card. + choice EXAMPLE_CERT_SOURCE + prompt "AWS IoT Certificate Source" + default EXAMPLE_EMBEDDED_CERTS + help + AWS IoT requires loading of a device-specific certificate and private key, + and a common Root CA Certificate. These can be compiled into the example + app, or they can be loaded via the filesystem from an SD card. -config EXAMPLE_EMBEDDED_CERTS - bool "Embed into app" -config EXAMPLE_SDCARD_CERTS - bool "Load from SD card" - select EXAMPLE_FILESYSTEM_CERTS -endchoice + config EXAMPLE_EMBEDDED_CERTS + bool "Embed into app" + config EXAMPLE_SDCARD_CERTS + bool "Load from SD card" + select EXAMPLE_FILESYSTEM_CERTS + endchoice -# Currently this is equivalent to EXAMPLE_SDCARD_CERTS, -# however eventually we want to support more filesystem -# sources (SPIFFS, etc.) So this hidden config item -# is selected whenever the item should load from filesystem. -config EXAMPLE_FILESYSTEM_CERTS - bool + # Currently this is equivalent to EXAMPLE_SDCARD_CERTS, + # however eventually we want to support more filesystem + # sources (SPIFFS, etc.) So this hidden config item + # is selected whenever the item should load from filesystem. + config EXAMPLE_FILESYSTEM_CERTS + bool -config EXAMPLE_CERTIFICATE_PATH - string "Device Certificate Path" - depends on EXAMPLE_FILESYSTEM_CERTS - default "/sdcard/certificate.pem.crt" + config EXAMPLE_CERTIFICATE_PATH + string "Device Certificate Path" + depends on EXAMPLE_FILESYSTEM_CERTS + default "/sdcard/certificate.pem.crt" -config EXAMPLE_PRIVATE_KEY_PATH - string "Device Private Key Path" - depends on EXAMPLE_FILESYSTEM_CERTS - default "/sdcard/private.pem.key" + config EXAMPLE_PRIVATE_KEY_PATH + string "Device Private Key Path" + depends on EXAMPLE_FILESYSTEM_CERTS + default "/sdcard/private.pem.key" -config EXAMPLE_ROOT_CA_PATH - string "Root CA Certificate Path" - depends on EXAMPLE_FILESYSTEM_CERTS - default "/sdcard/aws-root-ca.pem" + config EXAMPLE_ROOT_CA_PATH + string "Root CA Certificate Path" + depends on EXAMPLE_FILESYSTEM_CERTS + default "/sdcard/aws-root-ca.pem" endmenu diff --git a/examples/protocols/aws_iot/thing_shadow/main/Kconfig.projbuild b/examples/protocols/aws_iot/thing_shadow/main/Kconfig.projbuild index adc06a0419..d0ee5c2cba 100644 --- a/examples/protocols/aws_iot/thing_shadow/main/Kconfig.projbuild +++ b/examples/protocols/aws_iot/thing_shadow/main/Kconfig.projbuild @@ -1,66 +1,66 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + Can be left blank if the network has no security set. -config AWS_EXAMPLE_CLIENT_ID - string "AWS IoT Client ID" - default "myesp32" - help - AWS IoT Client ID for the example. Should be unique for every device. + config AWS_EXAMPLE_CLIENT_ID + string "AWS IoT Client ID" + default "myesp32" + help + AWS IoT Client ID for the example. Should be unique for every device. -config AWS_EXAMPLE_THING_NAME - string "AWS IoT Thing Name" - default "myesp32" - help - AWS IoT Thing Name for the example. Should be unique for every device. + config AWS_EXAMPLE_THING_NAME + string "AWS IoT Thing Name" + default "myesp32" + help + AWS IoT Thing Name for the example. Should be unique for every device. -choice EXAMPLE_CERT_SOURCE - prompt "AWS IoT Certificate Source" - default EXAMPLE_EMBEDDED_CERTS - help - AWS IoT requires loading of a device-specific certificate and private key, - and a common Root CA Certificate. These can be compiled into the example - app, or they can be loaded via the filesystem from an SD card. + choice EXAMPLE_CERT_SOURCE + prompt "AWS IoT Certificate Source" + default EXAMPLE_EMBEDDED_CERTS + help + AWS IoT requires loading of a device-specific certificate and private key, + and a common Root CA Certificate. These can be compiled into the example + app, or they can be loaded via the filesystem from an SD card. -config EXAMPLE_EMBEDDED_CERTS - bool "Embed into app" -config EXAMPLE_SDCARD_CERTS - bool "Load from SD card" - select EXAMPLE_FILESYSTEM_CERTS -endchoice + config EXAMPLE_EMBEDDED_CERTS + bool "Embed into app" + config EXAMPLE_SDCARD_CERTS + bool "Load from SD card" + select EXAMPLE_FILESYSTEM_CERTS + endchoice -# Currently this is equivalent to EXAMPLE_SDCARD_CERTS, -# however eventually we want to support more filesystem -# sources (SPIFFS, etc.) So this hidden config item -# is selected whenever the item should load from filesystem. -config EXAMPLE_FILESYSTEM_CERTS - bool + # Currently this is equivalent to EXAMPLE_SDCARD_CERTS, + # however eventually we want to support more filesystem + # sources (SPIFFS, etc.) So this hidden config item + # is selected whenever the item should load from filesystem. + config EXAMPLE_FILESYSTEM_CERTS + bool -config EXAMPLE_CERTIFICATE_PATH - string "Device Certificate Path" - depends on EXAMPLE_FILESYSTEM_CERTS - default "/sdcard/certificate.pem.crt" + config EXAMPLE_CERTIFICATE_PATH + string "Device Certificate Path" + depends on EXAMPLE_FILESYSTEM_CERTS + default "/sdcard/certificate.pem.crt" -config EXAMPLE_PRIVATE_KEY_PATH - string "Device Private Key Path" - depends on EXAMPLE_FILESYSTEM_CERTS - default "/sdcard/private.pem.key" + config EXAMPLE_PRIVATE_KEY_PATH + string "Device Private Key Path" + depends on EXAMPLE_FILESYSTEM_CERTS + default "/sdcard/private.pem.key" -config EXAMPLE_ROOT_CA_PATH - string "Root CA Certificate Path" - depends on EXAMPLE_FILESYSTEM_CERTS - default "/sdcard/aws-root-ca.pem" + config EXAMPLE_ROOT_CA_PATH + string "Root CA Certificate Path" + depends on EXAMPLE_FILESYSTEM_CERTS + default "/sdcard/aws-root-ca.pem" endmenu diff --git a/examples/protocols/coap_client/main/Kconfig.projbuild b/examples/protocols/coap_client/main/Kconfig.projbuild index 045137a0e9..05a0d714f5 100644 --- a/examples/protocols/coap_client/main/Kconfig.projbuild +++ b/examples/protocols/coap_client/main/Kconfig.projbuild @@ -1,21 +1,21 @@ menu "Example Configuration" -config TARGET_DOMAIN_URI - string "Target Uri" - default "coap://californium.eclipse.org" - help - Target uri for the example to use. + config TARGET_DOMAIN_URI + string "Target Uri" + default "coap://californium.eclipse.org" + help + Target uri for the example to use. -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. endmenu \ No newline at end of file diff --git a/examples/protocols/coap_server/main/Kconfig.projbuild b/examples/protocols/coap_server/main/Kconfig.projbuild index 7a9cb97a0e..2772f30da8 100644 --- a/examples/protocols/coap_server/main/Kconfig.projbuild +++ b/examples/protocols/coap_server/main/Kconfig.projbuild @@ -1,15 +1,15 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. endmenu \ No newline at end of file diff --git a/examples/protocols/esp_http_client/main/Kconfig.projbuild b/examples/protocols/esp_http_client/main/Kconfig.projbuild index 1c7241da32..803ab080a8 100644 --- a/examples/protocols/esp_http_client/main/Kconfig.projbuild +++ b/examples/protocols/esp_http_client/main/Kconfig.projbuild @@ -1,17 +1,17 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + Can be left blank if the network has no security set. endmenu diff --git a/examples/protocols/http2_request/main/Kconfig.projbuild b/examples/protocols/http2_request/main/Kconfig.projbuild index 1c7241da32..803ab080a8 100644 --- a/examples/protocols/http2_request/main/Kconfig.projbuild +++ b/examples/protocols/http2_request/main/Kconfig.projbuild @@ -1,17 +1,17 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + Can be left blank if the network has no security set. endmenu diff --git a/examples/protocols/http_request/main/Kconfig.projbuild b/examples/protocols/http_request/main/Kconfig.projbuild index 1c7241da32..803ab080a8 100644 --- a/examples/protocols/http_request/main/Kconfig.projbuild +++ b/examples/protocols/http_request/main/Kconfig.projbuild @@ -1,17 +1,17 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + Can be left blank if the network has no security set. endmenu diff --git a/examples/protocols/http_server/advanced_tests/main/Kconfig.projbuild b/examples/protocols/http_server/advanced_tests/main/Kconfig.projbuild index 9e2813c697..c27669664d 100644 --- a/examples/protocols/http_server/advanced_tests/main/Kconfig.projbuild +++ b/examples/protocols/http_server/advanced_tests/main/Kconfig.projbuild @@ -1,16 +1,16 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. + Can be left blank if the network has no security set. endmenu diff --git a/examples/protocols/http_server/persistent_sockets/main/Kconfig.projbuild b/examples/protocols/http_server/persistent_sockets/main/Kconfig.projbuild index 9e2813c697..c27669664d 100644 --- a/examples/protocols/http_server/persistent_sockets/main/Kconfig.projbuild +++ b/examples/protocols/http_server/persistent_sockets/main/Kconfig.projbuild @@ -1,16 +1,16 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. + Can be left blank if the network has no security set. endmenu diff --git a/examples/protocols/http_server/simple/main/Kconfig.projbuild b/examples/protocols/http_server/simple/main/Kconfig.projbuild index 9e2813c697..c27669664d 100644 --- a/examples/protocols/http_server/simple/main/Kconfig.projbuild +++ b/examples/protocols/http_server/simple/main/Kconfig.projbuild @@ -1,16 +1,16 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. + Can be left blank if the network has no security set. endmenu diff --git a/examples/protocols/https_mbedtls/main/Kconfig.projbuild b/examples/protocols/https_mbedtls/main/Kconfig.projbuild index 1c7241da32..803ab080a8 100644 --- a/examples/protocols/https_mbedtls/main/Kconfig.projbuild +++ b/examples/protocols/https_mbedtls/main/Kconfig.projbuild @@ -1,17 +1,17 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + Can be left blank if the network has no security set. endmenu diff --git a/examples/protocols/https_request/main/Kconfig.projbuild b/examples/protocols/https_request/main/Kconfig.projbuild index 1c7241da32..803ab080a8 100644 --- a/examples/protocols/https_request/main/Kconfig.projbuild +++ b/examples/protocols/https_request/main/Kconfig.projbuild @@ -1,17 +1,17 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + Can be left blank if the network has no security set. endmenu diff --git a/examples/protocols/https_server/main/Kconfig.projbuild b/examples/protocols/https_server/main/Kconfig.projbuild index 9e2813c697..c27669664d 100644 --- a/examples/protocols/https_server/main/Kconfig.projbuild +++ b/examples/protocols/https_server/main/Kconfig.projbuild @@ -1,16 +1,16 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. + Can be left blank if the network has no security set. endmenu diff --git a/examples/protocols/mdns/main/Kconfig.projbuild b/examples/protocols/mdns/main/Kconfig.projbuild index 9cbca2f6bc..377873fcb2 100644 --- a/examples/protocols/mdns/main/Kconfig.projbuild +++ b/examples/protocols/mdns/main/Kconfig.projbuild @@ -1,38 +1,38 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + Can be left blank if the network has no security set. -config MDNS_HOSTNAME - string "mDNS Hostname" - default "esp32-mdns" - help - mDNS Hostname for example to use + config MDNS_HOSTNAME + string "mDNS Hostname" + default "esp32-mdns" + help + mDNS Hostname for example to use -config MDNS_INSTANCE - string "mDNS Instance Name" - default "ESP32 with mDNS" - help - mDNS Instance Name for example to use + config MDNS_INSTANCE + string "mDNS Instance Name" + default "ESP32 with mDNS" + help + mDNS Instance Name for example to use -config RESOLVE_TEST_SERVICES - bool "Resolve test services" - default y - help - Enable resolving test services on startup. - These services are advertized and evaluated in automated tests. - When executed locally, these will not be resolved and warnings appear in the log. - Please set to false to disable initial querying to avoid warnings. + config RESOLVE_TEST_SERVICES + bool "Resolve test services" + default y + help + Enable resolving test services on startup. + These services are advertized and evaluated in automated tests. + When executed locally, these will not be resolved and warnings appear in the log. + Please set to false to disable initial querying to avoid warnings. endmenu diff --git a/examples/protocols/modbus_slave/main/Kconfig.projbuild b/examples/protocols/modbus_slave/main/Kconfig.projbuild index c4e12173fb..7a43833581 100644 --- a/examples/protocols/modbus_slave/main/Kconfig.projbuild +++ b/examples/protocols/modbus_slave/main/Kconfig.projbuild @@ -1,27 +1,27 @@ menu "Modbus Slave Example Configuration" -config MB_UART_RXD - int "UART RXD pin number" - range 0 34 - default 22 - help - GPIO number for UART RX pin. See UART documentation for more information - about available pin numbers for UART. - -config MB_UART_TXD - int "UART TXD pin number" - range 0 34 - default 23 - help - GPIO number for UART TX pin. See UART documentation for more information - about available pin numbers for UART. + config MB_UART_RXD + int "UART RXD pin number" + range 0 34 + default 22 + help + GPIO number for UART RX pin. See UART documentation for more information + about available pin numbers for UART. -config MB_UART_RTS - int "UART RTS pin number" - range 0 34 - default 18 - help - GPIO number for UART RTS pin. This pin is connected to - ~RE/DE pin of RS485 transceiver to switch direction. + config MB_UART_TXD + int "UART TXD pin number" + range 0 34 + default 23 + help + GPIO number for UART TX pin. See UART documentation for more information + about available pin numbers for UART. + + config MB_UART_RTS + int "UART RTS pin number" + range 0 34 + default 18 + help + GPIO number for UART RTS pin. This pin is connected to + ~RE/DE pin of RS485 transceiver to switch direction. endmenu diff --git a/examples/protocols/mqtt/ssl/main/Kconfig.projbuild b/examples/protocols/mqtt/ssl/main/Kconfig.projbuild index 8b4eda41ab..7bd1fcb987 100644 --- a/examples/protocols/mqtt/ssl/main/Kconfig.projbuild +++ b/examples/protocols/mqtt/ssl/main/Kconfig.projbuild @@ -1,31 +1,32 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. -config BROKER_URI - string "Broker URL" - default "mqtts://iot.eclipse.org:8883" - help - URL of an mqtt broker which this example connects to. + config BROKER_URI + string "Broker URL" + default "mqtts://iot.eclipse.org:8883" + help + URL of an mqtt broker which this example connects to. -config BROKER_CERTIFICATE_OVERRIDE - string "Broker certificate override" - default "" - help - Please leave empty if broker certificate included from a textfile; otherwise fill in a base64 part of PEM format certificate + config BROKER_CERTIFICATE_OVERRIDE + string "Broker certificate override" + default "" + help + Please leave empty if broker certificate included from a textfile; otherwise fill in a base64 part of PEM + format certificate -config BROKER_CERTIFICATE_OVERRIDDEN - bool - default y if BROKER_CERTIFICATE_OVERRIDE != "" + config BROKER_CERTIFICATE_OVERRIDDEN + bool + default y if BROKER_CERTIFICATE_OVERRIDE != "" endmenu diff --git a/examples/protocols/mqtt/ssl_mutual_auth/main/Kconfig.projbuild b/examples/protocols/mqtt/ssl_mutual_auth/main/Kconfig.projbuild index 176d8fb334..ed4e691688 100644 --- a/examples/protocols/mqtt/ssl_mutual_auth/main/Kconfig.projbuild +++ b/examples/protocols/mqtt/ssl_mutual_auth/main/Kconfig.projbuild @@ -1,15 +1,15 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. endmenu diff --git a/examples/protocols/mqtt/tcp/main/Kconfig.projbuild b/examples/protocols/mqtt/tcp/main/Kconfig.projbuild index 71f95ea8f4..f5c519baa4 100644 --- a/examples/protocols/mqtt/tcp/main/Kconfig.projbuild +++ b/examples/protocols/mqtt/tcp/main/Kconfig.projbuild @@ -1,25 +1,25 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. -config BROKER_URL - string "Broker URL" - default "mqtt://iot.eclipse.org" - help - URL of the broker to connect to + config BROKER_URL + string "Broker URL" + default "mqtt://iot.eclipse.org" + help + URL of the broker to connect to -config BROKER_URL_FROM_STDIN - bool - default y if BROKER_URL = "FROM_STDIN" + config BROKER_URL_FROM_STDIN + bool + default y if BROKER_URL = "FROM_STDIN" endmenu diff --git a/examples/protocols/mqtt/ws/main/Kconfig.projbuild b/examples/protocols/mqtt/ws/main/Kconfig.projbuild index 5223e885f9..9e47709c2e 100644 --- a/examples/protocols/mqtt/ws/main/Kconfig.projbuild +++ b/examples/protocols/mqtt/ws/main/Kconfig.projbuild @@ -1,21 +1,21 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. -config BROKER_URI - string "Broker URL" - default "ws://iot.eclipse.org:80/ws" - help - URL of an mqtt broker which this example connects to. + config BROKER_URI + string "Broker URL" + default "ws://iot.eclipse.org:80/ws" + help + URL of an mqtt broker which this example connects to. endmenu diff --git a/examples/protocols/mqtt/wss/main/Kconfig.projbuild b/examples/protocols/mqtt/wss/main/Kconfig.projbuild index 964d436f66..a16174012b 100644 --- a/examples/protocols/mqtt/wss/main/Kconfig.projbuild +++ b/examples/protocols/mqtt/wss/main/Kconfig.projbuild @@ -1,31 +1,32 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. -config BROKER_URI - string "Broker URL" - default "wss://iot.eclipse.org:443/ws" - help - URL of an mqtt broker which this example connects to. + config BROKER_URI + string "Broker URL" + default "wss://iot.eclipse.org:443/ws" + help + URL of an mqtt broker which this example connects to. -config BROKER_CERTIFICATE_OVERRIDE - string "Server certificate override" - default "" - help - Please leave empty if server certificate included from a textfile; otherwise fill in a base64 part of PEM format certificate + config BROKER_CERTIFICATE_OVERRIDE + string "Server certificate override" + default "" + help + Please leave empty if server certificate included from a textfile; otherwise fill in a base64 part of PEM + format certificate -config BROKER_CERTIFICATE_OVERRIDDEN - bool - default y if BROKER_CERTIFICATE_OVERRIDE != "" + config BROKER_CERTIFICATE_OVERRIDDEN + bool + default y if BROKER_CERTIFICATE_OVERRIDE != "" endmenu diff --git a/examples/protocols/openssl_client/main/Kconfig.projbuild b/examples/protocols/openssl_client/main/Kconfig.projbuild index ff1cb863c7..93fa37b6ea 100644 --- a/examples/protocols/openssl_client/main/Kconfig.projbuild +++ b/examples/protocols/openssl_client/main/Kconfig.projbuild @@ -1,28 +1,28 @@ menu "Example Configuration" -config TARGET_DOMAIN - string "Target Domain" - default "www.baidu.com" - help - Target domain for the example to connect to. - -config TARGET_PORT_NUMBER - int "Target port number" - range 0 65535 - default 443 - help - Target port number for the example to connect to. + config TARGET_DOMAIN + string "Target Domain" + default "www.baidu.com" + help + Target domain for the example to connect to. -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config TARGET_PORT_NUMBER + int "Target port number" + range 0 65535 + default 443 + help + Target port number for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. + + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. endmenu diff --git a/examples/protocols/openssl_server/main/Kconfig.projbuild b/examples/protocols/openssl_server/main/Kconfig.projbuild index 176d8fb334..ed4e691688 100644 --- a/examples/protocols/openssl_server/main/Kconfig.projbuild +++ b/examples/protocols/openssl_server/main/Kconfig.projbuild @@ -1,15 +1,15 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. endmenu diff --git a/examples/protocols/pppos_client/main/Kconfig.projbuild b/examples/protocols/pppos_client/main/Kconfig.projbuild index d8b648f79f..69cca758a9 100644 --- a/examples/protocols/pppos_client/main/Kconfig.projbuild +++ b/examples/protocols/pppos_client/main/Kconfig.projbuild @@ -41,11 +41,11 @@ menu "Example Configuration" Select this, the modem will send a short message before power off. if SEND_MSG - config SEND_MSG_PEER_PHONE_NUMBER - string "Peer Phone Number (with area code)" - default "+8610086" - help - Enter the peer phone number that you want to send message to. + config SEND_MSG_PEER_PHONE_NUMBER + string "Peer Phone Number (with area code)" + default "+8610086" + help + Enter the peer phone number that you want to send message to. endif menu "UART Configuration" diff --git a/examples/protocols/sntp/main/Kconfig.projbuild b/examples/protocols/sntp/main/Kconfig.projbuild index 1c7241da32..803ab080a8 100644 --- a/examples/protocols/sntp/main/Kconfig.projbuild +++ b/examples/protocols/sntp/main/Kconfig.projbuild @@ -1,17 +1,17 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + Can be left blank if the network has no security set. endmenu diff --git a/examples/protocols/sockets/tcp_client/main/Kconfig.projbuild b/examples/protocols/sockets/tcp_client/main/Kconfig.projbuild index a7e12f3639..9f0298f490 100644 --- a/examples/protocols/sockets/tcp_client/main/Kconfig.projbuild +++ b/examples/protocols/sockets/tcp_client/main/Kconfig.projbuild @@ -1,50 +1,50 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. + Can be left blank if the network has no security set. -choice EXAMPLE_IP_MODE - prompt "IP Version" - help - Example can use either IPV4 or IPV6. + choice EXAMPLE_IP_MODE + prompt "IP Version" + help + Example can use either IPV4 or IPV6. -config EXAMPLE_IPV4 - bool "IPV4" + config EXAMPLE_IPV4 + bool "IPV4" -config EXAMPLE_IPV6 - bool "IPV6" + config EXAMPLE_IPV6 + bool "IPV6" -endchoice + endchoice -config EXAMPLE_IPV4_ADDR - string "IPV4 Address" - default "192.168.0.165" - depends on EXAMPLE_IPV4 - help - The example will connect to this IPV4 address. + config EXAMPLE_IPV4_ADDR + string "IPV4 Address" + default "192.168.0.165" + depends on EXAMPLE_IPV4 + help + The example will connect to this IPV4 address. -config EXAMPLE_IPV6_ADDR - string "IPV6 Address" - default "FE80::30AD:E57B:C212:68AD" - depends on EXAMPLE_IPV6 - help - The example will connect to this IPV6 address. + config EXAMPLE_IPV6_ADDR + string "IPV6 Address" + default "FE80::30AD:E57B:C212:68AD" + depends on EXAMPLE_IPV6 + help + The example will connect to this IPV6 address. -config EXAMPLE_PORT - int "Port" - range 0 65535 - default 3333 - help - The remote port to which the client example will connect to. + config EXAMPLE_PORT + int "Port" + range 0 65535 + default 3333 + help + The remote port to which the client example will connect to. endmenu diff --git a/examples/protocols/sockets/tcp_server/main/Kconfig.projbuild b/examples/protocols/sockets/tcp_server/main/Kconfig.projbuild index 4721113817..45a00225cd 100644 --- a/examples/protocols/sockets/tcp_server/main/Kconfig.projbuild +++ b/examples/protocols/sockets/tcp_server/main/Kconfig.projbuild @@ -1,36 +1,36 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. + Can be left blank if the network has no security set. -choice EXAMPLE_IP_MODE - prompt "IP Version" - help - Example can use either IPV4 or IPV6. + choice EXAMPLE_IP_MODE + prompt "IP Version" + help + Example can use either IPV4 or IPV6. -config EXAMPLE_IPV4 - bool "IPV4" + config EXAMPLE_IPV4 + bool "IPV4" -config EXAMPLE_IPV6 - bool "IPV6" + config EXAMPLE_IPV6 + bool "IPV6" -endchoice + endchoice -config EXAMPLE_PORT - int "Port" - range 0 65535 - default 3333 - help - Local port the example server will listen on. + config EXAMPLE_PORT + int "Port" + range 0 65535 + default 3333 + help + Local port the example server will listen on. endmenu diff --git a/examples/protocols/sockets/udp_client/main/Kconfig.projbuild b/examples/protocols/sockets/udp_client/main/Kconfig.projbuild index 3aff37d8a0..e06465e0db 100644 --- a/examples/protocols/sockets/udp_client/main/Kconfig.projbuild +++ b/examples/protocols/sockets/udp_client/main/Kconfig.projbuild @@ -1,50 +1,50 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. + Can be left blank if the network has no security set. -choice EXAMPLE_IP_MODE - prompt "IP Version" - help - Example can use either IPV4 or IPV6. + choice EXAMPLE_IP_MODE + prompt "IP Version" + help + Example can use either IPV4 or IPV6. -config EXAMPLE_IPV4 - bool "IPV4" + config EXAMPLE_IPV4 + bool "IPV4" -config EXAMPLE_IPV6 - bool "IPV6" + config EXAMPLE_IPV6 + bool "IPV6" -endchoice + endchoice -config EXAMPLE_IPV4_ADDR - string "IPV4 Address" - default "192.168.0.165" - depends on EXAMPLE_IPV4 - help - IPV4 address to which the client example will send data. + config EXAMPLE_IPV4_ADDR + string "IPV4 Address" + default "192.168.0.165" + depends on EXAMPLE_IPV4 + help + IPV4 address to which the client example will send data. -config EXAMPLE_IPV6_ADDR - string "IPV6 Address" - default "FE80::30AD:E57B:C212:68AD" - depends on EXAMPLE_IPV6 - help - IPV6 address to which the client example will send data. + config EXAMPLE_IPV6_ADDR + string "IPV6 Address" + default "FE80::30AD:E57B:C212:68AD" + depends on EXAMPLE_IPV6 + help + IPV6 address to which the client example will send data. -config EXAMPLE_PORT - int "Port" - range 0 65535 - default 3333 - help - The remote port to which the client example will send data. + config EXAMPLE_PORT + int "Port" + range 0 65535 + default 3333 + help + The remote port to which the client example will send data. endmenu diff --git a/examples/protocols/sockets/udp_multicast/main/Kconfig.projbuild b/examples/protocols/sockets/udp_multicast/main/Kconfig.projbuild index cf862e133b..7be2402814 100644 --- a/examples/protocols/sockets/udp_multicast/main/Kconfig.projbuild +++ b/examples/protocols/sockets/udp_multicast/main/Kconfig.projbuild @@ -1,91 +1,92 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + Can be left blank if the network has no security set. -choice EXAMPLE_IP_MODE - prompt "Multicast IP type" - help - Example can multicast IPV4, IPV6, or both. + choice EXAMPLE_IP_MODE + prompt "Multicast IP type" + help + Example can multicast IPV4, IPV6, or both. -config EXAMPLE_IPV4_V6 - bool "IPV4 & IPV6" - select EXAMPLE_IPV4 - select EXAMPLE_IPV6 + config EXAMPLE_IPV4_V6 + bool "IPV4 & IPV6" + select EXAMPLE_IPV4 + select EXAMPLE_IPV6 -config EXAMPLE_IPV4_ONLY - bool "IPV4" - select EXAMPLE_IPV4 + config EXAMPLE_IPV4_ONLY + bool "IPV4" + select EXAMPLE_IPV4 -config EXAMPLE_IPV6_ONLY - bool "IPV6" - select EXAMPLE_IPV6 + config EXAMPLE_IPV6_ONLY + bool "IPV6" + select EXAMPLE_IPV6 -endchoice + endchoice -config EXAMPLE_IPV4 - bool -config EXAMPLE_IPV6 - bool + config EXAMPLE_IPV4 + bool + config EXAMPLE_IPV6 + bool -config EXAMPLE_MULTICAST_IPV4_ADDR - string "Multicast IPV4 Address (send & receive)" - default "232.10.11.12" - depends on EXAMPLE_IPV4 - help - IPV4 multicast address. Example will both send to and listen to this address. + config EXAMPLE_MULTICAST_IPV4_ADDR + string "Multicast IPV4 Address (send & receive)" + default "232.10.11.12" + depends on EXAMPLE_IPV4 + help + IPV4 multicast address. Example will both send to and listen to this address. -config EXAMPLE_MULTICAST_IPV6_ADDR - string "Multicast IPV6 Address (send & receive)" - default "FF02::FC" - depends on EXAMPLE_IPV6 - help - IPV6 multicast address. Example will both send to and listen to this address. + config EXAMPLE_MULTICAST_IPV6_ADDR + string "Multicast IPV6 Address (send & receive)" + default "FF02::FC" + depends on EXAMPLE_IPV6 + help + IPV6 multicast address. Example will both send to and listen to this address. - The default FF02::FC address is a link-local multicast address. Consult IPV6 specifications or documentation for information about meaning of different IPV6 multicast ranges. + The default FF02::FC address is a link-local multicast address. Consult IPV6 specifications or + documentation for information about meaning of different IPV6 multicast ranges. -config EXAMPLE_PORT - int "Multicast port (send & receive)" - range 0 65535 - default 3333 - help - Multicast port the example will both send & receive UDP packets on. + config EXAMPLE_PORT + int "Multicast port (send & receive)" + range 0 65535 + default 3333 + help + Multicast port the example will both send & receive UDP packets on. -config EXAMPLE_LOOPBACK - bool "Multicast loopback" - help - Enables IP_MULTICAST_LOOP/IPV6_MULTICAST_LOOP options, meaning - that packets transmitted from the device are also received by the - device itself. + config EXAMPLE_LOOPBACK + bool "Multicast loopback" + help + Enables IP_MULTICAST_LOOP/IPV6_MULTICAST_LOOP options, meaning + that packets transmitted from the device are also received by the + device itself. -config EXAMPLE_MULTICAST_TTL - int "Multicast packet TTL" - range 1 255 - help - Sets TTL field of multicast packets. Separate from uni- & broadcast TTL. + config EXAMPLE_MULTICAST_TTL + int "Multicast packet TTL" + range 1 255 + help + Sets TTL field of multicast packets. Separate from uni- & broadcast TTL. -choice EXAMPLE_MULTICAST_IF - prompt "Multicast Interface" - help - Multicast socket can bind to default interface, or all interfaces. + choice EXAMPLE_MULTICAST_IF + prompt "Multicast Interface" + help + Multicast socket can bind to default interface, or all interfaces. -config EXAMPLE_MULTICAST_LISTEN_DEFAULT_IF - bool "Default interface" + config EXAMPLE_MULTICAST_LISTEN_DEFAULT_IF + bool "Default interface" -config EXAMPLE_MULTICAST_LISTEN_STA_IF - bool "WiFi STA interface" + config EXAMPLE_MULTICAST_LISTEN_STA_IF + bool "WiFi STA interface" -endchoice + endchoice endmenu diff --git a/examples/protocols/sockets/udp_server/main/Kconfig.projbuild b/examples/protocols/sockets/udp_server/main/Kconfig.projbuild index 4721113817..45a00225cd 100644 --- a/examples/protocols/sockets/udp_server/main/Kconfig.projbuild +++ b/examples/protocols/sockets/udp_server/main/Kconfig.projbuild @@ -1,36 +1,36 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. + Can be left blank if the network has no security set. -choice EXAMPLE_IP_MODE - prompt "IP Version" - help - Example can use either IPV4 or IPV6. + choice EXAMPLE_IP_MODE + prompt "IP Version" + help + Example can use either IPV4 or IPV6. -config EXAMPLE_IPV4 - bool "IPV4" + config EXAMPLE_IPV4 + bool "IPV4" -config EXAMPLE_IPV6 - bool "IPV6" + config EXAMPLE_IPV6 + bool "IPV6" -endchoice + endchoice -config EXAMPLE_PORT - int "Port" - range 0 65535 - default 3333 - help - Local port the example server will listen on. + config EXAMPLE_PORT + int "Port" + range 0 65535 + default 3333 + help + Local port the example server will listen on. endmenu diff --git a/examples/provisioning/ble_prov/main/Kconfig.projbuild b/examples/provisioning/ble_prov/main/Kconfig.projbuild index b669a1e5ab..0836da9a6e 100644 --- a/examples/provisioning/ble_prov/main/Kconfig.projbuild +++ b/examples/provisioning/ble_prov/main/Kconfig.projbuild @@ -1,34 +1,34 @@ menu "Example Configuration" -config USE_SEC_1 - bool - default y - prompt "Use Security Version 1" - help - Security version 1 used Curve25519 key exchange for establishing - secure session between device and client during provisioning + config USE_SEC_1 + bool + default y + prompt "Use Security Version 1" + help + Security version 1 used Curve25519 key exchange for establishing + secure session between device and client during provisioning -config USE_POP - bool - depends on USE_SEC_1 - default y - prompt "Use proof-of-possession" - help - Proof-of-possession can be optionally used to prove that the device is indeed - in possession of the user who is provisioning the device. This proof-of-possession - is internally used to generate the shared secret through key exchange. + config USE_POP + bool + depends on USE_SEC_1 + default y + prompt "Use proof-of-possession" + help + Proof-of-possession can be optionally used to prove that the device is indeed + in possession of the user who is provisioning the device. This proof-of-possession + is internally used to generate the shared secret through key exchange. -config POP - string "Proof-of-possession" - default "abcd1234" - depends on USE_POP + config POP + string "Proof-of-possession" + default "abcd1234" + depends on USE_POP -config RESET_PROVISIONED - bool - default n - prompt "Reset provisioned status of the device" - help - This erases the NVS to reset provisioned status of the device on every reboot. - Provisioned status is determined by the WiFi STA configuration, saved on the NVS. + config RESET_PROVISIONED + bool + default n + prompt "Reset provisioned status of the device" + help + This erases the NVS to reset provisioned status of the device on every reboot. + Provisioned status is determined by the WiFi STA configuration, saved on the NVS. endmenu diff --git a/examples/provisioning/console_prov/main/Kconfig.projbuild b/examples/provisioning/console_prov/main/Kconfig.projbuild index b669a1e5ab..0836da9a6e 100644 --- a/examples/provisioning/console_prov/main/Kconfig.projbuild +++ b/examples/provisioning/console_prov/main/Kconfig.projbuild @@ -1,34 +1,34 @@ menu "Example Configuration" -config USE_SEC_1 - bool - default y - prompt "Use Security Version 1" - help - Security version 1 used Curve25519 key exchange for establishing - secure session between device and client during provisioning + config USE_SEC_1 + bool + default y + prompt "Use Security Version 1" + help + Security version 1 used Curve25519 key exchange for establishing + secure session between device and client during provisioning -config USE_POP - bool - depends on USE_SEC_1 - default y - prompt "Use proof-of-possession" - help - Proof-of-possession can be optionally used to prove that the device is indeed - in possession of the user who is provisioning the device. This proof-of-possession - is internally used to generate the shared secret through key exchange. + config USE_POP + bool + depends on USE_SEC_1 + default y + prompt "Use proof-of-possession" + help + Proof-of-possession can be optionally used to prove that the device is indeed + in possession of the user who is provisioning the device. This proof-of-possession + is internally used to generate the shared secret through key exchange. -config POP - string "Proof-of-possession" - default "abcd1234" - depends on USE_POP + config POP + string "Proof-of-possession" + default "abcd1234" + depends on USE_POP -config RESET_PROVISIONED - bool - default n - prompt "Reset provisioned status of the device" - help - This erases the NVS to reset provisioned status of the device on every reboot. - Provisioned status is determined by the WiFi STA configuration, saved on the NVS. + config RESET_PROVISIONED + bool + default n + prompt "Reset provisioned status of the device" + help + This erases the NVS to reset provisioned status of the device on every reboot. + Provisioned status is determined by the WiFi STA configuration, saved on the NVS. endmenu diff --git a/examples/provisioning/custom_config/main/Kconfig.projbuild b/examples/provisioning/custom_config/main/Kconfig.projbuild index 866227bb99..5a929966d7 100644 --- a/examples/provisioning/custom_config/main/Kconfig.projbuild +++ b/examples/provisioning/custom_config/main/Kconfig.projbuild @@ -1,52 +1,52 @@ menu "Example Configuration" -config SOFTAP_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config SOFTAP_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config SOFTAP_PASS - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config SOFTAP_PASS + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. -config USE_SEC_1 - bool - default n - prompt "Use Security Version 1" - help - Security version 1 used Curve25519 key exchange for establishing - secure session between device and client during provisioning + config USE_SEC_1 + bool + default n + prompt "Use Security Version 1" + help + Security version 1 used Curve25519 key exchange for establishing + secure session between device and client during provisioning -config USE_POP - bool - depends on USE_SEC_1 - default n - prompt "Use proof-of-possession" - help - Proof-of-possession can be optionally used to prove that the device is indeed - in possession of the user who is provisioning the device. This proof-of-possession - is internally used to generate the shared secret through key exchange. + config USE_POP + bool + depends on USE_SEC_1 + default n + prompt "Use proof-of-possession" + help + Proof-of-possession can be optionally used to prove that the device is indeed + in possession of the user who is provisioning the device. This proof-of-possession + is internally used to generate the shared secret through key exchange. -config POP - string "Proof-of-possession" - default "abcd1234" - depends on USE_POP + config POP + string "Proof-of-possession" + default "abcd1234" + depends on USE_POP -config PROTOCOMM_HTTPD_PORT - int "Protocomm HTTP Port" - default 80 - help - Port on which to run Protocomm HTTP based provisioning service + config PROTOCOMM_HTTPD_PORT + int "Protocomm HTTP Port" + default 80 + help + Port on which to run Protocomm HTTP based provisioning service -config RESET_PROVISIONED - bool - default n - prompt "Reset provisioned status of the device" - help - This erases the NVS to reset provisioned status of the device on every reboot. - Provisioned status is determined by the WiFi STA configuration, saved on the NVS. + config RESET_PROVISIONED + bool + default n + prompt "Reset provisioned status of the device" + help + This erases the NVS to reset provisioned status of the device on every reboot. + Provisioned status is determined by the WiFi STA configuration, saved on the NVS. endmenu diff --git a/examples/provisioning/softap_prov/main/Kconfig.projbuild b/examples/provisioning/softap_prov/main/Kconfig.projbuild index 08cb2f97ae..45593106b1 100644 --- a/examples/provisioning/softap_prov/main/Kconfig.projbuild +++ b/examples/provisioning/softap_prov/main/Kconfig.projbuild @@ -1,53 +1,53 @@ menu "Example Configuration" -config SOFTAP_SSID_SET_MAC - bool "Use MAC as SSID" - default y - help - Set SoftAP SSID as PROV_. + config SOFTAP_SSID_SET_MAC + bool "Use MAC as SSID" + default y + help + Set SoftAP SSID as PROV_. -config SOFTAP_SSID - string "WiFi SSID" - default "PROV_SSID" - depends on !SOFTAP_SSID_SET_MAC - help - SSID (network name) for the example to connect to. + config SOFTAP_SSID + string "WiFi SSID" + default "PROV_SSID" + depends on !SOFTAP_SSID_SET_MAC + help + SSID (network name) for the example to connect to. -config SOFTAP_PASS - string "WiFi Password" - default "PROV_PASS" - help - WiFi password (WPA or WPA2) for the example to use. + config SOFTAP_PASS + string "WiFi Password" + default "PROV_PASS" + help + WiFi password (WPA or WPA2) for the example to use. -config USE_SEC_1 - bool - default y - prompt "Use Security Version 1" - help - Security version 1 used Curve25519 key exchange for establishing - secure session between device and client during provisioning + config USE_SEC_1 + bool + default y + prompt "Use Security Version 1" + help + Security version 1 used Curve25519 key exchange for establishing + secure session between device and client during provisioning -config USE_POP - bool - depends on USE_SEC_1 - default y - prompt "Use proof-of-possession" - help - Proof-of-possession can be optionally used to prove that the device is indeed - in possession of the user who is provisioning the device. This proof-of-possession - is internally used to generate the shared secret through key exchange. + config USE_POP + bool + depends on USE_SEC_1 + default y + prompt "Use proof-of-possession" + help + Proof-of-possession can be optionally used to prove that the device is indeed + in possession of the user who is provisioning the device. This proof-of-possession + is internally used to generate the shared secret through key exchange. -config POP - string "Proof-of-possession" - default "abcd1234" - depends on USE_POP + config POP + string "Proof-of-possession" + default "abcd1234" + depends on USE_POP -config RESET_PROVISIONED - bool - default n - prompt "Reset provisioned status of the device" - help - This erases the NVS to reset provisioned status of the device on every reboot. - Provisioned status is determined by the WiFi STA configuration, saved on the NVS. + config RESET_PROVISIONED + bool + default n + prompt "Reset provisioned status of the device" + help + This erases the NVS to reset provisioned status of the device on every reboot. + Provisioned status is determined by the WiFi STA configuration, saved on the NVS. endmenu diff --git a/examples/system/app_trace_to_host/main/Kconfig.projbuild b/examples/system/app_trace_to_host/main/Kconfig.projbuild index 777a3ec314..67c46e4d00 100644 --- a/examples/system/app_trace_to_host/main/Kconfig.projbuild +++ b/examples/system/app_trace_to_host/main/Kconfig.projbuild @@ -1,20 +1,20 @@ menu "Example Configuration" -config CUSTOM_RTC_CLK_8M_DIV - bool "Set custom RTC 8 MHz clock divider to lower CW frequency (CHECK HELP FIRST)" - default "n" - help - Set custom / non standard divider for RTC 8 MHz clock. - This is to lower minimum frequency of cosine waveform generator (CW) - in order to provide sinusoidal signal at about 50 or 60 Hz. - - WARNINIG: setting non standard divider for the RTC 8 MHz clock - will affect functionality of RTC peripherals other than CW. + config CUSTOM_RTC_CLK_8M_DIV + bool "Set custom RTC 8 MHz clock divider to lower CW frequency (CHECK HELP FIRST)" + default "n" + help + Set custom / non standard divider for RTC 8 MHz clock. + This is to lower minimum frequency of cosine waveform generator (CW) + in order to provide sinusoidal signal at about 50 or 60 Hz. - This includes ADC sampling, and will in general make - all RTC register access slower. + WARNINIG: setting non standard divider for the RTC 8 MHz clock + will affect functionality of RTC peripherals other than CW. - DO NOT use this option / change default RTC 8 MHz clock divider - in your applications, if you are not sure what you are doing. + This includes ADC sampling, and will in general make + all RTC register access slower. + + DO NOT use this option / change default RTC 8 MHz clock divider + in your applications, if you are not sure what you are doing. endmenu diff --git a/examples/system/base_mac_address/main/Kconfig.projbuild b/examples/system/base_mac_address/main/Kconfig.projbuild index 61b1153bd9..ce2b2c35c8 100644 --- a/examples/system/base_mac_address/main/Kconfig.projbuild +++ b/examples/system/base_mac_address/main/Kconfig.projbuild @@ -1,42 +1,42 @@ menu "Example Configuration" -choice BASE_MAC_ADDRESS_STORAGE - prompt "Storage of the base MAC address" - default BASE_MAC_STORED_EFUSE_BLK0 - help - Select storage of the base MAC address which is used to generate MAC addresses of all network interfaces - when networking is initialized. - If "Default (Espressif factory) EFUSE BLK0" is selected, esp32 will use default base MAC address which is - written into EFUSE block 0 words 1, 2 when the chip is manufactured. - If "Custom EFUSE BLK3" is selected, ESP32 will use customer-defined base MAC address which is written into - EFUSE Block 3 words 0, 1. Users must call esp_efuse_mac_get_custom to get base MAC address and - esp_base_mac_addr_set to set the base MAC address before network interfaces are initialised. - If "Other external storage" is selected, esp32 will use customer-defined base MAC address from external - storage(flash, EEPROM, etc). Users must get the base MAC address first and call esp_base_mac_addr_set to - set the base MAC address before network interfaces are initialised. + choice BASE_MAC_ADDRESS_STORAGE + prompt "Storage of the base MAC address" + default BASE_MAC_STORED_EFUSE_BLK0 + help + Select storage of the base MAC address which is used to generate MAC addresses of all network interfaces + when networking is initialized. + If "Default (Espressif factory) eFuse BLK0" is selected, esp32 will use default base MAC address which is + written into eFuse block 0 words 1, 2 when the chip is manufactured. + If "Custom eFuse BLK3" is selected, ESP32 will use customer-defined base MAC address which is written into + eFuse Block 3 words 0, 1. Users must call esp_efuse_mac_get_custom to get base MAC address and + esp_base_mac_addr_set to set the base MAC address before network interfaces are initialised. + If "Other external storage" is selected, esp32 will use customer-defined base MAC address from external + storage(flash, EEPROM, etc). Users must get the base MAC address first and call esp_base_mac_addr_set to + set the base MAC address before network interfaces are initialised. -config BASE_MAC_STORED_EFUSE_BLK0 - bool "Default (Espressif factory) EFUSE BLK0" -config BASE_MAC_STORED_EFUSE_BLK3 - bool "Custom EFUSE BLK3" -config BASE_MAC_STORED_OTHER_EXTERNAL_STORAGE - bool "Other external storage" -endchoice + config BASE_MAC_STORED_EFUSE_BLK0 + bool "Default (Espressif factory) eFuse BLK0" + config BASE_MAC_STORED_EFUSE_BLK3 + bool "Custom eFuse BLK3" + config BASE_MAC_STORED_OTHER_EXTERNAL_STORAGE + bool "Other external storage" + endchoice -choice BASE_MAC_STORED_EFUSE_BLK3_ERROR_BEHAVIOR - prompt "Read base MAC address from BLK3 of EFUSE error behavior" - depends on BASE_MAC_STORED_EFUSE_BLK3 - default BASE_MAC_STORED_EFUSE_BLK3_ERROR_USE_DEFAULT - help - Select behavior when reading base MAC address from BLK3 of EFUSE error. - If "Abort" is selected, esp32 will abort. - If "Use base MAC address from BLK3 of EFUSE" is selected, esp32 will use the base MAC address which is - written into EFUSE block 0 words 1, 2 when the chip is manufactured. - -config BASE_MAC_STORED_EFUSE_BLK3_ERROR_ABORT - bool "Abort" -config BASE_MAC_STORED_EFUSE_BLK3_ERROR_USE_DEFAULT - bool "Use base MAC address from BLK3 of EFUSE" -endchoice + choice BASE_MAC_STORED_EFUSE_BLK3_ERROR_BEHAVIOR + prompt "Read base MAC address from BLK3 of eFuse error behavior" + depends on BASE_MAC_STORED_EFUSE_BLK3 + default BASE_MAC_STORED_EFUSE_BLK3_ERROR_USE_DEFAULT + help + Select behavior when reading base MAC address from BLK3 of eFuse error. + If "Abort" is selected, esp32 will abort. + If "Use base MAC address from BLK3 of eFuse" is selected, esp32 will use the base MAC address which is + written into eFuse block 0 words 1, 2 when the chip is manufactured. + + config BASE_MAC_STORED_EFUSE_BLK3_ERROR_ABORT + bool "Abort" + config BASE_MAC_STORED_EFUSE_BLK3_ERROR_USE_DEFAULT + bool "Use base MAC address from BLK3 of eFuse" + endchoice endmenu diff --git a/examples/system/console/main/Kconfig.projbuild b/examples/system/console/main/Kconfig.projbuild index e80c1c6e24..ed7236b0e4 100644 --- a/examples/system/console/main/Kconfig.projbuild +++ b/examples/system/console/main/Kconfig.projbuild @@ -1,11 +1,11 @@ menu "Example Configuration" -config STORE_HISTORY - bool "Store command history in flash" - default y - help - Linenoise line editing library provides functions to save and load - command history. If this option is enabled, initalizes a FAT filesystem - and uses it to store command history. + config STORE_HISTORY + bool "Store command history in flash" + default y + help + Linenoise line editing library provides functions to save and load + command history. If this option is enabled, initalizes a FAT filesystem + and uses it to store command history. endmenu \ No newline at end of file diff --git a/examples/system/deep_sleep/main/Kconfig.projbuild b/examples/system/deep_sleep/main/Kconfig.projbuild index cb8632d689..93d2b52e5a 100644 --- a/examples/system/deep_sleep/main/Kconfig.projbuild +++ b/examples/system/deep_sleep/main/Kconfig.projbuild @@ -1,20 +1,20 @@ menu "Example Configuration" -config ENABLE_TOUCH_WAKEUP - bool "Enable touch wake up" - default y - help - This option enables wake up from deep sleep using touch pads - TOUCH8 and TOUCH9, which correspond to GPIO33 and GPIO32. + config ENABLE_TOUCH_WAKEUP + bool "Enable touch wake up" + default y + help + This option enables wake up from deep sleep using touch pads + TOUCH8 and TOUCH9, which correspond to GPIO33 and GPIO32. -config ENABLE_ULP_TEMPERATURE_WAKEUP - bool "Enable temperature monitoring by ULP" - default y - help - This option enables wake up from deep sleep using ULP. - ULP program monitors the on-chip temperature sensor and - wakes up the chip when the temperature goes outside of - the window defined by the initial temperature and a threshold - around it. + config ENABLE_ULP_TEMPERATURE_WAKEUP + bool "Enable temperature monitoring by ULP" + default y + help + This option enables wake up from deep sleep using ULP. + ULP program monitors the on-chip temperature sensor and + wakes up the chip when the temperature goes outside of + the window defined by the initial temperature and a threshold + around it. endmenu \ No newline at end of file diff --git a/examples/system/gcov/main/Kconfig.projbuild b/examples/system/gcov/main/Kconfig.projbuild index f44a3df7c3..09f282c826 100644 --- a/examples/system/gcov/main/Kconfig.projbuild +++ b/examples/system/gcov/main/Kconfig.projbuild @@ -1,14 +1,14 @@ menu "Example Configuration" -config BLINK_GPIO - int "Blink GPIO number" - range 0 34 - default 5 - help - GPIO number (IOxx) to blink on and off. + config BLINK_GPIO + int "Blink GPIO number" + range 0 34 + default 5 + help + GPIO number (IOxx) to blink on and off. - Some GPIOs are used for other purposes (flash connections, etc.) and cannot be used to blink. + Some GPIOs are used for other purposes (flash connections, etc.) and cannot be used to blink. - GPIOs 35-39 are input-only so cannot be used as outputs. + GPIOs 35-39 are input-only so cannot be used as outputs. endmenu diff --git a/examples/system/ota/native_ota_example/main/Kconfig.projbuild b/examples/system/ota/native_ota_example/main/Kconfig.projbuild index 05965e9426..628dfda5d3 100644 --- a/examples/system/ota/native_ota_example/main/Kconfig.projbuild +++ b/examples/system/ota/native_ota_example/main/Kconfig.projbuild @@ -1,25 +1,25 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. - Can be left blank if the network has no security set. + Can be left blank if the network has no security set. -config FIRMWARE_UPG_URL - string "HTTP Server URL" - default "https://192.168.0.3:8070/hello-world.bin" - help - HTTP Server IP to download the image file from. + config FIRMWARE_UPG_URL + string "HTTP Server URL" + default "https://192.168.0.3:8070/hello-world.bin" + help + HTTP Server IP to download the image file from. - See example README.md for details. + See example README.md for details. endmenu diff --git a/examples/system/ota/simple_ota_example/main/Kconfig.projbuild b/examples/system/ota/simple_ota_example/main/Kconfig.projbuild index 38bf5cb4d4..f3f71e3a84 100644 --- a/examples/system/ota/simple_ota_example/main/Kconfig.projbuild +++ b/examples/system/ota/simple_ota_example/main/Kconfig.projbuild @@ -1,21 +1,21 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. -config FIRMWARE_UPGRADE_URL - string "firmware upgrade url endpoint" - default "https://192.168.0.3:8070/hello-world.bin" - help - URL of server which hosts the firmware - image. + config FIRMWARE_UPGRADE_URL + string "firmware upgrade url endpoint" + default "https://192.168.0.3:8070/hello-world.bin" + help + URL of server which hosts the firmware + image. endmenu diff --git a/examples/system/sysview_tracing/main/Kconfig.projbuild b/examples/system/sysview_tracing/main/Kconfig.projbuild index 4a7c767053..7a96f066c1 100644 --- a/examples/system/sysview_tracing/main/Kconfig.projbuild +++ b/examples/system/sysview_tracing/main/Kconfig.projbuild @@ -1,12 +1,12 @@ menu "Example Configuration" -config USE_CUSTOM_EVENT_ID - bool "Use custom SystemView event IDs" - default "n" - help - Use custom IDs for user events. If it is enabled, replace `SYSVIEW_FreeRTOS.txt` in SystemView - installation directory with the version from example's root directory. - - By default SYSVIEW_EVTID_USER_START/STOP are used for tracing purposes of the example. + config USE_CUSTOM_EVENT_ID + bool "Use custom SystemView event IDs" + default "n" + help + Use custom IDs for user events. If it is enabled, replace `SYSVIEW_FreeRTOS.txt` in SystemView + installation directory with the version from example's root directory. + + By default SYSVIEW_EVTID_USER_START/STOP are used for tracing purposes of the example. endmenu diff --git a/examples/wifi/espnow/main/Kconfig.projbuild b/examples/wifi/espnow/main/Kconfig.projbuild index 782fd5b017..5f597e67b5 100644 --- a/examples/wifi/espnow/main/Kconfig.projbuild +++ b/examples/wifi/espnow/main/Kconfig.projbuild @@ -1,61 +1,61 @@ menu "Example Configuration" -choice WIFI_MODE - prompt "WiFi mode" - default STATION_MODE - help - WiFi mode(station or softap). - -config STATION_MODE - bool "Station" -config SOFTAP_MODE - bool "Softap" -endchoice - -config ESPNOW_PMK - string "ESPNOW primary master key" - default "pmk1234567890123" - help - ESPNOW primary master for the example to use. The length of ESPNOW primary master must be 16 bytes. + choice WIFI_MODE + prompt "WiFi mode" + default STATION_MODE + help + WiFi mode(station or softap). -config ESPNOW_LMK - string "ESPNOW local master key" - default "lmk1234567890123" - help - ESPNOW local master for the example to use. The length of ESPNOW local master must be 16 bytes. - -config ESPNOW_CHANNEL - int "Channel" - default 1 - range 1 13 - help - The channel on which sending and receiving ESPNOW data. + config STATION_MODE + bool "Station" + config SOFTAP_MODE + bool "Softap" + endchoice -config ESPNOW_SEND_COUNT - int "Send count" - default 100 - range 1 65535 - help - Total count of unicast ESPNOW data to be sent. - -config ESPNOW_SEND_DELAY - int "Send delay" - default 1000 - range 0 65535 - help - Delay between sending two ESPNOW data, unit: ms. - -config ESPNOW_SEND_LEN - int "Send len" - range 10 250 - default 10 - help - Length of ESPNOW data to be sent, unit: byte. + config ESPNOW_PMK + string "ESPNOW primary master key" + default "pmk1234567890123" + help + ESPNOW primary master for the example to use. The length of ESPNOW primary master must be 16 bytes. -config ENABLE_LONG_RANGE - bool "Enable Long Range" - default "n" - help - When enable long range, the PHY rate of ESP32 will be 512Kbps or 256Kbps + config ESPNOW_LMK + string "ESPNOW local master key" + default "lmk1234567890123" + help + ESPNOW local master for the example to use. The length of ESPNOW local master must be 16 bytes. + + config ESPNOW_CHANNEL + int "Channel" + default 1 + range 1 13 + help + The channel on which sending and receiving ESPNOW data. + + config ESPNOW_SEND_COUNT + int "Send count" + default 100 + range 1 65535 + help + Total count of unicast ESPNOW data to be sent. + + config ESPNOW_SEND_DELAY + int "Send delay" + default 1000 + range 0 65535 + help + Delay between sending two ESPNOW data, unit: ms. + + config ESPNOW_SEND_LEN + int "Send len" + range 10 250 + default 10 + help + Length of ESPNOW data to be sent, unit: byte. + + config ENABLE_LONG_RANGE + bool "Enable Long Range" + default "n" + help + When enable long range, the PHY rate of ESP32 will be 512Kbps or 256Kbps endmenu diff --git a/examples/wifi/getting_started/softAP/main/Kconfig.projbuild b/examples/wifi/getting_started/softAP/main/Kconfig.projbuild index 1b37eb2fe0..bc4c17f261 100644 --- a/examples/wifi/getting_started/softAP/main/Kconfig.projbuild +++ b/examples/wifi/getting_started/softAP/main/Kconfig.projbuild @@ -1,20 +1,20 @@ menu "Example Configuration" -config ESP_WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config ESP_WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config ESP_WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. - -config MAX_STA_CONN - int "Maximal STA connections" - default 4 - help - Max number of the STA connects to AP. + config ESP_WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. + + config MAX_STA_CONN + int "Maximal STA connections" + default 4 + help + Max number of the STA connects to AP. endmenu diff --git a/examples/wifi/getting_started/station/main/Kconfig.projbuild b/examples/wifi/getting_started/station/main/Kconfig.projbuild index 0c74a747af..7403f8f834 100644 --- a/examples/wifi/getting_started/station/main/Kconfig.projbuild +++ b/examples/wifi/getting_started/station/main/Kconfig.projbuild @@ -1,20 +1,20 @@ menu "Example Configuration" -config ESP_WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config ESP_WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config ESP_WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config ESP_WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. -config ESP_MAXIMUM_RETRY - int "Maximum retry" - default 5 - help - Set the Maximum retry to avoid station reconnecting to the AP unlimited when the AP is really inexistent. + config ESP_MAXIMUM_RETRY + int "Maximum retry" + default 5 + help + Set the Maximum retry to avoid station reconnecting to the AP unlimited when the AP is really inexistent. endmenu diff --git a/examples/wifi/power_save/main/Kconfig.projbuild b/examples/wifi/power_save/main/Kconfig.projbuild index ea2b0aa26a..24d928408d 100644 --- a/examples/wifi/power_save/main/Kconfig.projbuild +++ b/examples/wifi/power_save/main/Kconfig.projbuild @@ -1,96 +1,96 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. - -config WIFI_LISTEN_INTERVAL - int "WiFi listen interval" - default 3 - help - Interval for station to listen to beacon from AP. The unit of listen interval is one beacon interval. - For example, if beacon interval is 100 ms and listen interval is 3, the interval for station to listen - to beacon is 300 ms. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. -choice POWER_SAVE_MODE - prompt "power save mode" - default POWER_SAVE_MIN_MODEM - help - Power save mode for the esp32 to use. Modem sleep mode includes minimum and maximum power save modes. - In minimum power save mode, station wakes up every DTIM to receive beacon. Broadcast data will not be - lost because it is transmitted after DTIM. However, it can not save much more power if DTIM is short - for DTIM is determined by AP. - In maximum power save mode, station wakes up every listen interval to receive beacon. Broadcast data - may be lost because station may be in sleep state at DTIM time. If listen interval is longer, more power - is saved but broadcast data is more easy to lose. + config WIFI_LISTEN_INTERVAL + int "WiFi listen interval" + default 3 + help + Interval for station to listen to beacon from AP. The unit of listen interval is one beacon interval. + For example, if beacon interval is 100 ms and listen interval is 3, the interval for station to listen + to beacon is 300 ms. -config POWER_SAVE_NONE - bool "none" -config POWER_SAVE_MIN_MODEM - bool "minimum modem" -config POWER_SAVE_MAX_MODEM - bool "maximum modem" -endchoice + choice POWER_SAVE_MODE + prompt "power save mode" + default POWER_SAVE_MIN_MODEM + help + Power save mode for the esp32 to use. Modem sleep mode includes minimum and maximum power save modes. + In minimum power save mode, station wakes up every DTIM to receive beacon. Broadcast data will not be + lost because it is transmitted after DTIM. However, it can not save much more power if DTIM is short + for DTIM is determined by AP. + In maximum power save mode, station wakes up every listen interval to receive beacon. Broadcast data + may be lost because station may be in sleep state at DTIM time. If listen interval is longer, more power + is saved but broadcast data is more easy to lose. -choice EXAMPLE_MAX_CPU_FREQ - prompt "Maximum CPU frequency" - default EXAMPLE_MAX_CPU_FREQ_80 - help - Maximum CPU frequency to use for dynamic frequency scaling. + config POWER_SAVE_NONE + bool "none" + config POWER_SAVE_MIN_MODEM + bool "minimum modem" + config POWER_SAVE_MAX_MODEM + bool "maximum modem" + endchoice -config EXAMPLE_MAX_CPU_FREQ_80 - bool "80 MHz" -config EXAMPLE_MAX_CPU_FREQ_160 - bool "160 MHz" -config EXAMPLE_MAX_CPU_FREQ_240 - bool "240 MHz" -endchoice + choice EXAMPLE_MAX_CPU_FREQ + prompt "Maximum CPU frequency" + default EXAMPLE_MAX_CPU_FREQ_80 + help + Maximum CPU frequency to use for dynamic frequency scaling. -config EXAMPLE_MAX_CPU_FREQ_MHZ - int - default 80 if EXAMPLE_MAX_CPU_FREQ_80 - default 160 if EXAMPLE_MAX_CPU_FREQ_160 - default 240 if EXAMPLE_MAX_CPU_FREQ_240 + config EXAMPLE_MAX_CPU_FREQ_80 + bool "80 MHz" + config EXAMPLE_MAX_CPU_FREQ_160 + bool "160 MHz" + config EXAMPLE_MAX_CPU_FREQ_240 + bool "240 MHz" + endchoice + + config EXAMPLE_MAX_CPU_FREQ_MHZ + int + default 80 if EXAMPLE_MAX_CPU_FREQ_80 + default 160 if EXAMPLE_MAX_CPU_FREQ_160 + default 240 if EXAMPLE_MAX_CPU_FREQ_240 -choice EXAMPLE_MIN_CPU_FREQ - prompt "Minimum CPU frequency" - default EXAMPLE_MIN_CPU_FREQ_10M - help - Minimum CPU frequency to use for dynamic frequency scaling. - Should be set to XTAL frequency or XTAL frequency divided by integer. + choice EXAMPLE_MIN_CPU_FREQ + prompt "Minimum CPU frequency" + default EXAMPLE_MIN_CPU_FREQ_10M + help + Minimum CPU frequency to use for dynamic frequency scaling. + Should be set to XTAL frequency or XTAL frequency divided by integer. -config EXAMPLE_MIN_CPU_FREQ_40M - bool "40 MHz (use with 40MHz XTAL)" - depends on ESP32_XTAL_FREQ_40 || ESP32_XTAL_FREQ_AUTO -config EXAMPLE_MIN_CPU_FREQ_20M - bool "20 MHz (use with 40MHz XTAL)" - depends on ESP32_XTAL_FREQ_40 || ESP32_XTAL_FREQ_AUTO -config EXAMPLE_MIN_CPU_FREQ_10M - bool "10 MHz (use with 40MHz XTAL)" - depends on ESP32_XTAL_FREQ_40 || ESP32_XTAL_FREQ_AUTO -config EXAMPLE_MIN_CPU_FREQ_26M - bool "26 MHz (use with 26MHz XTAL)" - depends on ESP32_XTAL_FREQ_26 || ESP32_XTAL_FREQ_AUTO -config EXAMPLE_MIN_CPU_FREQ_13M - bool "13 MHz (use with 26MHz XTAL)" - depends on ESP32_XTAL_FREQ_26 || ESP32_XTAL_FREQ_AUTO -endchoice + config EXAMPLE_MIN_CPU_FREQ_40M + bool "40 MHz (use with 40MHz XTAL)" + depends on ESP32_XTAL_FREQ_40 || ESP32_XTAL_FREQ_AUTO + config EXAMPLE_MIN_CPU_FREQ_20M + bool "20 MHz (use with 40MHz XTAL)" + depends on ESP32_XTAL_FREQ_40 || ESP32_XTAL_FREQ_AUTO + config EXAMPLE_MIN_CPU_FREQ_10M + bool "10 MHz (use with 40MHz XTAL)" + depends on ESP32_XTAL_FREQ_40 || ESP32_XTAL_FREQ_AUTO + config EXAMPLE_MIN_CPU_FREQ_26M + bool "26 MHz (use with 26MHz XTAL)" + depends on ESP32_XTAL_FREQ_26 || ESP32_XTAL_FREQ_AUTO + config EXAMPLE_MIN_CPU_FREQ_13M + bool "13 MHz (use with 26MHz XTAL)" + depends on ESP32_XTAL_FREQ_26 || ESP32_XTAL_FREQ_AUTO + endchoice + + config EXAMPLE_MIN_CPU_FREQ_MHZ + int + default 40 if EXAMPLE_MIN_CPU_FREQ_40M + default 20 if EXAMPLE_MIN_CPU_FREQ_20M + default 10 if EXAMPLE_MIN_CPU_FREQ_10M + default 26 if EXAMPLE_MIN_CPU_FREQ_26M + default 13 if EXAMPLE_MIN_CPU_FREQ_13M -config EXAMPLE_MIN_CPU_FREQ_MHZ - int - default 40 if EXAMPLE_MIN_CPU_FREQ_40M - default 20 if EXAMPLE_MIN_CPU_FREQ_20M - default 10 if EXAMPLE_MIN_CPU_FREQ_10M - default 26 if EXAMPLE_MIN_CPU_FREQ_26M - default 13 if EXAMPLE_MIN_CPU_FREQ_13M - endmenu diff --git a/examples/wifi/scan/main/Kconfig.projbuild b/examples/wifi/scan/main/Kconfig.projbuild index bd1dd9665e..b3fc5d73ba 100644 --- a/examples/wifi/scan/main/Kconfig.projbuild +++ b/examples/wifi/scan/main/Kconfig.projbuild @@ -1,68 +1,68 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "myssid" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "myssid" + help + SSID (network name) for the example to connect to. -config WIFI_PASSWORD - string "WiFi Password" - default "mypassword" - help - WiFi password (WPA or WPA2) for the example to use. + config WIFI_PASSWORD + string "WiFi Password" + default "mypassword" + help + WiFi password (WPA or WPA2) for the example to use. -choice SCAN_METHOD - prompt "scan method" - default WIFI_FAST_SCAN - help - scan method for the esp32 to use + choice SCAN_METHOD + prompt "scan method" + default WIFI_FAST_SCAN + help + scan method for the esp32 to use -config WIFI_FAST_SCAN - bool "fast" -config WIFI_ALL_CHANNEL_SCAN - bool "all" -endchoice + config WIFI_FAST_SCAN + bool "fast" + config WIFI_ALL_CHANNEL_SCAN + bool "all" + endchoice -choice SORT_METHOD - prompt "sort method" - default WIFI_CONNECT_AP_BY_SIGNAL - help - sort method for the esp32 to use + choice SORT_METHOD + prompt "sort method" + default WIFI_CONNECT_AP_BY_SIGNAL + help + sort method for the esp32 to use -config WIFI_CONNECT_AP_BY_SIGNAL - bool "rssi" -config WIFI_CONNECT_AP_BY_SECURITY - bool "authmode" -endchoice + config WIFI_CONNECT_AP_BY_SIGNAL + bool "rssi" + config WIFI_CONNECT_AP_BY_SECURITY + bool "authmode" + endchoice -config FAST_SCAN_THRESHOLD - bool "fast scan threshold" - default y - help - wifi fast scan threshold + config FAST_SCAN_THRESHOLD + bool "fast scan threshold" + default y + help + wifi fast scan threshold -config FAST_SCAN_MINIMUM_SIGNAL - int "fast scan minimum rssi" - depends on FAST_SCAN_THRESHOLD - range -127 0 - default -127 - help - rssi is use to measure the signal + config FAST_SCAN_MINIMUM_SIGNAL + int "fast scan minimum rssi" + depends on FAST_SCAN_THRESHOLD + range -127 0 + default -127 + help + rssi is use to measure the signal -choice FAST_SCAN_WEAKEST_AUTHMODE - prompt "fast scan weakest authmode" - depends on FAST_SCAN_THRESHOLD - default EXAMPLE_OPEN + choice FAST_SCAN_WEAKEST_AUTHMODE + prompt "fast scan weakest authmode" + depends on FAST_SCAN_THRESHOLD + default EXAMPLE_OPEN -config EXAMPLE_OPEN - bool "open" -config EXAMPLE_WEP - bool "wep" -config EXAMPLE_WPA - bool "wpa" -config EXAMPLE_WPA2 - bool "wpa2" -endchoice + config EXAMPLE_OPEN + bool "open" + config EXAMPLE_WEP + bool "wep" + config EXAMPLE_WPA + bool "wpa" + config EXAMPLE_WPA2 + bool "wpa2" + endchoice endmenu diff --git a/examples/wifi/simple_sniffer/main/Kconfig.projbuild b/examples/wifi/simple_sniffer/main/Kconfig.projbuild index 61d227638e..319a6b5a60 100644 --- a/examples/wifi/simple_sniffer/main/Kconfig.projbuild +++ b/examples/wifi/simple_sniffer/main/Kconfig.projbuild @@ -1,44 +1,44 @@ menu "Example Configuration" -config STORE_HISTORY - bool "Store command history in flash" - default y - help - Linenoise line editing library provides functions to save and load - command history. If this option is enabled, initalizes a FAT filesystem - and uses it to store command history. + config STORE_HISTORY + bool "Store command history in flash" + default y + help + Linenoise line editing library provides functions to save and load + command history. If this option is enabled, initalizes a FAT filesystem + and uses it to store command history. -config SNIFFER_MOUNT_POINT - string "Mount Point in your filesystem to store pcap files" - default "/sdcard" - help - Here you need to specify the mount point in the VFS (Virtual File System) where the pcap would be saved. + config SNIFFER_MOUNT_POINT + string "Mount Point in your filesystem to store pcap files" + default "/sdcard" + help + Here you need to specify the mount point in the VFS (Virtual File System) where the pcap would be saved. -config SNIFFER_WORK_QUEUE_LENGTH - int "Length of sniffer work queue" - default 128 - help - The sniffer callback function should not do heavy work, so we put all heavy IO operation to another task. - The task gets some basic info of sniffer packet via queue. - Here you should specify the length of queue. + config SNIFFER_WORK_QUEUE_LENGTH + int "Length of sniffer work queue" + default 128 + help + The sniffer callback function should not do heavy work, so we put all heavy IO operation to another task. + The task gets some basic info of sniffer packet via queue. + Here you should specify the length of queue. -config SNIFFER_TASK_STACK_SIZE - int "Stack size of sniffer task" - default 2560 - help - The stack size of sniffer task. + config SNIFFER_TASK_STACK_SIZE + int "Stack size of sniffer task" + default 2560 + help + The stack size of sniffer task. -config SNIFFER_TASK_PRIORITY - int "Priority of sniffer task" - default 2 - help - Priority of sniffer task. + config SNIFFER_TASK_PRIORITY + int "Priority of sniffer task" + default 2 + help + Priority of sniffer task. -config PCAP_FILE_MAX_PACKETS - int "Max packets in a pcap file" - default 2000 - help - To avoid the pcap file being very large, we should save packets into multiple fiiles. - Here you should specify the max number of packets that should be save in one pcap file. + config PCAP_FILE_MAX_PACKETS + int "Max packets in a pcap file" + default 2000 + help + To avoid the pcap file being very large, we should save packets into multiple fiiles. + Here you should specify the max number of packets that should be save in one pcap file. endmenu diff --git a/examples/wifi/wpa2_enterprise/main/Kconfig.projbuild b/examples/wifi/wpa2_enterprise/main/Kconfig.projbuild index 06fab0bfa1..7cf61fbcc6 100644 --- a/examples/wifi/wpa2_enterprise/main/Kconfig.projbuild +++ b/examples/wifi/wpa2_enterprise/main/Kconfig.projbuild @@ -1,34 +1,34 @@ menu "Example Configuration" -config WIFI_SSID - string "WiFi SSID" - default "wpa2_test" - help - SSID (network name) for the example to connect to. + config WIFI_SSID + string "WiFi SSID" + default "wpa2_test" + help + SSID (network name) for the example to connect to. -config EAP_METHOD - int "EAP METHOD" - default 1 - help - EAP method (TLS, PEAP or TTLS) for the example to use. - TLS: 0, PEAP: 1, TTLS: 2 - -config EAP_ID - string "EAP ID" - default "example@espressif.com" - help - Identity in phase 1 of EAP procedure. - -config EAP_USERNAME - string "EAP USERNAME" - default "espressif" - help - Username for EAP method (PEAP and TTLS). - -config EAP_PASSWORD - string "EAP PASSWORD" - default "test11" - help - Password for EAP method (PEAP and TTLS). + config EAP_METHOD + int "EAP METHOD" + default 1 + help + EAP method (TLS, PEAP or TTLS) for the example to use. + TLS: 0, PEAP: 1, TTLS: 2 + + config EAP_ID + string "EAP ID" + default "example@espressif.com" + help + Identity in phase 1 of EAP procedure. + + config EAP_USERNAME + string "EAP USERNAME" + default "espressif" + help + Username for EAP method (PEAP and TTLS). + + config EAP_PASSWORD + string "EAP PASSWORD" + default "test11" + help + Password for EAP method (PEAP and TTLS). endmenu \ No newline at end of file diff --git a/examples/wifi/wps/main/Kconfig.projbuild b/examples/wifi/wps/main/Kconfig.projbuild index c978d89845..52ee00ce57 100644 --- a/examples/wifi/wps/main/Kconfig.projbuild +++ b/examples/wifi/wps/main/Kconfig.projbuild @@ -1,17 +1,17 @@ menu "Example Configuration" -choice EXAMPLE_WPS_TYPE - prompt "WPS mode" - default EXAMPLE_WPS_TYPE_PBC - help - WPS type for the esp32 to use. + choice EXAMPLE_WPS_TYPE + prompt "WPS mode" + default EXAMPLE_WPS_TYPE_PBC + help + WPS type for the esp32 to use. -config EXAMPLE_WPS_TYPE_PBC - bool "PBC" -config EXAMPLE_WPS_TYPE_PIN - bool "PIN" -config EXAMPLE_WPS_TYPE_DISABLE - bool "disable" -endchoice + config EXAMPLE_WPS_TYPE_PBC + bool "PBC" + config EXAMPLE_WPS_TYPE_PIN + bool "PIN" + config EXAMPLE_WPS_TYPE_DISABLE + bool "disable" + endchoice endmenu diff --git a/tools/check_kconfigs.py b/tools/check_kconfigs.py index 86bcbb1ef1..e0de7ac795 100755 --- a/tools/check_kconfigs.py +++ b/tools/check_kconfigs.py @@ -34,116 +34,12 @@ OUTPUT_SUFFIX = '.new' IGNORE_DIRS = ( # Kconfigs from submodules need to be ignored: os.path.join('components', 'mqtt', 'esp-mqtt'), - # Temporary (incompatibility) list: - os.path.join('components', 'app_update'), - os.path.join('components', 'aws_iot'), - os.path.join('components', 'bootloader'), - os.path.join('components', 'bt'), - os.path.join('components', 'driver'), - os.path.join('components', 'esp32'), - os.path.join('components', 'esp_adc_cal'), - os.path.join('components', 'esp_event'), - os.path.join('components', 'esp_http_client'), - os.path.join('components', 'esp_http_server'), - os.path.join('components', 'esptool_py'), - os.path.join('components', 'fatfs'), - os.path.join('components', 'freemodbus'), - os.path.join('components', 'freertos'), - os.path.join('components', 'heap'), - os.path.join('components', 'libsodium'), - os.path.join('components', 'log'), - os.path.join('components', 'lwip'), - os.path.join('components', 'mbedtls'), - os.path.join('components', 'mdns'), - os.path.join('components', 'mqtt'), - os.path.join('components', 'nvs_flash'), - os.path.join('components', 'openssl'), - os.path.join('components', 'partition_table'), - os.path.join('components', 'pthread'), - os.path.join('components', 'spi_flash'), - os.path.join('components', 'spiffs'), - os.path.join('components', 'tcpip_adapter'), - os.path.join('components', 'unity'), - os.path.join('components', 'vfs'), - os.path.join('components', 'wear_levelling'), - os.path.join('examples', 'bluetooth', 'a2dp_gatts_coex', 'main'), - os.path.join('examples', 'bluetooth', 'a2dp_sink', 'main'), - os.path.join('examples', 'bluetooth', 'ble_ibeacon', 'main'), - os.path.join('examples', 'bluetooth', 'ble_throughput', 'throughput_client', 'main'), - os.path.join('examples', 'bluetooth', 'ble_throughput', 'throughput_server', 'main'), - os.path.join('examples', 'bluetooth', 'gatt_server', 'main'), - os.path.join('examples', 'get-started', 'blink', 'main'), - os.path.join('examples', 'mesh', 'internal_communication', 'main'), - os.path.join('examples', 'mesh', 'manual_networking', 'main'), - os.path.join('examples', 'peripherals', 'adc2', 'main'), - os.path.join('examples', 'peripherals', 'i2c', 'i2c_self_test', 'main'), - os.path.join('examples', 'peripherals', 'i2c', 'i2c_tools', 'main'), - os.path.join('examples', 'peripherals', 'sdio', 'host', 'main'), - os.path.join('examples', 'peripherals', 'sdio', 'slave', 'main'), - os.path.join('examples', 'peripherals', 'spi_master', 'main'), - os.path.join('examples', 'peripherals', 'uart', 'nmea0183_parser', 'main'), - os.path.join('examples', 'protocols', 'asio', 'chat_client', 'main'), - os.path.join('examples', 'protocols', 'asio', 'chat_server', 'main'), - os.path.join('examples', 'protocols', 'asio', 'tcp_echo_server', 'main'), - os.path.join('examples', 'protocols', 'asio', 'udp_echo_server', 'main'), - os.path.join('examples', 'protocols', 'aws_iot', 'subscribe_publish', 'main'), - os.path.join('examples', 'protocols', 'aws_iot', 'thing_shadow', 'main'), - os.path.join('examples', 'protocols', 'coap_client', 'main'), - os.path.join('examples', 'protocols', 'coap_server', 'main'), - os.path.join('examples', 'protocols', 'esp_http_client', 'main'), - os.path.join('examples', 'protocols', 'http2_request', 'main'), - os.path.join('examples', 'protocols', 'http_request', 'main'), - os.path.join('examples', 'protocols', 'http_server', 'advanced_tests', 'main'), - os.path.join('examples', 'protocols', 'http_server', 'persistent_sockets', 'main'), - os.path.join('examples', 'protocols', 'http_server', 'simple', 'main'), - os.path.join('examples', 'protocols', 'https_mbedtls', 'main'), - os.path.join('examples', 'protocols', 'https_request', 'main'), - os.path.join('examples', 'protocols', 'https_server', 'main'), - os.path.join('examples', 'protocols', 'mdns', 'main'), - os.path.join('examples', 'protocols', 'modbus_slave', 'main'), - os.path.join('examples', 'protocols', 'mqtt', 'ssl', 'main'), - os.path.join('examples', 'protocols', 'mqtt', 'ssl_mutual_auth', 'main'), - os.path.join('examples', 'protocols', 'mqtt', 'tcp', 'main'), - os.path.join('examples', 'protocols', 'mqtt', 'ws', 'main'), - os.path.join('examples', 'protocols', 'mqtt', 'wss', 'main'), - os.path.join('examples', 'protocols', 'openssl_client', 'main'), - os.path.join('examples', 'protocols', 'openssl_server', 'main'), - os.path.join('examples', 'protocols', 'pppos_client', 'main'), - os.path.join('examples', 'protocols', 'sntp', 'main'), - os.path.join('examples', 'protocols', 'sockets', 'tcp_client', 'main'), - os.path.join('examples', 'protocols', 'sockets', 'tcp_server', 'main'), - os.path.join('examples', 'protocols', 'sockets', 'udp_client', 'main'), - os.path.join('examples', 'protocols', 'sockets', 'udp_multicast', 'main'), - os.path.join('examples', 'protocols', 'sockets', 'udp_server', 'main'), - os.path.join('examples', 'provisioning', 'ble_prov', 'main'), - os.path.join('examples', 'provisioning', 'console_prov', 'main'), - os.path.join('examples', 'provisioning', 'custom_config', 'main'), - os.path.join('examples', 'provisioning', 'softap_prov', 'main'), - os.path.join('examples', 'system', 'app_trace_to_host', 'main'), - os.path.join('examples', 'system', 'base_mac_address', 'main'), - os.path.join('examples', 'system', 'console', 'main'), - os.path.join('examples', 'system', 'deep_sleep', 'main'), - os.path.join('examples', 'system', 'gcov', 'main'), - os.path.join('examples', 'system', 'ota', 'native_ota_example', 'main'), - os.path.join('examples', 'system', 'ota', 'simple_ota_example', 'main'), - os.path.join('examples', 'system', 'sysview_tracing', 'main'), - os.path.join('examples', 'wifi', 'espnow', 'main'), - os.path.join('examples', 'wifi', 'getting_started', 'softAP', 'main'), - os.path.join('examples', 'wifi', 'getting_started', 'station', 'main'), - os.path.join('examples', 'wifi', 'power_save', 'main'), - os.path.join('examples', 'wifi', 'scan', 'main'), - os.path.join('examples', 'wifi', 'simple_sniffer', 'main'), - os.path.join('examples', 'wifi', 'wpa2_enterprise', 'main'), - os.path.join('examples', 'wifi', 'wps', 'main'), - os.path.join('tools', 'kconfig'), - os.path.join('tools', 'kconfig_new', 'test'), - os.path.join('tools', 'ldgen', 'test', 'data'), - os.path.join('tools', 'unit-test-app', 'components', 'test_utils'), ) SPACES_PER_INDENT = 4 -CONFIG_NAME_MAX_LENGTH = 50 +# TODO decrease the value (after the names have been refactored) +CONFIG_NAME_MAX_LENGTH = 60 # TODO increase prefix length (after the names have been refactored) CONFIG_NAME_MIN_PREFIX_LENGTH = 0 @@ -211,6 +107,9 @@ class IndentAndNameChecker(BaseChecker): # stack common prefixes of configs self.prefix_stack = [] + # if the line ends with '\' then we force the indent of the next line + self.force_next_indent = 0 + # menu items which increase the indentation of the next line self.re_increase_level = re.compile(r'''^\s* ( @@ -287,6 +186,10 @@ class IndentAndNameChecker(BaseChecker): # delete items ("config", "menuconfig", "help") until the appropriate parent self.del_from_level_stack(i) break + else: + # delete everything when configs are at top level without a parent menu, mainmenu... + self.del_from_level_stack(len(self.level_stack)) + self.level_stack.append(new_item) if self.debug: print(self.level_stack) @@ -321,8 +224,10 @@ class IndentAndNameChecker(BaseChecker): raise InputError(self.path_in_idf, line_number, '{} is {} characters long and it should be {} at most' ''.format(name, name_length, CONFIG_NAME_MAX_LENGTH), - line) # no suggested correction for this - if self.prefix_stack[-1] is None: + line + '\n') # no suggested correction for this + if len(self.prefix_stack) == 0: + self.prefix_stack.append(name) + elif self.prefix_stack[-1] is None: self.prefix_stack[-1] = name else: # this has nothing common with paths but the algorithm can be used for this also @@ -366,6 +271,7 @@ class IndentAndNameChecker(BaseChecker): def process_line(self, line, line_number): stripped_line = line.strip() if len(stripped_line) == 0: + self.force_next_indent = 0 return current_level = len(self.level_stack) m = re.search(r'\S', line) # indent found as the first non-space character @@ -377,8 +283,26 @@ class IndentAndNameChecker(BaseChecker): if current_level > 0 and self.level_stack[-1] == 'help': if current_indent >= current_level * SPACES_PER_INDENT: # this line belongs to 'help' + self.force_next_indent = 0 return + if self.force_next_indent > 0: + if current_indent != self.force_next_indent: + raise InputError(self.path_in_idf, line_number, + 'Indentation consists of {} spaces instead of {}'.format(current_indent, + self.force_next_indent), + (' ' * self.force_next_indent) + line.lstrip()) + else: + if not stripped_line.endswith('\\'): + self.force_next_indent = 0 + return + + else: + if stripped_line.endswith('\\') and stripped_line.startswith(('config', 'menuconfig', 'choice')): + raise InputError(self.path_in_idf, line_number, + 'Line-wrap with backslash is not supported here', + line) # no suggestion for this + self.check_name_and_update_prefix(stripped_line, line_number) m = self.re_increase_level.search(line) @@ -395,6 +319,12 @@ class IndentAndNameChecker(BaseChecker): self.check_common_prefix(line, line_number) expected_indent = current_level * SPACES_PER_INDENT + + if stripped_line.endswith('\\'): + self.force_next_indent = expected_indent + SPACES_PER_INDENT + else: + self.force_next_indent = 0 + if current_indent != expected_indent: raise InputError(self.path_in_idf, line_number, 'Indentation consists of {} spaces instead of {}'.format(current_indent, expected_indent), diff --git a/tools/kconfig_new/test/Kconfig b/tools/kconfig_new/test/Kconfig index 958226749e..69500889ba 100644 --- a/tools/kconfig_new/test/Kconfig +++ b/tools/kconfig_new/test/Kconfig @@ -1,44 +1,44 @@ menu "Test config" -config TEST_BOOL - bool "Test boolean" - default n + config TEST_BOOL + bool "Test boolean" + default n -config TEST_CHILD_BOOL - bool "Test boolean" - depends on TEST_BOOL - default y + config TEST_CHILD_BOOL + bool "Test boolean" + depends on TEST_BOOL + default y -config TEST_CHILD_STR - string "Test str" - depends on TEST_BOOL - default "OHAI!" + config TEST_CHILD_STR + string "Test str" + depends on TEST_BOOL + default "OHAI!" -choice TEST_CHOICE - prompt "Some choice" - default CHOICE_A + choice TEST_CHOICE + prompt "Some choice" + default CHOICE_A -config CHOICE_A - bool "A" + config CHOICE_A + bool "A" -config CHOICE_B - bool "B" + config CHOICE_B + bool "B" -endchoice + endchoice -config DEPENDS_ON_CHOICE - string "Depends on choice" - default "Depends on A" if CHOICE_A - default "Depends on B" if CHOICE_B - default "WAT" + config DEPENDS_ON_CHOICE + string "Depends on choice" + default "Depends on A" if CHOICE_A + default "Depends on B" if CHOICE_B + default "WAT" -config SOME_UNRELATED_THING - bool "Some unrelated thing" + config SOME_UNRELATED_THING + bool "Some unrelated thing" -config TEST_CONDITIONAL_RANGES - int "Something with a range" - range 0 100 if TEST_BOOL - range 0 10 - default 1 + config TEST_CONDITIONAL_RANGES + int "Something with a range" + range 0 100 if TEST_BOOL + range 0 10 + default 1 endmenu diff --git a/tools/ldgen/test/data/Kconfig b/tools/ldgen/test/data/Kconfig index 17993d0c33..c813c008cf 100644 --- a/tools/ldgen/test/data/Kconfig +++ b/tools/ldgen/test/data/Kconfig @@ -1,7 +1,7 @@ menu "Test config" -config PERFORMANCE_LEVEL - int "Performance level" - range 0 3 + config PERFORMANCE_LEVEL + int "Performance level" + range 0 3 endmenu diff --git a/tools/test_check_kconfigs.py b/tools/test_check_kconfigs.py index 91ac0568d2..866d1d8285 100755 --- a/tools/test_check_kconfigs.py +++ b/tools/test_check_kconfigs.py @@ -18,6 +18,7 @@ import unittest from check_kconfigs import LineRuleChecker from check_kconfigs import InputError from check_kconfigs import IndentAndNameChecker +from check_kconfigs import CONFIG_NAME_MAX_LENGTH class ApplyLine(object): @@ -113,6 +114,7 @@ class TestIndent(TestIndentAndNameChecker): self.expt_success(' menuconfig keyword in the help') self.expt_success(' endmenu keyword in the help') self.expt_success(' endmenu keyword in the help') + self.expt_success('') # newline in help self.expt_success(' endmenu keyword in the help') self.expect_error(' menu "real menu with wrong indent"', expect=' menu "real menu with wrong indent"', cleanup=' endmenu') @@ -142,6 +144,24 @@ class TestIndent(TestIndentAndNameChecker): self.expt_success(' config') self.expt_success('endmenu') + def test_config_without_menu(self): + self.expt_success('menuconfig') + self.expt_success(' help') + self.expt_success(' text') + self.expt_success('') + self.expt_success(' text') + self.expt_success('config') + self.expt_success(' help') + + def test_backslashes(self): + self.expt_success('default \\') + self.expect_error('help', expect=None) + self.expt_success(' CONFIG') + self.expt_success('default \\') + self.expt_success(' LINE1\\') + self.expt_success(' LINE2') + self.expt_success('help') + class TestName(TestIndentAndNameChecker): def setUp(self): @@ -149,16 +169,23 @@ class TestName(TestIndentAndNameChecker): self.checker.min_prefix_length = 0 # prefixes are ignored in this test case def test_name_length(self): + max_length = CONFIG_NAME_MAX_LENGTH + too_long = max_length + 1 self.expt_success('menu "test"') self.expt_success(' config ABC') - self.expt_success(' config ' + ('X' * 50)) - self.expect_error(' config ' + ('X' * 51), expect=None) - self.expt_success(' menuconfig ' + ('X' * 50)) - self.expect_error(' menuconfig ' + ('X' * 51), expect=None) - self.expt_success(' choice ' + ('X' * 50)) - self.expect_error(' choice ' + ('X' * 51), expect=None) + self.expt_success(' config ' + ('X' * max_length)) + self.expect_error(' config ' + ('X' * too_long), expect=None) + self.expt_success(' menuconfig ' + ('X' * max_length)) + self.expect_error(' menuconfig ' + ('X' * too_long), expect=None) + self.expt_success(' choice ' + ('X' * max_length)) + self.expect_error(' choice ' + ('X' * too_long), expect=None) self.expt_success('endmenu') + def test_config_backslash(self): + self.expect_error('config\\', expect=None) + self.expect_error('menuconfig\\', expect=None) + self.expect_error('choice\\', expect=None) + class TestPrefix(TestIndentAndNameChecker): def test_prefix_len(self): diff --git a/tools/unit-test-app/components/test_utils/Kconfig b/tools/unit-test-app/components/test_utils/Kconfig index 86c3da14b2..980bccda3f 100644 --- a/tools/unit-test-app/components/test_utils/Kconfig +++ b/tools/unit-test-app/components/test_utils/Kconfig @@ -1,15 +1,15 @@ menu "IDF unit test" -config UNITY_FREERTOS_PRIORITY - int "Priority of Unity test task" - default 5 + config UNITY_FREERTOS_PRIORITY + int "Priority of Unity test task" + default 5 -config UNITY_FREERTOS_CPU - int "CPU to run Unity test task on" - default 0 + config UNITY_FREERTOS_CPU + int "CPU to run Unity test task on" + default 0 -config UNITY_FREERTOS_STACK_SIZE - int "Stack size of Unity test task, in bytes" - default 8192 + config UNITY_FREERTOS_STACK_SIZE + int "Stack size of Unity test task, in bytes" + default 8192 endmenu