Merge branch 'feat/support_esp32c2_eco4_wifi_v50' into 'release/v5.0'

Feat/support esp32c2 eco4 wifi v50

See merge request espressif/esp-idf!34659
This commit is contained in:
Jiang Jiang Jian
2024-12-04 20:43:06 +08:00
6 changed files with 71 additions and 52 deletions

View File

@@ -19,16 +19,16 @@ lmacAdjustTimestamp = 0x40001b10;
lmacDiscardMSDU = 0x40001b18; lmacDiscardMSDU = 0x40001b18;
lmacEndFrameExchangeSequence = 0x40001b1c; lmacEndFrameExchangeSequence = 0x40001b1c;
lmacMSDUAged = 0x40001b28; lmacMSDUAged = 0x40001b28;
lmacSetTxFrame = 0x40001b4c; //lmacSetTxFrame = 0x40001b4c;
pm_check_state = 0x40001b6c; pm_check_state = 0x40001b6c;
pm_dream = 0x40001b78; pm_dream = 0x40001b78;
pm_on_beacon_rx = 0x40001ba0; pm_on_beacon_rx = 0x40001ba0;
pm_parse_beacon = 0x40001bac; //pm_parse_beacon = 0x40001bac;
pm_process_tim = 0x40001bb0; pm_process_tim = 0x40001bb0;
pm_rx_beacon_process = 0x40001bb4; pm_rx_beacon_process = 0x40001bb4;
pm_rx_data_process = 0x40001bb8; pm_rx_data_process = 0x40001bb8;
pm_sleep = 0x40001bbc; pm_sleep = 0x40001bbc;
pm_tbtt_process = 0x40001bc4; //pm_tbtt_process = 0x40001bc4;
ppAssembleAMPDU = 0x40001bcc; ppAssembleAMPDU = 0x40001bcc;
ppCalTxAMPDULength = 0x40001bd8; ppCalTxAMPDULength = 0x40001bd8;
ppRxFragmentProc = 0x40001c28; ppRxFragmentProc = 0x40001c28;
@@ -38,10 +38,10 @@ rcGetSched = 0x40001c88;
rcTxUpdatePer = 0x40001c94; rcTxUpdatePer = 0x40001c94;
rcUpdateRate = 0x40001c9c; rcUpdateRate = 0x40001c9c;
wDev_AppendRxBlocks = 0x40001cdc; wDev_AppendRxBlocks = 0x40001cdc;
wDev_IndicateFrame = 0x40001cec; //wDev_IndicateFrame = 0x40001cec;
wDev_ProcessFiq = 0x40001d08; wDev_ProcessFiq = 0x40001d08;
wDev_ProcessRxSucData = 0x40001d0c; wDev_ProcessRxSucData = 0x40001d0c;
ppProcTxDone = 0x40001d1c; //ppProcTxDone = 0x40001d1c;
pm_tx_data_done_process = 0x40001d20; pm_tx_data_done_process = 0x40001d20;
ppMapWaitTxq = 0x40001d28; ppMapWaitTxq = 0x40001d28;
lmacDiscardFrameExchangeSequence = 0x40001d70; lmacDiscardFrameExchangeSequence = 0x40001d70;
@@ -57,15 +57,15 @@ lmac_stop_hw_txq = 0x40001df8;
ppTxFragmentProc = 0x40001e08; ppTxFragmentProc = 0x40001e08;
esf_buf_setup = 0x40001e0c; esf_buf_setup = 0x40001e0c;
hal_crypto_set_key_entry = 0x40001e18; hal_crypto_set_key_entry = 0x40001e18;
pm_start = 0x40001e34; //pm_start = 0x40001e34;
pm_stop = 0x40001e38; //pm_stop = 0x40001e38;
hal_set_sta_tbtt = 0x40001e4c; hal_set_sta_tbtt = 0x40001e4c;
pm_update_next_tbtt = 0x40001e50; //pm_update_next_tbtt = 0x40001e50;
pm_set_sleep_type = 0x40001e54; pm_set_sleep_type = 0x40001e54;
pm_tx_null_data_done_process = 0x40001eb0; pm_tx_null_data_done_process = 0x40001eb0;
pm_tx_data_process = 0x40001eb4; //pm_tx_data_process = 0x40001eb4;
pm_attach = 0x40001eb8; //pm_attach = 0x40001eb8;
pm_coex_schm_process = 0x40001ebc; //pm_coex_schm_process = 0x40001ebc;
pm_on_probe_resp_rx = 0x40001ecc; pm_on_probe_resp_rx = 0x40001ecc;
pm_send_probe_stop = 0x40001edc; pm_send_probe_stop = 0x40001edc;
hal_sniffer_rx_set_promis = 0x40001ef4; hal_sniffer_rx_set_promis = 0x40001ef4;
@@ -86,39 +86,39 @@ ieee80211_classify = 0x40001fe0;
ieee80211_crypto_decap = 0x40001ff8; ieee80211_crypto_decap = 0x40001ff8;
ieee80211_ccmp_decrypt = 0x4000200c; ieee80211_ccmp_decrypt = 0x4000200c;
ieee80211_ccmp_encrypt = 0x40002010; ieee80211_ccmp_encrypt = 0x40002010;
ieee80211_send_action_vendor_spec = 0x40002034; //ieee80211_send_action_vendor_spec = 0x40002034;
ieee80211_send_mgmt = 0x40002038; ieee80211_send_mgmt = 0x40002038;
ieee80211_auth_construct = 0x4000203c; //ieee80211_auth_construct = 0x4000203c;
ieee80211_deauth_construct = 0x40002040; ieee80211_deauth_construct = 0x40002040;
ieee80211_disassoc_construct = 0x40002044; ieee80211_disassoc_construct = 0x40002044;
ieee80211_add_xrates = 0x40002058; //ieee80211_add_xrates = 0x40002058;
ieee80211_assoc_req_construct = 0x40002060; //ieee80211_assoc_req_construct = 0x40002060;
ieee80211_assoc_resp_construct = 0x40002064; ieee80211_assoc_resp_construct = 0x40002064;
ieee80211_timer_process = 0x4000208c; //ieee80211_timer_process = 0x4000208c;
cnx_coexist_timeout = 0x40002090; //cnx_coexist_timeout = 0x40002090;
sta_recv_mgmt = 0x40002094; //sta_recv_mgmt = 0x40002094;
ieee80211_send_probereq = 0x4000209c; //ieee80211_send_probereq = 0x4000209c;
sta_auth_open = 0x400020a0; //sta_auth_open = 0x400020a0;
sta_auth_sae = 0x400020a8; //sta_auth_sae = 0x400020a8;
cnx_coexist_timeout_process = 0x400020ac; //cnx_coexist_timeout_process = 0x400020ac;
ieee80211_add_extcap = 0x400020cc; //ieee80211_add_extcap = 0x400020cc;
ieee80211_alloc_proberesp = 0x400020d8; //ieee80211_alloc_proberesp = 0x400020d8;
esp_wifi_80211_tx = 0x400020f8; esp_wifi_80211_tx = 0x400020f8;
ieee80211_crypto_aes_128_cmac_decrypt = 0x40002104; ieee80211_crypto_aes_128_cmac_decrypt = 0x40002104;
ieee80211_output_do = 0x4000210c; ieee80211_output_do = 0x4000210c;
ieee80211_send_nulldata = 0x40002110; ieee80211_send_nulldata = 0x40002110;
ieee80211_setup_robust_mgmtframe = 0x40002114; //ieee80211_setup_robust_mgmtframe = 0x40002114;
ieee80211_mgmt_output = 0x40002118; //ieee80211_mgmt_output = 0x40002118;
ieee80211_send_deauth = 0x40002120; ieee80211_send_deauth = 0x40002120;
ieee80211_tx_mgt_cb = 0x4000212c; //ieee80211_tx_mgt_cb = 0x4000212c;
sta_rx_csa = 0x40002134; sta_rx_csa = 0x40002134;
sta_send_sa_query_req = 0x40002138; //sta_send_sa_query_req = 0x40002138;
sta_send_sa_query_resp = 0x4000213c; //sta_send_sa_query_resp = 0x4000213c;
sta_recv_sa_query_req = 0x40002140; //sta_recv_sa_query_req = 0x40002140;
sta_recv_sa_query_resp = 0x40002144; //sta_recv_sa_query_resp = 0x40002144;
ieee80211_parse_beacon = 0x40002148; //ieee80211_parse_beacon = 0x40002148;
ieee80211_match_security = 0x40002154; ieee80211_match_security = 0x40002154;
ieee80211_parse_rsn = 0x4000215c; //ieee80211_parse_rsn = 0x4000215c;
/* Data (.data, .bss, .rodata) */ /* Data (.data, .bss, .rodata) */
s_sa_query_retries = 0x3fcdfad8; s_sa_query_retries = 0x3fcdfad8;
s_sa_query_success = 0x3fcdfad5; s_sa_query_success = 0x3fcdfad5;
@@ -130,8 +130,8 @@ s_trans_id = 0x3fcdfac4;
***************************************/ ***************************************/
/* Functions */ /* Functions */
coex_core_event_duration_get = 0x40002178; //coex_core_event_duration_get = 0x40002178;
coex_core_timer_idx_get = 0x4000218c; //coex_core_timer_idx_get = 0x4000218c;
coex_hw_timer_tick_get = 0x400021b8; coex_hw_timer_tick_get = 0x400021b8;
@@ -177,7 +177,7 @@ g_authmode_threshold_failure_ptr = 0x3fcdfa68;
***************************************/ ***************************************/
/* Functions */ /* Functions */
pm_enable_dream_timer = 0x40003030; //pm_enable_dream_timer = 0x40003030;
pm_handle_tbtt_interval = 0x40003034; pm_handle_tbtt_interval = 0x40003034;
hal_set_sta_light_sleep_wake_ahead_time = 0x40003038; hal_set_sta_light_sleep_wake_ahead_time = 0x40003038;
hal_get_time_to_sta_next_tbtt = 0x4000303c; hal_get_time_to_sta_next_tbtt = 0x4000303c;

