From e9ac41e1d7dae27baa9e3b58bcc55066c3309c57 Mon Sep 17 00:00:00 2001 From: David Cermak Date: Wed, 18 Sep 2024 16:09:00 +0200 Subject: [PATCH] feat(wifi_remote): Support for IDF v5.4 via a separate dir --- components/esp_wifi_remote/CMakeLists.txt | 8 +- components/esp_wifi_remote/Kconfig | 729 +----------------- .../{ => idf_v5.4}/Kconfig.slave_select.in | 2 + .../{ => idf_v5.4}/Kconfig.soc_wifi_caps.in | 40 + .../esp_wifi_remote/idf_v5.4/Kconfig.wifi.in | 726 +++++++++++++++++ .../{ => idf_v5.4}/esp_wifi_remote_weak.c | 0 .../{ => idf_v5.4}/esp_wifi_with_remote.c | 0 .../include/esp_wifi_remote_api.h | 0 .../include/esp_wifi_types_native.h | 4 +- .../wifi_apps/roaming_app/src/Kconfig.roaming | 0 .../scripts/generate_and_check.py | 74 +- .../{ => idf_v5.4}/esp_hosted_mock.c | 0 .../{ => idf_v5.4}/include/esp_hosted_mock.h | 0 .../main/{ => idf_v5.4}/all_wifi_calls.c | 0 .../{ => idf_v5.4}/all_wifi_remote_calls.c | 0 .../test/smoke_test/sdkconfig.ci.slave_esp32 | 1 - .../smoke_test/sdkconfig.ci.slave_esp32c2 | 1 - .../smoke_test/sdkconfig.ci.slave_esp32c3 | 1 - .../smoke_test/sdkconfig.ci.slave_esp32c5 | 1 - .../smoke_test/sdkconfig.ci.slave_esp32c6 | 1 - .../smoke_test/sdkconfig.ci.slave_esp32s2 | 1 - .../smoke_test/sdkconfig.ci.slave_esp32s3 | 1 - 22 files changed, 816 insertions(+), 774 deletions(-) rename components/esp_wifi_remote/{ => idf_v5.4}/Kconfig.slave_select.in (90%) rename components/esp_wifi_remote/{ => idf_v5.4}/Kconfig.soc_wifi_caps.in (87%) create mode 100644 components/esp_wifi_remote/idf_v5.4/Kconfig.wifi.in rename components/esp_wifi_remote/{ => idf_v5.4}/esp_wifi_remote_weak.c (100%) rename components/esp_wifi_remote/{ => idf_v5.4}/esp_wifi_with_remote.c (100%) rename components/esp_wifi_remote/{ => idf_v5.4}/include/esp_wifi_remote_api.h (100%) rename components/esp_wifi_remote/{ => idf_v5.4}/include/esp_wifi_types_native.h (98%) rename components/esp_wifi_remote/{ => idf_v5.4}/wifi_apps/roaming_app/src/Kconfig.roaming (100%) rename components/esp_wifi_remote/test/smoke_test/components/esp_hosted/{ => idf_v5.4}/esp_hosted_mock.c (100%) rename components/esp_wifi_remote/test/smoke_test/components/esp_hosted/{ => idf_v5.4}/include/esp_hosted_mock.h (100%) rename components/esp_wifi_remote/test/smoke_test/main/{ => idf_v5.4}/all_wifi_calls.c (100%) rename components/esp_wifi_remote/test/smoke_test/main/{ => idf_v5.4}/all_wifi_remote_calls.c (100%) delete mode 100644 components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32 delete mode 100644 components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c2 delete mode 100644 components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c3 delete mode 100644 components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c5 delete mode 100644 components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c6 delete mode 100644 components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32s2 delete mode 100644 components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32s3 diff --git a/components/esp_wifi_remote/CMakeLists.txt b/components/esp_wifi_remote/CMakeLists.txt index caea69cf1..759ffb5d3 100644 --- a/components/esp_wifi_remote/CMakeLists.txt +++ b/components/esp_wifi_remote/CMakeLists.txt @@ -1,14 +1,16 @@ +set(IDF_VER_DIR "idf_v$ENV{ESP_IDF_VERSION}") + if(NOT CONFIG_ESP_WIFI_ENABLED) - set(src_wifi_is_remote esp_wifi_remote.c esp_wifi_with_remote.c esp_wifi_remote_net.c) + set(src_wifi_is_remote esp_wifi_remote.c ${IDF_VER_DIR}/esp_wifi_with_remote.c esp_wifi_remote_net.c) endif() if(CONFIG_ESP_WIFI_REMOTE_LIBRARY_EPPP) set(src_wifi_remote_eppp eppp/wifi_remote_rpc_client.cpp eppp/wifi_remote_rpc_server.cpp eppp/eppp_init.c) else() - set(src_wifi_remote_weak esp_wifi_remote_weak.c) + set(src_wifi_remote_weak ${IDF_VER_DIR}/esp_wifi_remote_weak.c) endif() -idf_component_register(INCLUDE_DIRS include +idf_component_register(INCLUDE_DIRS include ${IDF_VER_DIR}/include SRCS ${src_wifi_remote_weak} ${src_wifi_remote_eppp} ${src_wifi_is_remote} diff --git a/components/esp_wifi_remote/Kconfig b/components/esp_wifi_remote/Kconfig index 5853fd121..45b4bc5d4 100644 --- a/components/esp_wifi_remote/Kconfig +++ b/components/esp_wifi_remote/Kconfig @@ -1,733 +1,14 @@ -# This file is auto-generated menu "Wi-Fi Remote" config ESP_WIFI_REMOTE_ENABLED bool default y - orsource "./Kconfig.slave_select.in" - orsource "./Kconfig.soc_wifi_caps.in" + orsource "./idf_v$ESP_IDF_VERSION/Kconfig.slave_select.in" + orsource "./idf_v$ESP_IDF_VERSION/Kconfig.soc_wifi_caps.in" orsource "./Kconfig.rpc.in" - config ESP_WIFI_STATIC_RX_BUFFER_NUM - int "Max number of WiFi static RX buffers" - range 2 25 if !SLAVE_SOC_WIFI_HE_SUPPORT - range 2 128 if SLAVE_SOC_WIFI_HE_SUPPORT - default 10 if !SPIRAM_TRY_ALLOCATE_WIFI_LWIP - default 16 if SPIRAM_TRY_ALLOCATE_WIFI_LWIP - 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. If ESP_WIFI_AMPDU_RX_ENABLED - is enabled, this value is recommended to set equal or bigger than ESP_WIFI_RX_BA_WIN in order to - achieve better throughput and compatibility with both stations and APs. - - config ESP_WIFI_DYNAMIC_RX_BUFFER_NUM - int "Max number of WiFi dynamic RX buffers" - range 0 128 if !LWIP_WND_SCALE - range 0 1024 if LWIP_WND_SCALE - 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 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. - - choice ESP_WIFI_TX_BUFFER - prompt "Type of WiFi TX buffers" - default ESP_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 "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. - - config ESP_WIFI_STATIC_TX_BUFFER - bool "Static" - config ESP_WIFI_DYNAMIC_TX_BUFFER - bool "Dynamic" - depends on !SPIRAM_USE_MALLOC - endchoice - - config ESP_WIFI_TX_BUFFER_TYPE - int - default 0 if ESP_WIFI_STATIC_TX_BUFFER - default 1 if ESP_WIFI_DYNAMIC_TX_BUFFER - - config ESP_WIFI_STATIC_TX_BUFFER_NUM - int "Max number of WiFi static TX buffers" - depends on ESP_WIFI_STATIC_TX_BUFFER - range 1 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. - - config ESP_WIFI_CACHE_TX_BUFFER_NUM - int "Max number of WiFi cache TX buffers" - depends on SPIRAM - range 16 128 - default 32 - help - Set the number of WiFi cache TX buffer number. - - For each TX packet from uplayer, such as LWIP etc, WiFi driver needs to allocate a static TX - buffer and makes a copy of uplayer packet. If WiFi driver fails to allocate the static TX buffer, - it caches the uplayer packets to a dedicated buffer queue, this option is used to configure the - size of the cached TX queue. - - config ESP_WIFI_DYNAMIC_TX_BUFFER_NUM - int "Max number of WiFi dynamic TX buffers" - depends on ESP_WIFI_DYNAMIC_TX_BUFFER - range 1 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. - - choice ESP_WIFI_MGMT_RX_BUFFER - prompt "Type of WiFi RX MGMT buffers" - default ESP_WIFI_STATIC_RX_MGMT_BUFFER - help - Select type of WiFi RX MGMT buffers: - - If "Static" is selected, WiFi RX MGMT buffers are allocated when WiFi is initialized and released - when WiFi is de-initialized. The size of each static RX MGMT buffer is fixed to about 500 Bytes. - - If "Dynamic" is selected, each WiFi RX MGMT buffer is allocated as needed when a MGMT data frame is - received. The MGMT buffer is freed after the MGMT data frame has been processed by the WiFi driver. - - - config ESP_WIFI_STATIC_RX_MGMT_BUFFER - bool "Static" - config ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER - bool "Dynamic" - endchoice - - config ESP_WIFI_DYNAMIC_RX_MGMT_BUF - int - default 0 if ESP_WIFI_STATIC_RX_MGMT_BUFFER - default 1 if ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER - - config ESP_WIFI_RX_MGMT_BUF_NUM_DEF - int "Max number of WiFi RX MGMT buffers" - range 1 10 - default 5 - help - Set the number of WiFi RX_MGMT buffers. - - For Management buffers, the number of dynamic and static management buffers is the same. - In order to prevent memory fragmentation, the management buffer type should be set to static first. - - config ESP_WIFI_CSI_ENABLED - bool "WiFi CSI(Channel State Information)" - depends on SLAVE_SOC_WIFI_CSI_SUPPORT - default n - help - Select this option to enable CSI(Channel State Information) feature. CSI takes about - CONFIG_ESP_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 ESP_WIFI_AMPDU_TX_ENABLED - bool "WiFi AMPDU TX" - default y - help - Select this option to enable AMPDU TX feature - - - config ESP_WIFI_TX_BA_WIN - int "WiFi AMPDU TX BA window size" - depends on ESP_WIFI_AMPDU_TX_ENABLED - range 2 32 if !SLAVE_SOC_WIFI_HE_SUPPORT - range 2 64 if SLAVE_SOC_WIFI_HE_SUPPORT - 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 ESP_WIFI_AMPDU_RX_ENABLED - bool "WiFi AMPDU RX" - default y - help - Select this option to enable AMPDU RX feature - - config ESP_WIFI_RX_BA_WIN - int "WiFi AMPDU RX BA window size" - depends on ESP_WIFI_AMPDU_RX_ENABLED - range 2 32 if !SLAVE_SOC_WIFI_HE_SUPPORT - range 2 64 if SLAVE_SOC_WIFI_HE_SUPPORT - default 6 if !SPIRAM_TRY_ALLOCATE_WIFI_LWIP - default 16 if SPIRAM_TRY_ALLOCATE_WIFI_LWIP - help - Set the size of WiFi Block Ack RX window. Generally a bigger value means higher throughput and better - compatibility 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. If PSRAM is used and WiFi memory is preferred to allocate in PSRAM first, - the default and minimum value should be 16 to achieve better throughput and compatibility with both - stations and APs. - - config ESP_WIFI_AMSDU_TX_ENABLED - bool "WiFi AMSDU TX" - depends on SPIRAM - default n - help - Select this option to enable AMSDU TX feature - - config ESP_WIFI_NVS_ENABLED - bool "WiFi NVS flash" - default y - help - Select this option to enable WiFi NVS flash - - choice ESP_WIFI_TASK_CORE_ID - depends on !FREERTOS_UNICORE - prompt "WiFi Task Core ID" - default ESP_WIFI_TASK_PINNED_TO_CORE_0 - help - Pinned WiFi task to core 0 or core 1. - - config ESP_WIFI_TASK_PINNED_TO_CORE_0 - bool "Core 0" - config ESP_WIFI_TASK_PINNED_TO_CORE_1 - bool "Core 1" - endchoice - - config ESP_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 occurrence 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 on top 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. - - config ESP_WIFI_MGMT_SBUF_NUM - int "WiFi mgmt short buffer number" - range 6 32 - default 32 - help - Set the maximum number of Wi-Fi management short buffers. These buffers are dynamically allocated, - with their size determined by the length of the management packet to be sent. When a management - packet is less than 64 bytes, the Wi-Fi driver classifies it as a short management packet and - assigns it to one of these buffers. - - config ESP_WIFI_IRAM_OPT - bool "WiFi IRAM speed optimization" - default n if (BT_ENABLED && SPIRAM && SLAVE_IDF_TARGET_ESP32) - default y - help - Select this option to place frequently called Wi-Fi library functions in IRAM. - When this option is disabled, more than 10Kbytes of IRAM memory will be saved - but Wi-Fi throughput will be reduced. - - config ESP_WIFI_EXTRA_IRAM_OPT - bool "WiFi EXTRA IRAM speed optimization" - default y if SLAVE_SOC_WIFI_HE_SUPPORT - default n - help - Select this option to place additional frequently called Wi-Fi library functions - in IRAM. When this option is disabled, more than 5Kbytes of IRAM memory will be saved - but Wi-Fi throughput will be reduced. - - config ESP_WIFI_RX_IRAM_OPT - bool "WiFi RX IRAM speed optimization" - default n if (BT_ENABLED && SPIRAM && SLAVE_IDF_TARGET_ESP32) - default y - help - Select this option to place frequently called Wi-Fi library RX functions in IRAM. - When this option is disabled, more than 17Kbytes of IRAM memory will be saved - but Wi-Fi performance will be reduced. - - config ESP_WIFI_ENABLE_WPA3_SAE - bool "Enable WPA3-Personal" - default y - select ESP_WIFI_MBEDTLS_CRYPTO - help - Select this option to allow the device to establish a WPA3-Personal connection with eligible AP's. - PMF (Protected Management Frames) is a prerequisite feature for a WPA3 connection, it needs to be - explicitly configured before attempting connection. Please refer to the Wi-Fi Driver API Guide - for details. - - config ESP_WIFI_ENABLE_SAE_PK - bool "Enable SAE-PK" - default y - depends on ESP_WIFI_ENABLE_WPA3_SAE - help - Select this option to enable SAE-PK - - config ESP_WIFI_SOFTAP_SAE_SUPPORT - bool "Enable WPA3 Personal(SAE) SoftAP" - default y - depends on ESP_WIFI_ENABLE_WPA3_SAE - depends on ESP_WIFI_SOFTAP_SUPPORT - help - Select this option to enable SAE support in softAP mode. - - config ESP_WIFI_ENABLE_WPA3_OWE_STA - bool "Enable OWE STA" - default y - select ESP_WIFI_MBEDTLS_CRYPTO - help - Select this option to allow the device to establish OWE connection with eligible AP's. - PMF (Protected Management Frames) is a prerequisite feature for a WPA3 connection, it needs to be - explicitly configured before attempting connection. Please refer to the Wi-Fi Driver API Guide - for details. - - config ESP_WIFI_SLP_IRAM_OPT - bool "WiFi SLP IRAM speed optimization" - select PM_SLP_DEFAULT_PARAMS_OPT - select PERIPH_CTRL_FUNC_IN_IRAM - default y if SLAVE_SOC_WIFI_HE_SUPPORT - help - Select this option to place called Wi-Fi library TBTT process and receive beacon functions in IRAM. - Some functions can be put in IRAM either by ESP_WIFI_IRAM_OPT and ESP_WIFI_RX_IRAM_OPT, or this one. - If already enabled ESP_WIFI_IRAM_OPT, the other 7.3KB IRAM memory would be taken by this option. - If already enabled ESP_WIFI_RX_IRAM_OPT, the other 1.3KB IRAM memory would be taken by this option. - If neither of them are enabled, the other 7.4KB IRAM memory would be taken by this option. - Wi-Fi power-save mode average current would be reduced if this option is enabled. - - config ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME - int "Minimum active time" - range 8 60 - default 50 - help - Only for station in WIFI_PS_MIN_MODEM or WIFI_PS_MAX_MODEM. When the station enters the active state, - it will work for at least ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME. If a data packet is received or sent - during this period, the time will be refreshed. If the time is up, but the station still has packets - to receive or send, the time will also be refreshed. unit: milliseconds. - - config ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME - int "Maximum keep alive time" - range 10 60 - default 10 - help - Only for station in WIFI_PS_MIN_MODEM or WIFI_PS_MAX_MODEM. If no packet has been - sent within ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME, a null data packet will be sent - to maintain the connection with the AP. unit: seconds. - - config ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME - int "Minimum wait broadcast data time" - range 10 30 - default 15 - help - Only for station in WIFI_PS_MIN_MODEM or WIFI_PS_MAX_MODEM. When the station knows through the beacon - that AP will send broadcast packet, it will wait for ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME - before entering the sleep process. If a broadcast packet is received with more data bits, the time - will refreshed. unit: milliseconds. - - config ESP_WIFI_FTM_ENABLE - bool "WiFi FTM" - default n - depends on SLAVE_SOC_WIFI_FTM_SUPPORT - help - Enable feature Fine Timing Measurement for calculating WiFi Round-Trip-Time (RTT). - - config ESP_WIFI_FTM_INITIATOR_SUPPORT - bool "FTM Initiator support" - default y - depends on ESP_WIFI_FTM_ENABLE - - config ESP_WIFI_FTM_RESPONDER_SUPPORT - bool "FTM Responder support" - default y - depends on ESP_WIFI_FTM_ENABLE - - config ESP_WIFI_STA_DISCONNECTED_PM_ENABLE - bool "Power Management for station at disconnected" - default y - help - Select this option to enable power_management for station when disconnected. - Chip will do modem-sleep when rf module is not in use any more. - - config ESP_WIFI_GCMP_SUPPORT - bool "WiFi GCMP Support(GCMP128 and GCMP256)" - default n - depends on SLAVE_SOC_WIFI_GCMP_SUPPORT - help - Select this option to enable GCMP support. GCMP support is compulsory for WiFi Suite-B support. - - config ESP_WIFI_GMAC_SUPPORT - bool "WiFi GMAC Support(GMAC128 and GMAC256)" - default y - help - Select this option to enable GMAC support. GMAC support is compulsory for WiFi 192 bit certification. - - config ESP_WIFI_SOFTAP_SUPPORT - bool "WiFi SoftAP Support" - default y - help - WiFi module can be compiled without SoftAP to save code size. - - config ESP_WIFI_ENHANCED_LIGHT_SLEEP - bool "WiFi modem automatically receives the beacon" - default n - depends on ESP_PHY_MAC_BB_PD && SOC_PM_SUPPORT_BEACON_WAKEUP - help - The wifi modem automatically receives the beacon frame during light sleep. - - config ESP_WIFI_SLP_BEACON_LOST_OPT - bool "Wifi sleep optimize when beacon lost" - help - Enable wifi sleep optimization when beacon loss occurs and immediately enter - sleep mode when the WiFi module detects beacon loss. - - config ESP_WIFI_SLP_BEACON_LOST_TIMEOUT - int "Beacon loss timeout" - range 5 100 - default 10 - depends on ESP_WIFI_SLP_BEACON_LOST_OPT - help - Timeout time for close rf phy when beacon loss occurs, Unit: 1024 microsecond. - - config ESP_WIFI_SLP_BEACON_LOST_THRESHOLD - int "Maximum number of consecutive lost beacons allowed" - range 0 8 - default 3 - depends on ESP_WIFI_SLP_BEACON_LOST_OPT - help - Maximum number of consecutive lost beacons allowed, WiFi keeps Rx state when - the number of consecutive beacons lost is greater than the given threshold. - - config ESP_WIFI_SLP_PHY_ON_DELTA_EARLY_TIME - int "Delta early time for RF PHY on" - range 0 100 - default 2 - depends on ESP_WIFI_SLP_BEACON_LOST_OPT && SLAVE_SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW - help - Delta early time for rf phy on, When the beacon is lost, the next rf phy on will - be earlier the time specified by the configuration item, Unit: 32 microsecond. - - config ESP_WIFI_SLP_PHY_OFF_DELTA_TIMEOUT_TIME - int "Delta timeout time for RF PHY off" - range 0 8 - default 2 - depends on ESP_WIFI_SLP_BEACON_LOST_OPT && SLAVE_SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW - help - Delta timeout time for rf phy off, When the beacon is lost, the next rf phy off will - be delayed for the time specified by the configuration item. Unit: 1024 microsecond. - - config ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM - int "Maximum espnow encrypt peers number" - range 0 4 if SLAVE_IDF_TARGET_ESP32C2 - range 0 17 if (!SLAVE_IDF_TARGET_ESP32C2) - default 2 if SLAVE_IDF_TARGET_ESP32C2 - default 7 if (!SLAVE_IDF_TARGET_ESP32C2) - help - Maximum number of encrypted peers supported by espnow. - The number of hardware keys for encryption is fixed. And the espnow and SoftAP share the same - hardware keys. So this configuration will affect the maximum connection number of SoftAP. - Maximum espnow encrypted peers number + maximum number of connections of SoftAP = Max hardware - keys number. When using ESP mesh, this value should be set to a maximum of 6. - - config ESP_WIFI_NAN_ENABLE - bool "WiFi Aware" - default n - depends on SLAVE_SOC_WIFI_NAN_SUPPORT - help - Enable WiFi Aware (NAN) feature. - - config ESP_WIFI_MBEDTLS_CRYPTO - bool "Use MbedTLS crypto APIs" - default y - select MBEDTLS_AES_C - select MBEDTLS_ECP_C - select MBEDTLS_ECDH_C - select MBEDTLS_ECDSA_C - select MBEDTLS_CMAC_C - select MBEDTLS_ECP_DP_SECP256R1_ENABLED - help - Select this option to enable the use of MbedTLS crypto APIs. - The internal crypto support within the supplicant is limited - and may not suffice for all new security features, including WPA3. - - It is recommended to always keep this option enabled. Additionally, - note that MbedTLS can leverage hardware acceleration if available, - resulting in significantly faster cryptographic operations. - - if ESP_WIFI_MBEDTLS_CRYPTO - config ESP_WIFI_MBEDTLS_TLS_CLIENT - bool "Use MbedTLS TLS client for WiFi Enterprise connection" - depends on ESP_WIFI_ENTERPRISE_SUPPORT - default y - select MBEDTLS_TLS_ENABLED - help - Select this option to use MbedTLS TLS client for WPA2 enterprise connection. - Please note that from MbedTLS-3.0 onwards, MbedTLS does not support SSL-3.0 - TLS-v1.0, TLS-v1.1 versions. In case your server is using one of these version, - it is advisable to update your server. - Please disable this option for compatibility with older TLS versions. - - config ESP_WIFI_EAP_TLS1_3 - bool "Enable EAP-TLS v1.3 Support for WiFi Enterprise connection" - default n - select MBEDTLS_SSL_PROTO_TLS1_3 - depends on ESP_WIFI_MBEDTLS_TLS_CLIENT && IDF_EXPERIMENTAL_FEATURES - help - Select this option to support EAP with TLS v1.3. - This configuration still supports compatibility with EAP-TLS v1.2. - Please note that enabling this configuration will cause every application which - uses TLS go for TLS1.3 if server supports that. TLS1.3 is still in development in mbedtls - and there may be interoperability issues with this. Please modify your application to set - max version as TLS1.2 if you want to enable TLS1.3 only for WiFi connection. - - endif - - config ESP_WIFI_WAPI_PSK - bool "Enable WAPI PSK support" - depends on SLAVE_SOC_WIFI_WAPI_SUPPORT - default n - help - Select this option to enable WAPI-PSK - which is a Chinese National Standard Encryption for Wireless LANs (GB 15629.11-2003). - - config ESP_WIFI_SUITE_B_192 - bool "Enable NSA suite B support with 192 bit key" - default n - depends on SLAVE_SOC_WIFI_GCMP_SUPPORT - select ESP_WIFI_GCMP_SUPPORT - select ESP_WIFI_GMAC_SUPPORT - help - Select this option to enable 192 bit NSA suite-B. - This is necessary to support WPA3 192 bit security. - - config ESP_WIFI_11KV_SUPPORT - bool "Enable 802.11k, 802.11v APIs Support" - default n - help - Select this option to enable 802.11k 802.11v APIs(RRM and BTM support). - Only APIs which are helpful for network assisted roaming - are supported for now. - Enable this option with BTM and RRM enabled in sta config - to make device ready for network assisted roaming. - BTM: BSS transition management enables an AP to request a station to transition - to a specific AP, or to indicate to a station a set of preferred APs. - RRM: Radio measurements enable STAs to understand the radio environment, - it enables STAs to observe and gather data on radio link performance - and on the radio environment. Current implementation adds beacon report, - link measurement, neighbor report. - - config ESP_WIFI_SCAN_CACHE - bool "Keep scan results in cache" - depends on ESP_WIFI_11KV_SUPPORT - default n - help - Keep scan results in cache, if not enabled, those - will be flushed immediately. - - config ESP_WIFI_MBO_SUPPORT - bool "Enable Multi Band Operation Certification Support" - default n - select ESP_WIFI_11KV_SUPPORT - select ESP_WIFI_SCAN_CACHE - help - Select this option to enable WiFi Multiband operation certification support. - - config ESP_WIFI_ENABLE_ROAMING_APP - bool "Advanced support for Wi-Fi Roaming (Experimental)" - depends on IDF_EXPERIMENTAL_FEATURES - default n - select ESP_WIFI_SCAN_CACHE - help - Enable Espressif's roaming app to allow for efficient Wi-Fi roaming. - This includes configurable periodic environment scans, maintaining a cache of the - best APs, handling low rssi events etc. - - Risk Warning - Please note that this feature is still experimental and enabling this potentially can - lead to unpredictable scanning, connection and roaming attempts. - We are still working on tuning and optimising this feature to ensure reliable and stable use. - - menu "Configure roaming App" - depends on ESP_WIFI_ENABLE_ROAMING_APP - rsource "wifi_apps/roaming_app/src/Kconfig.roaming" - endmenu - - config ESP_WIFI_DPP_SUPPORT - bool "Enable DPP support" - default n - select ESP_WIFI_MBEDTLS_CRYPTO - help - Select this option to enable WiFi Easy Connect Support. - - config ESP_WIFI_11R_SUPPORT - bool "Enable 802.11R (Fast Transition) Support" - default n - help - Select this option to enable WiFi Fast Transition Support. - - config ESP_WIFI_WPS_SOFTAP_REGISTRAR - bool "Add WPS Registrar support in SoftAP mode" - depends on ESP_WIFI_SOFTAP_SUPPORT - default n - help - Select this option to enable WPS registrar support in softAP mode. - - config ESP_WIFI_ENABLE_WIFI_TX_STATS - bool "Enable Wi-Fi transmission statistics" - depends on SLAVE_SOC_WIFI_HE_SUPPORT - default n - help - Enable Wi-Fi transmission statistics. Total support 4 access category. Each access category - will use 346 bytes memory. - - config ESP_WIFI_ENABLE_WIFI_RX_STATS - bool "Enable Wi-Fi reception statistics" - depends on SLAVE_SOC_WIFI_HE_SUPPORT - default n - help - Enable Wi-Fi reception statistics. Total support 2 access category. Each access category - will use 190 bytes memory. - - config ESP_WIFI_ENABLE_WIFI_RX_MU_STATS - bool "Enable Wi-Fi DL MU-MIMO and DL OFDMA reception statistics" - depends on ESP_WIFI_ENABLE_WIFI_RX_STATS - default n - help - Enable Wi-Fi DL MU-MIMO and DL OFDMA reception statistics. Will use 10932 bytes memory. - - config ESP_WIFI_TX_HETB_QUEUE_NUM - int "WiFi TX HE TB QUEUE number for STA HE TB PPDU transmission" - depends on SLAVE_SOC_WIFI_HE_SUPPORT - range 1 4 - default 3 - help - Set the maximum number of queue that can be aggregated by the STA in the A-MPDU carried in the - HE TB PPDU. - - config ESP_WIFI_ENABLE_DUMP_HESIGB - bool "Enable Wi-Fi dump HE-SIGB which is contained in DL HE MU PPDUs" - depends on SLAVE_SOC_WIFI_HE_SUPPORT_5G - default "n" - help - Enable Wi-Fi dump HE-SIGB which is contained in DL HE MU PPDUs. - - config ESP_WIFI_ENABLE_DUMP_MU_CFO - bool "Enable Wi-Fi dump MU CFO" - depends on SLAVE_SOC_WIFI_HE_SUPPORT_5G - default "n" - help - Enable Wi-Fi dump MU CFO. - - config ESP_WIFI_ENABLE_DUMP_CTRL_NDPA - bool "Enable Wi-Fi dump NDPA frames" - depends on SLAVE_SOC_WIFI_HE_SUPPORT_5G - default "n" - help - Enable Wi-Fi dump NDPA frames. - - config ESP_WIFI_ENABLE_DUMP_CTRL_BFRP - bool "Enable Wi-Fi dump BFRP frames" - depends on SLAVE_SOC_WIFI_HE_SUPPORT_5G - default "n" - help - Enable Wi-Fi dump BFRP frames. - - menu "WPS Configuration Options" - config ESP_WIFI_WPS_STRICT - bool "Strictly validate all WPS attributes" - default n - help - Select this option to enable validate each WPS attribute - rigorously. Disabling this add the workarounds with various APs. - Enabling this may cause inter operability issues with some APs. - - config ESP_WIFI_WPS_PASSPHRASE - bool "Get WPA2 passphrase in WPS config" - default n - help - Select this option to get passphrase during WPS configuration. - This option fakes the virtual display capabilities to get the - configuration in passphrase mode. - Not recommended to be used since WPS credentials should not - be shared to other devices, making it in readable format increases - that risk, also passphrase requires pbkdf2 to convert in psk. - - endmenu # "WPS Configuration Options" - - - config ESP_WIFI_DEBUG_PRINT - bool "Print debug messages from WPA Supplicant" - default n - help - Select this option to print logging information from WPA supplicant, - this includes handshake information and key hex dumps depending - on the project logging level. - - Enabling this could increase the build size ~60kb - depending on the project logging level. - - config ESP_WIFI_TESTING_OPTIONS - bool "Add DPP testing code" - default n - help - Select this to enable unity test for DPP. - - config ESP_WIFI_ENTERPRISE_SUPPORT - bool "Enable enterprise option" - default y - help - Select this to enable/disable enterprise connection support. - - disabling this will reduce binary size. - disabling this will disable the use of any esp_wifi_sta_wpa2_ent_* (as APIs will be meaningless) - - Note that when using bigger certificates on low-power chips without crypto - hardware acceleration, it is recommended to adjust the task watchdog timer (TWDT) - if it is enabled. For precise information on timing requirements, you can check - performance numbers at https://github.com/espressif/mbedtls/wiki/Performance-Numbers. - - config ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER - bool "Free dynamic buffers during WiFi enterprise connection" - depends on ESP_WIFI_ENTERPRISE_SUPPORT - default y if SLAVE_IDF_TARGET_ESP32C2 - default n if !SLAVE_IDF_TARGET_ESP32C2 - help - Select this configuration to free dynamic buffers during WiFi enterprise connection. - This will enable chip to reduce heap consumption during WiFi enterprise connection. + menu "Wi-Fi configuration" + orsource "./idf_v$ESP_IDF_VERSION/Kconfig.wifi.in" + endmenu endmenu # Wi-Fi Remote diff --git a/components/esp_wifi_remote/Kconfig.slave_select.in b/components/esp_wifi_remote/idf_v5.4/Kconfig.slave_select.in similarity index 90% rename from components/esp_wifi_remote/Kconfig.slave_select.in rename to components/esp_wifi_remote/idf_v5.4/Kconfig.slave_select.in index 90fed9c6b..5e315361b 100644 --- a/components/esp_wifi_remote/Kconfig.slave_select.in +++ b/components/esp_wifi_remote/idf_v5.4/Kconfig.slave_select.in @@ -16,4 +16,6 @@ bool "esp32c6" config SLAVE_IDF_TARGET_ESP32C5 bool "esp32c5" + config SLAVE_IDF_TARGET_ESP32C61 + bool "esp32c61" endchoice diff --git a/components/esp_wifi_remote/Kconfig.soc_wifi_caps.in b/components/esp_wifi_remote/idf_v5.4/Kconfig.soc_wifi_caps.in similarity index 87% rename from components/esp_wifi_remote/Kconfig.soc_wifi_caps.in rename to components/esp_wifi_remote/idf_v5.4/Kconfig.soc_wifi_caps.in index 8569da4e7..d1e5f4c17 100644 --- a/components/esp_wifi_remote/Kconfig.soc_wifi_caps.in +++ b/components/esp_wifi_remote/idf_v5.4/Kconfig.soc_wifi_caps.in @@ -267,3 +267,43 @@ if SLAVE_IDF_TARGET_ESP32C5 default y endif # ESP32C5 + +if SLAVE_IDF_TARGET_ESP32C61 + + config SLAVE_SOC_WIFI_SUPPORTED + bool + default y + + config SLAVE_SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH + int + default 12 + + config SLAVE_SOC_WIFI_HW_TSF + bool + default y + + config SLAVE_SOC_WIFI_FTM_SUPPORT + bool + default n + + config SLAVE_SOC_WIFI_GCMP_SUPPORT + bool + default y + + config SLAVE_SOC_WIFI_WAPI_SUPPORT + bool + default y + + config SLAVE_SOC_WIFI_CSI_SUPPORT + bool + default y + + config SLAVE_SOC_WIFI_MESH_SUPPORT + bool + default y + + config SLAVE_SOC_WIFI_HE_SUPPORT + bool + default y + +endif # ESP32C61 diff --git a/components/esp_wifi_remote/idf_v5.4/Kconfig.wifi.in b/components/esp_wifi_remote/idf_v5.4/Kconfig.wifi.in new file mode 100644 index 000000000..736a13eef --- /dev/null +++ b/components/esp_wifi_remote/idf_v5.4/Kconfig.wifi.in @@ -0,0 +1,726 @@ +# Wi-Fi configuration +# This file is auto-generated + + config ESP_WIFI_STATIC_RX_BUFFER_NUM + int "Max number of WiFi static RX buffers" + range 2 25 if !SLAVE_SOC_WIFI_HE_SUPPORT + range 2 128 if SLAVE_SOC_WIFI_HE_SUPPORT + default 10 if !SPIRAM_TRY_ALLOCATE_WIFI_LWIP + default 16 if SPIRAM_TRY_ALLOCATE_WIFI_LWIP + 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. If ESP_WIFI_AMPDU_RX_ENABLED + is enabled, this value is recommended to set equal or bigger than ESP_WIFI_RX_BA_WIN in order to + achieve better throughput and compatibility with both stations and APs. + + config ESP_WIFI_DYNAMIC_RX_BUFFER_NUM + int "Max number of WiFi dynamic RX buffers" + range 0 128 if !LWIP_WND_SCALE + range 0 1024 if LWIP_WND_SCALE + 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 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. + + choice ESP_WIFI_TX_BUFFER + prompt "Type of WiFi TX buffers" + default ESP_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 "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. + + config ESP_WIFI_STATIC_TX_BUFFER + bool "Static" + config ESP_WIFI_DYNAMIC_TX_BUFFER + bool "Dynamic" + depends on !SPIRAM_USE_MALLOC + endchoice + + config ESP_WIFI_TX_BUFFER_TYPE + int + default 0 if ESP_WIFI_STATIC_TX_BUFFER + default 1 if ESP_WIFI_DYNAMIC_TX_BUFFER + + config ESP_WIFI_STATIC_TX_BUFFER_NUM + int "Max number of WiFi static TX buffers" + depends on ESP_WIFI_STATIC_TX_BUFFER + range 1 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. + + config ESP_WIFI_CACHE_TX_BUFFER_NUM + int "Max number of WiFi cache TX buffers" + depends on SPIRAM + range 16 128 + default 32 + help + Set the number of WiFi cache TX buffer number. + + For each TX packet from uplayer, such as LWIP etc, WiFi driver needs to allocate a static TX + buffer and makes a copy of uplayer packet. If WiFi driver fails to allocate the static TX buffer, + it caches the uplayer packets to a dedicated buffer queue, this option is used to configure the + size of the cached TX queue. + + config ESP_WIFI_DYNAMIC_TX_BUFFER_NUM + int "Max number of WiFi dynamic TX buffers" + depends on ESP_WIFI_DYNAMIC_TX_BUFFER + range 1 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. + + choice ESP_WIFI_MGMT_RX_BUFFER + prompt "Type of WiFi RX MGMT buffers" + default ESP_WIFI_STATIC_RX_MGMT_BUFFER + help + Select type of WiFi RX MGMT buffers: + + If "Static" is selected, WiFi RX MGMT buffers are allocated when WiFi is initialized and released + when WiFi is de-initialized. The size of each static RX MGMT buffer is fixed to about 500 Bytes. + + If "Dynamic" is selected, each WiFi RX MGMT buffer is allocated as needed when a MGMT data frame is + received. The MGMT buffer is freed after the MGMT data frame has been processed by the WiFi driver. + + + config ESP_WIFI_STATIC_RX_MGMT_BUFFER + bool "Static" + config ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER + bool "Dynamic" + endchoice + + config ESP_WIFI_DYNAMIC_RX_MGMT_BUF + int + default 0 if ESP_WIFI_STATIC_RX_MGMT_BUFFER + default 1 if ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER + + config ESP_WIFI_RX_MGMT_BUF_NUM_DEF + int "Max number of WiFi RX MGMT buffers" + range 1 10 + default 5 + help + Set the number of WiFi RX_MGMT buffers. + + For Management buffers, the number of dynamic and static management buffers is the same. + In order to prevent memory fragmentation, the management buffer type should be set to static first. + + config ESP_WIFI_CSI_ENABLED + bool "WiFi CSI(Channel State Information)" + depends on SLAVE_SOC_WIFI_CSI_SUPPORT + default n + help + Select this option to enable CSI(Channel State Information) feature. CSI takes about + CONFIG_ESP_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 ESP_WIFI_AMPDU_TX_ENABLED + bool "WiFi AMPDU TX" + default y + help + Select this option to enable AMPDU TX feature + + + config ESP_WIFI_TX_BA_WIN + int "WiFi AMPDU TX BA window size" + depends on ESP_WIFI_AMPDU_TX_ENABLED + range 2 32 if !SLAVE_SOC_WIFI_HE_SUPPORT + range 2 64 if SLAVE_SOC_WIFI_HE_SUPPORT + 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 ESP_WIFI_AMPDU_RX_ENABLED + bool "WiFi AMPDU RX" + default y + help + Select this option to enable AMPDU RX feature + + config ESP_WIFI_RX_BA_WIN + int "WiFi AMPDU RX BA window size" + depends on ESP_WIFI_AMPDU_RX_ENABLED + range 2 32 if !SLAVE_SOC_WIFI_HE_SUPPORT + range 2 64 if SLAVE_SOC_WIFI_HE_SUPPORT + default 6 if !SPIRAM_TRY_ALLOCATE_WIFI_LWIP + default 16 if SPIRAM_TRY_ALLOCATE_WIFI_LWIP + help + Set the size of WiFi Block Ack RX window. Generally a bigger value means higher throughput and better + compatibility 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. If PSRAM is used and WiFi memory is preferred to allocate in PSRAM first, + the default and minimum value should be 16 to achieve better throughput and compatibility with both + stations and APs. + + config ESP_WIFI_AMSDU_TX_ENABLED + bool "WiFi AMSDU TX" + depends on SPIRAM + default n + help + Select this option to enable AMSDU TX feature + + config ESP_WIFI_NVS_ENABLED + bool "WiFi NVS flash" + default y + help + Select this option to enable WiFi NVS flash + + choice ESP_WIFI_TASK_CORE_ID + depends on !FREERTOS_UNICORE + prompt "WiFi Task Core ID" + default ESP_WIFI_TASK_PINNED_TO_CORE_0 + help + Pinned WiFi task to core 0 or core 1. + + config ESP_WIFI_TASK_PINNED_TO_CORE_0 + bool "Core 0" + config ESP_WIFI_TASK_PINNED_TO_CORE_1 + bool "Core 1" + endchoice + + config ESP_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 occurrence 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 on top 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. + + config ESP_WIFI_MGMT_SBUF_NUM + int "WiFi mgmt short buffer number" + range 6 32 + default 32 + help + Set the maximum number of Wi-Fi management short buffers. These buffers are dynamically allocated, + with their size determined by the length of the management packet to be sent. When a management + packet is less than 64 bytes, the Wi-Fi driver classifies it as a short management packet and + assigns it to one of these buffers. + + config ESP_WIFI_IRAM_OPT + bool "WiFi IRAM speed optimization" + default n if (BT_ENABLED && SPIRAM && SLAVE_IDF_TARGET_ESP32) + default y + help + Select this option to place frequently called Wi-Fi library functions in IRAM. + When this option is disabled, more than 10Kbytes of IRAM memory will be saved + but Wi-Fi throughput will be reduced. + + config ESP_WIFI_EXTRA_IRAM_OPT + bool "WiFi EXTRA IRAM speed optimization" + default y if SLAVE_SOC_WIFI_HE_SUPPORT + default n + help + Select this option to place additional frequently called Wi-Fi library functions + in IRAM. When this option is disabled, more than 5Kbytes of IRAM memory will be saved + but Wi-Fi throughput will be reduced. + + config ESP_WIFI_RX_IRAM_OPT + bool "WiFi RX IRAM speed optimization" + default n if (BT_ENABLED && SPIRAM && SLAVE_IDF_TARGET_ESP32) + default y + help + Select this option to place frequently called Wi-Fi library RX functions in IRAM. + When this option is disabled, more than 17Kbytes of IRAM memory will be saved + but Wi-Fi performance will be reduced. + + config ESP_WIFI_ENABLE_WPA3_SAE + bool "Enable WPA3-Personal" + default y + select ESP_WIFI_MBEDTLS_CRYPTO + help + Select this option to allow the device to establish a WPA3-Personal connection with eligible AP's. + PMF (Protected Management Frames) is a prerequisite feature for a WPA3 connection, it needs to be + explicitly configured before attempting connection. Please refer to the Wi-Fi Driver API Guide + for details. + + config ESP_WIFI_ENABLE_SAE_PK + bool "Enable SAE-PK" + default y + depends on ESP_WIFI_ENABLE_WPA3_SAE + help + Select this option to enable SAE-PK + + config ESP_WIFI_SOFTAP_SAE_SUPPORT + bool "Enable WPA3 Personal(SAE) SoftAP" + default y + depends on ESP_WIFI_ENABLE_WPA3_SAE + depends on ESP_WIFI_SOFTAP_SUPPORT + help + Select this option to enable SAE support in softAP mode. + + config ESP_WIFI_ENABLE_WPA3_OWE_STA + bool "Enable OWE STA" + default y + select ESP_WIFI_MBEDTLS_CRYPTO + help + Select this option to allow the device to establish OWE connection with eligible AP's. + PMF (Protected Management Frames) is a prerequisite feature for a WPA3 connection, it needs to be + explicitly configured before attempting connection. Please refer to the Wi-Fi Driver API Guide + for details. + + config ESP_WIFI_SLP_IRAM_OPT + bool "WiFi SLP IRAM speed optimization" + select PM_SLP_DEFAULT_PARAMS_OPT + select PERIPH_CTRL_FUNC_IN_IRAM + default y if SLAVE_SOC_WIFI_HE_SUPPORT + help + Select this option to place called Wi-Fi library TBTT process and receive beacon functions in IRAM. + Some functions can be put in IRAM either by ESP_WIFI_IRAM_OPT and ESP_WIFI_RX_IRAM_OPT, or this one. + If already enabled ESP_WIFI_IRAM_OPT, the other 7.3KB IRAM memory would be taken by this option. + If already enabled ESP_WIFI_RX_IRAM_OPT, the other 1.3KB IRAM memory would be taken by this option. + If neither of them are enabled, the other 7.4KB IRAM memory would be taken by this option. + Wi-Fi power-save mode average current would be reduced if this option is enabled. + + config ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME + int "Minimum active time" + range 8 60 + default 50 + help + Only for station in WIFI_PS_MIN_MODEM or WIFI_PS_MAX_MODEM. When the station enters the active state, + it will work for at least ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME. If a data packet is received or sent + during this period, the time will be refreshed. If the time is up, but the station still has packets + to receive or send, the time will also be refreshed. unit: milliseconds. + + config ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME + int "Maximum keep alive time" + range 10 60 + default 10 + help + Only for station in WIFI_PS_MIN_MODEM or WIFI_PS_MAX_MODEM. If no packet has been + sent within ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME, a null data packet will be sent + to maintain the connection with the AP. unit: seconds. + + config ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME + int "Minimum wait broadcast data time" + range 10 30 + default 15 + help + Only for station in WIFI_PS_MIN_MODEM or WIFI_PS_MAX_MODEM. When the station knows through the beacon + that AP will send broadcast packet, it will wait for ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME + before entering the sleep process. If a broadcast packet is received with more data bits, the time + will refreshed. unit: milliseconds. + + config ESP_WIFI_FTM_ENABLE + bool "WiFi FTM" + default n + depends on SLAVE_SOC_WIFI_FTM_SUPPORT + help + Enable feature Fine Timing Measurement for calculating WiFi Round-Trip-Time (RTT). + + config ESP_WIFI_FTM_INITIATOR_SUPPORT + bool "FTM Initiator support" + default y + depends on ESP_WIFI_FTM_ENABLE + + config ESP_WIFI_FTM_RESPONDER_SUPPORT + bool "FTM Responder support" + default y + depends on ESP_WIFI_FTM_ENABLE + + config ESP_WIFI_STA_DISCONNECTED_PM_ENABLE + bool "Power Management for station at disconnected" + default y + help + Select this option to enable power_management for station when disconnected. + Chip will do modem-sleep when rf module is not in use any more. + + config ESP_WIFI_GCMP_SUPPORT + bool "WiFi GCMP Support(GCMP128 and GCMP256)" + default n + depends on SLAVE_SOC_WIFI_GCMP_SUPPORT + help + Select this option to enable GCMP support. GCMP support is compulsory for WiFi Suite-B support. + + config ESP_WIFI_GMAC_SUPPORT + bool "WiFi GMAC Support(GMAC128 and GMAC256)" + default y + help + Select this option to enable GMAC support. GMAC support is compulsory for WiFi 192 bit certification. + + config ESP_WIFI_SOFTAP_SUPPORT + bool "WiFi SoftAP Support" + default y + help + WiFi module can be compiled without SoftAP to save code size. + + config ESP_WIFI_ENHANCED_LIGHT_SLEEP + bool "WiFi modem automatically receives the beacon" + default n + depends on ESP_PHY_MAC_BB_PD && SOC_PM_SUPPORT_BEACON_WAKEUP + help + The wifi modem automatically receives the beacon frame during light sleep. + + config ESP_WIFI_SLP_BEACON_LOST_OPT + bool "Wifi sleep optimize when beacon lost" + help + Enable wifi sleep optimization when beacon loss occurs and immediately enter + sleep mode when the WiFi module detects beacon loss. + + config ESP_WIFI_SLP_BEACON_LOST_TIMEOUT + int "Beacon loss timeout" + range 5 100 + default 10 + depends on ESP_WIFI_SLP_BEACON_LOST_OPT + help + Timeout time for close rf phy when beacon loss occurs, Unit: 1024 microsecond. + + config ESP_WIFI_SLP_BEACON_LOST_THRESHOLD + int "Maximum number of consecutive lost beacons allowed" + range 0 8 + default 3 + depends on ESP_WIFI_SLP_BEACON_LOST_OPT + help + Maximum number of consecutive lost beacons allowed, WiFi keeps Rx state when + the number of consecutive beacons lost is greater than the given threshold. + + config ESP_WIFI_SLP_PHY_ON_DELTA_EARLY_TIME + int "Delta early time for RF PHY on" + range 0 100 + default 2 + depends on ESP_WIFI_SLP_BEACON_LOST_OPT && SLAVE_SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW + help + Delta early time for rf phy on, When the beacon is lost, the next rf phy on will + be earlier the time specified by the configuration item, Unit: 32 microsecond. + + config ESP_WIFI_SLP_PHY_OFF_DELTA_TIMEOUT_TIME + int "Delta timeout time for RF PHY off" + range 0 8 + default 2 + depends on ESP_WIFI_SLP_BEACON_LOST_OPT && SLAVE_SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW + help + Delta timeout time for rf phy off, When the beacon is lost, the next rf phy off will + be delayed for the time specified by the configuration item. Unit: 1024 microsecond. + + config ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM + int "Maximum espnow encrypt peers number" + range 0 4 if SLAVE_IDF_TARGET_ESP32C2 + range 0 17 if (!SLAVE_IDF_TARGET_ESP32C2) + default 2 if SLAVE_IDF_TARGET_ESP32C2 + default 7 if (!SLAVE_IDF_TARGET_ESP32C2) + help + Maximum number of encrypted peers supported by espnow. + The number of hardware keys for encryption is fixed. And the espnow and SoftAP share the same + hardware keys. So this configuration will affect the maximum connection number of SoftAP. + Maximum espnow encrypted peers number + maximum number of connections of SoftAP = Max hardware + keys number. When using ESP mesh, this value should be set to a maximum of 6. + + config ESP_WIFI_NAN_ENABLE + bool "WiFi Aware" + default n + depends on SLAVE_SOC_WIFI_NAN_SUPPORT + help + Enable WiFi Aware (NAN) feature. + + config ESP_WIFI_MBEDTLS_CRYPTO + bool "Use MbedTLS crypto APIs" + default y + select MBEDTLS_AES_C + select MBEDTLS_ECP_C + select MBEDTLS_ECDH_C + select MBEDTLS_ECDSA_C + select MBEDTLS_CMAC_C + select MBEDTLS_ECP_DP_SECP256R1_ENABLED + help + Select this option to enable the use of MbedTLS crypto APIs. + The internal crypto support within the supplicant is limited + and may not suffice for all new security features, including WPA3. + + It is recommended to always keep this option enabled. Additionally, + note that MbedTLS can leverage hardware acceleration if available, + resulting in significantly faster cryptographic operations. + + if ESP_WIFI_MBEDTLS_CRYPTO + config ESP_WIFI_MBEDTLS_TLS_CLIENT + bool "Use MbedTLS TLS client for WiFi Enterprise connection" + depends on ESP_WIFI_ENTERPRISE_SUPPORT + default y + select MBEDTLS_TLS_ENABLED + help + Select this option to use MbedTLS TLS client for WPA2 enterprise connection. + Please note that from MbedTLS-3.0 onwards, MbedTLS does not support SSL-3.0 + TLS-v1.0, TLS-v1.1 versions. In case your server is using one of these version, + it is advisable to update your server. + Please disable this option for compatibility with older TLS versions. + + config ESP_WIFI_EAP_TLS1_3 + bool "Enable EAP-TLS v1.3 Support for WiFi Enterprise connection" + default n + select MBEDTLS_SSL_PROTO_TLS1_3 + depends on ESP_WIFI_MBEDTLS_TLS_CLIENT && IDF_EXPERIMENTAL_FEATURES + help + Select this option to support EAP with TLS v1.3. + This configuration still supports compatibility with EAP-TLS v1.2. + Please note that enabling this configuration will cause every application which + uses TLS go for TLS1.3 if server supports that. TLS1.3 is still in development in mbedtls + and there may be interoperability issues with this. Please modify your application to set + max version as TLS1.2 if you want to enable TLS1.3 only for WiFi connection. + + endif + + config ESP_WIFI_WAPI_PSK + bool "Enable WAPI PSK support" + depends on SLAVE_SOC_WIFI_WAPI_SUPPORT + default n + help + Select this option to enable WAPI-PSK + which is a Chinese National Standard Encryption for Wireless LANs (GB 15629.11-2003). + + config ESP_WIFI_SUITE_B_192 + bool "Enable NSA suite B support with 192 bit key" + default n + depends on SLAVE_SOC_WIFI_GCMP_SUPPORT + select ESP_WIFI_GCMP_SUPPORT + select ESP_WIFI_GMAC_SUPPORT + help + Select this option to enable 192 bit NSA suite-B. + This is necessary to support WPA3 192 bit security. + + config ESP_WIFI_11KV_SUPPORT + bool "Enable 802.11k, 802.11v APIs Support" + default n + help + Select this option to enable 802.11k 802.11v APIs(RRM and BTM support). + Only APIs which are helpful for network assisted roaming + are supported for now. + Enable this option with BTM and RRM enabled in sta config + to make device ready for network assisted roaming. + BTM: BSS transition management enables an AP to request a station to transition + to a specific AP, or to indicate to a station a set of preferred APs. + RRM: Radio measurements enable STAs to understand the radio environment, + it enables STAs to observe and gather data on radio link performance + and on the radio environment. Current implementation adds beacon report, + link measurement, neighbor report. + + config ESP_WIFI_SCAN_CACHE + bool "Keep scan results in cache" + depends on ESP_WIFI_11KV_SUPPORT + default n + help + Keep scan results in cache, if not enabled, those + will be flushed immediately. + + config ESP_WIFI_MBO_SUPPORT + bool "Enable Multi Band Operation Certification Support" + default n + select ESP_WIFI_11KV_SUPPORT + select ESP_WIFI_SCAN_CACHE + help + Select this option to enable WiFi Multiband operation certification support. + + config ESP_WIFI_ENABLE_ROAMING_APP + bool "Advanced support for Wi-Fi Roaming (Experimental)" + depends on IDF_EXPERIMENTAL_FEATURES + default n + select ESP_WIFI_SCAN_CACHE + help + Enable Espressif's roaming app to allow for efficient Wi-Fi roaming. + This includes configurable periodic environment scans, maintaining a cache of the + best APs, handling low rssi events etc. + + Risk Warning + Please note that this feature is still experimental and enabling this potentially can + lead to unpredictable scanning, connection and roaming attempts. + We are still working on tuning and optimising this feature to ensure reliable and stable use. + + menu "Configure roaming App" + depends on ESP_WIFI_ENABLE_ROAMING_APP + rsource "wifi_apps/roaming_app/src/Kconfig.roaming" + endmenu + + config ESP_WIFI_DPP_SUPPORT + bool "Enable DPP support" + default n + select ESP_WIFI_MBEDTLS_CRYPTO + help + Select this option to enable WiFi Easy Connect Support. + + config ESP_WIFI_11R_SUPPORT + bool "Enable 802.11R (Fast Transition) Support" + default n + help + Select this option to enable WiFi Fast Transition Support. + + config ESP_WIFI_WPS_SOFTAP_REGISTRAR + bool "Add WPS Registrar support in SoftAP mode" + depends on ESP_WIFI_SOFTAP_SUPPORT + default n + help + Select this option to enable WPS registrar support in softAP mode. + + config ESP_WIFI_ENABLE_WIFI_TX_STATS + bool "Enable Wi-Fi transmission statistics" + depends on SLAVE_SOC_WIFI_HE_SUPPORT + default n + help + Enable Wi-Fi transmission statistics. Total support 4 access category. Each access category + will use 346 bytes memory. + + config ESP_WIFI_ENABLE_WIFI_RX_STATS + bool "Enable Wi-Fi reception statistics" + depends on SLAVE_SOC_WIFI_HE_SUPPORT + default n + help + Enable Wi-Fi reception statistics. Total support 2 access category. Each access category + will use 190 bytes memory. + + config ESP_WIFI_ENABLE_WIFI_RX_MU_STATS + bool "Enable Wi-Fi DL MU-MIMO and DL OFDMA reception statistics" + depends on ESP_WIFI_ENABLE_WIFI_RX_STATS + default n + help + Enable Wi-Fi DL MU-MIMO and DL OFDMA reception statistics. Will use 10932 bytes memory. + + config ESP_WIFI_TX_HETB_QUEUE_NUM + int "WiFi TX HE TB QUEUE number for STA HE TB PPDU transmission" + depends on SLAVE_SOC_WIFI_HE_SUPPORT + range 1 4 + default 3 + help + Set the maximum number of queue that can be aggregated by the STA in the A-MPDU carried in the + HE TB PPDU. + + config ESP_WIFI_ENABLE_DUMP_HESIGB + bool "Enable Wi-Fi dump HE-SIGB which is contained in DL HE MU PPDUs" + depends on SLAVE_SOC_WIFI_HE_SUPPORT_5G + default "n" + help + Enable Wi-Fi dump HE-SIGB which is contained in DL HE MU PPDUs. + + config ESP_WIFI_ENABLE_DUMP_MU_CFO + bool "Enable Wi-Fi dump MU CFO" + depends on SLAVE_SOC_WIFI_HE_SUPPORT_5G + default "n" + help + Enable Wi-Fi dump MU CFO. + + config ESP_WIFI_ENABLE_DUMP_CTRL_NDPA + bool "Enable Wi-Fi dump NDPA frames" + depends on SLAVE_SOC_WIFI_HE_SUPPORT_5G + default "n" + help + Enable Wi-Fi dump NDPA frames. + + config ESP_WIFI_ENABLE_DUMP_CTRL_BFRP + bool "Enable Wi-Fi dump BFRP frames" + depends on SLAVE_SOC_WIFI_HE_SUPPORT_5G + default "n" + help + Enable Wi-Fi dump BFRP frames. + + menu "WPS Configuration Options" + config ESP_WIFI_WPS_STRICT + bool "Strictly validate all WPS attributes" + default n + help + Select this option to enable validate each WPS attribute + rigorously. Disabling this add the workarounds with various APs. + Enabling this may cause inter operability issues with some APs. + + config ESP_WIFI_WPS_PASSPHRASE + bool "Get WPA2 passphrase in WPS config" + default n + help + Select this option to get passphrase during WPS configuration. + This option fakes the virtual display capabilities to get the + configuration in passphrase mode. + Not recommended to be used since WPS credentials should not + be shared to other devices, making it in readable format increases + that risk, also passphrase requires pbkdf2 to convert in psk. + + endmenu # "WPS Configuration Options" + + + config ESP_WIFI_DEBUG_PRINT + bool "Print debug messages from WPA Supplicant" + default n + help + Select this option to print logging information from WPA supplicant, + this includes handshake information and key hex dumps depending + on the project logging level. + + Enabling this could increase the build size ~60kb + depending on the project logging level. + + config ESP_WIFI_TESTING_OPTIONS + bool "Add DPP testing code" + default n + help + Select this to enable unity test for DPP. + + config ESP_WIFI_ENTERPRISE_SUPPORT + bool "Enable enterprise option" + default y + help + Select this to enable/disable enterprise connection support. + + disabling this will reduce binary size. + disabling this will disable the use of any esp_wifi_sta_wpa2_ent_* (as APIs will be meaningless) + + Note that when using bigger certificates on low-power chips without crypto + hardware acceleration, it is recommended to adjust the task watchdog timer (TWDT) + if it is enabled. For precise information on timing requirements, you can check + performance numbers at https://github.com/espressif/mbedtls/wiki/Performance-Numbers. + + config ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER + bool "Free dynamic buffers during WiFi enterprise connection" + depends on ESP_WIFI_ENTERPRISE_SUPPORT + default y if SLAVE_IDF_TARGET_ESP32C2 + default n if !SLAVE_IDF_TARGET_ESP32C2 + help + Select this configuration to free dynamic buffers during WiFi enterprise connection. + This will enable chip to reduce heap consumption during WiFi enterprise connection. + +# Wi-Fi configuration end diff --git a/components/esp_wifi_remote/esp_wifi_remote_weak.c b/components/esp_wifi_remote/idf_v5.4/esp_wifi_remote_weak.c similarity index 100% rename from components/esp_wifi_remote/esp_wifi_remote_weak.c rename to components/esp_wifi_remote/idf_v5.4/esp_wifi_remote_weak.c diff --git a/components/esp_wifi_remote/esp_wifi_with_remote.c b/components/esp_wifi_remote/idf_v5.4/esp_wifi_with_remote.c similarity index 100% rename from components/esp_wifi_remote/esp_wifi_with_remote.c rename to components/esp_wifi_remote/idf_v5.4/esp_wifi_with_remote.c diff --git a/components/esp_wifi_remote/include/esp_wifi_remote_api.h b/components/esp_wifi_remote/idf_v5.4/include/esp_wifi_remote_api.h similarity index 100% rename from components/esp_wifi_remote/include/esp_wifi_remote_api.h rename to components/esp_wifi_remote/idf_v5.4/include/esp_wifi_remote_api.h diff --git a/components/esp_wifi_remote/include/esp_wifi_types_native.h b/components/esp_wifi_remote/idf_v5.4/include/esp_wifi_types_native.h similarity index 98% rename from components/esp_wifi_remote/include/esp_wifi_types_native.h rename to components/esp_wifi_remote/idf_v5.4/include/esp_wifi_types_native.h index 4ae9c8025..0963572a8 100644 --- a/components/esp_wifi_remote/include/esp_wifi_types_native.h +++ b/components/esp_wifi_remote/idf_v5.4/include/esp_wifi_types_native.h @@ -18,8 +18,8 @@ extern "C" { #if CONFIG_SLAVE_IDF_TARGET_ESP32C2 #define ESP_WIFI_MAX_CONN_NUM (4) /**< max number of stations which can connect to ESP32C2 soft-AP */ -#elif CONFIG_SLAVE_IDF_TARGET_ESP32C3 || CONFIG_SLAVE_IDF_TARGET_ESP32C6 || CONFIG_SLAVE_IDF_TARGET_ESP32C5 -#define ESP_WIFI_MAX_CONN_NUM (10) /**< max number of stations which can connect to ESP32C3 soft-AP */ +#elif CONFIG_SLAVE_IDF_TARGET_ESP32C3 || CONFIG_SLAVE_IDF_TARGET_ESP32C6 || CONFIG_SLAVE_IDF_TARGET_ESP32C5 || CONFIG_SLAVE_IDF_TARGET_ESP32C61 +#define ESP_WIFI_MAX_CONN_NUM (10) /**< max number of stations which can connect to ESP32C3/ESP32C6/ESP32C5/ESP32C61 soft-AP */ #else #define ESP_WIFI_MAX_CONN_NUM (15) /**< max number of stations which can connect to ESP32/ESP32S3/ESP32S2 soft-AP */ #endif diff --git a/components/esp_wifi_remote/wifi_apps/roaming_app/src/Kconfig.roaming b/components/esp_wifi_remote/idf_v5.4/wifi_apps/roaming_app/src/Kconfig.roaming similarity index 100% rename from components/esp_wifi_remote/wifi_apps/roaming_app/src/Kconfig.roaming rename to components/esp_wifi_remote/idf_v5.4/wifi_apps/roaming_app/src/Kconfig.roaming diff --git a/components/esp_wifi_remote/scripts/generate_and_check.py b/components/esp_wifi_remote/scripts/generate_and_check.py index 0f25ac6ee..d72b82d47 100644 --- a/components/esp_wifi_remote/scripts/generate_and_check.py +++ b/components/esp_wifi_remote/scripts/generate_and_check.py @@ -159,10 +159,9 @@ def get_vars(parameters): return definitions, comma_separated_names -def generate_kconfig_wifi_caps(idf_path, component_path): - kconfig = os.path.join(component_path, 'Kconfig.soc_wifi_caps.in') - slave_select = os.path.join(component_path, 'Kconfig.slave_select.in') - sdkconfig_files = [] +def generate_kconfig_wifi_caps(idf_path, idf_ver_dir, component_path): + kconfig = os.path.join(component_path, idf_ver_dir, 'Kconfig.soc_wifi_caps.in') + slave_select = os.path.join(component_path, idf_ver_dir, 'Kconfig.slave_select.in') with open(kconfig, 'w') as slave_caps, open(slave_select, 'w') as slave: slave_caps.write(f'# {AUTO_GENERATED}\n') slave.write(f'# {AUTO_GENERATED}\n') @@ -179,9 +178,6 @@ def generate_kconfig_wifi_caps(idf_path, component_path): if 'config SOC_WIFI_SUPPORTED' in line: # if WiFi supported for this target, add it to Kconfig slave options and test this slave add_slave = True - sdkconfig = os.path.join(component_path, 'test', 'smoke_test', f'sdkconfig.ci.slave_{slave_target}') - open(sdkconfig, 'w').write(f'CONFIG_SLAVE_IDF_TARGET_{slave_target.upper()}=y\n') - sdkconfig_files.append(sdkconfig) replaced = re.sub(r'SOC_WIFI_', 'SLAVE_SOC_WIFI_', line) kconfig_content.append(f' {replaced}') kconfig_content.append(f' {f.readline()}') # type @@ -196,13 +192,13 @@ def generate_kconfig_wifi_caps(idf_path, component_path): slave.write(f' bool "{slave_target}"\n') slave.write(' endchoice\n') - return [kconfig, slave_select] + sdkconfig_files + return [kconfig, slave_select] -def generate_remote_wifi_api(function_prototypes, component_path): - header = os.path.join(component_path, 'include', 'esp_wifi_remote_api.h') - wifi_source = os.path.join(component_path, 'esp_wifi_with_remote.c') - remote_source = os.path.join(component_path, 'esp_wifi_remote_weak.c') +def generate_remote_wifi_api(function_prototypes, idf_ver_dir, component_path): + header = os.path.join(component_path, idf_ver_dir, 'include', 'esp_wifi_remote_api.h') + wifi_source = os.path.join(component_path, idf_ver_dir, 'esp_wifi_with_remote.c') + remote_source = os.path.join(component_path, idf_ver_dir, 'esp_wifi_remote_weak.c') with open(header, 'w') as f: f.write(COPYRIGHT_HEADER) f.write('#pragma once\n') @@ -237,9 +233,9 @@ def generate_remote_wifi_api(function_prototypes, component_path): return [header, wifi_source, remote_source] -def generate_hosted_mocks(function_prototypes, component_path): - source = os.path.join(component_path, 'test', 'smoke_test', 'components', 'esp_hosted', 'esp_hosted_mock.c') - header = os.path.join(component_path, 'test', 'smoke_test', 'components', 'esp_hosted', 'include', 'esp_hosted_mock.h') +def generate_hosted_mocks(function_prototypes, idf_ver_dir, component_path): + source = os.path.join(component_path, 'test', 'smoke_test', 'components', 'esp_hosted', idf_ver_dir, 'esp_hosted_mock.c') + header = os.path.join(component_path, 'test', 'smoke_test', 'components', 'esp_hosted', idf_ver_dir, 'include', 'esp_hosted_mock.h') with open(source, 'w') as f, open(header, 'w') as h: f.write(COPYRIGHT_HEADER) h.write(COPYRIGHT_HEADER) @@ -261,9 +257,9 @@ def generate_hosted_mocks(function_prototypes, component_path): return [source, header] -def generate_test_cases(function_prototypes, component_path): - wifi_cases = os.path.join(component_path, 'test', 'smoke_test', 'main', 'all_wifi_calls.c') - remote_wifi_cases = os.path.join(component_path, 'test', 'smoke_test', 'main', 'all_wifi_remote_calls.c') +def generate_test_cases(function_prototypes, idf_ver_dir, component_path): + wifi_cases = os.path.join(component_path, 'test', 'smoke_test', 'main', idf_ver_dir, 'all_wifi_calls.c') + remote_wifi_cases = os.path.join(component_path, 'test', 'smoke_test', 'main', idf_ver_dir, 'all_wifi_remote_calls.c') with open(wifi_cases, 'w') as wifi, open(remote_wifi_cases, 'w') as remote: wifi.write(COPYRIGHT_HEADER) remote.write(COPYRIGHT_HEADER) @@ -287,8 +283,8 @@ def generate_test_cases(function_prototypes, component_path): return [wifi_cases, remote_wifi_cases] -def generate_wifi_native(idf_path, component_path): - wifi_native = os.path.join(component_path, 'include', 'esp_wifi_types_native.h') +def generate_wifi_native(idf_path, idf_ver_dir, component_path): + wifi_native = os.path.join(component_path, idf_ver_dir, 'include', 'esp_wifi_types_native.h') native_header = os.path.join(idf_path, 'components', 'esp_wifi', 'include', 'local', 'esp_wifi_types_native.h') orig_content = open(native_header, 'r').read() content = orig_content.replace('CONFIG_','CONFIG_SLAVE_') @@ -296,21 +292,15 @@ def generate_wifi_native(idf_path, component_path): return [wifi_native] -def generate_kconfig(idf_path, component_path): - remote_kconfig = os.path.join(component_path, 'Kconfig') +def generate_kconfig(idf_path, idf_ver_dir, component_path): + remote_kconfig = os.path.join(component_path, idf_ver_dir, 'Kconfig.wifi.in') slave_configs = ['SOC_WIFI_', 'IDF_TARGET_'] lines = open(os.path.join(idf_path, 'components', 'esp_wifi', 'Kconfig'), 'r').readlines() copy = 100 # just a big number to be greater than nested_if in the first few iterations nested_if = 0 with open(remote_kconfig, 'w') as f: + f.write(f'# Wi-Fi configuration\n') f.write(f'# {AUTO_GENERATED}\n') - f.write('menu "Wi-Fi Remote"\n') - f.write(' config ESP_WIFI_REMOTE_ENABLED\n') - f.write(' bool\n') - f.write(' default y\n\n') - f.write(' orsource "./Kconfig.slave_select.in"\n') - f.write(' orsource "./Kconfig.soc_wifi_caps.in"\n') - f.write(' orsource "./Kconfig.rpc.in"\n') for line1 in lines: line = line1.strip() if re.match(r'^if\s+[A-Z_0-9]+\s*$', line): @@ -326,7 +316,7 @@ def generate_kconfig(idf_path, component_path): if re.match(r'^if\s+\(?ESP_WIFI_ENABLED', line): copy = nested_if - f.write('endmenu # Wi-Fi Remote\n') + f.write(f'# Wi-Fi configuration end\n') return [remote_kconfig] @@ -363,9 +353,14 @@ Please be aware that the pregenerated files use the same copyright header, so af making changes you might need to modify 'copyright_header.h' in the script directory. ''') parser.add_argument('-s', '--skip-check', help='Skip checking the versioned files against the re-generated', action='store_true') - parser.add_argument('--base-dir', help='Base directory to compare generated files against', required=True) + parser.add_argument('--base-dir', help='Base directory to compare generated files against') args = parser.parse_args() + idf_version = os.getenv('ESP_IDF_VERSION') + if idf_version is None: + raise RuntimeError("Environment variable 'ESP_IDF_VERSION' wasn't set.") + idf_ver_dir = f'idf_v{idf_version}' + component_path = os.path.normpath(os.path.join(os.path.realpath(__file__),'..', '..')) idf_path = os.getenv('IDF_PATH') if idf_path is None: @@ -375,19 +370,22 @@ making changes you might need to modify 'copyright_header.h' in the script direc files_to_check = [] - files_to_check += generate_kconfig_wifi_caps(idf_path, component_path) + files_to_check += generate_kconfig_wifi_caps(idf_path, idf_ver_dir, component_path) - files_to_check += generate_remote_wifi_api(function_prototypes, component_path) + files_to_check += generate_remote_wifi_api(function_prototypes, idf_ver_dir, component_path) - files_to_check += generate_hosted_mocks(function_prototypes, component_path) + files_to_check += generate_hosted_mocks(function_prototypes, idf_ver_dir, component_path) - files_to_check += generate_test_cases(function_prototypes, component_path) + files_to_check += generate_test_cases(function_prototypes, idf_ver_dir, component_path) - files_to_check += generate_wifi_native(idf_path, component_path) + files_to_check += generate_wifi_native(idf_path, idf_ver_dir, component_path) - files_to_check += generate_kconfig(idf_path, component_path) + files_to_check += generate_kconfig(idf_path, idf_ver_dir, component_path) - if args.skip_check: + for f in files_to_check: + print(f) + + if args.skip_check or args.base_dir is None: exit(0) failures = compare_files(args.base_dir, component_path, files_to_check) diff --git a/components/esp_wifi_remote/test/smoke_test/components/esp_hosted/esp_hosted_mock.c b/components/esp_wifi_remote/test/smoke_test/components/esp_hosted/idf_v5.4/esp_hosted_mock.c similarity index 100% rename from components/esp_wifi_remote/test/smoke_test/components/esp_hosted/esp_hosted_mock.c rename to components/esp_wifi_remote/test/smoke_test/components/esp_hosted/idf_v5.4/esp_hosted_mock.c diff --git a/components/esp_wifi_remote/test/smoke_test/components/esp_hosted/include/esp_hosted_mock.h b/components/esp_wifi_remote/test/smoke_test/components/esp_hosted/idf_v5.4/include/esp_hosted_mock.h similarity index 100% rename from components/esp_wifi_remote/test/smoke_test/components/esp_hosted/include/esp_hosted_mock.h rename to components/esp_wifi_remote/test/smoke_test/components/esp_hosted/idf_v5.4/include/esp_hosted_mock.h diff --git a/components/esp_wifi_remote/test/smoke_test/main/all_wifi_calls.c b/components/esp_wifi_remote/test/smoke_test/main/idf_v5.4/all_wifi_calls.c similarity index 100% rename from components/esp_wifi_remote/test/smoke_test/main/all_wifi_calls.c rename to components/esp_wifi_remote/test/smoke_test/main/idf_v5.4/all_wifi_calls.c diff --git a/components/esp_wifi_remote/test/smoke_test/main/all_wifi_remote_calls.c b/components/esp_wifi_remote/test/smoke_test/main/idf_v5.4/all_wifi_remote_calls.c similarity index 100% rename from components/esp_wifi_remote/test/smoke_test/main/all_wifi_remote_calls.c rename to components/esp_wifi_remote/test/smoke_test/main/idf_v5.4/all_wifi_remote_calls.c diff --git a/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32 b/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32 deleted file mode 100644 index 80649a1d3..000000000 --- a/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32 +++ /dev/null @@ -1 +0,0 @@ -CONFIG_SLAVE_IDF_TARGET_ESP32=y diff --git a/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c2 b/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c2 deleted file mode 100644 index e629b66f8..000000000 --- a/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c2 +++ /dev/null @@ -1 +0,0 @@ -CONFIG_SLAVE_IDF_TARGET_ESP32C2=y diff --git a/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c3 b/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c3 deleted file mode 100644 index 1c27c1cef..000000000 --- a/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c3 +++ /dev/null @@ -1 +0,0 @@ -CONFIG_SLAVE_IDF_TARGET_ESP32C3=y diff --git a/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c5 b/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c5 deleted file mode 100644 index 358bfc112..000000000 --- a/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c5 +++ /dev/null @@ -1 +0,0 @@ -CONFIG_SLAVE_IDF_TARGET_ESP32C5=y diff --git a/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c6 b/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c6 deleted file mode 100644 index 033f3d81b..000000000 --- a/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32c6 +++ /dev/null @@ -1 +0,0 @@ -CONFIG_SLAVE_IDF_TARGET_ESP32C6=y diff --git a/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32s2 b/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32s2 deleted file mode 100644 index 04ac61547..000000000 --- a/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32s2 +++ /dev/null @@ -1 +0,0 @@ -CONFIG_SLAVE_IDF_TARGET_ESP32S2=y diff --git a/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32s3 b/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32s3 deleted file mode 100644 index 83c668965..000000000 --- a/components/esp_wifi_remote/test/smoke_test/sdkconfig.ci.slave_esp32s3 +++ /dev/null @@ -1 +0,0 @@ -CONFIG_SLAVE_IDF_TARGET_ESP32S3=y