Merge branch 'backport/backport_some_changes_to_v5.1_20250106' into 'release/v5.1'

Backport/backport some changes to v5.1 20250106

See merge request espressif/esp-idf!36178
This commit is contained in:
Jiang Jiang Jian
2025-01-08 12:16:54 +08:00
13 changed files with 75 additions and 18 deletions

View File

@@ -1,3 +1,18 @@
if( NOT CONFIG_ESP_WIFI_ENABLED
AND NOT CMAKE_BUILD_EARLY_EXPANSION )
# No local wifi: provide only netif bindings
set(srcs
"src/wifi_default.c"
"src/wifi_netif.c"
"src/wifi_default_ap.c")
# This component provides "esp_wifi" "wifi_apps" headers if WiFi not enabled
# (implementation supported optionally in a managed component esp_wifi_remote)
idf_component_register(SRCS "${srcs}"
INCLUDE_DIRS "include" "wifi_apps/include")
return()
endif()
if(CONFIG_ESP_WIFI_ENABLED)
idf_build_get_property(idf_target IDF_TARGET)

View File

@@ -1,8 +1,6 @@
menu "Wi-Fi"
# TODO: Disable WIFI support on ESP32-H2 (WIFI-5796)
# visible if SOC_WIFI_SUPPORTED
visible if (SOC_WIFI_SUPPORTED)
config ESP_WIFI_ENABLED
bool
default y if SOC_WIFI_SUPPORTED

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2019-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2019-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -92,14 +92,8 @@ typedef struct esp_now_recv_info {
/**
* @brief ESPNOW rate config
*
*/
typedef struct esp_now_rate_config {
wifi_phy_mode_t phymode; /**< ESPNOW phymode of specified interface */
wifi_phy_rate_t rate; /**< ESPNOW rate of specified interface*/
bool ersu; /**< ESPNOW using ersu send frame*/
bool dcm; /**< ESPNOW using dcm rate to send frame*/
} esp_now_rate_config_t;
typedef wifi_tx_rate_config_t esp_now_rate_config_t;
/**
* @brief Callback function of receiving ESPNOW data

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -1451,6 +1451,7 @@ esp_err_t esp_wifi_get_country_code(char *country);
* @brief Config 80211 tx rate of specified interface
*
* @attention 1. This API should be called after esp_wifi_init() and before esp_wifi_start().
* @attention 2. Can not set 80211 tx rate under 11A/11AC/11AX protocol, you can use esp_wifi_config_80211_tx instead.
*
* @param ifx Interface to be configured.
* @param rate Phy rate to be configured.
@@ -1461,6 +1462,21 @@ esp_err_t esp_wifi_get_country_code(char *country);
*/
esp_err_t esp_wifi_config_80211_tx_rate(wifi_interface_t ifx, wifi_phy_rate_t rate);
/**
* @brief Config 80211 tx rate and phymode of specified interface
*
* @attention 1. This API should be called after esp_wifi_init() and before esp_wifi_start().
*
* @param ifx Interface to be configured.
* @param config rate_config to be configured.
*
* @return
* - ESP_OK: succeed
* - others: failed
*/
esp_err_t esp_wifi_config_80211_tx(wifi_interface_t ifx, wifi_tx_rate_config_t *config);
/**
* @brief Disable PMF configuration for specified interface
*

View File

@@ -1137,6 +1137,17 @@ typedef struct {
uint8_t init_ndi[6]; /**< Initiator's NAN Data Interface MAC */
} wifi_event_ndp_terminated_t;
/**
* @brief Argument structure for wifi_tx_rate_config
*/
typedef struct {
wifi_phy_mode_t phymode; /**< Phymode of specified interface */
wifi_phy_rate_t rate; /**< Rate of specified interface */
bool ersu; /**< Using ERSU to send frame, ERSU is a transmission mode related to 802.11 ax.
ERSU is always used in long distance transmission, and its frame has lower rate compared with SU mode */
bool dcm; /**< Using dcm rate to send frame */
} wifi_tx_rate_config_t;
#ifdef __cplusplus
}
#endif

View File

@@ -1,3 +1,12 @@
if( NOT CONFIG_ESP_WIFI_ENABLED
AND NOT CMAKE_BUILD_EARLY_EXPANSION )
# This component provides only "esp_provisioning" headers if WiFi not enabled
# (implementation supported optionally in a managed component esp_wifi_remote)
idf_component_register(INCLUDE_DIRS include)
return()
endif()
set(srcs "src/wifi_config.c"
"src/wifi_scan.c"
"src/wifi_ctrl.c"

View File

@@ -1,5 +1,5 @@
menu "Wi-Fi Provisioning Manager"
visible if (SOC_WIFI_SUPPORTED)
config WIFI_PROV_SCAN_MAX_ENTRIES
int "Max Wi-Fi Scan Result Entries"
default 16

View File

@@ -1,5 +1,13 @@
set(linker_fragments linker.lf)
if( NOT CONFIG_ESP_WIFI_ENABLED
AND NOT CMAKE_BUILD_EARLY_EXPANSION )
# This component provides only "esp_supplicant" headers if WiFi not enabled
# (implementation supported optionally in a managed component esp_wifi_remote)
idf_component_register(INCLUDE_DIRS esp_supplicant/include)
return()
endif()
set(srcs "port/os_xtensa.c"
"port/eloop.c"
"src/ap/ap_config.c"

View File

@@ -1,3 +1,9 @@
idf_component_register(SRCS "cmd_wifi.c"
if(CONFIG_ESP_WIFI_ENABLED)
set(srcs "cmd_wifi.c")
else()
set(srcs)
endif()
idf_component_register(SRCS "${srcs}"
INCLUDE_DIRS .
REQUIRES console esp_wifi)

View File

@@ -157,7 +157,7 @@ void app_main(void)
esp_console_register_help_command();
register_system_common();
register_system_sleep();
#if SOC_WIFI_SUPPORTED
#if CONFIG_ESP_WIFI_ENABLED
register_wifi();
#endif
register_nvs();

View File

@@ -81,7 +81,7 @@ void app_main(void)
esp_console_register_help_command();
register_system_common();
register_system_sleep();
#if SOC_WIFI_SUPPORTED
#if CONFIG_ESP_WIFI_ENABLED
register_wifi();
#endif
register_nvs();

View File

@@ -1,3 +1,3 @@
# This config is split between targets since different component needs to be included
CONFIG_IDF_TARGET="esp32h2"
TEST_EXCLUDE_COMPONENTS=app_trace esp_eth esp_hid esp_netif esp_phy esp_ringbuf esp_wifi espcoredump hal lwip mdns newlib nvs_flash partition_table sdmmc driver soc spi_flash vfs
TEST_EXCLUDE_COMPONENTS=app_trace esp_eth esp_hid esp_netif esp_phy esp_ringbuf esp_wifi espcoredump hal lwip mdns newlib nvs_flash partition_table sdmmc driver soc spi_flash vfs wpa_supplicant