From e2c732c90604b4f2b61955cef85abff304bbd7dc Mon Sep 17 00:00:00 2001 From: xuxiao Date: Mon, 21 Oct 2024 17:50:35 +0800 Subject: [PATCH 01/10] feat(wifi): add wifi support for esp32c5 eco1 --- components/esp_phy/lib | 2 +- .../esp_rom/esp32c5/ld/esp32c5.rom.phy.ld | 12 ++++++--- .../esp_rom/esp32c5/ld/esp32c5.rom.pp.ld | 26 ++++++++++++------- components/esp_wifi/lib | 2 +- .../wifi/iperf/sdkconfig.defaults.esp32c5 | 2 +- 5 files changed, 27 insertions(+), 17 deletions(-) diff --git a/components/esp_phy/lib b/components/esp_phy/lib index 8fd02ff780..27f09b16e7 160000 --- a/components/esp_phy/lib +++ b/components/esp_phy/lib @@ -1 +1 @@ -Subproject commit 8fd02ff780e977e76e7ed78619629c8344f0fc50 +Subproject commit 27f09b16e732518b52c2ad4ff3ccfadefb21a809 diff --git a/components/esp_rom/esp32c5/ld/esp32c5.rom.phy.ld b/components/esp_rom/esp32c5/ld/esp32c5.rom.phy.ld index 9bd20793be..3c61a264b0 100644 --- a/components/esp_rom/esp32c5/ld/esp32c5.rom.phy.ld +++ b/components/esp_rom/esp32c5/ld/esp32c5.rom.phy.ld @@ -284,10 +284,14 @@ phy_wifi_set_tx_gain = 0x400014f4; phy_bt_get_tx_tab_ = 0x400014f8; phy_bt_set_tx_gain = 0x400014fc; phy_bt_tx_gain_init = 0x40001500; -phy_pbus_xpd_rx_off = 0x40002518; -phy_i2c_writeReg_Mask = 0x4000787e; -phy_pbus_xpd_rx_on = 0x40002628; -phy_pbus_xpd_tx_on = 0x4000274c; +phy_pbus_xpd_rx_off = 0x40001528; +phy_i2c_writeReg_Mask = 0x4000152c; +phy_pbus_xpd_rx_on = 0x40001530; +phy_pbus_xpd_tx_on = 0x40001534; +phy_get_romfuncs = 0x40001538; +phy_chip_set_chan_ana_ = 0x4000153c; +phy_pbus_xpd_tx_off = 0x40001540; /* Data (.data, .bss, .rodata) */ phy_rom_phyFuns = 0x4085fb80; phy_param_rom = 0x4085fc70; +phy_rom_phyFuns_eco1 = 0x4085fc6c; diff --git a/components/esp_rom/esp32c5/ld/esp32c5.rom.pp.ld b/components/esp_rom/esp32c5/ld/esp32c5.rom.pp.ld index 96c501f990..b63edf3cf5 100644 --- a/components/esp_rom/esp32c5/ld/esp32c5.rom.pp.ld +++ b/components/esp_rom/esp32c5/ld/esp32c5.rom.pp.ld @@ -32,7 +32,7 @@ hal_mac_tx_clr_mplen = 0x40000c10; hal_mac_get_txq_state = 0x40000c14; hal_mac_clr_txq_state = 0x40000c18; hal_mac_get_txq_complete = 0x40000c1c; -/*hal_mac_deinit_twt_tx = 0x40000c20;*/ +hal_mac_deinit_twt_tx = 0x40000c20; hal_mac_is_dma_enable = 0x40000c24; /*hal_he_get_bss_color = 0x40000c28;*/ hal_he_set_ersu = 0x40000c2c; @@ -62,7 +62,7 @@ ic_get_he_rts_threshold_bytes = 0x40000c88; lmacAdjustTimestamp = 0x40000c8c; lmacDiscardAgedMSDU = 0x40000c90; lmacDiscardMSDU = 0x40000c94; -/*lmacEndFrameExchangeSequence = 0x40000c98;*/ +lmacEndFrameExchangeSequence = 0x40000c98; lmacIsIdle = 0x40000c9c; lmacIsLongFrame = 0x40000ca0; lmacMSDUAged = 0x40000ca4; @@ -74,19 +74,19 @@ lmacReachLongLimit = 0x40000cb8; lmacReachShortLimit = 0x40000cbc; lmacRecycleMPDU = 0x40000cc0; lmacRxDone = 0x40000cc4; -/*lmacSetTxFrame = 0x40000cc8;*/ +lmacSetTxFrame = 0x40000cc8; lmacTxDone = 0x40000ccc; lmacTxFrame = 0x40000cd0; lmacDisableTransmit = 0x40000cd4; lmacDiscardFrameExchangeSequence = 0x40000cd8; lmacProcessCollision = 0x40000cdc; lmacProcessAckTimeout = 0x40000ce0; -/*lmacProcessShortRetryFail = 0x40000ce4;*/ +lmacProcessShortRetryFail = 0x40000ce4; lmacProcessCollisions_task = 0x40000ce8; lmacProcessTxRtsError = 0x40000cec; lmacProcessTxError = 0x40000cf0; lmacProcessCtsTimeout = 0x40000cf4; -/*lmacProcessLongRetryFail = 0x40000cf8;*/ +lmacProcessLongRetryFail = 0x40000cf8; lmacRetryTxFrame = 0x40000cfc; lmacEndRetryAMPDUFail = 0x40000d00; lmacProcessTxSuccess = 0x40000d04; @@ -145,13 +145,13 @@ pm_disconnected_wake = 0x40000dd4; /*pm_tx_data_process = 0x40000dd8;*/ pm_is_twt_awake = 0x40000ddc; pm_enable_twt_keep_alive = 0x40000de0; -/*pm_twt_on_tsf_timer = 0x40000de4;*/ +pm_twt_on_tsf_timer = 0x40000de4; pm_twt_process = 0x40000de8; pm_is_twt_start = 0x40000dec; pm_twt_set_target_wdev_time = 0x40000df0; pm_twt_set_target_tsf = 0x40000df4; pm_enable_twt_keep_alive_timer = 0x40000df8; -/*pm_mac_try_enable_modem_state = 0x40000dfc;*/ +pm_mac_try_enable_modem_state = 0x40000dfc; pm_beacon_monitor_tbtt_timeout_process = 0x40000e00; /*pm_update_next_tbtt = 0x40000e04;*/ pm_twt_disallow_tx = 0x40000e08; @@ -209,11 +209,11 @@ ppDisableQueue = 0x40000ed4; ppCalVHTDeliNum = 0x40000ed8; ppCalTxVHTSMPDULength = 0x40000edc; ppCheckTxRTS = 0x40000ee0; -/*ppProcessLifeTime = 0x40000ee4;*/ +ppProcessLifeTime = 0x40000ee4; ppProcTxCallback = 0x40000ee8; ppCalPreFecPaddingFactor = 0x40000eec; ppCalDeliNum = 0x40000ef0; -/*ppRemoveHTC = 0x40000ef4;*/ +ppRemoveHTC = 0x40000ef4; ppCheckTxHEAMPDUlength = 0x40000ef8; ppCertSetRate = 0x40000efc; ppSelectTxFormat = 0x40000f00; @@ -260,7 +260,7 @@ trcAmpduSetState = 0x40000fa0; trc_set_bf_report_rate = 0x40000fa4; trc_onPPTxDone = 0x40000fa8; wDevCheckBlockError = 0x40000fac; -/*wDev_AppendRxBlocks = 0x40000fb0;*/ +wDev_AppendRxBlocks = 0x40000fb0; wDev_DiscardFrame = 0x40000fb4; wDev_GetNoiseFloor = 0x40000fb8; wDev_IndicateAmpdu = 0x40000fbc; @@ -335,6 +335,12 @@ is_use_muedca = 0x400010cc; pwr_hal_clear_mac_modem_state_wakeup_protect_signal = 0x400010d0; get_estimated_batime = 0x400010d4; get_sublen_offset = 0x400010d8; +pm_coex_schm_overall_period_get = 0x40001504; +ppRemoveHEAMPDUflags = 0x4000150c; +tsf_hal_get_tbtt_interval = 0x40001510; +pm_get_tbtt_count = 0x4000151c; +tsf_hal_get_time = 0x40001520; +tsf_hal_get_counter_value = 0x40001524; /* Data (.data, .bss, .rodata) */ our_instances_ptr = 0x4004ffe0; pTxRx = 0x4085ff74; diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index 952d21c8d1..9532814f14 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit 952d21c8d1b5de2d966e3a0010317c41b060baad +Subproject commit 9532814f14186bd643b2d8a65c957ed985a5ddee diff --git a/examples/wifi/iperf/sdkconfig.defaults.esp32c5 b/examples/wifi/iperf/sdkconfig.defaults.esp32c5 index 7c3a67ad31..338b88f570 100644 --- a/examples/wifi/iperf/sdkconfig.defaults.esp32c5 +++ b/examples/wifi/iperf/sdkconfig.defaults.esp32c5 @@ -12,7 +12,7 @@ CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y CONFIG_ESP_WIFI_RX_BA_WIN=22 CONFIG_ESP_WIFI_NVS_ENABLED=n -CONFIG_LWIP_TCP_SND_BUF_DEFAULT=57600 +CONFIG_LWIP_TCP_SND_BUF_DEFAULT=50400 CONFIG_LWIP_TCP_WND_DEFAULT=65535 CONFIG_LWIP_TCP_RECVMBOX_SIZE=48 CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 From ea05f7f647e0ad75cffcc1cb64e712ece7b36ae6 Mon Sep 17 00:00:00 2001 From: "wangtao@espressif.com" Date: Tue, 29 Oct 2024 14:54:00 +0800 Subject: [PATCH 02/10] fix(wifi): fix spiram ignore issue --- components/esp_wifi/include/esp_wifi.h | 8 ++++---- components/esp_wifi/lib | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/components/esp_wifi/include/esp_wifi.h b/components/esp_wifi/include/esp_wifi.h index eb112e0607..fc321d2036 100644 --- a/components/esp_wifi/include/esp_wifi.h +++ b/components/esp_wifi/include/esp_wifi.h @@ -224,10 +224,10 @@ extern wifi_osi_funcs_t g_wifi_osi_funcs; #define WIFI_ENABLE_WPA3_SAE 0 #endif -#if CONFIG_SPIRAM -#define WIFI_ENABLE_SPIRAM (1<<1) +#if WIFI_CACHE_TX_BUFFER_NUM > 0 +#define WIFI_ENABLE_CACHE_TX_BUFFER (1<<1) #else -#define WIFI_ENABLE_SPIRAM 0 +#define WIFI_ENABLE_CACHE_TX_BUFFER 0 #endif #if CONFIG_ESP_WIFI_FTM_INITIATOR_SUPPORT @@ -289,7 +289,7 @@ extern wifi_osi_funcs_t g_wifi_osi_funcs; /* Set additional WiFi features and capabilities */ #define WIFI_FEATURE_CAPS (WIFI_ENABLE_WPA3_SAE | \ - WIFI_ENABLE_SPIRAM | \ + WIFI_ENABLE_CACHE_TX_BUFFER | \ WIFI_FTM_INITIATOR | \ WIFI_FTM_RESPONDER | \ WIFI_ENABLE_GCMP | \ diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index 9532814f14..4488e06749 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit 9532814f14186bd643b2d8a65c957ed985a5ddee +Subproject commit 4488e06749ce73a8a58e53fcb0d415ab54b62122 From 49b8292f51e0d2c4304cf2df704ae5d7140aa90d Mon Sep 17 00:00:00 2001 From: sibeibei Date: Mon, 14 Oct 2024 16:55:41 +0800 Subject: [PATCH 03/10] fix(wifi): fix some wifi issues 241031 1. fix cant sleep if reconnect to connected ap 2. clear pmk in internal reconnection 3. update connect status for init-->auth 4. add protection for probe request when wifi band is 5g --- components/esp_wifi/lib | 2 +- components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h | 1 + components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index 4488e06749..cde7c641e3 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit 4488e06749ce73a8a58e53fcb0d415ab54b62122 +Subproject commit cde7c641e30d4ae701c4949f1792e0dea6d2d703 diff --git a/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h b/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h index d5ca7fd716..a07650603d 100644 --- a/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h +++ b/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h @@ -144,6 +144,7 @@ struct wpa_funcs { void (*wpa_config_done)(void); uint8_t *(*owe_build_dhie)(uint16_t group); int (*owe_process_assoc_resp)(const u8 *rsn_ie, size_t rsn_len, const uint8_t *dh_ie, size_t dh_len); + void (*wpa_sta_clear_curr_pmksa)(void); }; struct wpa2_funcs { diff --git a/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c b/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c index 0d4bf2a3f9..09532deb12 100644 --- a/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c +++ b/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c @@ -476,6 +476,7 @@ int esp_supplicant_init(void) wpa_cb->wpa_config_bss = NULL;//wpa_config_bss; wpa_cb->wpa_michael_mic_failure = wpa_michael_mic_failure; wpa_cb->wpa_config_done = wpa_config_done; + wpa_cb->wpa_sta_clear_curr_pmksa = wpa_sta_clear_curr_pmksa; esp_wifi_register_wpa3_ap_cb(wpa_cb); esp_wifi_register_wpa3_cb(wpa_cb); From e36118f4f037d708ddce80f4f6b0b82e0e08af58 Mon Sep 17 00:00:00 2001 From: zhangyanjiao Date: Mon, 21 Oct 2024 16:40:00 +0800 Subject: [PATCH 04/10] fix(wifi): Support AES IV with random value in esptouch v2 --- components/esp_wifi/lib | 2 +- docs/en/api-reference/network/esp_smartconfig.rst | 7 +++++++ docs/zh_CN/api-reference/network/esp_smartconfig.rst | 7 +++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index cde7c641e3..5d2a37fe25 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit cde7c641e30d4ae701c4949f1792e0dea6d2d703 +Subproject commit 5d2a37fe25fd64fd0fcdeb3b7cd82e252fa043ac diff --git a/docs/en/api-reference/network/esp_smartconfig.rst b/docs/en/api-reference/network/esp_smartconfig.rst index d94091e819..f7159fc641 100644 --- a/docs/en/api-reference/network/esp_smartconfig.rst +++ b/docs/en/api-reference/network/esp_smartconfig.rst @@ -3,10 +3,17 @@ SmartConfig :link_to_translation:`zh_CN:[中文]` +Introduction +------------ + The SmartConfig\ :sup:`TM` is a provisioning technology developed by TI to connect a new Wi-Fi device to a Wi-Fi network. It uses a mobile application to broadcast the network credentials from a smartphone, or a tablet, to an un-provisioned Wi-Fi device. The advantage of this technology is that the device does not need to directly know SSID or password of an Access Point (AP). This information is provided using the smartphone. This is particularly important to headless device and systems, due to their lack of a user interface. +Currently, {IDF_TARGET_NAME} support three types of SmartConfig: Airkiss, ESPTouch, and ESPTouch v2. ESPTouch v2 has been supported since SmartConfig v3.0 (the version of SmartConfig can be get from :cpp:func:`esp_smartconfig_get_version()`), and it employs a completely different algorithm compared to ESPTouch, resulting in faster setup times. Additionally, ESPTouch v2 introduces AES encryption and custom data fields. + +Starting from SmartConfig v3.0.2, ESPTouch v2 introduces support for random IV in AES encryption. On the application side, when the option for random IV is disabled, the default IV is set to 0, maintaining consistency with previous versions. When the random IV option is enabled, the IV will be a random value. It is important to note that when AES encryption is enabled with a random IV, the provision time will be extended due to the need of transmitting the IV to the provisioning device. On the provisioning device side, the device will identify whether the random IV for AES is enabled based on the flag in the provisioning packet. + If you are looking for other options to provision your {IDF_TARGET_NAME} devices, check :doc:`../provisioning/index`. diff --git a/docs/zh_CN/api-reference/network/esp_smartconfig.rst b/docs/zh_CN/api-reference/network/esp_smartconfig.rst index 70f77b0d69..56185702cb 100644 --- a/docs/zh_CN/api-reference/network/esp_smartconfig.rst +++ b/docs/zh_CN/api-reference/network/esp_smartconfig.rst @@ -3,10 +3,17 @@ SmartConfig :link_to_translation:`en:[English]` +概述 +----- + SmartConfig\ :sup:`TM` 是由 TI 开发的配网技术,用于将新的 Wi-Fi 设备连接到 Wi-Fi 网络。它使用移动应用程序将无线网凭据从智能手机或平板电脑端广播给未配网的 Wi-Fi 设备。 这项技术的优势在于,设备无需直接获知 AP 的 SSID 或密码,而是通过智能手机获取。这对于没有用户界面的无头设备和系统而言十分重要。 +目前, {IDF_TARGET_NAME} 支持三种类型的 SmartConfig 配网: Airkiss、ESPTouch 和 ESPTouch v2。ESPTouch v2 自 SmartConfig v3.0 (SmartConfig 的版本可以从 :cpp:func:`esp_smartconfig_get_version()` 获取)起开始支持,ESPTouch v2 和 vESPTouch 采用完全不同的配网算法,因此配网速度更快。此外,ESPTouch v2 还增加了 AES 加密功能和自定义数据字段。 + +从 SmartConfig v3.0.2 开始,ESPTouch v2 的 AES 加密支持随机 IV。在应用程序端,当随机 IV 的选项关闭的时候,默认的 IV 为 0,与旧版本保持一致,当随机 IV 的选项打开的时候,IV 为随机值。需要注意的是,当启用 AES 加密且 IV 为随机值时,配网时间会延长,因为需要将 IV 传输到配网设备。在配网设备端,设备会根据配网包中的 flag 来识别 AES 的随机 IV 是否开启。 + 如需通过其他方式为 {IDF_TARGET_NAME} 设备配网,请参阅 :doc:`../provisioning/index`。 From 295f1576e1b0158597b9cde6b2e8662e2dd5fb5a Mon Sep 17 00:00:00 2001 From: zhangyanjiao Date: Mon, 4 Nov 2024 11:05:18 +0800 Subject: [PATCH 05/10] fix(wifi/mesh): Enlarge the mesh TX task stack --- components/esp_wifi/lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index 5d2a37fe25..110a486f37 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit 5d2a37fe25fd64fd0fcdeb3b7cd82e252fa043ac +Subproject commit 110a486f374d2d0e5c417bd0c7df86ce9a1a664b From 504a248ba19a49196b4eafea41487a2b42c8b1ee Mon Sep 17 00:00:00 2001 From: yinqingzhao Date: Fri, 25 Oct 2024 14:58:18 +0800 Subject: [PATCH 06/10] fix(wifi): modify bandwidth in wifi_ap_record_t --- .../esp_wifi/include/esp_wifi_types_generic.h | 30 +++++++++---------- components/esp_wifi/lib | 2 +- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/components/esp_wifi/include/esp_wifi_types_generic.h b/components/esp_wifi/include/esp_wifi_types_generic.h index 6d13536347..832ce0cfb6 100644 --- a/components/esp_wifi/include/esp_wifi_types_generic.h +++ b/components/esp_wifi/include/esp_wifi_types_generic.h @@ -269,6 +269,19 @@ typedef enum { WIFI_CIPHER_TYPE_UNKNOWN, /**< The cipher type is unknown */ } wifi_cipher_type_t; +/** + * @brief Wi-Fi bandwidth type + */ +typedef enum { + WIFI_BW_HT20 = 1, /**< Bandwidth is HT20 */ + WIFI_BW20 = WIFI_BW_HT20, /**< Bandwidth is 20 MHz */ + WIFI_BW_HT40 = 2, /**< Bandwidth is HT40 */ + WIFI_BW40 = WIFI_BW_HT40, /**< Bandwidth is 40 MHz */ + WIFI_BW80 = 3, /**< Bandwidth is 80 MHz */ + WIFI_BW160 = 4, /**< Bandwidth is 160 MHz */ + WIFI_BW80_BW80 = 5, /**< Bandwidth is 80 + 80 MHz */ +} wifi_bandwidth_t; + /** * @brief Wi-Fi antenna */ @@ -314,9 +327,7 @@ typedef struct { uint32_t reserved: 22; /**< Bit: 10..31 reserved */ wifi_country_t country; /**< Country information of AP */ wifi_he_ap_info_t he_ap; /**< HE AP info */ - uint8_t bandwidth; /**< For either 20 MHz or 40 MHz operation, the channel width field is set to 0. - For AP 80 MHz, this value is set to 1. For AP 160 MHz, this value is set to 2. - For AP 80 + 80 MHz, this value is set to 3.*/ + wifi_bandwidth_t bandwidth; /**< Bandwidth of AP */ uint8_t vht_ch_freq1; /**< This fields are used only AP bandwidth is 80 and 160 MHz, to transmit the center channel frequency of the BSS. For AP bandwidth is 80 + 80 MHz, it is the center channel frequency of the lower frequency segment.*/ @@ -458,19 +469,6 @@ typedef struct { uint16_t ghz_5g; /**< Represents 5 GHz protocol, support 802.11a or 802.11n or 802.11ac or 802.11ax */ } wifi_protocols_t; -/** - * @brief Wi-Fi bandwidth type - */ -typedef enum { - WIFI_BW_HT20 = 1, /**< Bandwidth is HT20 */ - WIFI_BW20 = WIFI_BW_HT20, /**< Bandwidth is 20 MHz */ - WIFI_BW_HT40 = 2, /**< Bandwidth is HT40 */ - WIFI_BW40 = WIFI_BW_HT40, /**< Bandwidth is 40 MHz */ - WIFI_BW80 = 3, /**< Bandwidth is 80 MHz */ - WIFI_BW160 = 4, /**< Bandwidth is 160 MHz */ - WIFI_BW80_BW80 = 5, /**< Bandwidth is 80 + 80 MHz */ -} wifi_bandwidth_t; - /** * @brief Description of a Wi-Fi band bandwidths */ diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index 110a486f37..a663beed1a 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit 110a486f374d2d0e5c417bd0c7df86ce9a1a664b +Subproject commit a663beed1a9ef3a316e8502268c14e053db108e1 From 3d95fd17e3c004529ab6cde4b441c40bb6d9fc6d Mon Sep 17 00:00:00 2001 From: yinqingzhao Date: Wed, 30 Oct 2024 19:57:43 +0800 Subject: [PATCH 07/10] docs(wifi): add migration guide for types change in wifi --- .../release-5.x/5.4/index.rst | 1 + .../migration-guides/release-5.x/5.4/wifi.rst | 22 +++++++++++++++++ .../release-5.x/5.4/index.rst | 1 + .../migration-guides/release-5.x/5.4/wifi.rst | 24 +++++++++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 docs/en/migration-guides/release-5.x/5.4/wifi.rst create mode 100644 docs/zh_CN/migration-guides/release-5.x/5.4/wifi.rst diff --git a/docs/en/migration-guides/release-5.x/5.4/index.rst b/docs/en/migration-guides/release-5.x/5.4/index.rst index 08ce135e44..f6b85cb5e7 100644 --- a/docs/en/migration-guides/release-5.x/5.4/index.rst +++ b/docs/en/migration-guides/release-5.x/5.4/index.rst @@ -10,3 +10,4 @@ Migration from 5.3 to 5.4 system bluetooth-classic storage + wifi diff --git a/docs/en/migration-guides/release-5.x/5.4/wifi.rst b/docs/en/migration-guides/release-5.x/5.4/wifi.rst new file mode 100644 index 0000000000..ddcc2c49f1 --- /dev/null +++ b/docs/en/migration-guides/release-5.x/5.4/wifi.rst @@ -0,0 +1,22 @@ +Wi-Fi +====== + +:link_to_translation:`zh_CN:[中文]` + + +Wi-Fi Scan and Connect +------------------------ + + The following types have been modified: + + - :component_file:`esp_wifi/include/esp_wifi_he_types.h` + + - :cpp:struct:`esp_wifi_htc_omc_t`: + + - ``uph_id``, ``ul_pw_headroom``, ``min_tx_pw_flag`` are deprecated. + + - :component_file:`esp_wifi/include/esp_wifi_types_generic.h` + + - :cpp:struct:`wifi_ap_record_t`: + + - The type of ``bandwidth`` has been changed from ``uint8_t`` to ``wifi_bandwidth_t`` diff --git a/docs/zh_CN/migration-guides/release-5.x/5.4/index.rst b/docs/zh_CN/migration-guides/release-5.x/5.4/index.rst index 5d15a086f3..e2256533e9 100644 --- a/docs/zh_CN/migration-guides/release-5.x/5.4/index.rst +++ b/docs/zh_CN/migration-guides/release-5.x/5.4/index.rst @@ -10,3 +10,4 @@ system bluetooth-classic storage + wifi diff --git a/docs/zh_CN/migration-guides/release-5.x/5.4/wifi.rst b/docs/zh_CN/migration-guides/release-5.x/5.4/wifi.rst new file mode 100644 index 0000000000..ed9be5db8d --- /dev/null +++ b/docs/zh_CN/migration-guides/release-5.x/5.4/wifi.rst @@ -0,0 +1,24 @@ +Wi-Fi +===== + +:link_to_translation:`en:[English]` + + +Wi-Fi 扫描和连接 +------------------------ + + 以下类型已被更改: + - :component_file:`esp_wifi/include/esp_wifi_he_types.h` + + - :cpp:struct:`esp_wifi_htc_omc_t` 中: + + - ``uph_id``, ``ul_pw_headroom``, ``min_tx_pw_flag`` 字段被弃用 + + - :component_file:`esp_wifi/include/esp_wifi_types_generic.h` + + - :cpp:struct:`wifi_ap_record_t` 中: + + - ``bandwidth`` 的类型从 ``uint8_t`` 更改为 ``wifi_bandwidth_t`` + + + From 30acf8b5d13841276680f50670a169e58370b4bf Mon Sep 17 00:00:00 2001 From: yinqingzhao Date: Fri, 25 Oct 2024 19:33:55 +0800 Subject: [PATCH 08/10] feat(twt): twt add parameter to enable keep alive --- components/esp_rom/esp32c5/ld/esp32c5.rom.pp.ld | 2 +- components/esp_rom/esp32c61/ld/esp32c61.rom.pp.ld | 2 +- components/esp_wifi/include/esp_wifi_he_types.h | 1 + components/esp_wifi/lib | 2 +- examples/wifi/itwt/main/Kconfig.projbuild | 6 ++++++ examples/wifi/itwt/main/itwt_main.c | 12 ++++++++++++ 6 files changed, 22 insertions(+), 3 deletions(-) diff --git a/components/esp_rom/esp32c5/ld/esp32c5.rom.pp.ld b/components/esp_rom/esp32c5/ld/esp32c5.rom.pp.ld index b63edf3cf5..dbe5ab1adf 100644 --- a/components/esp_rom/esp32c5/ld/esp32c5.rom.pp.ld +++ b/components/esp_rom/esp32c5/ld/esp32c5.rom.pp.ld @@ -112,7 +112,7 @@ pm_disable_sleep_delay_timer = 0x40000d50; /*pm_dream = 0x40000d54;*/ pm_mac_wakeup = 0x40000d58; pm_mac_sleep = 0x40000d5c; -pm_enable_active_timer = 0x40000d60; +/*pm_enable_active_timer = 0x40000d60;*/ pm_enable_sleep_delay_timer = 0x40000d64; pm_local_tsf_process = 0x40000d68; pm_set_beacon_filter = 0x40000d6c; diff --git a/components/esp_rom/esp32c61/ld/esp32c61.rom.pp.ld b/components/esp_rom/esp32c61/ld/esp32c61.rom.pp.ld index 6931333f9d..2bdc202eb7 100644 --- a/components/esp_rom/esp32c61/ld/esp32c61.rom.pp.ld +++ b/components/esp_rom/esp32c61/ld/esp32c61.rom.pp.ld @@ -113,7 +113,7 @@ pm_disable_sleep_delay_timer = 0x40000cbc; pm_dream = 0x40000cc0; pm_mac_wakeup = 0x40000cc4; pm_mac_sleep = 0x40000cc8; -pm_enable_active_timer = 0x40000ccc; +/*pm_enable_active_timer = 0x40000ccc;*/ pm_enable_sleep_delay_timer = 0x40000cd0; pm_local_tsf_process = 0x40000cd4; pm_set_beacon_filter = 0x40000cd8; diff --git a/components/esp_wifi/include/esp_wifi_he_types.h b/components/esp_wifi/include/esp_wifi_he_types.h index e9dc2e17a4..e2fe9c9f75 100644 --- a/components/esp_wifi/include/esp_wifi_he_types.h +++ b/components/esp_wifi/include/esp_wifi_he_types.h @@ -406,6 +406,7 @@ typedef enum { /** Argument structure for twt configuration */ typedef struct { bool post_wakeup_event; /**< post twt wakeup event */ + bool twt_enable_keep_alive; /**< twt enable send qos null to keep alive */ } wifi_twt_config_t; /** Argument structure for WIFI_EVENT_TWT_WAKEUP event */ diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index a663beed1a..601124b36a 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit a663beed1a9ef3a316e8502268c14e053db108e1 +Subproject commit 601124b36a88ae0ab5b8538b0769cbf893e9d9f2 diff --git a/examples/wifi/itwt/main/Kconfig.projbuild b/examples/wifi/itwt/main/Kconfig.projbuild index 9eb0e46e7b..8d8dd52b2e 100644 --- a/examples/wifi/itwt/main/Kconfig.projbuild +++ b/examples/wifi/itwt/main/Kconfig.projbuild @@ -38,6 +38,12 @@ menu "Example Configuration" help Set static gateway address. + config EXAMPLE_TWT_ENABLE_KEEP_ALIVE_QOS_NULL + bool "enable keep alive qos null" + default n + help + Enable send QOS NULL to keep alive during TWT. + menu "iTWT Configuration" config EXAMPLE_ITWT_TRIGGER_ENABLE bool "trigger-enabled" diff --git a/examples/wifi/itwt/main/itwt_main.c b/examples/wifi/itwt/main/itwt_main.c index e2f4ecc771..c1e44d8eb2 100644 --- a/examples/wifi/itwt/main/itwt_main.c +++ b/examples/wifi/itwt/main/itwt_main.c @@ -49,6 +49,12 @@ static const char *TAG = "itwt"; #define DEFAULT_PWD CONFIG_EXAMPLE_WIFI_PASSWORD #define ITWT_SETUP_SUCCESS 1 +#if CONFIG_EXAMPLE_TWT_ENABLE_KEEP_ALIVE_QOS_NULL +bool keep_alive_enabled = true; +#else +bool keep_alive_enabled = false; +#endif + #if CONFIG_EXAMPLE_ITWT_TRIGGER_ENABLE uint8_t trigger_enabled = 1; #else @@ -264,6 +270,12 @@ static void wifi_itwt(void) ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &wifi_config)); + wifi_twt_config_t wifi_twt_config = { + .post_wakeup_event = false, + .twt_enable_keep_alive = keep_alive_enabled, + }; + ESP_ERROR_CHECK(esp_wifi_sta_twt_config(&wifi_twt_config)); + esp_wifi_set_bandwidth(WIFI_IF_STA, WIFI_BW_HT20); esp_wifi_set_protocol(WIFI_IF_STA, WIFI_PROTOCOL_11B | WIFI_PROTOCOL_11G | WIFI_PROTOCOL_11N | WIFI_PROTOCOL_11AX); esp_wifi_set_ps(WIFI_PS_MIN_MODEM); From c433d95441cc021a79b357f2c5b295578c5248d2 Mon Sep 17 00:00:00 2001 From: xuxiao Date: Mon, 4 Nov 2024 14:23:11 +0800 Subject: [PATCH 09/10] fix(wifi): fix esp32c61 can not tx frame under ht40 above --- components/esp_phy/lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/esp_phy/lib b/components/esp_phy/lib index 27f09b16e7..f5f852b53c 160000 --- a/components/esp_phy/lib +++ b/components/esp_phy/lib @@ -1 +1 @@ -Subproject commit 27f09b16e732518b52c2ad4ff3ccfadefb21a809 +Subproject commit f5f852b53c90c2a23bfbd6b9c4897c25f0ae6155 From 1d87c94ca3c776ba247226931cf7170c37ea1eba Mon Sep 17 00:00:00 2001 From: zhangyanjiao Date: Wed, 6 Nov 2024 09:53:46 +0800 Subject: [PATCH 10/10] fix(wifi/pm): Fixed the tbtt interval update error when AP's beacon interval changed Closes https://github.com/espressif/esp-idf/issues/14720 --- components/esp_wifi/lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index 601124b36a..9d69ec4c3a 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit 601124b36a88ae0ab5b8538b0769cbf893e9d9f2 +Subproject commit 9d69ec4c3a5784a769f20ba2c5014ec04d58ba1b