View File

@@ -616,7 +616,7 @@ pm_on_tbtt = 0x40001ba8;
pm_rx_data_process = 0x40001bb8; pm_rx_data_process = 0x40001bb8;
/*pm_sleep = 0x40001bbc;*/ /*pm_sleep = 0x40001bbc;*/
pm_sleep_for = 0x40001bc0; pm_sleep_for = 0x40001bc0;
pm_tbtt_process = 0x40001bc4; //pm_tbtt_process = 0x40001bc4;
ppAMPDU2Normal = 0x40001bc8; ppAMPDU2Normal = 0x40001bc8;
/*ppAssembleAMPDU = 0x40001bcc;*/ /*ppAssembleAMPDU = 0x40001bcc;*/
ppCalFrameTimes = 0x40001bd0; ppCalFrameTimes = 0x40001bd0;
@@ -671,8 +671,8 @@ rcSetTxAmpduLimit = 0x40001c90;
/* rcTxUpdatePer = 0x40001c94;*/ /* rcTxUpdatePer = 0x40001c94;*/
rcUpdateAckSnr = 0x40001c98; rcUpdateAckSnr = 0x40001c98;
/*rcUpdateRate = 0x40001c9c;*/ /*rcUpdateRate = 0x40001c9c;*/
rcUpdateTxDone = 0x40001ca0; //rcUpdateTxDone = 0x40001ca0;
rcUpdateTxDoneAmpdu2 = 0x40001ca4; //rcUpdateTxDoneAmpdu2 = 0x40001ca4;
rcUpSched = 0x40001ca8; rcUpSched = 0x40001ca8;
rssi_margin = 0x40001cac; rssi_margin = 0x40001cac;
rx11NRate2AMPDULimit = 0x40001cb0; rx11NRate2AMPDULimit = 0x40001cb0;
@@ -702,7 +702,7 @@ wdev_mac_sleep = 0x40001d04;
wdevProcessRxSucDataAll = 0x40001d10; wdevProcessRxSucDataAll = 0x40001d10;
wdev_csi_len_align = 0x40001d14; wdev_csi_len_align = 0x40001d14;
ppDequeueTxDone_Locked = 0x40001d18; ppDequeueTxDone_Locked = 0x40001d18;
ppProcTxDone = 0x40001d1c; //ppProcTxDone = 0x40001d1c;
/*pm_tx_data_done_process = 0x40001d20;*/ /*pm_tx_data_done_process = 0x40001d20;*/
config_is_cache_tx_buf_enabled = 0x40001d24; config_is_cache_tx_buf_enabled = 0x40001d24;
/* ppMapWaitTxq = 0x40001d28; */ /* ppMapWaitTxq = 0x40001d28; */
@@ -771,7 +771,7 @@ hal_crypto_clr_key_entry = 0x40001e20;
config_get_wifi_task_stack_size = 0x40001e24; config_get_wifi_task_stack_size = 0x40001e24;
pp_create_task = 0x40001e28; pp_create_task = 0x40001e28;
hal_set_sta_tsf_wakeup = 0x40001e2c; hal_set_sta_tsf_wakeup = 0x40001e2c;
hal_set_rx_beacon_pti = 0x40001e30; //hal_set_rx_beacon_pti = 0x40001e30;
/* pm_start = 0x40001e34; */ /* pm_start = 0x40001e34; */
/* pm_stop = 0x40001e38; */ /* pm_stop = 0x40001e38; */
hal_disable_sta_tbtt = 0x40001e3c; hal_disable_sta_tbtt = 0x40001e3c;
@@ -799,7 +799,7 @@ dbg_lmac_rxtx_statis_dump = 0x40001e90;
dbg_lmac_hw_statis_dump = 0x40001e94; dbg_lmac_hw_statis_dump = 0x40001e94;
dbg_lmac_diag_statis_dump = 0x40001e98; dbg_lmac_diag_statis_dump = 0x40001e98;
dbg_lmac_ps_statis_dump = 0x40001e9c; dbg_lmac_ps_statis_dump = 0x40001e9c;
pp_timer_do_process = 0x40001ea0; //pp_timer_do_process = 0x40001ea0;
rcUpdateAMPDUParam = 0x40001ea4; rcUpdateAMPDUParam = 0x40001ea4;
rcUpdatePhyMode = 0x40001ea8; rcUpdatePhyMode = 0x40001ea8;
rcGetHighestRateIdx = 0x40001eac; rcGetHighestRateIdx = 0x40001eac;
@@ -969,12 +969,12 @@ wep_encap = 0x40002024;
wep_decap = 0x40002028; wep_decap = 0x40002028;
dbg_hmac_rxtx_statis_dump = 0x4000202c; dbg_hmac_rxtx_statis_dump = 0x4000202c;
dbg_hmac_statis_dump = 0x40002030; dbg_hmac_statis_dump = 0x40002030;
ieee80211_send_action_vendor_spec = 0x40002034; //ieee80211_send_action_vendor_spec = 0x40002034;
ieee80211_vnd_lora_ie_size = 0x40002048; ieee80211_vnd_lora_ie_size = 0x40002048;
ieee80211_vnd_ie_size = 0x4000204c; ieee80211_vnd_ie_size = 0x4000204c;
ieee80211_add_ssid = 0x40002050; ieee80211_add_ssid = 0x40002050;
ieee80211_add_rates = 0x40002054; ieee80211_add_rates = 0x40002054;
ieee80211_add_xrates = 0x40002058; //ieee80211_add_xrates = 0x40002058;
ieee80211_is_ht_cipher = 0x4000205c; ieee80211_is_ht_cipher = 0x4000205c;
ieee80211_setup_lr_rates = 0x40002068; ieee80211_setup_lr_rates = 0x40002068;
ieee80211_ht_node_init = 0x4000206c; ieee80211_ht_node_init = 0x4000206c;
@@ -986,12 +986,12 @@ ieee80211_sta_is_connected = 0x40002080;
current_task_is_wifi_task = 0x40002084; current_task_is_wifi_task = 0x40002084;
wifi_get_init_state = 0x40002088; wifi_get_init_state = 0x40002088;
/* ieee80211_timer_process = 0x4000208c;*/ /* ieee80211_timer_process = 0x4000208c;*/
cnx_coexist_timeout = 0x40002090; //cnx_coexist_timeout = 0x40002090;
/* sta_recv_mgmt = 0x40002094;*/ /* sta_recv_mgmt = 0x40002094;*/
ieee80211_send_setup = 0x40002098; ieee80211_send_setup = 0x40002098;
/* ieee80211_send_probereq = 0x4000209c; */ /* ieee80211_send_probereq = 0x4000209c; */
sta_auth_shared = 0x400020a4; sta_auth_shared = 0x400020a4;
cnx_coexist_timeout_process = 0x400020ac; //cnx_coexist_timeout_process = 0x400020ac;
ieee80211_alloc_challenge = 0x400020b0; ieee80211_alloc_challenge = 0x400020b0;
cnx_assoc_timeout = 0x400020b4; cnx_assoc_timeout = 0x400020b4;
ieee80211_vnd_ie_set = 0x400020b8; ieee80211_vnd_ie_set = 0x400020b8;
@@ -999,7 +999,7 @@ ieee80211_vnd_lora_ie_set = 0x400020bc;
ieee80211_add_wme_param = 0x400020c0; ieee80211_add_wme_param = 0x400020c0;
ieee80211_add_dsparams = 0x400020c4; ieee80211_add_dsparams = 0x400020c4;
ieee80211_add_csa = 0x400020c8; ieee80211_add_csa = 0x400020c8;
ieee80211_add_extcap = 0x400020cc; //ieee80211_add_extcap = 0x400020cc;
ieee80211_regdomain_get_country = 0x400020d0; ieee80211_regdomain_get_country = 0x400020d0;
ieee80211_add_countryie = 0x400020d4; ieee80211_add_countryie = 0x400020d4;
ieee80211_amsdu_adjust_head = 0x400020dc; ieee80211_amsdu_adjust_head = 0x400020dc;
@@ -1021,7 +1021,7 @@ ieee80211_alloc_deauth = 0x40002124;
ieee80211_send_proberesp = 0x40002128; ieee80211_send_proberesp = 0x40002128;
ieee80211_getcapinfo = 0x40002130; ieee80211_getcapinfo = 0x40002130;
sta_rx_csa = 0x40002134; sta_rx_csa = 0x40002134;
sta_recv_sa_query_resp = 0x40002144; //sta_recv_sa_query_resp = 0x40002144;
ieee80211_set_max_rate = 0x4000214c; ieee80211_set_max_rate = 0x4000214c;
ic_set_sta = 0x40002150; ic_set_sta = 0x40002150;
ieee80211_parse_wpa = 0x40002158; ieee80211_parse_wpa = 0x40002158;
@@ -1048,13 +1048,13 @@ s_wifi_task_hdl = 0x3fcdfaec;
in_rssi_adjust = 0x3fcdfae8; in_rssi_adjust = 0x3fcdfae8;
rssi_saved = 0x3fcdfae0; rssi_saved = 0x3fcdfae0;
rssi_index = 0x3fcdfadc; rssi_index = 0x3fcdfadc;
s_sa_query_retries = 0x3fcdfad8; //s_sa_query_retries = 0x3fcdfad8;
s_sa_query_success = 0x3fcdfad5; //s_sa_query_success = 0x3fcdfad5;
g_sta_connected_flag = 0x3fcdfad4; g_sta_connected_flag = 0x3fcdfad4;
wpa_crypto_funcs_ptr = 0x3fcdfad0; wpa_crypto_funcs_ptr = 0x3fcdfad0;
s_netstack_ref = 0x3fcdfacc; s_netstack_ref = 0x3fcdfacc;
sta_csa_timer_ptr = 0x3fcdfac8; sta_csa_timer_ptr = 0x3fcdfac8;
s_trans_id = 0x3fcdfac4; //s_trans_id = 0x3fcdfac4;
/*************************************** /***************************************

View File

@@ -670,6 +670,7 @@ typedef enum {
WIFI_EVENT_STA_BEACON_TIMEOUT, /**< ESP32 station beacon timeout */ WIFI_EVENT_STA_BEACON_TIMEOUT, /**< ESP32 station beacon timeout */
WIFI_EVENT_CONNECTIONLESS_MODULE_WAKE_INTERVAL_START, /**< ESP32 connectionless module wake interval start */ WIFI_EVENT_CONNECTIONLESS_MODULE_WAKE_INTERVAL_START, /**< ESP32 connectionless module wake interval start */
/* Add next events after this only */
WIFI_EVENT_AP_WPS_RG_SUCCESS, /**< Soft-AP wps succeeds in registrar mode */ WIFI_EVENT_AP_WPS_RG_SUCCESS, /**< Soft-AP wps succeeds in registrar mode */
WIFI_EVENT_AP_WPS_RG_FAILED, /**< Soft-AP wps fails in registrar mode */ WIFI_EVENT_AP_WPS_RG_FAILED, /**< Soft-AP wps fails in registrar mode */

