diff --git a/components/esp_rom/esp32c2/ld/esp32c2.rom.eco4.ld b/components/esp_rom/esp32c2/ld/esp32c2.rom.eco4.ld index df398b3a6e3..1178331f39b 100644 --- a/components/esp_rom/esp32c2/ld/esp32c2.rom.eco4.ld +++ b/components/esp_rom/esp32c2/ld/esp32c2.rom.eco4.ld @@ -60,7 +60,7 @@ hal_crypto_set_key_entry = 0x40001e18; /*pm_stop = 0x40001e38;*/ hal_set_sta_tbtt = 0x40001e4c; //pm_update_next_tbtt = 0x40001e50; -pm_set_sleep_type = 0x40001e54; +//pm_set_sleep_type = 0x40001e54; /*pm_tx_null_data_done_process = 0x40001eb0;*/ //pm_tx_data_process = 0x40001eb4; /*pm_attach = 0x40001eb8;*/ diff --git a/components/esp_rom/esp32c5/ld/esp32c5.rom.eco3.ld b/components/esp_rom/esp32c5/ld/esp32c5.rom.eco3.ld index 2530904497a..e759344295f 100644 --- a/components/esp_rom/esp32c5/ld/esp32c5.rom.eco3.ld +++ b/components/esp_rom/esp32c5/ld/esp32c5.rom.eco3.ld @@ -26,8 +26,8 @@ lmacDisableTransmit = 0x40000cd4; pm_check_state = 0x40000d48; //pm_set_beacon_filter = 0x40000d6c; //pm_is_in_wifi_slice_threshold = 0x40000d70; -pm_keep_alive = 0x40000d78; -pm_process_tim = 0x40000da8; +//pm_keep_alive = 0x40000d78; +//pm_process_tim = 0x40000da8; //pm_tbtt_process = 0x40000dbc; //pm_tx_data_process = 0x40000dd8; pm_twt_process = 0x40000de8; @@ -49,7 +49,7 @@ ppRxProtoProc = 0x40000e90; //wDev_ProcessRxSucData = 0x40000fe0; esp_test_tx_process_complete = 0x40001030; pm_get_tbtt_count = 0x4000151c; -pm_enable_max_idle_timer = 0x400015b8; +//pm_enable_max_idle_timer = 0x400015b8; //pm_beacon_offset_check = 0x400015cc; pm_beacon_offset_get_average = 0x400015d0; pm_beacon_offset_get_expect = 0x400015d4; diff --git a/components/esp_rom/esp32c5/ld/esp32c5.rom.pp.ld b/components/esp_rom/esp32c5/ld/esp32c5.rom.pp.ld index 7e498f08476..0c7d024d67a 100644 --- a/components/esp_rom/esp32c5/ld/esp32c5.rom.pp.ld +++ b/components/esp_rom/esp32c5/ld/esp32c5.rom.pp.ld @@ -134,7 +134,7 @@ pm_rx_data_process = 0x40000db0; pm_sleep = 0x40000db4; pm_sleep_for = 0x40000db8; //pm_tbtt_process = 0x40000dbc; -pm_tx_data_done_process = 0x40000dc0; +//pm_tx_data_done_process = 0x40000dc0; pm_allow_tx = 0x40000dc4; pm_extend_tbtt_adaptive_servo = 0x40000dc8; pm_scale_listen_interval = 0x40000dcc; diff --git a/components/esp_rom/esp32c61/ld/esp32c61.rom.eco4.ld b/components/esp_rom/esp32c61/ld/esp32c61.rom.eco4.ld index 45688e3dd0d..65455157bdd 100644 --- a/components/esp_rom/esp32c61/ld/esp32c61.rom.eco4.ld +++ b/components/esp_rom/esp32c61/ld/esp32c61.rom.eco4.ld @@ -25,7 +25,7 @@ lmacDisableTransmit = 0x40000c44; pm_check_state = 0x40000cb4; pm_set_beacon_filter = 0x40000cd8; //pm_is_in_wifi_slice_threshold = 0x40000cdc; -pm_keep_alive = 0x40000ce4; +//pm_keep_alive = 0x40000ce4; pm_process_tim = 0x40000d14; pm_tbtt_process = 0x40000d28; pm_tx_data_process = 0x40000d44; @@ -52,7 +52,7 @@ pm_beacon_offset_check = 0x40001564; pm_beacon_offset_get_average = 0x40001568; pm_beacon_offset_get_expect = 0x4000156c; pm_beacon_offset_get_params = 0x40001570; -pm_enable_max_idle_timer = 0x40001578; +//pm_enable_max_idle_timer = 0x40001578; phy_get_rc_dout = 0x40001058; phy_rc_cal = 0x4000105c; diff --git a/components/esp_rom/esp32c61/ld/esp32c61.rom.pp.ld b/components/esp_rom/esp32c61/ld/esp32c61.rom.pp.ld index f11f406e68c..8577f3a056f 100644 --- a/components/esp_rom/esp32c61/ld/esp32c61.rom.pp.ld +++ b/components/esp_rom/esp32c61/ld/esp32c61.rom.pp.ld @@ -131,7 +131,7 @@ pm_rx_data_process = 0x40000d1c; pm_sleep = 0x40000d20; pm_sleep_for = 0x40000d24; //pm_tbtt_process = 0x40000d28; -pm_tx_data_done_process = 0x40000d2c; +//pm_tx_data_done_process = 0x40000d2c; pm_allow_tx = 0x40000d30; pm_extend_tbtt_adaptive_servo = 0x40000d34; pm_scale_listen_interval = 0x40000d38; diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index d2379c88767..83d810306f5 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit d2379c88767c3886affc5fec23318be8158a219c +Subproject commit 83d810306f5cbb4619ec925ab4d82ed19f917cea diff --git a/components/esp_wifi/test_apps/wifi_connect/main/test_bss_max_idle.c b/components/esp_wifi/test_apps/wifi_connect/main/test_bss_max_idle.c index 7cd19b5c994..0ca728dae96 100644 --- a/components/esp_wifi/test_apps/wifi_connect/main/test_bss_max_idle.c +++ b/components/esp_wifi/test_apps/wifi_connect/main/test_bss_max_idle.c @@ -53,7 +53,8 @@ typedef u16 __bitwise be16; #define TEST_DEFAULT_SSID "SSID_" CONFIG_IDF_TARGET TEST_SUFFIX_STR #define TEST_DEFAULT_PWD "PASS_" CONFIG_IDF_TARGET TEST_SUFFIX_STR #define TEST_DEFAULT_CHANNEL (6) -#define CONNECT_TIMEOUT_MS (8000) +/* STA association can take many seconds (e.g. WPA3 peer + scan). */ +#define STA_ASSOC_WAIT_MS (30000) #define MAXIMUM_RETRY (5) #define WIFI_DISCONNECT_EVENT (1) @@ -103,6 +104,9 @@ static void wifi_event_handler(void* arg, esp_event_base_t event_base, int32_t e break; case WIFI_EVENT_AP_STACONNECTED: ESP_LOGI(TAG, "Wi-Fi AP got a station connected"); + if (wifi_events) { + xEventGroupSetBits(wifi_events, WIFI_AP_STA_CONNECTED); + } break; case WIFI_EVENT_STA_CONNECTED: ESP_LOGI(TAG, "WIFI_EVENT_STA_CONNECTED"); @@ -229,9 +233,17 @@ static void test_bss_max_idle_sta(void) static void test_bss_max_idle_softap(void) { + s_keep_alive_received = false; start_wifi_as_softap(); - vTaskDelay((CONNECT_TIMEOUT_MS + MAX_IDLE_PERIOD * 1000) / portTICK_PERIOD_MS); + EventBits_t bits = xEventGroupWaitBits(wifi_events, + WIFI_AP_STA_CONNECTED, + pdFALSE, + pdFALSE, + pdMS_TO_TICKS(STA_ASSOC_WAIT_MS)); + TEST_ASSERT_MESSAGE(bits & WIFI_AP_STA_CONNECTED, "station did not connect to softap in time"); + + vTaskDelay(pdMS_TO_TICKS(MAX_IDLE_PERIOD * 1024)); TEST_ASSERT(s_keep_alive_received); stop_wifi();