]> granicus.if.org Git - esp-idf/commitdiff
move WiFi-specific Kconfig to esp-wifi component
authorsuda-morris <362953310@qq.com>
Tue, 9 Apr 2019 06:12:47 +0000 (14:12 +0800)
committersuda-morris <362953310@qq.com>
Thu, 11 Apr 2019 04:33:15 +0000 (12:33 +0800)
1. separate Kconfig from esp32 component
2. modify component.mk for esp_wifi a little bit to make it depend on IDF_TARGET

components/esp32/Kconfig
components/esp_wifi/Kconfig [new file with mode: 0644]
components/esp_wifi/component.mk

index 25152dbb92212a52169045562e6a4dd04073bb1e..d9de4fd303d082a5cbbd77a51bc33097e34ff6fb 100644 (file)
@@ -944,372 +944,6 @@ menu "ESP32-specific"
 
 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.
-            If only Bluetooth is used, it is recommended to disable this option to reduce binary file
-            size.
-
-    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_BT
-            bool "Bluetooth(include BR/EDR and BLE)"
-
-        config SW_COEXIST_PREFERENCE_BALANCE
-            bool "Balance"
-
-    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 ESP32_WIFI_STATIC_RX_BUFFER_NUM
-        int "Max number of WiFi static RX buffers"
-        range 2 25 if !WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
-        range 8 25 if WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
-        default 10 if !WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
-        default 16 if WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
-        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 ESP32_WIFI_AMPDU_RX_ENABLED
-            is enabled, this value is recommended to set equal or bigger than ESP32_WIFI_RX_BA_WIN in order to
-            achieve better throughput and compatibility with both stations and APs.
-
-    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 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 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 "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 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_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.
-
-    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.
-
-    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_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_RX_BA_WIN
-        int "WiFi AMPDU RX BA window size"
-        depends on ESP32_WIFI_AMPDU_RX_ENABLED
-        range 2 32 if !WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
-        range 16 32 if WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
-        default 6 if !WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
-        default 16 if WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
-        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 prefered to allocat in PSRAM first,
-            the default and minimum value should be 16 to achieve better throughput and compatibility with both
-            stations and APs.
-
-    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.
-
-        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.
-
-            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.
-
-    config ESP32_WIFI_MGMT_SBUF_NUM
-        int "WiFi mgmt short buffer number"
-        range 6 32
-        default 32
-        help
-            Set the number of WiFi management short buffer.
-
-    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_DEBUG
-            bool "WiFi Debug Log Debug"
-        config ESP32_WIFI_DEBUG_LOG_VERBOSE
-            bool "WiFi Debug Log Verbose"
-    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_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
-        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_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_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_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_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
-
-    config ESP32_WIFI_IRAM_OPT
-        bool "WiFi IRAM speed optimization"
-        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.
-
-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.
-
-            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.
-
-            If this option is not enabled, PHY init data will be embedded
-            into the application binary.
-
-            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_TX_POWER
-        int
-        default ESP32_PHY_MAX_WIFI_TX_POWER
-
-endmenu  # PHY
-
-
 menu "Power Management"
 
     config PM_ENABLE
diff --git a/components/esp_wifi/Kconfig b/components/esp_wifi/Kconfig
new file mode 100644 (file)
index 0000000..cea9d63
--- /dev/null
@@ -0,0 +1,365 @@
+
+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.
+            If only Bluetooth is used, it is recommended to disable this option to reduce binary file
+            size.
+
+    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_BT
+            bool "Bluetooth(include BR/EDR and BLE)"
+
+        config SW_COEXIST_PREFERENCE_BALANCE
+            bool "Balance"
+
+    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 ESP32_WIFI_STATIC_RX_BUFFER_NUM
+        int "Max number of WiFi static RX buffers"
+        range 2 25 if !WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
+        range 8 25 if WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
+        default 10 if !WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
+        default 16 if WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
+        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 ESP32_WIFI_AMPDU_RX_ENABLED
+            is enabled, this value is recommended to set equal or bigger than ESP32_WIFI_RX_BA_WIN in order to
+            achieve better throughput and compatibility with both stations and APs.
+
+    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 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 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 "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 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_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.
+
+    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.
+
+    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_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_RX_BA_WIN
+        int "WiFi AMPDU RX BA window size"
+        depends on ESP32_WIFI_AMPDU_RX_ENABLED
+        range 2 32 if !WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
+        range 16 32 if WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
+        default 6 if !WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
+        default 16 if WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST
+        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 prefered to allocat in PSRAM first,
+            the default and minimum value should be 16 to achieve better throughput and compatibility with both
+            stations and APs.
+
+    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.
+
+        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.
+
+            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.
+
+    config ESP32_WIFI_MGMT_SBUF_NUM
+        int "WiFi mgmt short buffer number"
+        range 6 32
+        default 32
+        help
+            Set the number of WiFi management short buffer.
+
+    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_DEBUG
+            bool "WiFi Debug Log Debug"
+        config ESP32_WIFI_DEBUG_LOG_VERBOSE
+            bool "WiFi Debug Log Verbose"
+    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_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
+        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_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_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_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_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
+
+    config ESP32_WIFI_IRAM_OPT
+        bool "WiFi IRAM speed optimization"
+        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.
+
+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.
+
+            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.
+
+            If this option is not enabled, PHY init data will be embedded
+            into the application binary.
+
+            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_TX_POWER
+        int
+        default ESP32_PHY_MAX_WIFI_TX_POWER
+
+endmenu  # PHY
index cc865ea51b908adf8d6c31d7b1448a841b1bfb63..78c85270d40081247939659abbb60e3ba5f1ba93 100644 (file)
@@ -10,12 +10,12 @@ ifndef CONFIG_NO_BLOBS
 LIBS += core rtc net80211 pp wpa smartconfig coexist wps wpa2 espnow phy mesh
 endif
 
-COMPONENT_ADD_LDFLAGS += -L$(COMPONENT_PATH)/lib_esp32 \
+COMPONENT_ADD_LDFLAGS += -L$(COMPONENT_PATH)/lib_$(IDF_TARGET) \
                          $(addprefix -l,$(LIBS)) \
 
 COMPONENT_ADD_LDFRAGMENTS += linker.lf
 
-COMPONENT_SUBMODULES += lib_esp32
+COMPONENT_SUBMODULES += lib_$(IDF_TARGET)
 
-ALL_LIB_FILES := $(patsubst %,$(COMPONENT_PATH)/lib_esp32/lib%.a,$(LIBS))
+ALL_LIB_FILES := $(patsubst %,$(COMPONENT_PATH)/lib_$(IDF_TARGET)/lib%.a,$(LIBS))
 COMPONENT_ADD_LINKER_DEPS += $(ALL_LIB_FILES)