View File

@@ -428,3 +428,19 @@ void * ieee80211_alloc_proberesp(void *p, int arg)
} }
#endif #endif
#if CONFIG_IDF_TARGET_ESP32C2
#if CONFIG_ESP32C2_REV_MIN_FULL < 200
void esp32c2_eco4_rom_ptr_init(void)
{
/* Do not remove, stub to overwrite weak link in Wi-Fi Lib */
}
#endif
#endif
#ifndef CONFIG_ESP_WIFI_SLP_SAMPLE_BEACON_FEATURE
void pm_beacon_offset_funcs_init(void)
{
/* Do not remove, stub to overwrite weak link in Wi-Fi Lib */
}
#endif

View File

@@ -57,6 +57,7 @@ typedef enum {
} wifi_appie_ram_t; } wifi_appie_ram_t;
enum { enum {
/* this enum is in C2 ROM, do not change before WPA3_AUTH_OWE */
NONE_AUTH = 0x01, NONE_AUTH = 0x01,
WPA_AUTH_UNSPEC = 0x02, WPA_AUTH_UNSPEC = 0x02,
WPA_AUTH_PSK = 0x03, WPA_AUTH_PSK = 0x03,
@@ -72,6 +73,7 @@ enum {
WPA2_AUTH_ENT_SHA384_SUITE_B = 0x0d, WPA2_AUTH_ENT_SHA384_SUITE_B = 0x0d,
WPA2_AUTH_FT_PSK = 0x0e, WPA2_AUTH_FT_PSK = 0x0e,
WPA3_AUTH_OWE = 0x0f, WPA3_AUTH_OWE = 0x0f,
/* this enum is in C2 ROM, do not change before WPA3_AUTH_OWE */
WPA2_AUTH_INVALID WPA2_AUTH_INVALID
}; };