From 1189ac4bcdead0304994f286df903a2bc9e8256c Mon Sep 17 00:00:00 2001 From: muhaidong Date: Wed, 19 Jun 2024 17:03:32 +0800 Subject: [PATCH 1/6] fix(iperf): add esp_extconn idf component ymy --- examples/wifi/iperf/main/idf_component.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/wifi/iperf/main/idf_component.yml b/examples/wifi/iperf/main/idf_component.yml index fa9a6e59d6..9dc9a28ce9 100644 --- a/examples/wifi/iperf/main/idf_component.yml +++ b/examples/wifi/iperf/main/idf_component.yml @@ -7,3 +7,7 @@ dependencies: version: "~0.1.0" esp-qa/ping-cmd: version: "~0.0.1" + espressif/esp_extconn: + version: "~0.0.1" + rules: + - if: "target in [esp32p4]" From 821c94ddd5d9cd10f69545fee8c933f382c97793 Mon Sep 17 00:00:00 2001 From: alanmaxwell Date: Tue, 9 Apr 2024 11:46:24 +0800 Subject: [PATCH 2/6] fix(wifi_host): support esp32p4 host get mac addr from target --- components/esp_wifi/esp32p4/esp_adapter.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/components/esp_wifi/esp32p4/esp_adapter.c b/components/esp_wifi/esp32p4/esp_adapter.c index f78dc1972d..7ac4d7157d 100644 --- a/components/esp_wifi/esp32p4/esp_adapter.c +++ b/components/esp_wifi/esp32p4/esp_adapter.c @@ -53,6 +53,8 @@ extern void wifi_apb80m_request(void); extern void wifi_apb80m_release(void); #endif +extern uint8_t *esp_extconn_get_mac(void); + IRAM_ATTR void *wifi_malloc(size_t size) { #if CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP @@ -402,7 +404,21 @@ static void esp_log_write_wrapper(unsigned int level, const char *tag, const cha static esp_err_t esp_read_mac_wrapper(uint8_t *mac, unsigned int type) { - return ESP_FAIL; + if (mac == NULL) { + ESP_LOGE(TAG, "mac address param is NULL"); + return ESP_ERR_INVALID_ARG; + } + + // get mac address from target + memcpy(mac, esp_extconn_get_mac(), 6); + + if (type == ESP_MAC_WIFI_SOFTAP) { + mac[5] += 1; + } + + ESP_LOGD(TAG, "%s MAC addr: " MACSTR, (type == ESP_MAC_WIFI_STA ? "STA" : "AP"), MAC2STR(mac)); + + return ESP_OK; } static int coex_init_wrapper(void) From 7d7e5059bbfb32984316eba20f9e6845c95a8b84 Mon Sep 17 00:00:00 2001 From: muhaidong Date: Wed, 19 Jun 2024 21:31:50 +0800 Subject: [PATCH 3/6] fix(wifi): support esp32_host ext_connect in iper --- examples/wifi/iperf/main/iperf_example_main.c | 8 ++++++++ examples/wifi/iperf/sdkconfig.defaults.esp32p4 | 5 +++++ 2 files changed, 13 insertions(+) create mode 100644 examples/wifi/iperf/sdkconfig.defaults.esp32p4 diff --git a/examples/wifi/iperf/main/iperf_example_main.c b/examples/wifi/iperf/main/iperf_example_main.c index a856e20ebc..a7d8bbea97 100644 --- a/examples/wifi/iperf/main/iperf_example_main.c +++ b/examples/wifi/iperf/main/iperf_example_main.c @@ -35,6 +35,9 @@ extern int wifi_cmd_get_rx_statistics(int argc, char **argv); extern int wifi_cmd_clr_rx_statistics(int argc, char **argv); #endif +#ifdef CONFIG_ESP_EXT_CONN_ENABLE +#include "esp_extconn.h" +#endif void iperf_hook_show_wifi_stats(iperf_traffic_type_t type, iperf_status_t status) { @@ -69,6 +72,11 @@ void iperf_hook_show_wifi_stats(iperf_traffic_type_t type, iperf_status_t status void app_main(void) { +#if CONFIG_ESP_EXT_CONN_ENABLE + esp_extconn_config_t ext_config = ESP_EXTCONN_CONFIG_DEFAULT(); + esp_extconn_init(&ext_config); +#endif + esp_err_t ret = nvs_flash_init(); if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { ESP_ERROR_CHECK(nvs_flash_erase()); diff --git a/examples/wifi/iperf/sdkconfig.defaults.esp32p4 b/examples/wifi/iperf/sdkconfig.defaults.esp32p4 new file mode 100644 index 0000000000..8d001de33d --- /dev/null +++ b/examples/wifi/iperf/sdkconfig.defaults.esp32p4 @@ -0,0 +1,5 @@ +# +# ESP32-P4 +# +CONFIG_ESP_HOST_WIFI_ENABLED=y +CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y From 1c2b9e890393256b25ddd2d52539fd677ef7e3a3 Mon Sep 17 00:00:00 2001 From: muhaidong Date: Fri, 26 Jul 2024 15:12:22 +0800 Subject: [PATCH 4/6] fix(wifi): enable p4 and esp8689 build iperf in ci --- examples/wifi/.build-test-rules.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/wifi/.build-test-rules.yml b/examples/wifi/.build-test-rules.yml index 1a6e8bc6d6..88677dd2e8 100644 --- a/examples/wifi/.build-test-rules.yml +++ b/examples/wifi/.build-test-rules.yml @@ -41,7 +41,7 @@ examples/wifi/iperf: disable: - if: SOC_WIFI_SUPPORTED != 1 disable_test: - - if: IDF_TARGET != "esp32" + - if: IDF_TARGET not in ["esp32", "esp32p4"] temporary: true reason: lack of runners depends_components: From 4e7a7b60c14e6ab71db993a8cd954d66aff058a2 Mon Sep 17 00:00:00 2001 From: Chen Yu Dong Date: Fri, 26 Jul 2024 17:31:05 +0800 Subject: [PATCH 5/6] fix(ci): update iperf build ci condition Co-authored-by: Chen Yu Dong --- components/esp_wifi/esp32p4/esp_adapter.c | 7 +++++++ examples/wifi/.build-test-rules.yml | 4 ++-- examples/wifi/iperf/README.md | 4 ++-- examples/wifi/iperf/main/idf_component.yml | 4 ++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/components/esp_wifi/esp32p4/esp_adapter.c b/components/esp_wifi/esp32p4/esp_adapter.c index 7ac4d7157d..74bc498cc4 100644 --- a/components/esp_wifi/esp32p4/esp_adapter.c +++ b/components/esp_wifi/esp32p4/esp_adapter.c @@ -53,7 +53,9 @@ extern void wifi_apb80m_request(void); extern void wifi_apb80m_release(void); #endif +#if CONFIG_ESP_EXT_CONN_ENABLE extern uint8_t *esp_extconn_get_mac(void); +#endif IRAM_ATTR void *wifi_malloc(size_t size) { @@ -410,7 +412,12 @@ static esp_err_t esp_read_mac_wrapper(uint8_t *mac, unsigned int type) } // get mac address from target +#if CONFIG_ESP_EXT_CONN_ENABLE memcpy(mac, esp_extconn_get_mac(), 6); +#else + ESP_LOGE(TAG, "Not support read mac"); + return ESP_FAIL; +#endif if (type == ESP_MAC_WIFI_SOFTAP) { mac[5] += 1; diff --git a/examples/wifi/.build-test-rules.yml b/examples/wifi/.build-test-rules.yml index 88677dd2e8..204ae8139b 100644 --- a/examples/wifi/.build-test-rules.yml +++ b/examples/wifi/.build-test-rules.yml @@ -39,9 +39,9 @@ examples/wifi/getting_started: examples/wifi/iperf: disable: - - if: SOC_WIFI_SUPPORTED != 1 + - if: (SOC_WIFI_SUPPORTED != 1) and (IDF_TARGET != "esp32p4") disable_test: - - if: IDF_TARGET not in ["esp32", "esp32p4"] + - if: IDF_TARGET not in ["esp32"] temporary: true reason: lack of runners depends_components: diff --git a/examples/wifi/iperf/README.md b/examples/wifi/iperf/README.md index b42b7c4440..0287fa9d0d 100644 --- a/examples/wifi/iperf/README.md +++ b/examples/wifi/iperf/README.md @@ -1,5 +1,5 @@ -| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 | -| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | +| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-P4 | ESP32-S2 | ESP32-S3 | +| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | # Iperf Example diff --git a/examples/wifi/iperf/main/idf_component.yml b/examples/wifi/iperf/main/idf_component.yml index 9dc9a28ce9..fdb795321d 100644 --- a/examples/wifi/iperf/main/idf_component.yml +++ b/examples/wifi/iperf/main/idf_component.yml @@ -7,7 +7,7 @@ dependencies: version: "~0.1.0" esp-qa/ping-cmd: version: "~0.0.1" - espressif/esp_extconn: - version: "~0.0.1" + espressif/esp-extconn: + version: "~0.1.0" rules: - if: "target in [esp32p4]" From 71eb08b70270d3691280e61c17310fc57371adbd Mon Sep 17 00:00:00 2001 From: muhaidong Date: Wed, 4 Sep 2024 17:01:58 +0800 Subject: [PATCH 6/6] fix(wifi): enable ci build by sdkconfig.ci.esp32p4_with_extconn --- examples/wifi/.build-test-rules.yml | 3 ++- ...nfig.defaults.esp32p4 => sdkconfig.ci.esp32p4_with_extconn} | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) rename examples/wifi/iperf/{sdkconfig.defaults.esp32p4 => sdkconfig.ci.esp32p4_with_extconn} (75%) diff --git a/examples/wifi/.build-test-rules.yml b/examples/wifi/.build-test-rules.yml index 204ae8139b..2d36717070 100644 --- a/examples/wifi/.build-test-rules.yml +++ b/examples/wifi/.build-test-rules.yml @@ -39,7 +39,8 @@ examples/wifi/getting_started: examples/wifi/iperf: disable: - - if: (SOC_WIFI_SUPPORTED != 1) and (IDF_TARGET != "esp32p4") + - if: (SOC_WIFI_SUPPORTED != 1) and (SOC_WIRELESS_HOST_SUPPORTED != 1) + - if: (IDF_TARGET == "esp32p4") and CONFIG_NAME in ["defaults", "99"] disable_test: - if: IDF_TARGET not in ["esp32"] temporary: true diff --git a/examples/wifi/iperf/sdkconfig.defaults.esp32p4 b/examples/wifi/iperf/sdkconfig.ci.esp32p4_with_extconn similarity index 75% rename from examples/wifi/iperf/sdkconfig.defaults.esp32p4 rename to examples/wifi/iperf/sdkconfig.ci.esp32p4_with_extconn index 8d001de33d..f675f0a416 100644 --- a/examples/wifi/iperf/sdkconfig.defaults.esp32p4 +++ b/examples/wifi/iperf/sdkconfig.ci.esp32p4_with_extconn @@ -1,5 +1,6 @@ # # ESP32-P4 # +CONFIG_IDF_TARGET="esp32p4" CONFIG_ESP_HOST_WIFI_ENABLED=y CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y