diff --git a/components/esp_rom/esp32c2/ld/esp32c2.rom.eco4.ld b/components/esp_rom/esp32c2/ld/esp32c2.rom.eco4.ld index 90009fc3e2..ffa3c23b44 100644 --- a/components/esp_rom/esp32c2/ld/esp32c2.rom.eco4.ld +++ b/components/esp_rom/esp32c2/ld/esp32c2.rom.eco4.ld @@ -19,16 +19,16 @@ lmacAdjustTimestamp = 0x40001b10; lmacDiscardMSDU = 0x40001b18; lmacEndFrameExchangeSequence = 0x40001b1c; lmacMSDUAged = 0x40001b28; -lmacSetTxFrame = 0x40001b4c; +//lmacSetTxFrame = 0x40001b4c; pm_check_state = 0x40001b6c; pm_dream = 0x40001b78; pm_on_beacon_rx = 0x40001ba0; -pm_parse_beacon = 0x40001bac; +//pm_parse_beacon = 0x40001bac; pm_process_tim = 0x40001bb0; pm_rx_beacon_process = 0x40001bb4; pm_rx_data_process = 0x40001bb8; pm_sleep = 0x40001bbc; -pm_tbtt_process = 0x40001bc4; +//pm_tbtt_process = 0x40001bc4; ppAssembleAMPDU = 0x40001bcc; ppCalTxAMPDULength = 0x40001bd8; ppRxFragmentProc = 0x40001c28; @@ -38,10 +38,10 @@ rcGetSched = 0x40001c88; rcTxUpdatePer = 0x40001c94; rcUpdateRate = 0x40001c9c; wDev_AppendRxBlocks = 0x40001cdc; -wDev_IndicateFrame = 0x40001cec; +//wDev_IndicateFrame = 0x40001cec; wDev_ProcessFiq = 0x40001d08; wDev_ProcessRxSucData = 0x40001d0c; -ppProcTxDone = 0x40001d1c; +//ppProcTxDone = 0x40001d1c; pm_tx_data_done_process = 0x40001d20; ppMapWaitTxq = 0x40001d28; lmacDiscardFrameExchangeSequence = 0x40001d70; @@ -57,15 +57,15 @@ lmac_stop_hw_txq = 0x40001df8; ppTxFragmentProc = 0x40001e08; esf_buf_setup = 0x40001e0c; hal_crypto_set_key_entry = 0x40001e18; -pm_start = 0x40001e34; -pm_stop = 0x40001e38; +//pm_start = 0x40001e34; +//pm_stop = 0x40001e38; hal_set_sta_tbtt = 0x40001e4c; -pm_update_next_tbtt = 0x40001e50; +//pm_update_next_tbtt = 0x40001e50; pm_set_sleep_type = 0x40001e54; pm_tx_null_data_done_process = 0x40001eb0; -pm_tx_data_process = 0x40001eb4; -pm_attach = 0x40001eb8; -pm_coex_schm_process = 0x40001ebc; +//pm_tx_data_process = 0x40001eb4; +//pm_attach = 0x40001eb8; +//pm_coex_schm_process = 0x40001ebc; pm_on_probe_resp_rx = 0x40001ecc; pm_send_probe_stop = 0x40001edc; hal_sniffer_rx_set_promis = 0x40001ef4; @@ -86,39 +86,39 @@ ieee80211_classify = 0x40001fe0; ieee80211_crypto_decap = 0x40001ff8; ieee80211_ccmp_decrypt = 0x4000200c; ieee80211_ccmp_encrypt = 0x40002010; -ieee80211_send_action_vendor_spec = 0x40002034; +//ieee80211_send_action_vendor_spec = 0x40002034; ieee80211_send_mgmt = 0x40002038; -ieee80211_auth_construct = 0x4000203c; +//ieee80211_auth_construct = 0x4000203c; ieee80211_deauth_construct = 0x40002040; ieee80211_disassoc_construct = 0x40002044; -ieee80211_add_xrates = 0x40002058; -ieee80211_assoc_req_construct = 0x40002060; +//ieee80211_add_xrates = 0x40002058; +//ieee80211_assoc_req_construct = 0x40002060; ieee80211_assoc_resp_construct = 0x40002064; -ieee80211_timer_process = 0x4000208c; -cnx_coexist_timeout = 0x40002090; -sta_recv_mgmt = 0x40002094; -ieee80211_send_probereq = 0x4000209c; -sta_auth_open = 0x400020a0; -sta_auth_sae = 0x400020a8; -cnx_coexist_timeout_process = 0x400020ac; -ieee80211_add_extcap = 0x400020cc; -ieee80211_alloc_proberesp = 0x400020d8; +//ieee80211_timer_process = 0x4000208c; +//cnx_coexist_timeout = 0x40002090; +//sta_recv_mgmt = 0x40002094; +//ieee80211_send_probereq = 0x4000209c; +//sta_auth_open = 0x400020a0; +//sta_auth_sae = 0x400020a8; +//cnx_coexist_timeout_process = 0x400020ac; +//ieee80211_add_extcap = 0x400020cc; +//ieee80211_alloc_proberesp = 0x400020d8; esp_wifi_80211_tx = 0x400020f8; ieee80211_crypto_aes_128_cmac_decrypt = 0x40002104; ieee80211_output_do = 0x4000210c; ieee80211_send_nulldata = 0x40002110; -ieee80211_setup_robust_mgmtframe = 0x40002114; -ieee80211_mgmt_output = 0x40002118; +//ieee80211_setup_robust_mgmtframe = 0x40002114; +//ieee80211_mgmt_output = 0x40002118; ieee80211_send_deauth = 0x40002120; -ieee80211_tx_mgt_cb = 0x4000212c; +//ieee80211_tx_mgt_cb = 0x4000212c; sta_rx_csa = 0x40002134; -sta_send_sa_query_req = 0x40002138; -sta_send_sa_query_resp = 0x4000213c; -sta_recv_sa_query_req = 0x40002140; -sta_recv_sa_query_resp = 0x40002144; -ieee80211_parse_beacon = 0x40002148; +//sta_send_sa_query_req = 0x40002138; +//sta_send_sa_query_resp = 0x4000213c; +//sta_recv_sa_query_req = 0x40002140; +//sta_recv_sa_query_resp = 0x40002144; +//ieee80211_parse_beacon = 0x40002148; ieee80211_match_security = 0x40002154; -ieee80211_parse_rsn = 0x4000215c; +//ieee80211_parse_rsn = 0x4000215c; /* Data (.data, .bss, .rodata) */ s_sa_query_retries = 0x3fcdfad8; s_sa_query_success = 0x3fcdfad5; @@ -130,8 +130,8 @@ s_trans_id = 0x3fcdfac4; ***************************************/ /* Functions */ -coex_core_event_duration_get = 0x40002178; -coex_core_timer_idx_get = 0x4000218c; +//coex_core_event_duration_get = 0x40002178; +//coex_core_timer_idx_get = 0x4000218c; coex_hw_timer_tick_get = 0x400021b8; @@ -177,7 +177,7 @@ g_authmode_threshold_failure_ptr = 0x3fcdfa68; ***************************************/ /* Functions */ -pm_enable_dream_timer = 0x40003030; +//pm_enable_dream_timer = 0x40003030; pm_handle_tbtt_interval = 0x40003034; hal_set_sta_light_sleep_wake_ahead_time = 0x40003038; hal_get_time_to_sta_next_tbtt = 0x4000303c; diff --git a/components/esp_rom/esp32c2/ld/esp32c2.rom.ld b/components/esp_rom/esp32c2/ld/esp32c2.rom.ld index 9d61a481f3..d9111de86b 100644 --- a/components/esp_rom/esp32c2/ld/esp32c2.rom.ld +++ b/components/esp_rom/esp32c2/ld/esp32c2.rom.ld @@ -616,7 +616,7 @@ pm_on_tbtt = 0x40001ba8; pm_rx_data_process = 0x40001bb8; /*pm_sleep = 0x40001bbc;*/ pm_sleep_for = 0x40001bc0; -pm_tbtt_process = 0x40001bc4; +//pm_tbtt_process = 0x40001bc4; ppAMPDU2Normal = 0x40001bc8; /*ppAssembleAMPDU = 0x40001bcc;*/ ppCalFrameTimes = 0x40001bd0; @@ -671,8 +671,8 @@ rcSetTxAmpduLimit = 0x40001c90; /* rcTxUpdatePer = 0x40001c94;*/ rcUpdateAckSnr = 0x40001c98; /*rcUpdateRate = 0x40001c9c;*/ -rcUpdateTxDone = 0x40001ca0; -rcUpdateTxDoneAmpdu2 = 0x40001ca4; +//rcUpdateTxDone = 0x40001ca0; +//rcUpdateTxDoneAmpdu2 = 0x40001ca4; rcUpSched = 0x40001ca8; rssi_margin = 0x40001cac; rx11NRate2AMPDULimit = 0x40001cb0; @@ -702,7 +702,7 @@ wdev_mac_sleep = 0x40001d04; wdevProcessRxSucDataAll = 0x40001d10; wdev_csi_len_align = 0x40001d14; ppDequeueTxDone_Locked = 0x40001d18; -ppProcTxDone = 0x40001d1c; +//ppProcTxDone = 0x40001d1c; /*pm_tx_data_done_process = 0x40001d20;*/ config_is_cache_tx_buf_enabled = 0x40001d24; /* ppMapWaitTxq = 0x40001d28; */ @@ -771,7 +771,7 @@ hal_crypto_clr_key_entry = 0x40001e20; config_get_wifi_task_stack_size = 0x40001e24; pp_create_task = 0x40001e28; hal_set_sta_tsf_wakeup = 0x40001e2c; -hal_set_rx_beacon_pti = 0x40001e30; +//hal_set_rx_beacon_pti = 0x40001e30; /* pm_start = 0x40001e34; */ /* pm_stop = 0x40001e38; */ hal_disable_sta_tbtt = 0x40001e3c; @@ -799,7 +799,7 @@ dbg_lmac_rxtx_statis_dump = 0x40001e90; dbg_lmac_hw_statis_dump = 0x40001e94; dbg_lmac_diag_statis_dump = 0x40001e98; dbg_lmac_ps_statis_dump = 0x40001e9c; -pp_timer_do_process = 0x40001ea0; +//pp_timer_do_process = 0x40001ea0; rcUpdateAMPDUParam = 0x40001ea4; rcUpdatePhyMode = 0x40001ea8; rcGetHighestRateIdx = 0x40001eac; @@ -969,12 +969,12 @@ wep_encap = 0x40002024; wep_decap = 0x40002028; dbg_hmac_rxtx_statis_dump = 0x4000202c; 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_ie_size = 0x4000204c; ieee80211_add_ssid = 0x40002050; ieee80211_add_rates = 0x40002054; -ieee80211_add_xrates = 0x40002058; +//ieee80211_add_xrates = 0x40002058; ieee80211_is_ht_cipher = 0x4000205c; ieee80211_setup_lr_rates = 0x40002068; ieee80211_ht_node_init = 0x4000206c; @@ -986,12 +986,12 @@ ieee80211_sta_is_connected = 0x40002080; current_task_is_wifi_task = 0x40002084; wifi_get_init_state = 0x40002088; /* ieee80211_timer_process = 0x4000208c;*/ -cnx_coexist_timeout = 0x40002090; +//cnx_coexist_timeout = 0x40002090; /* sta_recv_mgmt = 0x40002094;*/ ieee80211_send_setup = 0x40002098; /* ieee80211_send_probereq = 0x4000209c; */ sta_auth_shared = 0x400020a4; -cnx_coexist_timeout_process = 0x400020ac; +//cnx_coexist_timeout_process = 0x400020ac; ieee80211_alloc_challenge = 0x400020b0; cnx_assoc_timeout = 0x400020b4; ieee80211_vnd_ie_set = 0x400020b8; @@ -999,7 +999,7 @@ ieee80211_vnd_lora_ie_set = 0x400020bc; ieee80211_add_wme_param = 0x400020c0; ieee80211_add_dsparams = 0x400020c4; ieee80211_add_csa = 0x400020c8; -ieee80211_add_extcap = 0x400020cc; +//ieee80211_add_extcap = 0x400020cc; ieee80211_regdomain_get_country = 0x400020d0; ieee80211_add_countryie = 0x400020d4; ieee80211_amsdu_adjust_head = 0x400020dc; @@ -1021,7 +1021,7 @@ ieee80211_alloc_deauth = 0x40002124; ieee80211_send_proberesp = 0x40002128; ieee80211_getcapinfo = 0x40002130; sta_rx_csa = 0x40002134; -sta_recv_sa_query_resp = 0x40002144; +//sta_recv_sa_query_resp = 0x40002144; ieee80211_set_max_rate = 0x4000214c; ic_set_sta = 0x40002150; ieee80211_parse_wpa = 0x40002158; @@ -1048,13 +1048,13 @@ s_wifi_task_hdl = 0x3fcdfaec; in_rssi_adjust = 0x3fcdfae8; rssi_saved = 0x3fcdfae0; rssi_index = 0x3fcdfadc; -s_sa_query_retries = 0x3fcdfad8; -s_sa_query_success = 0x3fcdfad5; +//s_sa_query_retries = 0x3fcdfad8; +//s_sa_query_success = 0x3fcdfad5; g_sta_connected_flag = 0x3fcdfad4; wpa_crypto_funcs_ptr = 0x3fcdfad0; s_netstack_ref = 0x3fcdfacc; sta_csa_timer_ptr = 0x3fcdfac8; -s_trans_id = 0x3fcdfac4; +//s_trans_id = 0x3fcdfac4; /*************************************** diff --git a/components/esp_wifi/include/esp_wifi_types.h b/components/esp_wifi/include/esp_wifi_types.h index 502b40810f..81d184e8df 100644 --- a/components/esp_wifi/include/esp_wifi_types.h +++ b/components/esp_wifi/include/esp_wifi_types.h @@ -670,6 +670,7 @@ typedef enum { WIFI_EVENT_STA_BEACON_TIMEOUT, /**< ESP32 station beacon timeout */ 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_FAILED, /**< Soft-AP wps fails in registrar mode */ diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index e09a9a1e22..56ded4e55f 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit e09a9a1e22e0f4d967f953dc2a8404c7f48b92b6 +Subproject commit 56ded4e55f8eca15472eab425a5ae8b9da5ad9ac diff --git a/components/esp_wifi/src/wifi_init.c b/components/esp_wifi/src/wifi_init.c index 3d78f2a63f..25bfba9794 100644 --- a/components/esp_wifi/src/wifi_init.c +++ b/components/esp_wifi/src/wifi_init.c @@ -428,3 +428,19 @@ void * ieee80211_alloc_proberesp(void *p, int arg) } #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 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 ee22f58f5d..1777353419 100644 --- a/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h +++ b/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h @@ -57,6 +57,7 @@ typedef enum { } wifi_appie_ram_t; enum { + /* this enum is in C2 ROM, do not change before WPA3_AUTH_OWE */ NONE_AUTH = 0x01, WPA_AUTH_UNSPEC = 0x02, WPA_AUTH_PSK = 0x03, @@ -72,6 +73,7 @@ enum { WPA2_AUTH_ENT_SHA384_SUITE_B = 0x0d, WPA2_AUTH_FT_PSK = 0x0e, WPA3_AUTH_OWE = 0x0f, + /* this enum is in C2 ROM, do not change before WPA3_AUTH_OWE */ WPA2_AUTH_INVALID };